diff --git a/apps/journal/app/routes/api.health.ts b/apps/journal/app/routes/api.health.ts index cc1a396..6603a65 100644 --- a/apps/journal/app/routes/api.health.ts +++ b/apps/journal/app/routes/api.health.ts @@ -1,13 +1,13 @@ import { data } from "react-router"; import { withDb } from "@trails-cool/db"; +const version = process.env.SENTRY_RELEASE ?? "dev"; + export async function loader() { try { - await withDb(async () => { - // withDb creates a connection — if it succeeds, DB is reachable - }); - return data({ status: "ok", db: "connected" }); + await withDb(async () => {}); + return data({ status: "ok", version, db: "connected" }); } catch { - return data({ status: "degraded", db: "unreachable" }, { status: 503 }); + return data({ status: "degraded", version, db: "unreachable" }, { status: 503 }); } } diff --git a/apps/planner/server.ts b/apps/planner/server.ts index ac4e6c3..6fd8c6d 100644 --- a/apps/planner/server.ts +++ b/apps/planner/server.ts @@ -71,16 +71,18 @@ async function handleMetrics(_req: IncomingMessage, res: ServerResponse): Promis res.end(metrics); } +const version = process.env.SENTRY_RELEASE ?? "dev"; + async function handleHealth(_req: IncomingMessage, res: ServerResponse): Promise { try { const { withDb, db } = await import("@trails-cool/db"); const { sql } = await import("drizzle-orm"); await withDb(async () => { await db.execute(sql`SELECT 1`); }); res.writeHead(200, { "Content-Type": "application/json" }); - res.end(JSON.stringify({ status: "ok", db: "connected" })); + res.end(JSON.stringify({ status: "ok", version, db: "connected" })); } catch { res.writeHead(503, { "Content-Type": "application/json" }); - res.end(JSON.stringify({ status: "degraded", db: "unreachable" })); + res.end(JSON.stringify({ status: "degraded", version, db: "unreachable" })); } }