Configuration
This document provides an overview of all available Edge Connect Language options.
EdgeConnectConfig
EdgeConnectConfigTop level configuration for the Edge Connect Service. Must be wrapped in the service key.
Fields
| Name | Type | Description | Required |
|---|---|---|---|
actions | map of string to ConnectionAction | Defines the ConnectionActions that can be used in ConnectionSequences.A map of unique identifier to a ConnectionAction definition.ConnectionActions defined here can be reused in multiple ConnectionSequences. | No |
api | RestAPI | No | |
cloud | Cloud | No | |
connections | map of string to ConnectionSequence | Defines the ConnectionSequences that will handle processing of BLE connections.A map of unique identifier to a ConnectionSequence definition.ConnectionSequences are triggered by a connect filter. | No |
devices | Devices | No | |
eventGenerators | map of string to EventGenerator | Defines the EventGenerators to run.A map of EventGenerator ID's to EventGeneratorConfig | No |
filters | map of string to Filter | Defines the Filters available for use in Pipelines.A map of unique identifier to a definition of a Filter.Filters defined here can be reused in multiple Pipelines. | No |
groups | map of string to DeviceGroup | Defines the DeviceGroups that can be referenced by Pipelines.A map of unique identifier to DeviceGroup definition. | No |
imports | Imports | No | |
keys | KeystoreConfig | No | |
log | Log | No | |
matchers | Matchers | No | |
metadata | Metadata | No | |
minimumVersion | string | Set the minimum version of edge-connect required to run this configuration Example: "2021.01-01" | No |
pipelines | map of string to Pipeline | Defines the Pipelines of Filters that events will flow through.A map of unique identifier to a Pipeline definition. | No |
scanning | Scanning | No | |
system | System | No |
Example
{
"service": {
"api": {
"devmode": true,
"port": 62307
},
"cloud": {
"connectors": {
"my-mqtt": {
"config": {
"base": "",
"host": "iothub.myserver.net",
"port": 8883,
"scheme": "tcps"
},
"type": "mqtt"
}
}
},
"filters": {
"eddyf": {
"type": "eddystone"
},
"ruuvif": {
"type": "ruuvi"
}
},
"groups": {
"east-wing-eddystones": {
"config": {
"absenceMinutes": 5,
"exclude": [
"abcdef7",
"abcdef8"
],
"include": [
"abcdef5",
"abcdef6"
]
},
"type": "static"
}
},
"health": {
"reporting": {
"intervalMinutes": 10
}
},
"log": {
"disableBytesHex": false,
"eventHistory": 0,
"includeUnmatchedHistory": false,
"jdiff": false,
"level": "info",
"memoryProfilingPort": null,
"memoryProfilingRate": null,
"printJSONEvents": false,
"stacktrace": false,
"truncateBytes": 0
},
"metrics": {
"reporting": {
"intervalMinutes": 10
}
},
"pipelines": {
"eddypipe": {
"eventType": "advertisement",
"filters": [
"eddyf",
"my-mqtt"
],
"groups": [
"east-wing-eddystones"
]
},
"ruuvipipe": {
"eventType": "advertisement",
"filters": [
"ruuvif",
"my-mqtt"
]
}
}
}
}Imports
ImportsSpecify recipes to import and set configuration for the imported recipes.
Referenced By:
EdgeConnectConfig
Fields
| Name | Type | Description | Required |
|---|---|---|---|
recipes | array | Defines recipes to import Can accept named recipes ([email protected]) or inline recipe json. Example: [ "[email protected]", "[email protected]"] | No |
variables | object | Define recipe variables to set Configure a recipe variable to a non-default value, the recipe variables are defined in the form recipeName.variableName. If no values are provided here, the recipe default values will be used. | No |
Example
{
"recipes": [
"[email protected]"
],
"variables": {
"myRecipe.connectionTimeout": "20s"
}
}Log
LogLog describes the logging configuration
Referenced By:
EdgeConnectConfig
Fields
| Name | Type | Description | Required |
|---|---|---|---|
bleDebug | boolean | If true, enable debug logging from the BLE layer Example: true | No |
disableBytesHex | boolean | Disable automatic conversion of byte arrays to hex | No |
eventHistory | integer | Number of pipeline events to keep in memory in a rolling buffer, for debugging purposes. Can be accessed via /pipelines/events API endpoint Set to -1 to disable, which is the default. Maximum value 10000. | No |
excludeEventKeys | array | Any event keys provided will have their values replaced with [excluded] when printing the event.These keys will be ignored in any map at any nesting level and dot-notation is ignored. To exclude nestedMap.key1, add key1 to excludeEventKeys.Note that all other instances of key1 will also be excluded (otherNestedMap.key1, etc).Does not apply if printJSONEvents is true Example: [ "omitKey1", "omitKey2"] | No |
includeUnmatchedHistory | boolean | Include pipeline events in history that don't match any pipelines. | No |
jdiff | boolean | Use jdiff to show only changes in events instead of the whole map when logging pipeline/connection events | No |
level | string | The log level. Valid options are: debug, info, error, fatal Example: "info" | No |
memoryProfilingPort | integer | Set (and enable) memory profiler api port, set to non-zero to enable. Enabling the memory profiler does impact performance depending on the memory profiling rate (see below). | No |
memoryProfilingRate | integer | Set memory profiler rate (if memoryProfilerPort is set) | No |
printJSONEvents | boolean | If true, events will be printed as indented JSON instead of the native "map:[key:value]" format note: this will have a significant performance penalty, use for debugging only Example: true | No |
printTimestamps | boolean | If true, log messages will contain timestamps. Example: true | No |
suppressAdvDecodeErrors | boolean | If true, advertisement decode errors will be suppressed Example: true | No |
truncateBytes | integer | Truncate byte arrays at a particular length, if <=0 byte arrays are not truncated | No |
Example
{
"service": {
"log": {
"disableBytesHex": false,
"eventHistory": 0,
"includeUnmatchedHistory": false,
"jdiff": false,
"level": "info",
"memoryProfilingPort": null,
"memoryProfilingRate": null,
"printJSONEvents": false,
"stacktrace": false,
"truncateBytes": 0
}
}
}Matchers
MatchersMatchers define a set of named matchers that can be reused in pipelines, filters, and actions.
Referenced By:
EdgeConnectConfig RecipeDefinition
Example
{
"hasTwoWheels": "{{ eq .wheels 2 }}",
"nearbyRs40": {
"rssi": "\u003e-40",
"serviceData.fd95": ""
}
}Metadata
MetadataConfigures the initial map of metadata that is loaded at startup.
Device specific identifiers, api keys, and other application specific items can be defined here for later lookup
in Pipelines or ConnectionSequences.
Referenced By:
EdgeConnectConfig RecipeDefinition
Fields
| Name | Type | Description | Required |
|---|---|---|---|
devices | object | Device metadata to initialize | No |
global | object | Global metadata to initialize | No |
persistent | boolean | Store device and global metadata persistently on the file system. Metadata will be reloaded if Edge Connect restarts, including if the gateway is rebooted. | No |
transientKeys | array | A list of keys that will always be in memory, and never persisted. This will include their sub-items. For example, if you specify "status" then "status.active" will also be transient. | No |
Example
{
"devices": {
"someMacAddress": {
"mySensorID": "sensor1234124"
}
},
"global": {
"secretAPIKey": "sdfjhsdfjkhsdfjk"
}
}RecipeWirepasOptions
RecipeWirepasOptionsThese options allow a recipe to request use of the specified Wirepas stack version. If multiple
recipes require Wirepas, all recipes must use the same version of Wirepas.
swagger: model recipe_RecipeWirepasOptions
Referenced By:
RecipeOptions
Fields
| Name | Type | Description | Required |
|---|---|---|---|
version | string | No |
RestAPI
RestAPIRestAPI describes the configuration for the API server running inside of Edge Connect
Referenced By:
EdgeConnectConfig
Fields
| Name | Type | Description | Required |
|---|---|---|---|
devmode | boolean | If devmode is set to true, the API server is accessible from any IP, not just localhost. If set to false, the API is only available locally. Example: false | No |
port | integer | The port to host the API server on Example: 62307 | No |
Example
{
"service": {
"api": {
"devmode": true,
"port": 62307
}
}
}System
SystemDescribes the system configuration for Edge Connect.
Referenced By:
EdgeConnectConfig
Fields
| Name | Type | Description | Required |
|---|---|---|---|
deviceGroupQueueSize | integer | The queue size for each device group's event queue | No |
filterQueueSize | integer | The queue size per filter to enqueue before dropping messages | No |
gcPercentage | integer | Mapping of the GOGC env var. The percentage of heap increase to tolerate before invoking GC. | No |
keepUnusedItems | boolean | Disable removal of unused/unreachable pipelines, filters, connectionSequences, connectionActions, etc | No |
Updated about 2 months ago
