Skip to main content

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

StatusMeaning
okAll subsystems healthy and unsealed
sealedEncryption seal active -- unseal required
degradedOne 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 degraded and log a warning.
  • Degraded engines still accept requests (they might recover).
  • Engine health is reported in the /api/v1/health response under checks.engines.