Voller Merge der 15 verbleibenden Vorbedingungen (QA-07/QA-08/TEN-08/AUD-02/
API-04/OPS-03/API-06/AUD-05/API-07/LIC-05/OPS-04/OPS-05/OPS-06/IAM-15 plus
QA-03) auf den bereits gemergten Staenden von QA-02/QA-04/QA-09. Konsolidiert
alle sechs vorgelagerten Pruefgates (QA-02/03/04/07/08/09) - widerspruchsfrei,
Akzeptanzkriterium 1 erfuellt.
Echter, substanzieller Befund beim Audit-Log-Stichprobenabgleich (Pruefung
1): internal/policy.Store.Grant/Revoke, Tenant-Lifecycle-Uebergaenge,
Lockout und KEK-Rotation rufen internal/audit.Log.Record nirgends auf - der
zentrale, unveraenderliche Audit-Log (AUD-01/02) existiert und ist getestet,
wird aber von keinem Produktions-Handler tatsaechlich befuellt. Bewusst
NICHT in dieser Kachel behoben (waere Umbau vieler bestehender Pakete,
kein punktueller Fix) - dokumentiert mit Begruendung und Auflage vor QA-06.
Pruefung 2 (Vier-Augen-Gegenlesen) mangels zweiter Person nicht durchgefuehrt,
ebenfalls als Auflage vermerkt. Siehe docs/QA-05-ABNAHME-COMPLIANCE-PRUEFUNG.md.
Zwei reale Testinfrastruktur-Fehler gefunden und behoben (kein Produktions-
code): fehlender PG-Fehlercode 42723 (duplicate_function, AUD-02s
CREATE FUNCTION bei zweiter Migrationsanwendung) in der Toleranzliste der
E2E-/Pentest-Testhelfer; internal/loadtest wiederholte die aus QA-04
bekannte defer-vor-t.Cleanup-Reihenfolge-Fehlerklasse (200 liegen
gebliebene synthetische Tenant-Zeilen verfaelschten internal/migrate).
51/51 Pakete gruen auf 192.168.1.131.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HhgFcLS8tYMhDJpP74C6AQ
Voller Merge von TEN-05/IAM-08/RBAC-05/LIC-04/AUD-04/CFG-04/OPS-02 (SHL-01
bereits Bestandteil) nach feature/qa-09-barrierefreiheits-audit. WCAG-2.1-AA-
Audit ueber alle 7 Core-Frontends (15 Seiten): automatisierte Pruefung
(pa11y/HTML_CodeSniffer WCAG2AA) und automatisiertes Tastatur-Traversal
(Puppeteer) auf 192.168.1.131 durchgefuehrt, Ergebnis nach Fixes 0/15
Verstoesse, 100% Tastaturerreichbarkeit ohne Fallen.
Vier reale WCAG-Verstoesse gefunden und behoben: ungueltiger
autocomplete="username" auf type="email"-Feldern (account, 2 Seiten) sowie
fehlende zugaengliche Namen auf Filter-/Eingabefeldern in audit-log,
lic-admin und tenant-admin (aria-label ergaenzt).
Zusaetzlich ein realer Testinfrastruktur-Fehler in internal/adminapi
gefunden: lichandler_test.go's Cleanup rief `DELETE FROM tenant_licenses
WHERE tenant_id = $1` OHNE das $1-Argument auf (Fehler durch `_, _ =`
verschluckt) - die Tenant-Zeile blieb dadurch ueber eine FK-Constraint
dauerhaft haengen und verfaelschte internal/migrate im vollen Testlauf,
analog zu den in QA-04 gefundenen defer/t.Cleanup-Bugs. Nur Testcode
betroffen.
Ein Restbefund terminiert: echter Bildschirmleser-Durchlauf (NVDA/
VoiceOver) steht mangels grafischer Testumgebung noch aus, Frist vor QA-05
(siehe docs/QA-09-BARRIEREFREIHEITS-AUDIT.md Abschnitt 5).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HhgFcLS8tYMhDJpP74C6AQ
Voller Merge von RBAC-02/IAM-06/IAM-07/API-03/API-10/API-08/API-09/IAM-10/
IAM-11/IAM-13 plus echte Angriffstests (internal/pentest) gegen SSO/OIDC
(alg=none, Fremdschluessel, Claims-Manipulation, Nonce-Replay), Rate-
Limiting/Lockout im simulierten Mehrinstanz-Betrieb, zentrale Policy-
Durchsetzung (Rechteausweitung, struktureller Guard-Bypass) und Master-
Key-/Tenant-KEK-Rotation. 29/29 Pakete gruen auf 192.168.1.131.
Vier real gefundene Testinfrastruktur-Fehler behoben: reset-test-env.sh
liess tenant_keks (und weitere neuere Registry-Tabellen) beim Reset stehen
(FK-CASCADE loescht nur die Constraint, keine Zeilen); zwei E2E-Tests und
kek_test.go schlossen ihren adminPool per defer VOR ihrer t.Cleanup-
Bereinigung (t.Cleanup laeuft immer nach allen defers); migrate_test.go
hatte ein Testschema ohne die TEN-04-Lifecycle-Spalten. Alle vier Fixes
betreffen ausschliesslich Testcode, kein Produktionscode geaendert.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HhgFcLS8tYMhDJpP74C6AQ
Volle Merge-Verifikation aller 21 Vorbedingungs-Tickets: neue
internal/e2e-Tests (Tenant-Onboarding-Login-Flow, Cross-Tenant-Isolation)
gegen echte Postgres-Instanz, docs/QA-02-PRUEFPROTOKOLL.md mit
Ticket-zu-Test-Zuordnung. Dabei echten Merge-Konflikt zwischen IAM-12 und
IAM-13 gefunden und behoben (jwk/jwkSet-Typkollision in internal/oidc).
124/124 Tests gruen auf 131.