🌱
Prise en main·Débutant·7 min

Gérer vos environnements staging et production

Apprenez à distinguer les clés test, live et sandbox, à vérifier votre contexte courant via GET /v1/me et à lister vos workspaces via GET /v1/workspaces sans jamais risquer de données réelles en production.

Télécharger en PDF

L'API Coffrify distingue trois environnements : live (production), test (staging, données isolées) et sandbox (clés éphémères à 24 h, idéales pour les démos). Chaque clé API porte son environnement directement dans son préfixe, ce qui rend impossible toute confusion entre un appel de test et un appel de production. Cet article explique comment vérifier votre contexte courant, lister vos workspaces accessibles et mettre en place une stratégie robuste d'isolation CI/CD.

Endpoints concernés

Deux endpoints suffisent à vérifier votre contexte d'exécution : GET /v1/me pour la clé courante et GET /v1/workspaces pour les espaces accessibles.

GET/v1/meRetourne le contexte complet de la clé API courante : workspace, scopes accordés, environnement détecté et horodatages.GET/v1/workspacesListe les workspaces accessibles à la clé ou à la session. Avec une clé API, seul le workspace propriétaire est retourné.

Authentification

Ces deux endpoints ne requièrent aucun scope particulier : une clé valide suffit. La clé doit être transmise dans l'en-tête Authorization: Bearer <clé>. L'environnement est déduit automatiquement du préfixe de la clé : - cof_live_… correspond à l'environnement live (production) - cof_test_… correspond à l'environnement test (staging) - cof_sandbox_… correspond à l'environnement sandbox (éphémère 24 h) Les préfixes cof_rk_live_, cof_rk_test_ et cof_rk_sandbox_ correspondent aux clés restreintes (scopes limités). Les tokens MCP utilisent cof_mcp_live_, cof_mcp_test_ et cof_mcp_sandbox_.

Vérifier votre contexte courant

L'appel GET /v1/me est le réflexe à avoir au démarrage : il confirme le workspace, l'environnement et les scopes de la clé. L'exemple ci-dessous le montre dans chaque langage.

curl -s https://api.coffrify.com/v1/me \
-H "Authorization: Bearer cof_test_xxxxxxxxxxxxxxxxxxxx"

Réponse de GET /v1/me

La réponse expose le workspace, les scopes accordés et surtout l'environnement détecté (live, test ou sandbox), déduit du préfixe de la clé. C'est ce champ qui garantit que vous appelez le bon environnement.

{
"workspace": {
"id": "ws_01hx9b7z2kfm3q8n4p0r5s6t7u",
"name": "Acme Corp",
"slug": "acme-corp",
"plan": "pro",
"is_personal": false
},
"api_key": {
"id": "key_01hx9b7z2kfm3q8n4p0r5s6t7u",
"name": "CI staging",
"key_prefix": "cof_test_xxxx",
"scopes": ["transfers:read", "transfers:write", "webhooks:read"],
"environment": "test",
"last_used_at": "2026-06-06T10:42:00.000Z",
"created_at": "2026-04-01T08:00:00.000Z"
},
"scopes": ["transfers:read", "transfers:write", "webhooks:read"],
"environment": "test"
}

Lister vos workspaces

Avec une clé API (cof_live_… ou cof_test_…), GET /v1/workspaces retourne uniquement le workspace auquel la clé appartient, avec le rôle fictif api_key. Avec une session utilisateur (cookie Supabase), il retourne tous les workspaces dont vous êtes propriétaire ou membre, chacun avec son rôle réel (owner, admin, member).

curl -s https://api.coffrify.com/v1/workspaces \
-H "Authorization: Bearer cof_live_xxxxxxxxxxxxxxxxxxxx"

Réponse de GET /v1/workspaces

Avec une clé API, la liste se limite au workspace propriétaire de la clé. La réponse confirme son id et son nom, utiles pour verrouiller vos appels sur le bon espace.

{
"object": "list",
"data": [
{
"id": "ws_01hx9b7z2kfm3q8n4p0r5s6t7u",
"name": "Acme Corp",
"role": "api_key",
"plan": "pro"
}
]
}

Erreurs fréquentes

La plupart des erreurs viennent d'une clé absente, invalide ou utilisée dans le mauvais environnement. Le tableau ci-dessous indique la cause et la résolution.

Code HTTPCode erreurCauseRésolution
401missing_api_keyEn-tête Authorization absent ou vide.Ajoutez Authorization: Bearer cof_test_… à chaque requête.
401invalid_api_keyLe préfixe de la clé n'est pas reconnu (ni cof_live_, ni cof_test_, ni cof_sandbox_, ni cof_rk_*, ni cof_mcp_*).Vérifiez que la clé est copiée intégralement depuis l'interface Développeur.
401revoked_api_keyLa clé a été révoquée manuellement ou via rotation.Créez une nouvelle clé dans Paramètres > Développeur.
401expired_api_keyLa clé sandbox est expirée (durée de vie 24 h) ou une date d'expiration personnalisée est dépassée.Générez une nouvelle clé sandbox ou ajustez la date d'expiration.
403ip_not_allowedL'IP appelante ne figure pas dans la liste d'autorisation de la clé.Ajoutez l'IP du serveur CI dans les restrictions de la clé.
429rate_limitedQuota de requêtes par minute dépassé pour ce workspace.Respectez les en-têtes X-RateLimit-Remaining et Retry-After retournés.
500internal_errorErreur interne inattendue.Réessayez avec un backoff exponentiel en vous aidant du request_id retourné pour le support.

Bonnes pratiques

En-têtes de réponse utiles

Plusieurs en-têtes accompagnent les réponses et aident au débogage (environnement, identifiant de requête). Le tableau ci-dessous les décrit.

En-têteDescription
X-Request-IdIdentifiant unique de la requête, à communiquer au support en cas d'incident.
X-Coffrify-Api-VersionVersion de l'API utilisée pour traiter la requête (ex. 2026-05-14).
X-RateLimit-LimitQuota total de requêtes autorisées par minute pour ce workspace sur cet endpoint class.
X-RateLimit-RemainingNombre de requêtes restantes dans la fenêtre courante.
X-RateLimit-ResetTimestamp Unix de la prochaine remise à zéro du compteur.
Retry-AfterNombre de secondes à attendre avant de retenter (présent uniquement lors d'un 429).

Voir aussi

  • Créer votre première clé API
  • Authentification et scopes
  • Limites de débit (rate limiting)
  • Rotation de clé API
  • Tokens MCP
Continuer

Autres tutoriels à suivre