/api/gesundheit steht in der Allowlist des Proxys, damit ein Healthcheck kein
Cookie braucht. Eine Meldung von Prisma oder pg nennt aber Host, Port,
Benutzernamen und Datenbanknamen -- fuer einen Pfad, der ohne Anmeldung
antwortet, ist das zu viel.
Nach aussen bleibt {"status":"fehler"} mit 503, damit Docker und der Reverse
Proxy weiter richtig entscheiden. Die Begruendung geht ins Protokoll des
Prozesses, nach demselben Muster wie in src/server/actions/verzeichnis.ts.
Fuenf Tests, darunter einer fuer die andere Haelfte der Zusage: dass die
Begruendung wirklich geschrieben und nicht verschluckt wird. Gegenprobe
gefahren -- mit der alten Fassung werden drei davon rot.
Closes #39
36 lines
1.3 KiB
Markdown
36 lines
1.3 KiB
Markdown
# #025 Healthcheck gibt die rohe Datenbankfehlermeldung heraus
|
|
|
|
**Status:** erledigt
|
|
**Im Tracker:** [#39](https://git.wilde-server.de/florian.wilde/Laufzettel/issues/39)
|
|
**Meilenstein:** v0.2.0
|
|
**Labels:** phase-2, backend
|
|
**Geschätzt:** 1 h **Tatsächlich:** 25 min
|
|
|
|
## 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
|
|
|
|
- [x] Nach außen nur `{ "status": "fehler" }` mit Status 503
|
|
- [x] Die Begründung serverseitig protokollieren, damit sie beim Suchen nicht fehlt
|
|
- [x] Prüfen, ob `docs/betrieb/` irgendwo die Meldung als Diagnosehilfe nennt — dann auf das Log
|
|
verweisen
|
|
|
|
## Akzeptanzkriterien
|
|
|
|
- [x] Test: bei nicht erreichbarer Datenbank enthält die Antwort weder Host noch Port noch
|
|
Benutzernamen
|
|
- [x] Test: der Statuscode bleibt 503, damit Docker und der Reverse Proxy weiter richtig entscheiden
|