COR-03: migration auf 0022 umnummeriert (Kollision mit COR-05s bereits gemergter 0021_legacy_audit_log_staging)
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) 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 / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, 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
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
Supply-Chain-Scan (npm) / npm-audit (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

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
patrickandClaude Sonnet 5 committed 2026-10-14 14:56:20 +02:00
1 parent dc65483239
commit 06c2a34516
3 files changed
+3 -3

No files matched your search

+3 -3
View File
@@ -16,7 +16,7 @@ COR-03 übernimmt laut Auftrag die bereits mit `user_migration_map` (COR-02) ver
## Umsetzung
- `migrations/0021_role_migration_map.up/down.sql`: Referenztabelle `role_migration_map` — `user_migration_map_id` (FK, UNIQUE: genau ein Rollen-Map-Eintrag je migriertem Benutzer), `source_system` (CHECK `archivmail`/`archivdms`), `source_role` (Freitext/Gruppenname aus dem Altsystem), `approved_by`/`approved_at` (Freigabe-Gate analog COR-01/COR-02). **Die Core-Rolle selbst wird nicht in der DB gespeichert** — sie wird bei der Migration aus `source_system`+`source_role` über eine feste Tabelle berechnet, damit keine Freitext-Rolle je 1:1 übernommen werden kann.
- `migrations/0022_role_migration_map.up/down.sql`: Referenztabelle `role_migration_map` — `user_migration_map_id` (FK, UNIQUE: genau ein Rollen-Map-Eintrag je migriertem Benutzer), `source_system` (CHECK `archivmail`/`archivdms`), `source_role` (Freitext/Gruppenname aus dem Altsystem), `approved_by`/`approved_at` (Freigabe-Gate analog COR-01/COR-02). **Die Core-Rolle selbst wird nicht in der DB gespeichert** — sie wird bei der Migration aus `source_system`+`source_role` über eine feste Tabelle berechnet, damit keine Freitext-Rolle je 1:1 übernommen werden kann.
- Neues Paket `internal/migrationrole`:
- `mapping.go`: `archivmailRoleMap`/`archivdmsGroupMap` — die dokumentierte, feste Mapping-Tabelle (siehe unten). `CoreRole(sourceSystem, sourceRole)` liefert `ErrUnmappedRole`, wenn keine Core-Rolle hinterlegt ist.
- `map.go`: `MapStore.Approved` liest nur freigegebene `role_migration_map`-Zeilen, per JOIN direkt angereichert um `nexarch_tenant_id`/`nexarch_user_id` aus `user_migration_map`.
@@ -68,8 +68,8 @@ go vet ./... -> keine Befunde
TEST_ADMIN_DSN=... go test ./internal/migrationrole/... ./internal/migrationuser/...
./internal/rbac/... ./internal/user/... ./internal/tenant/... -v
-> alle Tests PASS, keine Regression
Migrationen 0001..0021 in Reihenfolge gegen eine leere Wegwerf-DB (Port 5433) angewendet,
0021 zurueckgerollt -> APPLY_DONE, ROLLBACK_OK
Migrationen 0001..0022 in Reihenfolge gegen eine leere Wegwerf-DB (Port 5433) angewendet,
0022 zurueckgerollt -> APPLY_DONE, ROLLBACK_OK
```
## Entscheidungen (dokumentiert, keine Rückfrage nötig)