fix(abnahme): Healthcheck schweigt, zwei Konventionen praezisiert (#41)
This commit was merged in pull request #41.
This commit is contained in:
@@ -1,12 +1,26 @@
|
||||
import { prisma } from "@/lib/db";
|
||||
|
||||
/** Healthcheck fuer Docker und den Reverse Proxy. Prueft, ob die Datenbank antwortet. */
|
||||
/**
|
||||
* 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) {
|
||||
const meldung = fehler instanceof Error ? fehler.message : "unbekannter Fehler";
|
||||
return Response.json({ status: "fehler", meldung }, { status: 503 });
|
||||
console.error(
|
||||
"Healthcheck fehlgeschlagen:",
|
||||
fehler instanceof Error ? `${fehler.name}: ${fehler.message}` : "unbekannter Fehler",
|
||||
);
|
||||
return Response.json({ status: "fehler" }, { status: 503 });
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user