dms/internal/apierror.Normalize gab bei Status >= 500 den vom Handler geschriebenen Text unverändert an den Aufrufer. Interne Fehlertexte (DB-, Pfad-, Verbindungsfehler) konnten so nach außen gelangen. internal/apierror und archive/internal/apierror verschleiern 5xx bereits (QA-15 F-14), dms war beim Nachziehen vergessen worden. Normalize ist in dms/internal/apiwiring/apiwiring.go:151 für die App aktiv, die Lücke betrifft also alle DMS-Endpunkte.
Änderung
5xx: Antwort Interner Fehler plus correlation_id; Originaltext nur im Server-Log mit derselben ID
4xx unverändert (fachlicher Text bleibt)
Test 5xx angepasst, neue Tests: kein Interna-Leck im 5xx-Body, correlation_id nur bei 5xx
Nicht Teil dieses PRs: httpharden.ListenAndServe in dms wickelt Normalize nicht selbst ein (Root/Archive tun es). Für die App unkritisch (Wrapping über apiwiring), betrifft nur den Metrics-Listener des Workers.
Verifikation (Host 131)
go vet ./... und gofmt sauber, go test ./... in dms ohne DSN ohne Fehlschlag. Tests, die ein 5xx-Body-Format erwarten und eine DB brauchen, wurden übersprungen; Lauf mit Test-DB steht aus.
## Problem
`dms/internal/apierror.Normalize` gab bei Status >= 500 den vom Handler geschriebenen Text unverändert an den Aufrufer. Interne Fehlertexte (DB-, Pfad-, Verbindungsfehler) konnten so nach außen gelangen. `internal/apierror` und `archive/internal/apierror` verschleiern 5xx bereits (QA-15 F-14), `dms` war beim Nachziehen vergessen worden. `Normalize` ist in `dms/internal/apiwiring/apiwiring.go:151` für die App aktiv, die Lücke betrifft also alle DMS-Endpunkte.
## Änderung
- 5xx: Antwort `Interner Fehler` plus `correlation_id`; Originaltext nur im Server-Log mit derselben ID
- 4xx unverändert (fachlicher Text bleibt)
- Test `5xx` angepasst, neue Tests: kein Interna-Leck im 5xx-Body, `correlation_id` nur bei 5xx
Nicht Teil dieses PRs: `httpharden.ListenAndServe` in `dms` wickelt `Normalize` nicht selbst ein (Root/Archive tun es). Für die App unkritisch (Wrapping über `apiwiring`), betrifft nur den Metrics-Listener des Workers.
## Verifikation (Host 131)
`go vet ./...` und `gofmt` sauber, `go test ./...` in `dms` ohne DSN ohne Fehlschlag. Tests, die ein 5xx-Body-Format erwarten und eine DB brauchen, wurden übersprungen; Lauf mit Test-DB steht aus.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
dms/internal/apierror gab bei Status >= 500 den vom Handler geschriebenen
Text unveraendert an den Aufrufer (z. B. DB-/Pfadfehler). Angleichung an
internal/apierror: 5xx liefert "Interner Fehler" mit correlation_id, der
Originaltext geht nur ins Server-Log. 4xx unveraendert.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
dms/internal/apierror.Normalizegab bei Status >= 500 den vom Handler geschriebenen Text unverändert an den Aufrufer. Interne Fehlertexte (DB-, Pfad-, Verbindungsfehler) konnten so nach außen gelangen.internal/apierrorundarchive/internal/apierrorverschleiern 5xx bereits (QA-15 F-14),dmswar beim Nachziehen vergessen worden.Normalizeist indms/internal/apiwiring/apiwiring.go:151für die App aktiv, die Lücke betrifft also alle DMS-Endpunkte.Änderung
Interner Fehlerpluscorrelation_id; Originaltext nur im Server-Log mit derselben ID5xxangepasst, neue Tests: kein Interna-Leck im 5xx-Body,correlation_idnur bei 5xxNicht Teil dieses PRs:
httpharden.ListenAndServeindmswickeltNormalizenicht selbst ein (Root/Archive tun es). Für die App unkritisch (Wrapping überapiwiring), betrifft nur den Metrics-Listener des Workers.Verifikation (Host 131)
go vet ./...undgofmtsauber,go test ./...indmsohne DSN ohne Fehlschlag. Tests, die ein 5xx-Body-Format erwarten und eine DB brauchen, wurden übersprungen; Lauf mit Test-DB steht aus.🤖 Generated with Claude Code
Ersetzt durch #384: dms nutzt common/apierror (enthaelt dieselbe 5xx-Behebung samt Tests).
Pull request closed