Healthcheck gibt die rohe Datenbankfehlermeldung heraus #39

Closed
opened 2026-09-26 13:57:53 +00:00 by florian.wilde · 0 comments
Owner

Ziel

src/app/api/gesundheit/route.ts antwortet im Fehlerfall mit

{ "status": "fehler", "meldung": "<fehler.message>" }

Der Pfad ist absichtlich ohne Anmeldung erreichbar — er steht in der Allowlist des Proxys, und
tests/sicherheitsrichtlinie.test.ts hält das fest. Eine Fehlermeldung von Prisma oder pg nennt
typischerweise Host, Port, Benutzername und Datenbanknamen. Das ist für einen öffentlich erreichbaren
Endpunkt zu viel: er soll sagen, ob es geht, nicht warum nicht.

Aufgefallen beim Abnahme-Review zu #019.

Aufgaben

  • Nach außen nur { "status": "fehler" } mit Status 503
  • Die Begründung serverseitig protokollieren, damit sie beim Suchen nicht fehlt
  • Prüfen, ob docs/betrieb/ irgendwo die Meldung als Diagnosehilfe nennt — dann auf das Log
    verweisen

Akzeptanzkriterien

  • Test: bei nicht erreichbarer Datenbank enthält die Antwort weder Host noch Port noch
    Benutzernamen
  • Test: der Statuscode bleibt 503, damit Docker und der Reverse Proxy weiter richtig entscheiden

Quelle im Repo: docs/issues/025-gesundheit-fehlermeldung.md

## Ziel `src/app/api/gesundheit/route.ts` antwortet im Fehlerfall mit ```json { "status": "fehler", "meldung": "<fehler.message>" } ``` Der Pfad ist absichtlich ohne Anmeldung erreichbar — er steht in der Allowlist des Proxys, und `tests/sicherheitsrichtlinie.test.ts` hält das fest. Eine Fehlermeldung von Prisma oder `pg` nennt typischerweise Host, Port, Benutzername und Datenbanknamen. Das ist für einen öffentlich erreichbaren Endpunkt zu viel: er soll sagen, **ob** es geht, nicht warum nicht. Aufgefallen beim Abnahme-Review zu [#019](019-betrieb-release.md). ## Aufgaben - [ ] Nach außen nur `{ "status": "fehler" }` mit Status 503 - [ ] Die Begründung serverseitig protokollieren, damit sie beim Suchen nicht fehlt - [ ] Prüfen, ob `docs/betrieb/` irgendwo die Meldung als Diagnosehilfe nennt — dann auf das Log verweisen ## Akzeptanzkriterien - [ ] Test: bei nicht erreichbarer Datenbank enthält die Antwort weder Host noch Port noch Benutzernamen - [ ] Test: der Statuscode bleibt 503, damit Docker und der Reverse Proxy weiter richtig entscheiden --- Quelle im Repo: `docs/issues/025-gesundheit-fehlermeldung.md`
florian.wilde added this to the v0.2.0 milestone 2026-09-26 13:57:53 +00:00
florian.wilde added the phase-2backend labels 2026-09-26 13:57:53 +00:00
Sign in to join this conversation.