Aller au contenu principal

Configuration

La CLI fonctionne sans configuration après copera auth login, mais quelques petits ajouts rendent l'usage quotidien bien plus fluide — surtout pour les scripts ou l'exécution depuis un agent IA.

Hiérarchie des fichiers de configuration​

La CLI lit la configuration depuis jusqu'à trois fichiers TOML. Lorsque le même paramètre apparaît dans plusieurs, le fichier de priorité la plus élevée l'emporte :

PrioritéFichierRôle
1.copera.local.toml (répertoire courant)Secrets par développeur. À ajouter au .gitignore.
2.copera.toml (répertoire courant)Défauts partagés du projet. Peut être versionné (sans tokens).
3~/.copera.tomlVotre configuration personnelle, avec tous les profils.

La variable d'environnement COPERA_CLI_AUTH_TOKEN et le flag --token remplacent les trois pour le token spécifiquement. Voir l'ordre complet de résolution du token.

Format du fichier​

Chaque fichier est en TOML. Un profil regroupe un token avec des IDs de ressources par défaut ; une section [output] et une section [cache] ajustent le comportement :

# Utiliser un profil autre que "default" sans passer --profile à chaque fois.
# Remplacé par COPERA_PROFILE ou --profile.
default_profile = "work"

[profiles.default]
token = "cp_pat_abc123..." # ne jamais versionner ceci
board_id = "66abc123def456789012abcd" # utilisé lorsque --board est omis
table_id = "66pqr012stu345678901vwxy" # utilisé lorsque --table est omis
row_id = "" # utilisé lorsque --row est omis
channel_id = "" # utilisé lorsque --channel est omis
doc_id = "" # utilisé lorsque --doc est omis

[profiles.work]
token = "cp_key_xyz789..."
board_id = "66ghi789jkl012345678mnop"

[output]
format = "auto" # auto | json | table | plain
color = "auto" # auto | always | never (respecte aussi NO_COLOR)

[cache]
dir = "" # défaut : répertoire temporaire système / copera-cli
ttl = "1h" # durée de mise en cache du contenu des docs

Une fois les défauts configurés, les commandes se simplifient :

# Sans défauts
copera rows list --board 66ghi... --table 66pqr...

# Avec board_id et table_id dans le profil actif
copera rows list

Profils​

Chaque bloc [profiles.<name>] contient son propre token, board_id, table_id, row_id, channel_id et doc_id. Sélectionnez-en un par commande ou par shell — lorsque vous omettez --profile, la CLI utilise default (ou le default_profile défini dans votre configuration) :

copera boards list --profile work
COPERA_PROFILE=work copera boards list

Configuration au niveau projet​

Pour des défauts partagés du projet, versionnez un .copera.toml dans votre dépôt sans tokens :

[profiles.default]
board_id = "66abc123def456789012abcd"
table_id = "66pqr012stu345678901vwxy"

Pour des secrets par développeur qui ne doivent pas être versionnés, utilisez .copera.local.toml et ajoutez-le au .gitignore :

[profiles.default]
token = "cp_pat_xxx"

Cette séparation permet à toute une équipe de partager le même board et la même table par défaut, tandis que chaque développeur fournit son propre token en local.

Variables d'environnement​

VariableDescription
COPERA_CLI_AUTH_TOKENToken d'API. Remplace tous les fichiers de configuration.
COPERA_PROFILENom du profil de configuration actif (défaut : default).
COPERA_SANDBOXDéfinir à 1 pour cibler l'API de développement.
COPERA_NO_UPDATE_CHECKDéfinir à 1 pour désactiver les vérifications de version en arrière-plan.
CIDéfinir à true pour désactiver les invites interactives et les vérifications de mise à jour.
NO_COLORDésactive la sortie couleur ANSI.

Sandbox​

Définissez COPERA_SANDBOX=1 pour pointer la CLI vers l'environnement de développement Copera au lieu de la production. Cela bascule l'URL de base de l'API vers https://api-dev.copera.ai/public/v1 et oriente copera auth login vers l'app web de dev (https://dev.copera.ai) :

COPERA_SANDBOX=1 copera auth login
COPERA_SANDBOX=1 copera boards list

Utilisez un profil distinct pour les identifiants sandbox afin de ne pas les mélanger avec les tokens de production.

Vérifications de mise à jour​

Par défaut, la CLI exécute une vérification légère en arrière-plan des nouvelles versions et vous prévient lorsqu'une est disponible. Désactivez-la pour des exécutions totalement silencieuses et déterministes :

COPERA_NO_UPDATE_CHECK=1 copera boards list

Les vérifications de mise à jour sont aussi ignorées automatiquement lorsque CI=true, lorsque --json ou --quiet est défini, et pour les builds de développement. Mettez à jour explicitement à tout moment avec copera update.

Cache​

La CLI met en cache le contenu des documents sur le disque pour éviter les appels d'API redondants.

  • Emplacement par défaut : le répertoire temporaire de votre système, sous copera-cli/. Remplacez-le avec cache.dir dans votre configuration.
  • TTL par défaut : 1 heure. Modifiez-le avec cache.ttl (p. ex. "30m", "6h").
  • Inspectez le cache avec copera cache status ; videz-le avec copera cache clean.
  • Ignorez le cache pour une seule lecture avec copera docs content <id> --no-cache.
copera cache status   # taille, nombre de fichiers et chemin
copera cache clean # le vider entièrement

Sortie lisible par machine​

La CLI est conçue pour s'intégrer aux scripts et workflows d'agents :

  • Lorsque stdout n'est pas un TTY (pipé, redirigé ou en CI), la sortie bascule par défaut en JSON.
  • --json force la sortie JSON même dans un terminal.
  • --output accepte auto, json, table ou plain.
  • --quiet / -q supprime les messages informatifs.
  • --no-input (et CI=true) désactivent les invites interactives.
  • Les erreurs sont émises sur stderr en JSON structuré.

Codes de sortie​

CodeSignification
0OK
1Erreur générique
2Erreur d'utilisation (flags incorrects, arguments manquants)
3Introuvable
4Erreur d'auth / permission refusée
5Conflit (p. ex. une ressource qui existe déjà)
6Limite de débit atteinte

Erreurs structurées​

Lorsqu'une opération échoue, la CLI émet une erreur JSON sur stderr :

{
"error": "resource_not_found",
"message": "Board 'abc123' not found",
"suggestion": "Run 'copera boards list' to see accessible boards",
"transient": false
}

transient: true signifie que vous pouvez réessayer ; false signifie que l'erreur est permanente et qu'un nouvel essai n'aidera pas.

Articles associés​

  • Vue d'ensemble — installation et configuration initiale.
  • Authentification — types de tokens, flux de connexion et ordre de résolution.
  • Commandes — la référence complète des commandes.