HansaChat

Documentation

JSON-utdata och automatisering

Utdatakuvert, avslutskoder, format och säkra skriptmönster.

CLI:n är byggd för att läsas av skript och agenter. JSON är standardutdata; tabeller och radavgränsad JSON är tillval.

Utdatakuvertet

Varje lyckat kommando skriver ut ett JSON-objekt till stdout:

{
  "ok": true,
  "schema_version": "1",
  "workspace": "yourworkspace",
  "domain": "yourworkspace.hansa.chat",
  "changed": false,
  "data": { }
}

changed talar om huruvida kommandot faktiskt ändrade något — false betyder att önskat tillstånd redan fanns. data innehåller resultatet: listor av kanaler eller meddelanden, ett meddelande med sitt innehåll som riktigt nästlad JSON, kvittenser från kommandon.

Fel går till stderr som JSON och rör aldrig stdout:

{
  "ok": false,
  "schema_version": "1",
  "error": { "code": "unauthenticated", "message": "…", "retryable": false }
}

Avslutskoder

Kod Betydelse
0 Lyckat, inklusive en no-op (changed: false)
1 Internt fel
2 Användnings- eller konfigurationsfel
3 Autentisering krävs eller misslyckades
4 Åtkomst nekad eller förutsättning misslyckades
5 Hittades inte eller konflikt
6 Tidsgräns, otillgängligt eller hastighetsbegränsat

Ett robust skriptmönster:

if hansa chat channels ensure --name Deploy --type public >/dev/null 2>&1; then
  echo "channel ready"
fi

Utdataformat

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

Praktiska globala flaggor

--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övariabeln HANSA_CONFIG flyttar hela kontextfilen, vilket låter parallella jobb använda isolerade kontexter. Headless-tillförsel av tokens och beteendet hos nyckelringen beskrivs i autentisering.

Säkerhetsnoteringar

  • Autentiseringsuppgifterna finns bara i operativsystemets nyckelring eller i processens miljö — aldrig i utdata, loggar eller kontextfilen.
  • --verbose-diagnostiken filtrerar auktoriseringsheaders, inmatade autentiseringsuppgifter och refresh-svar.
  • Alla identifierare skrivs ut som JSON-strängar, tidsstämplar som UTC RFC3339; meddelandeinnehåll visas som riktigt nästlad JSON, inte som en citerad sträng.