Health
A liveness/health probe used by BetterStack, CI, and load balancers.Base URL:
https://theroyalglow.in · Auth: Public. Unlike every other
endpoint, GET /api/health does not use the { success, data } envelope —
it returns its own documented HealthStatus contract and its own status codes.
The response always sends Cache-Control: no-store and an X-Health-Status
header. The admin app exposes an identical probe at
admin.theroyalglow.in/api/health; this page documents the customer probe on
theroyalglow.in.GET /api/health
Runs three independent dependency checks (database, Redis, R2) in parallel and reports an overall status. The handler is fully guarded — each check is wrapped so the endpoint never throws. Minimum role: PublicResponse shape
Response fields
Each component check is{ status: "pass" | "fail" | "skip", latencyMs: number, message?: string }.
Overall status rules
The database is the only hard dependency. Askip never degrades the
overall status.
So a no-keys local/dev environment (Redis and R2 unconfigured →
skip) reports
healthy with a 200. Only a failing database produces a 503.
Status examples
- Tab Title
- Tab Title
- Tab Title
Redis and R2 unconfigured (
skip); database passes → 200.