QA-05: Pruefgate Compliance & eDiscovery (Mail, stackt auf PR #294 INT-08) #305

Closed
patrick wants to merge 0 commits from feature/qa-05-pruefgate-compliance-ediscovery into main
pull from: feature/qa-05-pruefgate-compliance-ediscovery
Owner

Pruefgate Compliance & eDiscovery fuer Mail. Baut auf INT-08s offenem Branch auf (PR #294, noch nicht gemergt) - enthaelt daher dessen Commits mit.

Neues Paket mail/internal/qa05gate (Muster: QA-03 qagate). AC1: statischer Scan auf Core-Audit-Kopplung (AUD-08-Muster). AC2: reale eDiscovery-Tenant-Scoping-Pruefung gegen echten Manticore-Testcluster (inkl. neuer ListByMailbox-Testabdeckung). AC3: dokumentiertes, zeitgestempeltes Gate-Ergebnis.

Wichtiger echter Befund: Mail-Modul hat KEINE Kopplung an das Core-Audit-Log (anders als archive/connect/ai, die alle einen internal/auditclient gegen Core POST /audit/ingest haben, CMP-04-Muster). mail/internal/audittrail (INT-08) schreibt nur lokal. Realer Stichprobentest (echter auditlog-devserver-Prozess + echte Loeschungs-Ablehnung) bestaetigt: Eintrag lokal auffindbar, in Core-Audit-Log NICHT auffindbar. Absichtlich NICHT gefixt (ausserhalb QA-05-Scope, das Gate soll die Luecke aufdecken, nicht schliessen) - Empfehlung fuer Folgeticket im Protokoll dokumentiert.

Zweite Verifikationsrunde (keine zweite Person verfuegbar) durch zwei unabhaengige Methoden (statischer Scan + dynamische Stichprobe) plus Negativtest ersetzt.

Siehe mail/docs/QA-05-PRUEFPROTOKOLL.md.

🤖 Generated with Claude Code

Pruefgate Compliance & eDiscovery fuer Mail. Baut auf INT-08s offenem Branch auf (PR #294, noch nicht gemergt) - enthaelt daher dessen Commits mit. Neues Paket mail/internal/qa05gate (Muster: QA-03 qagate). AC1: statischer Scan auf Core-Audit-Kopplung (AUD-08-Muster). AC2: reale eDiscovery-Tenant-Scoping-Pruefung gegen echten Manticore-Testcluster (inkl. neuer ListByMailbox-Testabdeckung). AC3: dokumentiertes, zeitgestempeltes Gate-Ergebnis. Wichtiger echter Befund: Mail-Modul hat KEINE Kopplung an das Core-Audit-Log (anders als archive/connect/ai, die alle einen internal/auditclient gegen Core POST /audit/ingest haben, CMP-04-Muster). mail/internal/audittrail (INT-08) schreibt nur lokal. Realer Stichprobentest (echter auditlog-devserver-Prozess + echte Loeschungs-Ablehnung) bestaetigt: Eintrag lokal auffindbar, in Core-Audit-Log NICHT auffindbar. Absichtlich NICHT gefixt (ausserhalb QA-05-Scope, das Gate soll die Luecke aufdecken, nicht schliessen) - Empfehlung fuer Folgeticket im Protokoll dokumentiert. Zweite Verifikationsrunde (keine zweite Person verfuegbar) durch zwei unabhaengige Methoden (statischer Scan + dynamische Stichprobe) plus Negativtest ersetzt. Siehe mail/docs/QA-05-PRUEFPROTOKOLL.md. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 2 commits 2026-10-16 09:19:52 +02:00
INT-08: archive anbindung objekttyp registrierung retention abfrage
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (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 / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (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
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 / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (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
Mail-Pflichttest-Gate / pflichttest-gate (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
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
a3908da99f
Mail registriert mail_message/mail_attachment inkl. Aufbewahrungsklasse
bei Archive RET-05 (retentionregister.RegisterAll); vor jeder Papierkorb-
Aktion/Endloeschung fragt trash.Store ueber den bereits vorhandenen
legalhold-Checker RET-13 ab. Ablehnung (Sperre ODER nicht erreichbares
Archive) wird neu im Mail-Audit-Log vermerkt (audittrail), Loeschung
bleibt in beiden Faellen aus (fail closed). Vertragstest gegen den
echten archive/cmd/moduleadapter-api-Dienst (scripts/legalhold-contract-
test-mail.sh) bestaetigt reale Registrierung und Sperrabfrage.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
QA-05: pruefgate-compliance-ediscovery
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
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (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
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 / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (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
Mail-Pflichttest-Gate / pflichttest-gate (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
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
4c3b5fd277
Neues Paket mail/internal/qa05gate (Muster QA-03/qagate): prueft real
(1) ob mailrelevante Ereignisse an das Core-Audit-Log gekoppelt sind
(ScanForCoreAuditClient, statischer Scan nach dem CMP-04-Muster /audit/ingest,
plus reale Stichprobe gegen einen echten, frisch gestarteten
cmd/auditlog-devserver) und (2) ob eDiscovery-Tenant-Scoping in der
Query-Schicht (search.Client, von mailexport/ARC-07 fuer den
CMP-03-eDiscovery-Pfad genutzt) real verankert ist.

Basis ist der noch nicht gemergte Branch feature/int-08-archive-anbindung-
objekttyp-registrierung-retention-abfrage (INT-08 existiert nur dort,
nicht auf main) - dokumentiert in mail/docs/QA-05-PRUEFPROTOKOLL.md.

Realer Befund: das Mail-Modul hat anders als archive/connect/ai (CMP-04)
noch keine Kopplung an das Core-Audit-Log - mail_audit_log bleibt lokal.
Das Gate erkennt und dokumentiert das korrekt statt es zu verschweigen;
eDiscovery-Tenant-Scoping ist real bestaetigt und sicher verankert.
Folgeauftrag (mail/internal/auditclient analog zu archive) bewusst nicht
umgesetzt - ausserhalb des Pruefgate-Ticketumfangs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Author
Owner

Inhalt bereits in main enthalten (geprueft per merge_all_prs.sh: leerer Merge-Diff). Geschlossen ohne Merge.

Inhalt bereits in main enthalten (geprueft per merge_all_prs.sh: leerer Merge-Diff). Geschlossen ohne Merge.
patrick closed this pull request 2026-10-19 12:29:42 +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#305