CLI'en er bygget til at blive læst af scripts og agenter. JSON er standardoutput; tabeller og linjeafgrænset JSON skal tilvælges eksplicit.
Konvolutten
Hver vellykket kommando udskriver ét JSON-objekt til stdout:
{
"ok": true,
"schema_version": "1",
"workspace": "yourworkspace",
"domain": "yourworkspace.hansa.chat",
"changed": false,
"data": { }
}
changed fortæller Dem, om kommandoen faktisk ændrede noget — false betyder, at den ønskede tilstand allerede var der. data indeholder resultatet: lister af kanaler eller beskeder, en besked med sit indhold som ægte indlejret JSON, kommandobekræftelser.
Fejl sendes som JSON til stderr og rører aldrig stdout:
{
"ok": false,
"schema_version": "1",
"error": { "code": "unauthenticated", "message": "…", "retryable": false }
}
Exit-koder
| Kode | Betydning |
|---|---|
| 0 | Succes, herunder en no-op (changed: false) |
| 1 | Intern fejl |
| 2 | Brugs- eller konfigurationsfejl |
| 3 | Godkendelse påkrævet eller fejlet |
| 4 | Adgang nægtet eller forudsætning fejlet |
| 5 | Ikke fundet eller konflikt |
| 6 | Timeout, utilgængelig eller rate-begrænset |
Et robust scriptmønster:
if hansa chat channels ensure --name Deploy --type public >/dev/null 2>&1; then
echo "channel ready"
fi
Outputformater
hansa chat channels list -o json # default, one envelope
hansa chat channels list -o jsonl # one JSON object per line
hansa chat channels list -o table # aligned text columns for humans
Nyttige globale flag
--workspace <alias-or-domain> # override the workspace for one command
--timeout 30s # network timeout
--config /path/config.json # custom context file (default: OS config dir)
--verbose # diagnostics to stderr, secrets filtered
Miljøvariablen HANSA_CONFIG flytter hele kontekstfilen, så parallelle job kan bruge isolerede kontekster. Headless-tokenforsyning og nøgleringens adfærd er beskrevet i godkendelse.
Sikkerhedsnoter
- Loginoplysninger findes kun i operativsystemets nøglering eller i procesens miljø — aldrig i output, logs eller kontekstfilen.
--verbose-diagnostikken filtrerer autorisationsheadere, input af loginoplysninger og refresh-svar.- Alle identifikatorer udsendes som JSON-strenge, tidsstempler som UTC RFC3339; beskedindhold vises som ægte indlejret JSON, ikke som en citeret streng.