Health Check Contract
Core Health Endpoint
GET /api/v1/health (no authentication required)
{
"status": "ok",
"version": "0.1.0",
"commit": "abc1234",
"built": "2026-04-01T00:00:00Z",
"engine": "arcan",
"mode": "standalone",
"sealed": false,
"uptime": "2h30m0s",
"checks": {
"database": { "status": "healthy" },
"encryption": { "status": "healthy" },
"plugins": { "status": "healthy", "loaded": 3, "degraded": 0 }
}
}
Status Values
| Status | Meaning |
|---|---|
ok | All subsystems healthy and unsealed |
sealed | Encryption seal active -- unseal required |
degraded | One or more subsystems unhealthy |
Engine Health via Ping()
Since plugins run inside the core process (sandboxed), there is no plugin process to health-check. Instead, the core calls Ping() on each loaded engine every 30 seconds to verify connectivity to the external system (database, cloud API, etc.).
Health Monitoring Rules
- Core calls
Ping()on each loaded engine every 30 seconds. - Three consecutive Ping failures mark the engine as
degradedand log a warning. - Degraded engines still accept requests (they might recover).
- Engine health is reported in the
/api/v1/healthresponse underchecks.engines.