Configuration
In order for IOTA Vue to access data on any HTTP resource - the IOTA HTTP driver must be configured and deployed on the network
that has access to the required HTTP resources. IOTA Vue uses a distributed "mesh-like" data source topology:
Users are free to define what Region and Site mean for their unique deployment.
Name | Example | Description |
---|---|---|
Region | us-east-1 | geographical territory, similar to availability regions |
Site | siteB | specific plant or a building |
To simplify the installation process, the IOTA software provides a container image with the latest driver version. The
user only needs to select/create a region and site. Then click Add a new server for the selected driver type.
The container contains empty configurations for resources, but with public and private keys for secure communication.
with the company's IOTA Vue NATs message bus.
To access the Data Sources menu, click the hamburger icon in the top right corner, then select Data Sources.

Add Region
Click the "Add" icon to add a new site, then enter the site name in the pop-up dialog. Make sure that the Generic HTTP
is selected. Each site can contain several driver types. For each selected driver type - the instance pane will contain
selected driver tabs to which connection instances can be added.
There are two input fields:
- Site Name
- Channel Name (optional)
The site name is a user-friendly name, and the channel name can contain abbreviations. If the channel name is not specified
is not specified, it is automatically assigned to the Site name when you click the Apply button.

Add Site
Click on the "Add" icon to add a new site, then in the popup dialog - enter the site name. Make sure the Generic HTTP checkbox
is selected. Each site can contain multiple driver types. For each checked driver type - the instance pane will contain
selected driver tabs to which connection instances can be added.
There are three input fields:
- Site name
- Driver type
- Channel name (optional)
The site name is a user-friendly name, and the channel name can contain abbreviations. If the channel name is not
provided, it is automatically assigned to the site name on the "Apply" button click.

Add connection
The HTTP-Driver container is automatically available in the IOTA Vue data sources section configured for specific
Region\Site.
Tips
The installer already contains all required configurations for specific Region\Site connectivity.
To add a new HTTP resource connection navigate to data sources menu, then:
- Select region of interest
- Select the site of interest
- Select the Generic HTTP tab named "Generic HTTP" within the selected site.
- At the top right corner - click on the "Add" icon.

The HTTP-Driver's connection dialog will appear.

- Provide a name for the HTTP driver, it should be unique name.
- Specify the resource configuration for the driver (see Resource configuration section).
- Click on the "Apply" to save changes.
Resource Configuration
This section is used to define the resources that the driver will access. The resources are defined in a JSON format.
{
"resources": [
{
"name": "feedback",
"url": "http://localhost:8081/feedback?code=123",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": {
"user_email": "test@company.com"
}
},
{
"name": "retrain",
"url": "http://localhost:8081/retrain",
"method": "POST",
"headers": {
"Content-Type": "application/json"
}
},
{
"name": "chucknorris-random-joke-for-category",
"url": "https://api.chucknorris.io/jokes/random?category={{.category}}",
"method": "GET",
"headers": {
"Content-Type": "application/json"
}
}
]
}
The resource configuration is a JSON object with the following fields:
name - the name of the resource to run from the UI
url - a resource to execute. It supports templates like ?partOfUrl={{.value}}
.value - will be replaced with the same name from the received settings.
method - GET/POST/PUT
headers - an optional parameter. These values are added to the request
body - this is an optional parameter. The object to be sent to the server
Scripting
To work with the HTTP driver, you have to script your own logic. Here is an example of how to get a random joke from the chucknorris.io API:
this.loading = true
let ds = getDriver("Generic HTTP", "ChuckNorris")
// Settings contains two mandatory fields: name - it is a link to driver resource name
// parameters - body to send and update templates in URL string
let settings = {
name: "chucknorris-random-joke-for-category", // resource name
parameters: {
"category": "movies", // template value, it will be replaced in the URL
}
}
let result = callDriver(ds, 'exec', settings)
if(result.length) {
try {
message = JSON.stringify(JSON.parse(result[0]), null, 4);
}
catch(ex) {
console.log('Message parsing error', ex)
message = 'Message parsing error ' + ex;
}
}
taOutput.settings.value = message;
this.loading = false
Driver Configuration
On every startup the HTTP Driver reads its configuration from the environment variables.
Tips
The HTTP-Driver comes with a pre-configured environment. Therefore, manual configuration is not required.
Configuration parameters
Environment name | Required | Default Value | Data Type | Description |
---|---|---|---|---|
DRIVERID | ⚫ | "" | string | Driver Id - used for logging purposes only |
LOG_LEVEL | ⚫ | ERROR | string | Debug verbose level: ERROR, DEBUG, INFO |
NATS_HOST | 🟢 | null | string | NATs server url with port |
SEED_KEY_PATH | 🟢 | null | string | NATs NKey public key string. Private key must be defined in file: "privatekey.nk" |
RQS_TOPIC | 🟢 | null | string | NATs topic on which driver listens for requests |
HEALTH_TOPIC | ⚫ | "" | string | NATs topic for sending driver's health |
HEALTH_SCHEDULING | ⚫ | 10000 | int | How often in milliseconds to send health data. Default: 10000 = 10 sec |
LOGS_TOPIC | ⚫ | "" | string | NATs topic for sending driver's logs |
METRICS_TOPIC | ⚫ | "" | string | NATs topic for sending driver's metrics |
METRICS_SCHEDULING | ⚫ | 30000 | int | How often in milliseconds to send metrics data. Default: 30000 = 30 sec |
ENABLE_METRICS | ⚫ | true | bool | Enables metrics reporting |