Health

Sonde de santé de l’API. Vérifie en parallèle Postgres et l’API Gitea amont, renvoie l’état agrégé. Pensé pour des uptime checks externes (Better Stack, UptimeRobot, …) et pour Deno Deploy.

Source : src/api/v1/health.ts.


Health check

GET/api/v1/healthsource ↗

Comportement

  • Exécute en parallèle :
    • SELECT 1 sur Postgres (Drizzle)
    • GET https://zone01normandie.org/git/api/v1/version (timeout 2s)
  • Renvoie 200 si la base de données répond, peu importe l’état Gitea.
  • Renvoie 503 si Postgres est down — l’API ne peut alors plus servir la majorité des endpoints.

Réponse 200

{
  "status": "ok",
  "version": "v1",
  "uptimeSeconds": 1842,
  "timestamp": "2026-05-02T13:42:00.000Z",
  "dependencies": {
    "database": { "status": "ok", "latencyMs": 4 },
    "gitea":    { "status": "ok", "latencyMs": 187 }
  }
}

Réponse 503 (dégradé)

{
  "status": "degraded",
  "version": "v1",
  "uptimeSeconds": 1842,
  "timestamp": "2026-05-02T13:42:00.000Z",
  "dependencies": {
    "database": { "status": "down", "latencyMs": 2003, "error": "connect ETIMEDOUT" },
    "gitea":    { "status": "ok", "latencyMs": 187 }
  }
}

Champs

ChampTypeDescription
statusstringok ou degraded
versionstringVersion d’API (v1)
uptimeSecondsnumberTemps écoulé depuis le démarrage du process
timestampstringISO-8601 UTC
dependencies.databaseobject{ status, latencyMs, error? }
dependencies.giteaobject{ status, latencyMs, error? }

Exemple — uptime check

curl -sf $API/api/v1/health > /dev/null && echo OK || echo DOWN