Router Database Record

Syntinel uses the Router Database record to look up alternative channels (routing) for the message. It uses 2 fields from the Signal message (routerId and routerType). If a record is found matching that Id and Type, the channels specified in the record will replace the defaultChannels in the reporter.

For a more detailed description of how Syntinel routing works, please see the Router page.

Class Diagram

Router Database Record

JSON Schmea

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "required": [ "_id", "_type" ],
    "properties": {
        "_id": { "type": "string" },
        "_type": { "type": "string" },
        "channels": { "type": "array", 
            "items": {"type": "string"} 
        }
    }
}

Field Descriptions

Status

Field Type Required Description
_id String Yes The Id to route the signal by (the signalId field in the Signal message)
_type String Yes A User defined "type" to route the signal by (the signalType field in the Signal message)
channels List of String No A list of Channel Id's to send the Signal message to when it matches the Id and Type provided.

Examples

Sample Router Database Records

In the records below when the signal message provides the following fields ( {"signalId": "dev", "signalType", "environment}) the defaultChannels in the reporter record will be overwritten with the "Dev" channels below.

{
  "_id": "dev",
  "_type": "environment",
  "channels": [
    "DevSlackChannel",
    "DevTeamsChannel"
  ]
}
{
  "_id": "test",
  "_type": "environment",
  "channels": [
    "TestSlackChannel",
    "TestTeamsChannel"
  ]
}