API-21: Architekturtest gegen Fehlertext-Leck in HTTP-Antworten #123

Closed
patrick wants to merge 0 commits from feature/api-21-architekturtest-fehlertext-leck into integration/gesamtprojekt
pull from: feature/api-21-architekturtest-fehlertext-leck
Owner

Schliesst AK3 aus API-20 (Architekturtest). internal/archtest (Core) und archive/internal/archtest (Archive), AST-basiert ohne Typpruefung, zwei Regeln: kein err.Error() direkt in HTTP-Antworten ausser ueber apierror, kein rohes http.ListenAndServe ausserhalb httpharden. Ausnahmen ueber // archtest:allow <Begruendung>.

Echter Fund und behoben: internal/statuspage/statuspage.go schrieb err.Error() direkt in eine 500-Antwort (zur Laufzeit schon durch apierror.Normalize abgefangen, jetzt auch am Ursprung sanktioniert ueber apierror.Write).

Pruefungen (alle auf 204, Details in docs/API-21-PRUEFPROTOKOLL.md):

  1. Absichtlich eingefuegter Verstoss bringt den Test nachweislich zum Scheitern: demonstriert am echten Statuspage-Fund, zusaetzlich dauerhafter automatisierter Nachweis TestScanDetectsInjectedViolations (Core und Archive).
  2. Bestehender Code (Core, Archive) besteht go build/go vet/go test ./... vollstaendig, 0 Ausnahmen noetig.
  3. scripts/e2e-core-dms.sh 10/10 Teilfaelle gruen.

Kein Merge, kein Deploy.

🤖 Generated with Claude Code

Schliesst AK3 aus API-20 (Architekturtest). `internal/archtest` (Core) und `archive/internal/archtest` (Archive), AST-basiert ohne Typpruefung, zwei Regeln: kein `err.Error()` direkt in HTTP-Antworten ausser ueber `apierror`, kein rohes `http.ListenAndServe` ausserhalb `httpharden`. Ausnahmen ueber `// archtest:allow <Begruendung>`. Echter Fund und behoben: `internal/statuspage/statuspage.go` schrieb `err.Error()` direkt in eine 500-Antwort (zur Laufzeit schon durch `apierror.Normalize` abgefangen, jetzt auch am Ursprung sanktioniert ueber `apierror.Write`). Pruefungen (alle auf 204, Details in `docs/API-21-PRUEFPROTOKOLL.md`): 1. Absichtlich eingefuegter Verstoss bringt den Test nachweislich zum Scheitern: demonstriert am echten Statuspage-Fund, zusaetzlich dauerhafter automatisierter Nachweis `TestScanDetectsInjectedViolations` (Core und Archive). 2. Bestehender Code (Core, Archive) besteht `go build`/`go vet`/`go test ./...` vollstaendig, 0 Ausnahmen noetig. 3. `scripts/e2e-core-dms.sh` 10/10 Teilfaelle gruen. Kein Merge, kein Deploy. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 12 commits 2026-09-22 11:21:41 +02:00
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
API-20: einheitliche fehlerantworten mit korrelations-id (Core, Archive)
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
e3b795633f
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
IAM-23: e2e-Skripte auf Sitzungsschluessel-Konfiguration nachgezogen
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
83de555af4
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
QA-15 Phase 2c: Protokoll-Commit-Hash nachgetragen
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
Archive-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
2b547ff122
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
API-21: architekturtest gegen fehlertext-leck in http-antworten
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
301d695abc
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
API-21: statuspage-Fund beheben (err.Error() nicht mehr in HTTP-Antwort)
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
e3d1877934
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
API-21: Architekturtest auch fuer das Archive-Modul
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
c6cd632c85
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
API-21: Nachweistest fuer den Scanner selbst (injizierte Verstoesse + Ausnahme)
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
cca4f54a1f
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
API-21: Pruefprotokoll
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
Archive-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
1889f973bc
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
patrick closed this pull request 2026-09-25 23:30:38 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#123