Skip to content

Journal d'audit (AuditLog)

En une phrase : la mémoire infalsifiable de la plateforme — qui a fait quoi, quand, sur quelle ressource, et sous quelle casquette.

Rôle métier

Le journal existe d'abord pour deux besoins d'affaires : suivre l'émission et l'activation des cartes-cadeaux et instruire les litiges B2B avec les partenaires (« qui a annulé ce lot ? quand ce code a-t-il été consommé ? »). Par extension, chaque endpoint qui modifie la base écrit au moins une entrée — le journal est la piste d'audit générale du back-office.

Chaque entrée raconte une action complète :

  • qui — l'utilisateur authentifié (ou personne, pour un invité), avec la casquette déclarée au moment de l'action (voyageur, super-admin, organisation — et laquelle) ;
  • quoi — l'événement (création, modification, suppression, ou un verbe métier : login, generated, status_updated…) et le détail des champs modifiés ;
  • sur quoi — la ressource touchée (utilisateur, organisation, code d'activation, prestataire…) ;
  • dans quel contexte — la requête HTTP d'origine (IP, méthode, chemin).

Ce qui est tracé — et ce qui ne l'est pas

  • Les entités du domaine sont auditées automatiquement à chaque modification ; les opérations en lot ou hors modèle (login, génération de codes, acceptation d'invitation…) écrivent des entrées explicites.
  • Jamais de secrets : mots de passe, tokens (même hachés) et identifiants de connexion sont exclus à l'écriture — le journal peut être montré sans rédaction.
  • Exclusions délibérées : le va-et-vient des tokens d'API (bruit — les flux d'auth ont leurs entrées dédiées) et les données de seed.
  • L'appartenance à une organisation est rapportée à la personne concernée, l'organisation en contexte.

Cycle de vie

Append-only : une entrée ne se modifie ni ne se supprime par l'application. L'entrée d'audit vit dans la même transaction que l'écriture qu'elle décrit : une opération annulée n'en laisse aucune trace. La durée de rétention (litiges B2B) est une décision produit encore ouverte — aucune purge n'est planifiée à ce jour.

Relations métier

RelationSens métier
Utilisateur (causer)L'auteur de l'action ; nul pour un invité (ex. tentative de reset de mot de passe)
→ toute entité du domaine (subject)La ressource sur laquelle l'action a porté

Règles métier

  • Consultation réservée aux super-admins, du plus récent au plus ancien, filtrable par période.
  • Le journal est un registre, pas un flux applicatif : rien dans le produit ne doit dépendre de sa lecture pour fonctionner.

Détail des mécanismes : Journal d'audit.

Contributors

No contributors

Changelog

No recent changes