Seiten der Referenz

CLI-Referenz · Erste Schritte

Konfiguration

Zwei Dateien, klar getrennt: Die User-Config sagt, wohin die CLI spricht und als wer. Die .workban.toml im Repository sagt, welches Projekt es ist. Umgebungsvariablen und Optionen gehen beiden vor.

User-Config

~/.config/workban/config.toml, unter Windows %APPDATA%\workban\config.toml. Sie wird von workban auth login geschrieben, enthält die persönlichen Tokens und gehört nie ins Repo. Die Datei entsteht mit Rechten 0600.

api_url = "https://workban.de/api/v1"           # Standard-Instanz
token = "wb_p_…"

[tokens]                                         # Standard-Token je Instanz
"https://workban.de/api/v1" = "wb_p_…"
"https://workban.example.com/api/v1" = "wb_p_…"   # zweite Instanz

[workspaces."https://workban.de/api/v1"]         # ein Token je Workspace der Instanz
bergx2 = "wb_p_…"
kunde = "wb_p_…"

auth login --api-url <url> --token … legt den Token unter [tokens] ab und macht die Instanz zur Standard-Instanz. auth logout entfernt ihn wieder.

auto_update = false schaltet das automatische Update aus, für die CLI und für Regel, Skill und Hooks in den Repos. Die Zeile trägt man von Hand ein, sie steht ganz oben in der Datei, vor der ersten Zeile mit eckigen Klammern. auth login und auth logout lassen sie stehen.

Repo-Config

.workban.toml liegt im Wurzelverzeichnis des Repositories und wird eingecheckt. Sie gilt für alle im Team.

project = "workban"                            # Slug oder ID des Projekts
workspace = "bergx2"                           # Slug des Workspaces, wählt den Token
api_url = "https://workban.example.com/api/v1"  # optional: Instanz, wenn nicht die Standard-Instanz

Die CLI sucht die Datei vom aktuellen Verzeichnis aufwärts, so wie Git seine .git findet. Wie bei Gits safe.directory zählt eine Datei nur, wenn sie und ihr Verzeichnis dem eigenen Konto gehören und keins von beiden für alle beschreibbar ist. Eine Datei, die ein anderes Konto etwa in /tmp abgelegt hat, wird übergangen, und die Suche geht weiter nach oben. Gruppen-Schreibrecht stört nicht (umask 002).

workban init schreibt die Datei. api_url steht nur drin, wenn die Instanz nicht die Standardadresse ist, workspace immer.

Mehrere Workspaces

Ein Token gilt nur in dem Workspace, in dem er erstellt wurde. Wer in mehreren Workspaces einer Instanz arbeitet, meldet sich je Workspace einmal an: in der Web-App in den Workspace wechseln, dort unter Benutzermenü → Tokens einen Token erstellen, workban auth login --token ….

  • login legt jeden Token unter [workspaces."<instanz>"] mit dem Slug ab, den GET /me nennt.
  • Der Standard-Token der Instanz ([tokens]) bleibt der des ersten Workspaces und wechselt nur bei einem neuen Token für denselben Workspace. So geraten Repos ohne workspace in der .workban.toml nicht still in einen anderen Workspace.
  • Nennt die .workban.toml einen Workspace, nimmt die CLI dessen Token. Gibt es keinen, meldet sie „Kein Token für den Workspace …", statt den Token eines anderen Workspaces zu schicken.
  • Ein Standard-Token, dessen Workspace diese Maschine nicht kennt (Login mit einer älteren CLI), wird versucht. workban doctor meldet, wenn er zu einem anderen Workspace gehört. Beim nächsten login fragt die CLI einmal GET /me mit ihm und trägt seinen Workspace ein.
  • auth logout entfernt den Token, den der Befehl an dieser Stelle benutzen würde. Ein anderer Workspace wird dabei nie von selbst zum Standard.

Umgebungsvariablen

VariableWirkung
WORKBAN_TOKENÜberschreibt den Token aus der Config
WORKBAN_API_URLÜberschreibt api_url
WORKBAN_PROJECTÜberschreibt project aus .workban.toml
WORKBAN_WORKSPACEÜberschreibt workspace aus .workban.toml
WORKBAN_CONFIG_DIROrdner der User-Config, vor XDG_CONFIG_HOME
WORKBAN_AUTO_UPDATE0, false oder off schaltet das automatische Update aus, wie auto_update = false

Dieselben Werte gehen auch als globale Optionen, und die gewinnen: Option vor Umgebungsvariable vor .workban.toml.

Welche Instanz gilt

  • Steht die CLI in einem Repo ohne api_url, gilt die Produktionsadresse https://workban.de/api/v1. Nur außerhalb eines Repos zählt die Standard-Instanz aus der User-Config. So lenkt der letzte Login auf dieser Maschine nie ein Repo um.
  • login zielt ohne --api-url auf Option, Umgebung, .workban.toml des aktuellen Repos oder die Produktionsadresse, nie auf die zuletzt benutzte Instanz.
  • Nennt nur die .workban.toml eine Instanz, für die noch kein Token gespeichert ist, fragt login vor dem Senden nach. Ohne Terminal oder mit --json geht der Token dann nur mit ausdrücklichem --api-url dorthin. Eingecheckte Dateien kann jeder schreiben, der Inhalte ins Repo bringt, und sie dürfen deshalb allein nicht entscheiden, wohin ein Token geht.
  • --token und WORKBAN_TOKEN gehen an eine Instanz aus api_url nur, wenn für sie schon ein Token gespeichert ist oder sie per --api-url oder WORKBAN_API_URL gewählt ist. Sonst meldet die CLI „nicht angemeldet" und nennt Datei und Adresse.

Alte Produktionsadresse

Bis 0.35 hieß die Produktionsadresse https://workban.lunaarc.de/api/v1. Die CLI liest sie überall als https://workban.de/api/v1: in Optionen, Umgebung, .workban.toml und User-Config. Ein dort gespeicherter Token gilt ohne neuen Login, und .workban.toml-Dateien mit der alten Adresse müssen nicht geändert werden. Beim nächsten Speichern schreibt die CLI den Token unter der neuen Adresse.