Appearance
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.
| GET | Liveness probe/api/v1/health |
| GET | Read 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/healthErrors
| Status | Description | Body |
|---|---|---|
500 | The 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/internalResponse
| Name | Description |
|---|---|
cacheenum | State 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 |
databaseenum | State 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 |
eventsenum | State 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 |
temporalenum | State 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
| Status | Description | Body |
|---|---|---|
403 | You do not have permission to perform this action | |
401 | No valid access token was presented, or the DPoP proof accompanying it was missing, expired or bound to a different key. | error: string |
500 | The request failed for a reason that is not the caller's to fix. Safe to retry. | error: string, message: string, statusCode: 50 |