HansaChat

Documentation

JSON-output og automatisering

Outputkonvolut, exit-koder, formater og sikre scriptmønstre.

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.