Le CLI gère un compte par espace de travail. Les identifiants résident dans le trousseau du système d’exploitation (service hansa) ; ils n’apparaissent jamais dans le fichier de contexte, les journaux ni la sortie.
Connexion
hansa chat login --workspace yourworkspace
Cette commande demande votre e-mail et votre mot de passe. Si l’espace de travail exige l’authentification à deux facteurs, un code TOTP ou un code de récupération vous est demandé.
Pour les scripts, lisez les identifiants depuis stdin plutôt que via des options ou des variables d’environnement :
echo '{"email": "you@example.com", "password": "…"}' \
| hansa chat login --workspace yourworkspace --credentials-stdin
Le JSON peut également contenir "totp" ou "recovery_code" lorsque l’authentification à deux facteurs est requise.
Une session enregistrée valide rend une nouvelle connexion sans effet (no-op). Utilisez --reauth pour remplacer délibérément la session stockée.
Sessions et renouvellement
Les jetons d’accès sont renouvelés automatiquement grâce à un refresh token rotatif, protégé par un verrou par espace de travail afin que des processus CLI parallèles ne cassent jamais la session les uns des autres. Si la session stockée devient inutilisable, le CLI la supprime et vous demande de vous reconnecter.
La déconnexion révoque la session sur le serveur et supprime les identifiants stockés. L’exécuter deux fois est sans risque :
hansa chat logout --workspace yourworkspace
Contextes
Un contexte est un espace de travail enregistré : son domaine, une éventuelle surcharge d’API et l’existence ou non d’identifiants. Les jetons ne sont jamais affichés.
hansa context list # saved contexts, default marker
hansa context show # details for the current workspace
hansa context use yourworkspace # set the default workspace
hansa context remove yourworkspace # log out remotely and delete everything
Ordre de résolution de l’espace de travail : l’option --workspace, puis la variable d’environnement HANSA_WORKSPACE, puis la valeur par défaut enregistrée.
Environnements headless
Sans trousseau (conteneurs CI, tâches cron), fournissez les jetons via l’environnement :
export HANSA_ACCESS_TOKEN="…"
export HANSA_REFRESH_TOKEN="…" # optional, enables automatic refresh
Dans ce mode, les jetons ne sont jamais écrits sur le disque, et une connexion sans trousseau utilisable échoue explicitement au lieu de stocker les identifiants en clair.