L'outil en ligne de commande `cof` expose l'intégralité de l'API REST Coffrify v1 depuis votre terminal. Il s'adresse aux mêmes endpoints (https://api.coffrify.com/v1), utilise les mêmes clés (cof_live_, cof_test_, cof_sandbox_) et respecte les mêmes scopes que l'API. Tout ce que vous pouvez faire en HTTP, vous pouvez le faire avec cof, ce qui en fait l'outil idéal pour les scripts de déploiement, les tâches planifiées et l'exploration interactive. Cette page recense les commandes par domaine, les options globales communes à toutes les commandes, ainsi que des exemples d'automatisation prêts à adapter.
Authentification et environnements
cof lit votre clé depuis la variable d'environnement COFFRIFY_API_KEY, ou depuis l'option --api-key. Le préfixe de la clé détermine l'environnement ciblé : cof_live_ pour la production, cof_test_ pour le mode test, et cof_sandbox_ pour un bac à sable isolé de 24 heures. Les clés restreintes (cof_rk_) limitent les scopes accessibles. Définissez la clé une fois dans votre session, puis enchaînez les commandes.
Options globales
Ces options s'appliquent à toutes les commandes, quel que soit le domaine. Elles contrôlent l'authentification, le format de sortie et l'idempotence des écritures.
| Option | Effet |
|---|---|
--api-key <clé> | Fournit la clé d'API au lieu de COFFRIFY_API_KEY. |
--env <env> | Cible live, test ou sandbox. |
--json | Émet la réponse brute en JSON (idéal pour scripts et jq). |
--idempotency-key <clé> | Ajoute l'en-tête Idempotency-Key sur les écritures (8 à 255 caractères). |
--limit <n> | Taille de page sur les commandes list (maximum 100). |
--cursor <curseur> | Curseur de pagination renvoyé par la page précédente. |
Transferts
Les commandes cof transfers couvrent la création, le listage, la consultation et la suppression de transferts chiffrés. La création accepte un ou plusieurs fichiers : cof calcule leur taille, demande les URL de téléversement à l'API, puis envoie chaque fichier par PUT. Vous récupérez en sortie l'identifiant du transfert, son short_code et son share_url.
/v1/transfersCréer un transfert et téléverser les fichiers. Scope requis : transfers:write.| Commande | Rôle | Scope |
|---|---|---|
cof transfers create <fichiers…> | Créer un transfert et téléverser | transfers:write |
cof transfers list | Lister les transferts (paginé) | transfers:read |
cof transfers get <id> | Détailler un transfert | transfers:read |
cof transfers delete <id> | Supprimer un transfert | transfers:write |
La commande list est paginée par curseur. Utilisez --limit (jusqu'à 100) puis suivez le curseur renvoyé tant que la réponse indique qu'il reste des pages. Chaque entrée expose notamment id, short_code, transfer_title, status et expires_at.
Coffres et collections
Un coffre (data room) regroupe des fichiers et dossiers derrière un accès contrôlé, avec options de filigrane, de NDA et de liste d'e-mails autorisés. Les collections, plus légères, organisent des éléments sous une URL partageable. cof reflète directement les sous-ressources de l'API (files, folders, items, guests).
/v1/coffresCréer un coffre. Scope requis : collections:write.| Commande | Rôle |
|---|---|
cof coffres create --title <t> | Créer un coffre (options : --password, --watermark, --require-nda, --allowed-emails) |
cof coffres list | Lister les coffres |
cof coffres files <id> | Lister les fichiers d'un coffre |
cof coffres guests <id> | Gérer les invités d'un coffre |
cof coffres export <id> | Lancer un export du coffre |
cof collections create --name <n> | Créer une collection (--slug, --description, --expires-at) |
Réception (intake)
La réception crée un point de dépôt sécurisé. À la création, l'API renvoie deux secrets : une clé publiable cip_ destinée au navigateur de l'expéditeur, et une clé secrète cof_ réservée à votre serveur. Conservez la clé secrète hors du code client. Les documents déposés se listent ensuite par leur identifiant de réception.
/v1/intakesCréer un point de réception et obtenir les clés publiable et secrète. Scope requis : intake:write.Webhooks
Les webhooks notifient votre serveur en temps réel. À la création, la réponse contient le secret de signature whsec_, affiché une seule fois : copiez-le immédiatement. Par défaut, un webhook écoute l'événement transfer.downloaded. Vous pouvez déclencher une livraison de test pour valider votre endpoint avant la mise en production. Un espace est limité à 25 webhooks.
/v1/webhooksCréer un webhook et récupérer son secret de signature. Scope requis : webhooks:manage.| Commande | Rôle | Scope |
|---|---|---|
cof webhooks create --url <u> --events <…> | Créer un webhook | webhooks:manage |
cof webhooks list | Lister les webhooks | webhooks:read |
cof webhooks update <id> --url <u> | Mettre à jour un webhook | webhooks:manage |
cof webhooks delete <id> | Supprimer un webhook | webhooks:manage |
cof webhooks test <id> | Envoyer une livraison de test | webhooks:manage |
cof webhooks events | Lister tous les types d'événements (public) | aucun |
Exemple : script de bout en bout
Cet exemple enchaîne les commandes dans un script shell : il crée un transfert, en extrait l'URL de partage et l'identifiant via jq, puis affiche le résultat. L'option --idempotency-key garantit qu'un rejeu accidentel (relance du script, réseau instable) ne crée pas de doublon : un rejeu détecté est signalé par l'en-tête X-Coffrify-Idempotent-Replay: true.
Gestion des erreurs en script
cof retourne un code de sortie non nul en cas d'échec, ce qui permet de chaîner sereinement avec set -e. Avec --json, le corps d'erreur suit le format standard de l'API : un objet error contenant code, message et request_id. Citez toujours le request_id lorsque vous contactez le support. Les codes courants sont invalid_api_key, scope_missing, validation_error, not_found, rate_limited et idempotency_conflict.