import { Router } from 'express'; import { authenticate, requirePermission } from '../middleware/auth.js'; import * as auditLogController from '../controllers/auditLog.controller.js'; const router = Router(); // Alle Routen erfordern Authentifizierung router.use(authenticate); // ACHTUNG Reihenfolge: Alle konkreten Pfade MÜSSEN vor der Parameter-Route // '/:id' stehen, sonst schluckt diese sie und antwortet mit // "Ungültige Audit-Log-ID". Genau so war GET /retention-policies unerreichbar // (Pentest R166-04). // Audit-Logs abrufen router.get('/', requirePermission('audit:read'), auditLogController.getAuditLogs); // Audit-Logs exportieren router.get('/export', requirePermission('audit:read'), auditLogController.exportAuditLogs); // Retention-Policies router.get('/retention-policies', requirePermission('audit:admin'), auditLogController.getRetentionPolicies); router.put('/retention-policies/:id', requirePermission('audit:admin'), auditLogController.updateRetentionPolicy); // Audit-Logs für einen Kunden (DSGVO) router.get('/customer/:customerId', requirePermission('audit:read'), auditLogController.getAuditLogsByCustomer); // Hash-Ketten-Integrität prüfen router.post('/verify', requirePermission('audit:read'), auditLogController.verifyIntegrity); // Hash-Kette reparieren router.post('/rehash', requirePermission('audit:admin'), auditLogController.rehashAll); // Altbestand versiegeln (nicht destruktiv) router.post('/seal-backlog', requirePermission('audit:admin'), auditLogController.sealBacklog); // Retention-Cleanup manuell ausführen router.post('/cleanup', requirePermission('audit:admin'), auditLogController.runRetentionCleanup); // Einzelnes Audit-Log abrufen – als LETZTE GET-Route, siehe Hinweis oben router.get('/:id', requirePermission('audit:read'), auditLogController.getAuditLogById); export default router;