Skip to content

Journal d'audit de l'organisation

Le journal d'activité est le flux canonique « qui a changé quoi » pour votre organisation. Chaque écriture matérielle sur une entité suivie — membre, présence, don, groupe, ministère, unité org, école, ou inscription — y écrit une ligne, automatiquement, via un trigger de base de données qui ne peut pas être contourné par le code applicatif.

Ouvrez-le depuis la barre latérale sous Journal d'activité, ou allez directement à /activity-log.

Page du journal d'activité avec entrées et filtres

Lire une entrée

Chaque ligne vous dit quatre choses en français clair :

Sarah Patel a mis à jour membersModifié : email, phoneil y a 2 heures

ÉlémentD'où il vient
Nom de l'acteuractor_id → résolu au nom complet de l'utilisateur ; bascule sur l'e-mail si le profil n'existe plus
VerbeLa colonne d'action (created, updated, deleted, restored, merge_members, …)
Lien d'entitéSi le type d'entité a une route de détail (members, groups, ministries, schools), la ligne pointe directement vers elle
Colonnes modifiéesPour les actions updated, la liste des colonnes qui ont changé — pas les valeurs avant/après
HorodatageRelatif (« il y a 2 heures ») ; survolez pour voir la date absolue dans le fuseau horaire de votre organisation

Les écritures système — actions de workflow, jobs planifiés, edge functions s'exécutant sans utilisateur authentifié — affichent System comme acteur au lieu d'une personne.

Filtrage

L'en-tête a trois filtres qui se combinent avec ET :

  • Type d'entité — restreindre à membres, dons, présences, etc. uniquement. Utilisez ceci quand vous enquêtez sur une table spécifique.
  • Action — created, updated, deleted, restored. Par défaut tout.
  • E-mail de l'acteur — correspondance contains en texte libre. Tapez @votreeglise.org pour voir uniquement les écritures du personnel ; tapez une adresse partielle pour trouver une personne.

Les filtres sont pilotés par l'URL, donc vous pouvez mettre en favoris ou partager une vue filtrée (/activity-log?entity=donations&action=deleted et ainsi de suite).

TIP

Le journal d'activité est en défilement infini — les entrées plus anciennes se chargent quand vous faites défiler après le bas. Appliquez les filtres d'abord si vous cherchez un événement spécifique ; le flux non filtré peut être 10 000+ lignes par mois pour une organisation active.

Enquêtes courantes

« Un montant de don a changé et je ne sais pas pourquoi »

  1. Ouvrez /activity-log
  2. Définissez le filtre d'entité sur donations
  3. Définissez le filtre d'action sur updated
  4. Filtrez optionnellement par e-mail d'acteur si vous suspectez une personne spécifique
  5. Parcourez pour trouver le don ; cliquez pour vérifier contre l'enregistrement actuel

L'indice des colonnes modifiées vous dira si amount, fund, ou seulement les notes ont été touchés.

« Qui a supprimé ce membre ? »

  1. Filtrez l'entité sur members, l'action sur deleted
  2. Faites défiler jusqu'à la date en question
  3. La colonne de l'acteur vous dit exactement qui l'a fait et quand

Les membres supprimés sont supprimés doucement — ils sont toujours dans la base de données avec deleted_at défini. La ligne d'audit préserve l'acteur ; la ligne du membre préserve les données. Vous pouvez restaurer depuis la corbeille dans les 30 jours.

« Le workflow s'est-il vraiment exécuté la nuit dernière ? »

Les actions de workflow écrivent des entrées avec actor_email = system et des métadonnées décrivant l'exécution du workflow. Filtrez l'e-mail de l'acteur sur system pour ne voir que l'activité automatisée.

À quoi ressemblent les données sous-jacentes

La table org_audit_log :

sql
id              uuid primary key
organization_id uuid          -- scoped by current_org_id() RLS
actor_id        uuid          -- null for system writes
actor_email     text          -- denormalized for the case the profile is gone
action          text          -- 'created' | 'updated' | 'deleted' | 'restored' | …
entity_type     text          -- table name
entity_id       uuid          -- row id in that table
metadata        jsonb         -- { changed: [...], reason: '...', … }
created_at      timestamptz

Le tableau metadata.changed liste les noms de colonnes. Le champ metadata.reason, quand il est présent, est une justification en texte libre fournie par l'action qui a écrit la ligne — par exemple, la raison de l'exécution du workflow ou une explication manuelle de « marqué perdu ».

Différences vs l'onglet d'audit de Données & Journaux

La même table org_audit_log alimente l'onglet d'audit dans Données & Journaux. Les différences sont :

/activity-logDonnées & Journaux → Audit
Permissionusers.manageconfig.manage
Lignes affichéesDéfilement infini, toutes les lignesLes 50 dernières, pas de pagination
FiltresEntité, action, e-mail de l'acteurAucun
À utiliser pourEnquêtes, auditsUn coup d'œil rapide « qu'est-ce qui s'est passé récemment ? » pendant une session de config

La plupart des administrateurs utilisent /activity-log au quotidien. L'onglet Données & Journaux existe pour qu'un rôle config-uniquement (sans users.manage) puisse quand même voir l'activité récente sans leur accorder la permission plus large.

Voir aussi