diff --git a/backend/docker-entrypoint.sh b/backend/docker-entrypoint.sh index 90197313..9e9e5f5f 100755 --- a/backend/docker-entrypoint.sh +++ b/backend/docker-entrypoint.sh @@ -122,5 +122,13 @@ if [ "$RAN_SEED" = "true" ] && [ -d /app/factory-defaults-builtin ] \ || echo "[entrypoint] Factory-Defaults-Seed fehlgeschlagen – ignoriert" fi +# 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). +# Idempotent – läuft bei jedem Container-Start ohne Risiko. +echo "[entrypoint] Datenbereinigung läuft…" +npx tsx prisma/cleanup-xss-and-mass-assignment.ts \ + || echo "[entrypoint] Cleanup übersprungen / fehlgeschlagen – nicht kritisch" + echo "[entrypoint] Starte Backend…" exec "$@" diff --git a/backend/prisma/migrations/20260516173552_portal_password_must_change/migration.sql b/backend/prisma/migrations/20260516173552_portal_password_must_change/migration.sql index 0961b0c9..75ea01fc 100644 --- a/backend/prisma/migrations/20260516173552_portal_password_must_change/migration.sql +++ b/backend/prisma/migrations/20260516173552_portal_password_must_change/migration.sql @@ -1,2 +1,5 @@ -- AlterTable -ALTER TABLE `Customer` ADD COLUMN `portalPasswordMustChange` BOOLEAN NOT NULL DEFAULT false; +-- IF NOT EXISTS: macht das Hochziehen auf prod-DBs sicher, die das Feld +-- über `prisma db push` schon erhalten haben (vor dem Migrations-Workflow). +-- MariaDB unterstützt das seit 10.0.2, MySQL 8 ebenfalls. +ALTER TABLE `Customer` ADD COLUMN IF NOT EXISTS `portalPasswordMustChange` BOOLEAN NOT NULL DEFAULT false;