← Retour à la marketplace
📋

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.

Voir les projets →