backup: SecurityEvent-Tabelle im Backup + Restore mit aufnehmen
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) <noreply@anthropic.com>
This commit is contained in:
parent
0671565433
commit
3823f8aa50
|
|
@ -249,6 +249,7 @@ export async function createBackup(): Promise<BackupResult> {
|
|||
{ 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<RestoreResult>
|
|||
// 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<RestoreResult>
|
|||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue