Aller au contenu

Installation et authentification

Installez la CLI sur votre machine, puis fournissez-lui une clé qu'elle peut conserver.

La CLI est un paquet Node. Une installation globale et un aller-retour dans le navigateur suffisent.

Prérequis

Node.js 22 ou version ultérieure. Le paquet déclare engines.node: ">=22.0.0", dont ses propres dépendances ont besoin pour se charger, et wajub doctor le vérifie. Un ancien runtime échoue donc avec un message clair plutôt qu'une trace de pile.

Vérifier avant l'installation
node --version

Installation

npm install -g @wajub/cli

Confirmez l'installation et notez le runtime indiqué. Le support vous demandera cette ligne.

wajub version
$ wajub version
@wajub/cli/1.7.3 darwin-arm64 node-v22.11.0

Sans rien installer

npx @wajub/cli listen --forward-to localhost:3000/webhooks exécute la version actuelle sans rien laisser derrière. Cette méthode est utile sur une machine qui ne vous appartient pas ou dans un conteneur temporaire.

Pour effectuer une mise à jour, relancez l'installation. La CLI vous avertit aussi lorsqu'une nouvelle version est publiée.

Authentification

wajub login ouvre votre navigateur. Vous donnez votre accord dans le Dashboard et la CLI reçoit une clé qu'elle conserve localement. Vous ne saisissez rien dans le terminal, donc aucune clé n'apparaît dans l'historique du shell.

Le parcours normal
wajub login
wajub login --environment live

La sandbox est utilisée par défaut. Connectez-vous deux fois, une fois par environnement, pour obtenir deux profils entre lesquels basculer.

Votre première connexion sandbox devient le profil par défaut, celui qu'utilise toute commande sans --profile. Une connexion suivante ne le déplace pas : une connexion live ne devient jamais le profil par défaut d'elle-même, si bien que la commande qui suit wajub login --environment live s'exécute toujours en sandbox. La CLI le signale quand le nouveau profil n'est pas celui par défaut ; wajub config use live en fait le profil par défaut, délibérément.

La clé créée par wajub login expire 90 jours plus tard. La CLI affiche la date à la connexion, wajub doctor la montre sur la ligne Key expiry et échoue pendant les 7 derniers jours, où chaque commande vous prévient aussi. Relancez wajub login pour en obtenir une nouvelle.

Approuver la connexion dans le Dashboard crée une clé d'API pour l'équipe : cela demande la même permission que la page des clés. Le propriétaire et les rôles Administrator, Developer et Sandbox User l'ont. Un autre membre qui ouvre le lien reçoit un 403.

OptionUtilisation
--environmentsandbox ou live, choisit le type de clé créé
--manualColle une clé existante dans une invite masquée, sans navigateur
--no-browserAffiche l'URL au lieu de l'ouvrir, pour un shell distant
--no-skillsN'installe aucun Skill pour agents, ni maintenant ni lors des exécutions suivantes
--profileNomme le profil créé
--dashboard-urlUtilise un autre hôte pour le Dashboard

Les identifiants sont enregistrés dans ~/.config/wajub/config.json, accessible uniquement par vous. Vous pouvez le sauvegarder, mais traitez-le exactement comme un fichier de clés.

Dans la CI, utilisez l'environnement

Un pipeline ne possède aucun navigateur. Définissez WAJUB_API_KEY pour que toutes les commandes l'utilisent sans qu'aucun profil n'existe.

Une étape de pipeline
# From your CI secret store, never from the job definition
export WAJUB_API_KEY=sk.xxxxxxxxxxxxxxxx…

wajub doctor --json
wajub payments list -f per_page=5 --json

Profils

Un profil est un ensemble d'identifiants nommé. La CLI utilise ce concept parce que les clés de la sandbox et du mode live ne doivent jamais être séparées par une simple faute de frappe.

Créer, examiner et changer de profil
# What do I have, and which one is default?
wajub config

# Register a key under a name, without calling the API to validate it.
# The CLI asks for the key through a hidden prompt.
wajub config set staging

# Make it the default
wajub config use staging

# Or override for a single command
wajub payments list --profile sandbox

wajub config affiche les clés masquées. --show-secrets les affiche entièrement, ce qui est presque toujours déconseillé sur un écran partagé.

Une variable WAJUB_API_KEY exportée l'emporte sur tous les profils, --profile compris : tant qu'elle est définie, wajub payments list --profile sandbox utilise toujours la clé exportée. WAJUB_PROFILE choisit le profil pour toutes les commandes du shell, comme --profile le fait pour une seule.

Vérifier toute la chaîne

wajub doctor
$ wajub doctor

Wajub CLI diagnostics

  ✓  Config  2 profile(s), default: sandbox
  ✓  Credentials  key=pk_test.xxxxxxxxxxxxxxxx…  env=sandbox  base=https://api.wajub.com  source=profile
  ✓  API reachability  https://api.wajub.com (HTTP 200)
  ✓  Auth  API key accepted, Boutique Akwa (sandbox)
  ✓  Key expiry  expires on 1/9/2027 (in 89 day(s))
  ✓  Node.js  v22.11.0 (≥ 22 required)
  ✓  Environment  wajub-cli v1.7.3  node v22.11.0  darwin/arm64
  ✓  Support  last request id: fbe6773e9ce64f158af89e5740fc5817

Everything looks good.

Le champ source de la ligne des identifiants est souvent ignoré. Il indique si la clé provient d'un profil, de WAJUB_API_KEY ou d'une option. Lorsqu'une commande semble appartenir à un autre compte, ce champ vous donne la réponse.

Déconnexion

wajub logout révoque la clé créée par wajub login, puis supprime le profil local. La révocation est importante. La simple suppression du fichier laisserait une clé live active chez Wajub. Depuis le CLI 1.7.1, la clé est aussi retirée de config.json.bak, la sauvegarde que le CLI garde de la version précédente du fichier. Si vous vous êtes déconnecté avec une version antérieure, supprimez cette sauvegarde une fois.

Se déconnecter proprement
wajub logout                    # the current profile
wajub logout --profile sandbox  # a named one
wajub logout --all              # every profile
wajub logout --keep-key         # forget it locally, leave the key active

Utilisez --keep-key uniquement lorsque la clé sert également ailleurs, par exemple sur un serveur configuré avec une copie provenant du Dashboard.

Que pensez-vous de ce contenu ?