SOM connection
Set up, read and remove the connection to your organization's SOM bus, and check its status.
x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
The calling org's SOM bus configuration
application/json- response
id*stringSOM bus configuration identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$orgId*stringOwning organization identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$enabled?booleanMaster pause switch; a disabled config is fully preserved but the worker opens no connections for it. Absent (rows predating this field) means enabled.
trueproducerEnabled*booleanWhether this org publishes to its SOM bus
consumerEnabled*booleanWhether this org consumes from its SOM bus
busUrl*stringComma-separated host:port Kafka bootstrap broker list for the org's SOM bus
subscribeTopics?array<>Topics to subscribe to; required and non-empty when consumerEnabled
skillsEnabled?booleanWhether this org runs enrichment skills over its inbound SOM messages. Absent (rows predating this field) means disabled.
falseskillsEnabledAt?stringWhen skillsEnabled was last switched on; the worker only processes inbound messages received at or after this moment
date-timetls*booleanWhether the connection to the bus is encrypted
authMode*stringWhether the bus requires SASL authentication
"none""sasl"saslMechanism?string"plain""scram-sha-256""scram-sha-512"credentialId?stringReference to the stored SASL credential; present iff authMode === "sasl"
systemId*stringStamped on originating_system.system_id for every message this org publishes
1 <= lengthconsumerGroupId*stringKafka consumer group id used when this org's consumer is enabled
1 <= lengthcreatedAt*stringISO 8601 creation timestamp
date-timeupdatedAt*stringISO 8601 last-modified timestamp
date-timeversion*integerMonotonic row version; used as concurrency token
curl -X GET 'https://api.nuvelics.com/api/tenant/v1/som-config'{ "id": "string", "orgId": "string", "enabled": true, "producerEnabled": true, "consumerEnabled": true, "busUrl": "string", "subscribeTopics": [ "string" ], "skillsEnabled": false, "skillsEnabledAt": "2019-08-24T14:15:22Z", "tls": true, "authMode": "none", "saslMechanism": "plain", "credentialId": "string", "systemId": "string", "consumerGroupId": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "version": 0}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
SOM bus configuration deleted
curl -X DELETE 'https://api.nuvelics.com/api/tenant/v1/som-config'x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
application/json- body
enabled?booleanMaster pause switch; a disabled config is fully preserved but the worker opens no connections for it. Absent (rows predating this field) means enabled.
trueproducerEnabled*booleanWhether this org publishes to its SOM bus
consumerEnabled*booleanWhether this org consumes from its SOM bus
busUrl*stringComma-separated host:port Kafka bootstrap broker list for the org's SOM bus
subscribeTopics?array<>Topics to subscribe to; required and non-empty when consumerEnabled
skillsEnabled?booleanWhether this org runs enrichment skills over its inbound SOM messages. Absent (rows predating this field) means disabled.
falsetls*booleanWhether the connection to the bus is encrypted
authMode*stringWhether the bus requires SASL authentication
"none""sasl"saslMechanism?string"plain""scram-sha-256""scram-sha-512"username?string1 <= lengthpassword?string1 <= lengthSOM bus configuration created or updated
application/json- response
id*stringSOM bus configuration identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$orgId*stringOwning organization identifier
^[0-7][0-9A-HJKMNP-TV-Z]{25}$enabled?booleanMaster pause switch; a disabled config is fully preserved but the worker opens no connections for it. Absent (rows predating this field) means enabled.
trueproducerEnabled*booleanWhether this org publishes to its SOM bus
consumerEnabled*booleanWhether this org consumes from its SOM bus
busUrl*stringComma-separated host:port Kafka bootstrap broker list for the org's SOM bus
subscribeTopics?array<>Topics to subscribe to; required and non-empty when consumerEnabled
skillsEnabled?booleanWhether this org runs enrichment skills over its inbound SOM messages. Absent (rows predating this field) means disabled.
falseskillsEnabledAt?stringWhen skillsEnabled was last switched on; the worker only processes inbound messages received at or after this moment
date-timetls*booleanWhether the connection to the bus is encrypted
authMode*stringWhether the bus requires SASL authentication
"none""sasl"saslMechanism?string"plain""scram-sha-256""scram-sha-512"credentialId?stringReference to the stored SASL credential; present iff authMode === "sasl"
systemId*stringStamped on originating_system.system_id for every message this org publishes
1 <= lengthconsumerGroupId*stringKafka consumer group id used when this org's consumer is enabled
1 <= lengthcreatedAt*stringISO 8601 creation timestamp
date-timeupdatedAt*stringISO 8601 last-modified timestamp
date-timeversion*integerMonotonic row version; used as concurrency token
curl -X PUT 'https://api.nuvelics.com/api/tenant/v1/som-config' \ -H 'Content-Type: application/json' \ -d '{ "producerEnabled": true, "consumerEnabled": true, "busUrl": "string", "tls": true, "authMode": "none"}'{ "id": "string", "orgId": "string", "enabled": true, "producerEnabled": true, "consumerEnabled": true, "busUrl": "string", "subscribeTopics": [ "string" ], "skillsEnabled": false, "skillsEnabledAt": "2019-08-24T14:15:22Z", "tls": true, "authMode": "none", "saslMechanism": "plain", "credentialId": "string", "systemId": "string", "consumerGroupId": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "version": 0}x-api-key<token>A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.
The worker's last-recorded SOM bus connection state for the calling org
application/json- response
reported*trueThe worker has written a status row for this org
truestate*SomBusStateThe worker's coarse verdict on an org's SOM bus connection
"connected""connecting""error""disabled"errorKind?SomBusErrorKindCoarse category for a state: error row -- enough to point the operator at a fix without parsing lastError prose
"auth""unreachable""authorization""other"lastError?stringSanitized error detail, already scrubbed of credential material by the worker; meaningful only when state is "error"
configVersion*integerSOM config version this status row reflects
lastConnectedAt?stringWhen this org's connection last transitioned into connected; survives later error/connecting transitions
date-timeupdatedAt*stringHeartbeat timestamp, bumped on every reconcile tick for this org
date-timecurl -X GET 'https://api.nuvelics.com/api/tenant/v1/som-config/status'{ "reported": true, "state": "connected", "errorKind": "auth", "lastError": "string", "configVersion": 0, "lastConnectedAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z"}