Aller au contenu principal

Logs et audit en base

Les logs et tables d'audit doivent capturer les changements métier critiques.

Quand logger

  • Changements de permissions, rôles ou utilisateurs
  • Anomalies d'authentification
  • Imports, exports et runs de parsers
  • Modifications des paramètres d'application
  • Appels API critiques en échec
  • Modifications des définitions de tables dynamiques admin

Champs de log recommandés

ChampNotes
ID acteurUtiliser l'ID utilisateur authentifié quand disponible
ActionNom d'action machine-readable stable
CibleType d'entité et ID
ContexteApplication, service, module
Résultatsuccess, failure, denied
MetadataJSON sanitisé

Ce qu'on ne logue JAMAIS

  • Mots de passe, tokens, clés API
  • Payloads personnels complets
  • Fichiers uploadés bruts
  • Données de santé ou personnelles sensibles

Pattern de log Laravel

Log::info('User role assigned', [
'id_user' => $user->id_user,
'id_role' => $role->id_role,
'actor_id' => auth()->id(),
'module' => 'admin',
]);

Log::error('Proxmox sync failed', [
'server_id' => $server->id,
'node' => $node->name,
'error' => $e->getMessage(), // jamais le stack trace complet en prod
]);