Rollen+Permissions-Sync beim Container-Start

Folge-Fix für die DSGVO-Menü-Sache. Settings.tsx hatte ich auf
audit:read || gdpr:admin erweitert, aber auf bestehenden
Installationen läuft der prisma-Seed nicht (nur auf leeren DBs).
Wer das System früher installiert hat, hat die DSGVO-Rolle ohne
audit:read in der DB – das JWT enthielt die Perm dann nie, und der
neue Settings.tsx-Check blieb wirkungslos.

Neues Skript prisma/sync-roles.ts läuft idempotent bei jedem
Container-Start: upserts Permissions-Katalog + syncRolePermissions
für Admin, Developer, DSGVO, Mitarbeiter (R/W + R/O), Kunde.
Stammdaten, User und Verträge werden NICHT angefasst – sicher auf
prod.

Live-verifiziert: nach `DELETE audit:read FROM RolePermission`
liefert der nächste Lauf "+1 Permissions an Rolle #27", DSGVO ist
wieder komplett.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-19 12:41:39 +02:00
parent 37df8c0c4a
commit 8ee5c9b07a
3 changed files with 185 additions and 0 deletions
+14
View File
@@ -120,6 +120,20 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
- **Live-verifiziert**: 4867 Datensätze + 1 Datei in 13.2s
wiederhergestellt, Log-Modal zeigt den vollständigen Verlauf.
- [x] **🐛 Rollen-Perms-Sync beim Container-Start (Follow-up DSGVO-Fix)**
- Bestehende Installationen liefen weiter mit veraltetem
Permission-Set für die DSGVO-Rolle (audit:read u.a. fehlten),
weil `prisma db seed` per docker-entrypoint nur auf leeren DBs
läuft. Folge: Settings.tsx-Fix vom Vorgänger-Commit half nicht,
weil das JWT die fehlende Perm gar nicht enthielt.
- Neuer Step im Entrypoint: `npx tsx prisma/sync-roles.ts` läuft
bei jedem Start. Idempotent, fasst nur Permission- und
Role-Tabellen an (keine User/Customers/Contracts), führt
`syncRolePermissions` für Admin, Developer, DSGVO,
Mitarbeiter, Mitarbeiter (Nur-Lesen), Kunde aus.
- Live-verifiziert: `audit:read` aus DSGVO-Rolle gelöscht, Script
laufen lassen → "+1 Permission an Rolle #27", wieder vollständig.
- [x] **🐛 DSGVO-Rolle: Menüpunkte in den Einstellungen unsichtbar**
- Symptom: User mit ausschließlich DSGVO-Rolle sah keinerlei
Karten unter Einstellungen → System (DSGVO-Dashboard,