Aller au contenu

Utilisation avancée

La CLI dans la CI, dans les scripts et quand un problème survient.

Tout ce qui suit montre la CLI en train d'effectuer des tâches que vous feriez autrement à la main : vérifier qu'un déploiement fonctionne, produire un rapport ou vous indiquer lequel des sept problèmes possibles est survenu.

Dans un pipeline

Il n'y a pas de navigateur dans la CI. La clé provient donc de l'environnement. Chaque commande lit WAJUB_API_KEY, et quand elle est définie, elle l'emporte sur tous les profils, --profile compris.

Un test rapide après le déploiement
#!/usr/bin/env bash
set -euo pipefail

export WAJUB_API_KEY="$WAJUB_SANDBOX_KEY"   # from your CI secret store

# Fail the job if the key, the network or the account is wrong
wajub doctor --json > doctor.json

# Fail the job if the webhook endpoint disappeared
wajub webhooks list --json \
  | jq -e '.items[] | select(.url == "https://example.com/webhooks/wajub")' > /dev/null

L'option --json rend la sortie de chaque commande exploitable, et jq -e transforme « aucun résultat » en code de sortie différent de zéro. C'est ce qui fait réellement échouer l'étape.

Codes de sortie et exécutions sans terminal

Une étape échoue selon le code de sortie : voici ce que renvoie la CLI.

CodeQuand
0La commande a fait ce qui lui était demandé
1Tout échec : une erreur de l'API, une vérification de wajub doctor, une confirmation qui n'a pas pu être demandée, et un wajub trigger dont le scénario ne s'est pas terminé comme prévu. trigger attend jusqu'à 30 secondes que la sandbox règle le paiement ou le remboursement avant d'abandonner
127La commande n'existe pas, comme le « command not found » d'un shell. La CLI propose la plus proche et ne l'exécute jamais à votre place

Un pipeline n'a pas de terminal : la CLI ne peut rien y demander. Une commande qui demanderait une confirmation (une suppression, un paiement, un transfert ou un remboursement avec une clé live, wajub logout) échoue avec le code 1 sauf si vous passez --yes. wajub skills install exige --scope. Une saisie masquée de clé (wajub config set, wajub login --manual) échoue aussi : définissez plutôt WAJUB_API_KEY.

Rapports depuis le terminal

Les commandes de liste associées à jq remplacent de nombreux petits scripts.

Deux rapports utiles
# Yesterday's failures, with the reason
wajub payments list --status failed -f date_from=2026-01-14 -f date_to=2026-01-14 -f per_page=100 --json \
  | jq -r '.items[] | [.created_at, .id, .amount, .currency, .failure_reason] | @tsv'

# Payouts still not settled
wajub transfers list --status processing --json \
  | jq -r '.items[] | [.id, .amount, .currency, .created_at] | @tsv'

--since et --until ne sont pas lues par l'API : les dates passent donc par -f date_from et -f date_to, que seuls les paiements, les remboursements et les litiges acceptent. Elles couvrent des journées calendaires entières. Pour une période plus courte, filtrez les horodatages dans jq après avoir récupéré la journée.

Variables d'environnement

Chaque variable ci-dessous s'applique à toutes les commandes, et une option passée sur la ligne de commande l'emporte toujours sur elle, sauf pour la clé.

VariableEffet
WAJUB_API_KEYLa clé à utiliser. L'emporte sur tous les profils, --profile compris
WAJUB_PROFILELe profil à utiliser quand aucun --profile n'est passé
WAJUB_MAX_RETRIESLe nombre de nouvelles tentatives après une requête en échec. 2 par défaut, 0 les désactive
WAJUB_TIMEOUT_MSLa durée maximale d'une requête, en millisecondes, avant qu'elle échoue avec Network Error
WAJUB_NO_SKILLS1 empêche la CLI d'installer d'elle-même les Skills pour agents
WAJUB_NO_LOGO1 masque le logo Wajub au-dessus de wajub, wajub help, wajub version et wajub doctor. Il n'apparaît de toute façon jamais dans un pipe ni avec --json

Autocomplétion du shell

Installer l'autocomplétion pour votre shell
wajub completion install

TAB complète alors les commandes, les options et leurs valeurs : les statuts qu'accepte --status sur chaque commande list, les types d'événements et les jokers payment.* de wajub listen --events (l'un après l'autre, séparés par des virgules), les événements de wajub trigger, vos profils pour --profile et wajub config use, et les chemins de l'API pour wajub get, post et delete. Cela fonctionne dans bash (3.2 et suivants, y compris celui de macOS), zsh, fish et PowerShell.

La commande détecte votre shell, ou prend --shell bash|zsh|fish|powershell. Elle ajoute un bloc, entre des marqueurs # >>> wajub completion >>>, à ~/.zshrc, ~/.bashrc (~/.bash_profile sous macOS) ou $PROFILE ; pour fish, elle écrit ~/.config/fish/completions/wajub.fish. Ouvrez un nouveau terminal, c'est tout : les scripts sont régénérés par la première commande après chaque mise à jour, l'autocomplétion correspond donc toujours à la version installée.

Vérifier ou retirer
wajub completion            # quels shells l'ont, et où
wajub completion zsh        # les lignes à ajouter vous-même, si vous gérez vos dotfiles à la main
wajub completion uninstall  # retire le bloc, le fichier fish et les scripts

Avant la 1.7, wajub autocomplete installait l'autocomplétion autrement. Ces installations continuent de fonctionner après la mise à jour, avec la nouvelle autocomplétion ; wajub completion install remplace leur ligne dans votre fichier de démarrage.

Partir d'un exemple fonctionnel

wajub samples
$ wajub samples --list

Available samples:
  webhooks               Minimal webhook receiver with signature verification (Node.js, no dependencies)

$ wajub samples webhooks my-receiver

L'exemple de webhook ne contient volontairement aucune dépendance. Vous pouvez ainsi lire toute la vérification dans un seul fichier, sans passer par un framework.

Accéder au Dashboard

wajub open
wajub open              # the dashboard home
wajub open payments
wajub open keys

Les pages reconnues sont balance, customers, dashboard, disputes, keys, payments, refunds, settings, transfers et webhooks.

Quand un problème survient

Trois commandes, dans l'ordre croissant du niveau de détail fourni.

De la plus rapide à la plus complète
$ wajub version
@wajub/cli/1.7.3 darwin-arm64 node-v22.11.0

$ wajub status
● Wajub API is reachable, https://api.wajub.com (HTTP 200)

$ wajub doctor
Wajub CLI diagnostics
  …seven checks, in order

status répond à la question « le problème vient-il de chez eux ou de chez moi ? » sans demander d'identifiants. doctor indique laquelle de vos sept configurations pose problème et termine par un identifiant de requête à transmettre au support.

SymptômeVérification probable
401 pour chaque commandeLes identifiants et le champ source affiché à côté
Les commandes ciblent le mauvais comptesource=env, une variable WAJUB_API_KEY restée exportée
Une commande n'existe paswajub help, et rappelez-vous que les sujets utilisent une espace
Rien n'arrive dans wajub listenLes identifiants, et si le profil utilise la sandbox ou le mode live
Une stack trace apparaît au démarrageLa version de Node, la version minimale est 22

Une commande inconnue échoue clairement au lieu d'effectuer une action inattendue.

Une faute de frappe ne déclenche aucune supposition
$ wajub payment

 ›   Error: "payment" is not a wajub command. Run `wajub help` for the list.

Nous signaler ce qui manque

wajub feedback
wajub feedback

La commande ouvre le formulaire de retour dans votre navigateur. Ajoutez-y l'identifiant de requête obtenu avec wajub doctor : les deux premières questions d'un échange avec le support auront déjà leur réponse.

Que pensez-vous de ce contenu ?