Les clés API authentifient chaque appel à l'API Coffrify. Cette page explique comment créer une clé avec les scopes dont vous avez besoin, comment lister les clés existantes d'un workspace, comment en ajuster les paramètres et comment la révoquer. La gestion des clés passe par les routes /v1/api-keys et requiert le scope api_keys:manage. Comme ce scope est sensible, son obtention est elle-même protégée par une étape de vérification supplémentaire, détaillée plus bas.
Créer une clé
Pour émettre une clé, envoyez un POST /v1/api-keys. Seul name est obligatoire. Vous choisissez l'environnement (live ou test), le type de clé (full ou restricted), la liste des scopes, et éventuellement une date d'expiration et une liste d'adresses IP autorisées.
/v1/api-keysCréer une clé API (scope api_keys:manage). La valeur complète n'est renvoyée qu'une fois.| Champ | Type | Description |
|---|---|---|
| name | string | Nom lisible de la clé. Obligatoire. |
| environment | string | "live" (production) ou "test". Défaut : "live". |
| key_type | string | "full" (tous les scopes) ou "restricted" (limité aux scopes accordés). Défaut : "full". |
| scopes | string[] | Scopes accordés, au format ressource:action. Défaut : ["transfers:read", "transfers:write"]. |
| expires_in_days | number | Durée de validité en jours. Sans valeur, la clé n'expire pas. |
| allowed_ips | string[] | Restreint l'usage de la clé aux adresses IP listées. |
| mfa_code | string | Code de vérification, requis pour les scopes sensibles (voir plus bas). |
La réponse renvoie l'objet clé créé, complété de deux champs particuliers : key, la valeur complète à enregistrer, et warning, un rappel que cette valeur ne sera plus jamais affichée. Le champ key_prefix (par exemple cof_live_3f9a2c1b...) est, lui, conservé côté Coffrify : c'est l'identifiant abrégé qui vous permet de reconnaître la clé dans les listes et les journaux.
Clés complètes ou restreintes
Une clé full (préfixes cof_live_ / cof_test_) accorde implicitement tous les scopes : pratique pour le développement, mais à réserver à des contextes de confiance. Une clé restricted (préfixes cof_rk_live_ / cof_rk_test_) n'accorde que les scopes que vous listez, ce qui suit le principe du moindre privilège. Privilégiez une clé restreinte par intégration.
Étape de vérification pour les scopes sensibles
Certains scopes confèrent un contrôle élevé sur le workspace : members:manage, sessions:manage, audit:export, gdpr:export, domains:manage, workspace:manage, workspace:billing et api_keys:manage. Émettre une clé qui les accorde déclenche une étape de vérification supplémentaire (MFA). Une clé full accordant tout, elle déclenche toujours cette étape. Vous fournissez alors un code de vérification dans le champ mfa_code.
Si le code manque ou est invalide, l'API répond 401 avec le code d'erreur mfa_required, et la réponse précise les scopes sensibles concernés. Renvoyez la même requête en ajoutant un mfa_code valide.
Lister les clés
Un GET /v1/api-keys renvoie les clés du workspace, de la plus récente à la plus ancienne. La réponse a la forme { "object": "list", "data": [...] }. Chaque entrée expose ses métadonnées (nom, key_prefix, type, scopes, environnement, état actif, expiration, dernière utilisation), mais jamais la valeur complète de la clé.
Modifier une clé
Un PATCH /v1/api-keys/{id} met à jour les champs modifiables d'une clé : name, description, is_active (pour désactiver ou réactiver sans révoquer), allowed_ips et scopes. La liste de scopes doit rester non vide, et les restrictions des clés restreintes s'appliquent ici aussi. La valeur de la clé reste inchangée : modifier ses paramètres ne la régénère pas.
/v1/api-keys/{id}Mettre à jour le nom, la description, l'état actif, les IP autorisées ou les scopes d'une clé.Révoquer une clé
Un DELETE /v1/api-keys/{id} révoque la clé : elle cesse immédiatement d'authentifier les appels. Vous pouvez préciser une reason (par exemple manual, compromised, rotated, suspicious_activity). La réponse confirme la révocation.
/v1/api-keys/{id}Révoquer définitivement une clé. Optionnel : reason.Bonnes pratiques
- Une clé restreinte par intégration, avec uniquement les scopes nécessaires.
- Réservez les clés
test(cof_test_/cof_rk_test_) aux environnements hors production. - Définissez
expires_in_daysetallowed_ipsdès que le contexte le permet. - Ne committez jamais une clé : passez par des variables d'environnement ou un coffre à secrets.
- Révoquez ou faites tourner immédiatement toute clé que vous soupçonnez compromise.