ThingsDB Module (Go)
ThingsDB module written using the Go language.
With this module you gain access other scopes. This works both on the same node as with a connection to another ThingsDB cluster.
Installation
Install the module by running the following command in the @thingsdb scope:
new_module('thingsdb', 'github.com/thingsdb/module-go-thingsdb');
Optionally, you can choose a specific version by adding a @ followed with the release tag. For example: @v0.1.0.
Configuration
The host is required and either a username & password or a valid token.
| Property |
Type |
Description |
| host |
str (required) |
Address of the ThingsDB node. |
| port |
int (optional) |
Port of the node, defaults to 9200. |
| username |
str (optional) |
Username for authentication. |
| password |
str (optional) |
Password for the username. |
| token |
str (optional) |
Token for authentication (instead of username and password). |
| use_ssl |
bool (optional) |
Use SSL for the connection, default to false. |
| skip_verify |
bool (optional) |
Only for SSL, default to false. |
| nodes |
list (optional) |
List with additional nodes as {host: <NODE_ADDRESS>, port: <PORT>} where port is optional. |
Example configuration:
set_module_conf('thingsdb', {
host: 'localhost',
username: 'admin',
password: 'pass',
});
Exposed functions
| Name |
Description |
| query |
Perform a query. |
| run |
Run a procedure. |
query
Syntax: query(scope, code, vars)
Arguments
scope: The scope to run the query in.
code: The code for the query.
vars: Optional variable for the query.
Example:
thingsdb.query("//stuff", ".has(key);", {key: "example"}).then(|res| {
res; // response as "mpdata"
});
run
Syntax: run(scope, name, args)
Arguments
scope: The scope of the procedure.
name: Name fot the procedure to run.
args: Optional arguments as a list or thing for the procedure.
Example:
thingsdb.run("//stuff", "addition", {a: 4, b: 7}).then(|res| {
res; // response as "mpdata"
});