Le journal d'audit de Coffrify enregistre chaque événement significatif au sein de votre workspace : appels API, mutations de ressources, connexions, changements de permissions, etc. Deux endpoints permettent d'en exploiter la valeur : GET /v1/audit pour interroger et filtrer en temps réel, et POST /v1/audit/export pour générer un export de conformité complet (CSV ou JSON) stocké sur Scaleway avec un lien de téléchargement valable 24 heures. La rétention des entrées dépend du plan : Free 30 jours, Pro 1 an, Ultra/Entreprise 7 ans.
/v1/auditListe les entrées du journal d'audit du workspace en cours. Supporte les filtres action, actor_id, resource_type, since, until et la pagination par curseur.POST/v1/audit/exportGénère un export CSV ou JSON de l'intégralité du journal d'audit (jusqu'à 50 000 lignes) pour une plage de dates donnée. Retourne une URL de téléchargement presignée valable 24 heures.Authentification
Les deux endpoints requièrent une clé API valide transmise dans l'en-tête Authorization: Bearer <clé>. Les formats acceptés sont cof_live_… (production), cof_test_… (test) et cof_sandbox_… (sandbox). Le scope requis diffère selon l'endpoint : GET /v1/audit exige le scope audit:read, tandis que POST /v1/audit/export exige le scope audit:export. Ces scopes sont cumulatifs : une clé possédant audit:export n'obtient pas automatiquement audit:read.
Paramètres de requête, GET /v1/audit
La lecture du journal accepte plusieurs filtres (action, acteur, type de ressource, plage de dates) et la pagination par curseur. Le tableau ci-dessous les détaille.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| action | string | Non | Filtre sur le champ action de l'entrée (ex. api.post.transfers). |
| actor_id | string | Non | UUID de l'acteur (utilisateur ou clé API) à isoler. |
| resource_type | string | Non | Type de ressource concernée (ex. transfer, document, member). |
| since | string (ISO 8601) | Non | Borne inférieure de la période (incluse). Ex. 2026-01-01T00:00:00Z. |
| until | string (ISO 8601) | Non | Borne supérieure de la période (incluse). Ex. 2026-06-01T23:59:59Z. |
| limit | integer | Non | Nombre d'entrées par page (défaut 100, maximum 500). |
| cursor | string | Non | Curseur opaque retourné par next_cursor pour passer à la page suivante. |
| offset | integer | Non | Décalage legacy (ignoré si cursor est présent). |
Corps de la requête, POST /v1/audit/export
L'export déclare le format (CSV ou JSON) et la plage de dates à extraire. Le tableau ci-dessous liste les champs acceptés.
| Champ | Type | Requis | Description |
|---|---|---|---|
| format | string | Non | Format de sortie : csv ou json (défaut json). |
| since | string (ISO 8601) | Non | Borne inférieure de la période à exporter. |
| until | string (ISO 8601) | Non | Borne supérieure de la période à exporter. |
Les exemples ci-dessous filtrent le journal, puis lancent un export. Choisissez votre langage.
Réponse, GET /v1/audit
La réponse liste les entrées (data) et fournit un next_cursor pour la page suivante. Chaque entrée trace l'acteur, l'action et la ressource concernée.
Réponse, POST /v1/audit/export
L'export renvoie une URL de téléchargement temporaire, le format et le nombre de lignes (row_count). Récupérez le fichier rapidement : l'URL expire.
Erreurs
Les erreurs portent sur une plage de dates invalide, un trop grand volume ou un scope manquant. Le tableau ci-dessous indique la résolution.
| HTTP | Code erreur | Quand | Résolution |
|---|---|---|---|
| 401 | missing_api_key | Aucune clé dans l'en-tête Authorization. | Ajoutez Authorization: Bearer cof_live_… à chaque requête. |
| 401 | invalid_api_key | La clé n'existe pas ou appartient à un autre workspace. | Vérifiez la clé dans votre tableau de bord Coffrify. |
| 401 | expired_api_key | La clé a dépassé sa date d'expiration. | Renouvelez ou régénérez la clé dans les paramètres workspace. |
| 401 | revoked_api_key | La clé a été révoquée manuellement. | Créez une nouvelle clé avec les scopes audit:read et/ou audit:export. |
| 403 | scope_missing | La clé ne possède pas le scope requis (audit:read ou audit:export). | Régénérez la clé en cochant le scope manquant. |
| 429 | rate_limited | Le quota expensive de votre workspace est épuisé (fenêtre 60 s). | Attendez le nombre de secondes indiqué dans l'en-tête Retry-After. |
| 500 | internal_error | Erreur inattendue côté serveur (RPC Supabase ou upload Scaleway). | Réessayez après quelques secondes ; contactez le support si l'erreur persiste. |
| 502 | internal_error | L'upload du fichier vers Scaleway a echoué (statut HTTP non-2xx). | Erreur transitoire : réessayez. Si elle persiste, vérifiez la page de statut. |
| 503 | internal_error | Les credentials Scaleway ne sont pas configurés côté serveur. | Contactez l'équipe Coffrify : variable d'environnement manquante. |
Voir aussi
- Référence GET /v1/audit
- Référence POST /v1/audit/export
- Comprendre la pagination par curseur
- Gérer les rate limits et les retries
- Scopes et permissions des clés API
- Recevoir des événements par Webhook