Files
Laufzettel/src/app/api/gesundheit/route.ts
T
florian.wilde 88d7db8c3d
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
fix(abnahme): Healthcheck schweigt, zwei Konventionen praezisiert (#41)
2026-10-04 14:12:28 +00:00

27 lines
1.0 KiB
TypeScript

import { prisma } from "@/lib/db";
/**
* Healthcheck fuer Docker und den Reverse Proxy. Prueft, ob die Datenbank antwortet.
*
* Dieser Pfad ist absichtlich ohne Anmeldung erreichbar — er steht in der
* Allowlist von `src/proxy.ts`, damit ein Healthcheck kein Cookie braucht.
* Deshalb geht die **Begruendung** eines Fehlers nicht hinaus: eine Meldung von
* Prisma oder `pg` nennt typischerweise Host, Port, Benutzernamen und
* Datenbanknamen. Nach aussen genuegt, **ob** es geht; warum nicht, steht im
* Protokoll des Prozesses (`docker compose logs web`,
* `journalctl -u laufzettel`). Dasselbe Muster wie in
* `src/server/actions/verzeichnis.ts` (#039).
*/
export async function GET(): Promise<Response> {
try {
await prisma.$queryRaw`SELECT 1`;
return Response.json({ status: "ok" });
} catch (fehler) {
console.error(
"Healthcheck fehlgeschlagen:",
fehler instanceof Error ? `${fehler.name}: ${fehler.message}` : "unbekannter Fehler",
);
return Response.json({ status: "fehler" }, { status: 503 });
}
}