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:
@@ -122,6 +122,15 @@ if [ "$RAN_SEED" = "true" ] && [ -d /app/factory-defaults-builtin ] \
|
||||
|| echo "[entrypoint] Factory-Defaults-Seed fehlgeschlagen – ignoriert"
|
||||
fi
|
||||
|
||||
# Permissions + Rollen-Sync: Stellt sicher, dass nachträglich hinzugefügte
|
||||
# Permissions (z.B. audit:read auf der DSGVO-Rolle) auch auf bestehenden
|
||||
# DBs ankommen. Seed läuft NICHT auf nicht-leeren DBs, daher würden alte
|
||||
# Installationen sonst mit unvollständigen Role-Perms laufen. Idempotent,
|
||||
# fasst keine Stammdaten / User / Verträge an.
|
||||
echo "[entrypoint] Rollen + Permissions synchronisieren…"
|
||||
npx tsx prisma/sync-roles.ts \
|
||||
|| echo "[entrypoint] Role-Sync fehlgeschlagen – nicht kritisch"
|
||||
|
||||
# Datenbereinigung: XSS-Strings aus Customer/User-Stringfeldern strippen,
|
||||
# nicht-whitelisted AppSettings entfernen, Pentest-Marker melden (Default
|
||||
# nur warnen; CLEANUP_PURGE_PENTEST=true löscht markierte Records).
|
||||
|
||||
Reference in New Issue
Block a user