Skip to main content

Health checks

The backend exposes a single endpoint:

GET /health → 200
{
"status": "ok",
"gitSha": "abc1234",
"releaseVersion": "v1.2.3",
"uptimeSec": 42,
"timestamp": "2026-05-14T..."
}

Wiring up

  • ALB target group health check: GET /health, expect 200, interval 30s, threshold 2.
  • Kubernetes: livenessProbe and readinessProbe both point here.

What it does NOT check

This is a liveness probe, not a deep dependency check. It does not:

  • Open a DB connection.
  • Call Stripe.
  • Verify PostHog reachability.

If you want a deep "readiness" probe that fails on DB outage, add GET /ready:

@Get("ready")
async ready() {
await this.db.execute(sql`SELECT 1`);
return { ready: true };
}

Wire it to a separate target group health check if you want unhealthy DB to drain a task.

GIT_SHA / RELEASE_VERSION

Baked into the Docker image at build time. Surfaced for ops correlation:

  • Cross-reference an incident timestamp with a deploy SHA.
  • Confirm rolling deploy has propagated.

If absent (e.g. local pnpm start:dev), the fields are dev.

/api/auth/get-session

Different concept — checks user auth state, not service health. Don't use as a probe.