Pipelines

Pipelines define how events are processed in Edge Connect.


Filter

Filter describes the configuration for one Filter Node in a Pipeline

Referenced By:
EdgeConnectConfig   RecipeDefinition  

Fields

NameTypeDescriptionRequired
configobjectConfiguration information for the particular type of Filter used.
Described in the documentation for each Filter type.

In addition to the config parameters specific to each filter type, you may also specify these debug options in the config map:
debug - a bool indicating whether to perform debug logging
verbose - a bool indicating whether to perform verbose logging
debugInput - Enable logging a custom map built from the input map; will override the default event logging.
Define the map as key pairs (see inject), supports dot-notation, templating.

e.g.: {"importantValue":"{{.nested.important.value}}"}

debugOutput -Enable logging a custom map built from the output map; will override the default event logging.

Define the map as key pairs (see inject), supports dot-notation, templating.

e.g.: {"importantValue":"{{.nested.important.value}}"}
No
typestringThe unique type of the Filter, must match the type of one of the available Filters
Example: "inject"
Yes

Pipeline

Pipeline describes the configuration for one event processing pipeline. Pipelines target 'advertisement' events by
default, but can target any event type.

Referenced By:
EdgeConnectConfig   RecipeDefinition  

Fields

NameTypeDescriptionRequired
debugbooleanEnable debug loggingNo
disabledbooleanIf set to true, this pipeline will be disabled and will not process events.
If set to false, this pipeline will be enabled and non-prunable even if it is unreachable.
If not set (default), this pipeline will be enabled and prunable.
Example: true
No
eventType?The type of events to process in this Pipeline.
Specified as a string or list of strings

Available Options:

  • advertisement (default) for BLE advertising events

  • deviceDetected

  • deviceHealth

  • deviceAssignment

  • deviceStatus for events about newly discovered devices, devices that have disappeared, and (optionally) batteryLevel

  • deviceGroup for events when a device is added or removed from a device group

  • cloud for events from cloud subscriptions

  • any match any event type (including custom events)

  • ^regular expression$ use a regular expression to match events (must start with ^ and end with $)

  • custom event type match only the custom event type emitted by a recipe or the emitEvent filter

No
filtersarrayThe list of Filters, in order, that event data will flow through.

The list can contain a mix of strings, or objects.

If a string is provided, it must match a named filter defined in the filters section of Config.

If an object is provided, it must have one key:value pair. The key must the the type of filter and
the value must be the config object for that particular filter.

References the filters defined on Config
Example: [ "myFilter1", "myFilter2"]
Yes
groupsarrayThe list of DeviceGroups to receive events for. Defaults to an empty list, which means this pipeline will receive all
events that match its eventType, regardless of DeviceGroup.

References the groups defined on Config
No
match?Keys to match (all keys) for an inline definition (see MatcherDefinition), or a Template to evaluate and match to a true value.No
matchAnybooleanShould we match any of the provided matchers (true)? Or all of the matchers (false)No
matchersarrayThe list of top-level matcher IDs to apply to the input map
Example: [ "is-nearby", "is-my-device-type"]
No
typesarrayThe list of DeviceTypes to receive events for. Defaults to an empty list, which means this list is ignored

References the types defined on Config
No
verbosebooleanEnable verbose loggingNo

Example

{
  "service": {
    "pipelines": {
      "eddypipe": {
        "eventType": "advertisement",
        "filters": [
          "eddyf",
          {
            "inject": {
              "keyPairs": {
                "source": "an inline filter!"
              }
            }
          },
          "my-mqtt"
        ],
        "groups": [
          "east-wing-eddystones"
        ]
      }
    }
  }
}