# Healthcheck Contracts ## Doel Elke runtime-component moet een eenvoudige en machineleesbare healthcheck hebben. ## Backend ### Liveness `GET /health/live` returns HTTP 200 while the FastAPI process can serve a request. It has no database or storage dependency. ### Readiness `GET /health/ready` is the Docker healthcheck. `GET /health` is the backward-compatible alias. ### Response 200 ```json { "status": "ok", "service": "geointel-backend", "version": "1.0.0", "database": "ok", "postgis": "ok:3.x", "migration": "ok:202607160001", "storage": "ok", "checks": { "database": "ok", "postgis": "ok:3.x", "migration": "ok:202607160001", "storage": "ok" } } ``` ### Response 503 ```json { "status": "degraded", "service": "geointel-backend", "database": "degraded", "postgis": "degraded", "migration": "degraded", "storage": "ok" } ``` ## Worker ### Endpoint of command Codex mag kiezen tussen een internal endpoint of CLI-command, maar het contract moet dit opleveren: ```json { "status": "ok", "queue": "default", "pending_jobs": 0, "failed_jobs": 0, "last_heartbeat": "ISO-8601" } ``` ## Frontend Frontend moet een `/status` of settings/statuspanel hebben dat toont: backend bereikbaar, API version, auth status, feature flags en laatste healthchecktijd. ## Storage De readinesscheck maakt en verwijdert een tijdelijk bestand in `STORAGE_ROOT`. ## Database De readinesscheck controleert `SELECT 1`, `PostGIS_Version()` en dat de databaseversie exact overeenkomt met de enige Alembic-head in de image.