Archive-Portierung: Pruefprotokoll
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
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
Archive-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, 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 (shl) (pull_request) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
patrickandClaude Sonnet 5 committed 2026-09-21 22:28:55 +02:00
1 parent b631ce2c23
commit 6b1e6b0e48
1 file changed
+43
+43
View File
@@ -0,0 +1,43 @@
# Archive: Portierung der Alt-Linien in den Neu-Strang
Basis: `integration/gesamtprojekt` plus PR #103 (RET-03, `0012_legal_hold_destruction`). Branch `feature/archive-alt-linien-portierung-neu-strang`.
## Ausgangslage
| Alt-Zweig | Neu-Strang | Inhalt |
|---|---|---|
| `cmp-01`, `cmp-03`, `cmp-04` | bereits enthalten | GoBD-Verfahrensdokumentation, eDiscovery, Audit-Kopplung |
| `cmp-02` | fehlte (2 Commits, davon RET-03 in #103) | DSGVO-Datenschutzberichte (`dpreport`), Spalte `retention_objects.data_subject_ref` |
| `cmp-06` | fehlte (+1 Commit) | Vier-Augen-Freigabe für Löschungen (`deletionapproval`) |
| `cmp-07` | fehlte (+1 Commit) | DSGVO-Löschantrag (`dsgvorequest`, `dsgvo_decision_log`) |
Kette: `cmp-02` ⊂ `cmp-06` ⊂ `cmp-07`, alle auf RET-03. Fehlend waren insgesamt drei Ticket-Commits.
## Vorgehen
Cherry-pick der drei Commits in Kettenreihenfolge (CMP-02, CMP-06, CMP-07), ohne Konflikte. Ein Einzel-Pick von CMP-07 ohne CMP-02 konfligiert in `dpreport.go` und ist deshalb nicht möglich.
Migrationen neu nummeriert, Inhalt unverändert. Ältere Nummern mit anderem Inhalt des Neu-Strangs blieben unberührt.
| Alt | Neu |
|---|---|
| `0009_data_subject_ref` | `0013_data_subject_ref` |
| `0010_deletion_requests` | `0014_deletion_requests` |
| `0011_dsgvo_decision_log` | `0015_dsgvo_decision_log` |
Die drei Migrationen hängen nur von `retention_objects` (`0002`) ab. Es gibt keinen Bezug auf Alt-Nummern. Die Prüfprotokolle CMP-02/06/07 tragen einen Portierungshinweis mit den neuen Nummern.
## Prüfungen (Entwicklungshost 204, frischer Klon des gepushten Branches)
| Prüfung | Ergebnis |
|---|---|
| `gofmt -l archive` | leer |
| `go vet ./...` (Modul `archive`) | sauber |
| `go test -p 1 -count=1 ./...` gegen Wegwerf-Cluster `17/coredev` (`tenantdb`, `tenantdb_b`) | 27 Pakete `ok`, 0 FAIL; `dpreport`, `dsgvorequest`, `deletionapproval` und `deletionworkflow` laufen inklusive Mandantentrennungstests mit zweiter Datenbank |
| Migrationen von null (`mig_check`): 15 `up`, 15 `down` | up: 14 Tabellen, down: 0 Tabellen, zweiter up-Lauf: 14 Tabellen, ohne Fehler |
## Grenzen
- Die Tests der drei portierten Pakete legen ihre Tabellen selbst an (Handschema) und laufen nicht gegen die Migrationsdateien. Der Migrationsnachweis oben deckt die Dateien deshalb getrennt ab.
- Archive-Tests teilen sich die Datenbank, sie laufen mit `-p 1`.
- Kein fachlicher Widerspruch zwischen Alt- und Neu-Code gefunden: Die drei Commits ändern `retention.go` nur additiv (neue Funktion `RegisterObjectForSubject`, `RegisterObject` unverändert), alles Übrige liegt in neuen Paketen. Die `TenantIsolation`-Tests laufen mit zwei physisch getrennten Datenbanken (nicht übersprungen).