Exportez le journal d'audit de votre équipe au format NDJSON, CSV ou JSON pour la conformité, l'archivage et l'analyse en aval.
Ce que contient le journal d'audit
Chaque action qui modifie l'état du compte — invitations, changements de rôle, rotations de clés, paramètres de site web, changements de facturation, et plus encore — est enregistrée avec :
- id — id unique de l'entrée de journal
- action — ce qui s'est passé (par ex.
team.invite_member,website.update_settings) - resource_type + resource_id — l'objet sur lequel l'action a porté
- actor_id — quel membre de l'équipe a effectué l'action
- metadata — contexte supplémentaire (source, IP hashée, etc.)
- created_at — horodatage UTC
Les adresses IP à l'intérieur de metadata sont stockées sous forme de hash unidirectionnel avec un sel rotatif quotidien, afin que vous conserviez la valeur forensique sans exposer les IP brutes.
Vous pouvez aussi consulter le même audit-trail dans le tableau de bord sous Paramètres → Sécurité → Audit log.
Disponibilité par plan
L'export d'audit est disponible à partir du plan Pro. (Les plans gratuits n'incluent pas la création de clés API, donc le endpoint n'est pas accessible sur Free.)
Authentification
Le endpoint fait partie de l'External API et s'appelle avec une clé API :
Authorization: Bearer YOUR_API_KEY
Créez une clé API depuis le tableau de bord : Paramètres → Sécurité → API Keys → Nouvelle clé. Une clé d'accès complet fonctionne contre chaque endpoint.
Si votre compte appartient à plusieurs équipes, ciblez une équipe spécifique avec l'en-tête X-Zenovay-Team-Id sur chaque requête.
Exporter le journal d'audit
curl -L "https://api.zenovay.com/v1/cli/mutate/audit/export?format=ndjson" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o zenovay-audit.ndjson
Formats pris en charge
format | Content-Type | Idéal pour |
|---|---|---|
ndjson (par défaut) | application/x-ndjson | Streaming vers des pipelines d'analyse de logs (JSON délimité par lignes) |
csv | text/csv | Ouverture dans Excel, Google Sheets ou des outils BI |
json | application/json | Tableau JSON unique pour le traitement programmatique |
La réponse est envoyée avec Content-Disposition: attachment; filename="zenovay-audit.<format>" afin que la plupart des clients HTTP l'enregistrent sur disque.
L'export couvre l'historique d'audit disponible de votre équipe (les audit logs sont conservés pendant 24 mois). Un export unique retourne jusqu'à 10 000 des entrées les plus récentes. Pour les archives plus volumineuses, effectuez des exports réguliers selon un calendrier et ajoutez-les dans le stockage à froid. Pour des recherches plus légères et interactives, utilisez /v1/cli/mutate/audit/logs (voir ci-dessous).
Récupérer les entrées récentes (paginé)
Pour les requêtes interactives, utilisez /v1/cli/mutate/audit/logs :
curl "https://api.zenovay.com/v1/cli/mutate/audit/logs?since=7d&limit=100" \
-H "Authorization: Bearer YOUR_API_KEY"
Paramètres de requête
| Paramètre | Par défaut | Notes |
|---|---|---|
since | 7d | Fenêtre temporelle : 1h, 7d, 4w, 12m |
action | – | Filtrer par chaîne d'action exacte |
actor | – | Filtrer par id utilisateur |
limit | 50 | 200 maximum par requête |
La réponse inclut pagination.next_cursor lorsque d'autres entrées existent au-delà du limit demandé. Pour accéder aux entrées plus anciennes, augmentez limit (jusqu'à 200) ou réduisez la fenêtre since. Pour une archive complète, utilisez le endpoint d'export ci-dessus, qui retourne jusqu'à 10 000 des entrées les plus récentes en un seul appel.
Bonnes pratiques
- Planifiez des exports réguliers. Un cron job hebdomadaire qui stocke le NDJSON en cold storage (S3 Glacier, R2, etc.) est un moyen peu coûteux de conserver une trace immuable.
- Faites tourner votre clé API périodiquement et après chaque départ d'un membre de l'équipe.
- Traitez les exports comme sensibles. Les entrées ne sont pas des secrets, mais elles décrivent une activité opérationnelle — gardez-les hors des buckets publics et des disques partagés.
- Combinez avec les webhooks pour réagir à certaines actions en temps réel et utilisez l'export comme réconciliation complète périodique.
Erreurs possibles
| Statut | Signification |
|---|---|
401 unauthorized | Clé API manquante ou invalide, ou la clé n'est pas liée à une équipe |
402 upgrade_required | Votre plan n'inclut pas l'export d'audit — passez à Pro ou supérieur |
400 invalid_format | format doit être ndjson, csv ou json |
Chaque réponse inclut également l'en-tête x-request-id. Conservez-le dans vos tickets de support pour que nous puissions tracer l'appel de bout en bout.