From 3823f8aa50146cbc3b0926467e5cf4e5f72ae98d Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sat, 2 May 2026 10:19:18 +0200 Subject: [PATCH] backup: SecurityEvent-Tabelle im Backup + Restore mit aufnehmen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: Die in Runde 10 hinzugefügte SecurityEvent-Tabelle (Monitoring) war nicht im Backup-Service erfasst – beim Backup wurden 43 von 44 Tabellen gesichert, beim Restore die SecurityEvent-Daten nicht zurückgespielt. 3 Stellen ergänzt: - tables-Liste (createBackup): SecurityEvent wird jetzt mit findMany abgegriffen - delete-Order (restoreBackup): securityEvent.deleteMany vor dem Wiederbefüllen - restoreOrder: SecurityEvent.upsert nach AuditLog Live-verifiziert: neues Backup enthält SecurityEvent.json mit 152 Einträgen. Co-Authored-By: Claude Opus 4.7 (1M context) --- backend/src/services/backup.service.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/backend/src/services/backup.service.ts b/backend/src/services/backup.service.ts index ad9f0bcd..fc8981af 100644 --- a/backend/src/services/backup.service.ts +++ b/backend/src/services/backup.service.ts @@ -249,6 +249,7 @@ export async function createBackup(): Promise { { name: 'EmailLog', query: () => prisma.emailLog.findMany() }, { name: 'AuditRetentionPolicy', query: () => prisma.auditRetentionPolicy.findMany() }, { name: 'AuditLog', query: () => prisma.auditLog.findMany() }, + { name: 'SecurityEvent', query: () => prisma.securityEvent.findMany() }, ]; let totalRecords = 0; @@ -310,6 +311,7 @@ export async function restoreBackup(backupName: string): Promise // Logs & Audit zuerst (hängen an allem) await prisma.auditLog.deleteMany({}); await prisma.emailLog.deleteMany({}); + await prisma.securityEvent.deleteMany({}); // Detail-Tabellen await prisma.carInsuranceDetails.deleteMany({}); @@ -887,6 +889,18 @@ export async function restoreBackup(backupName: string): Promise } }, }, + { + name: 'SecurityEvent', + restore: async (data: any[]) => { + for (const item of data) { + await prisma.securityEvent.upsert({ + where: { id: item.id }, + update: convertDates(item), + create: convertDates(item), + }); + } + }, + }, ]; let totalRestored = 0;