Skip to content

Health

Operational state of the backend process, not of anything in a tenant: no tenant resource, no stored data. Both answers describe the one instance that handled the request — in a multi-instance deployment, not necessarily the same instance twice.

Three of the four subsystems map onto routes elsewhere in this reference: cache holds the device state flake serves, events is the event bus the websocket subscribes to, and temporal is the history store behind the temporal routes. A disconnected entry there is the first thing to check when those routes start failing. Nothing here emits events.

GETLiveness probe/api/v1/health
GETRead subsystem status/api/v1/health/internal

Liveness probe

Answers OK as soon as the process is serving requests. Needs no token, and says nothing about cache, database or event bus — /health/internal does that.

GET/api/v1/health

Errors

StatusDescriptionBody
500The request failed for a reason that is not the caller's to fix. Safe to retry.error: string, message: string, statusCode: 50

Read subsystem status

State of this instance's cache, database, event bus and temporal store. Needs read on crn#health:*, which a root admin's crn#* covers; unconfigured means the subsystem was never set up and is not a fault.

GET/api/v1/health/internal

Response

NameDescription
cacheenumState of the history store behind the /temporal routes; unconfigured is not a fault — the instance runs without one and records no history.
Possible values: connected, disconnected, unconfigured
databaseenumState of the history store behind the /temporal routes; unconfigured is not a fault — the instance runs without one and records no history.
Possible values: connected, disconnected, unconfigured
eventsenumState of the history store behind the /temporal routes; unconfigured is not a fault — the instance runs without one and records no history.
Possible values: connected, disconnected, unconfigured
temporalenumState of the history store behind the /temporal routes; unconfigured is not a fault — the instance runs without one and records no history.
Possible values: connected, disconnected, unconfigured

Errors

StatusDescriptionBody
403You do not have permission to perform this action
401No valid access token was presented, or the DPoP proof accompanying it was missing, expired or bound to a different key.error: string
500The request failed for a reason that is not the caller's to fix. Safe to retry.error: string, message: string, statusCode: 50