← Retour à la marketplaceVoir les projets →
📋
Audit Logs
Journal d'audit complet des actions utilisateurs avec recherche et export.
InfrastructureSimple~2 joursv1.1.0
Module d'audit trail avec enregistrement de toutes les actions (qui, quoi, quand, depuis où), recherche avancée, export CSV et rétention configurable.
auditlogscompliancesecurityhistory
Dépendances requises :
📋 Schéma Prisma
// === Module Audit Logs ===
model AuditTrail {
id String @id @default(cuid())
userId String?
userEmail String?
action String // CREATE, READ, UPDATE, DELETE, LOGIN, EXPORT
entity String // invoice, contact, user
entityId String?
before Json? // Valeur avant modification
after Json? // Valeur après modification
ipAddress String?
userAgent String?
createdAt DateTime @default(now())
@@index([entity, entityId])
@@index([userId])
@@index([createdAt])
@@map("audit_trail")
}🔌 Endpoints API
## API Audit Logs
GET /api/audit # Liste paginée (filtres: entity, action, user, date)
GET /api/audit/:entity/:id # Historique d'une entité spécifique
GET /api/audit/export # Export CSV
# Interne
import { logAudit } from "@/lib/audit/service"🛠️ Guide d'implémentation
## Implémentation Audit Logs
### Étape 1 — Service d'audit
Créer src/lib/audit/service.ts :
```typescript
async function logAudit({
userId, action, entity, entityId, before, after, req
}: AuditParams): Promise<void>
```
Ne jamais bloquer l'opération principale en cas d'erreur d'audit (try/catch silencieux).
### Étape 2 — Intégration
Appeler logAudit() dans chaque route API qui modifie des données.
Pour les lectures, n'auditer que les exports et données sensibles.
### Étape 3 — Rétention
Créer un cron pour supprimer les logs de plus de X mois (configurable via module Paramètres).Prêt à installer ce module ?
Ajoutez-le à un projet existant depuis la page modules du projet.