Entwicklung
CLI-Automatisierungsvertrag
Erstelle zuverlässige Skripte mit versioniertem JSON, deterministischen Eingaben und stabilen Fehler- und Exit-Codes.
- --json
- --yes
- schema_version: 1
{
"schema_version": 1,
"ok": true,
"command": "project.bindings",
"result": { "bindings": [] }
}{
"schema_version": 1,
"ok": false,
"command": "operation.start",
"error": {
"code": "input_required",
"message": "...",
"details": {}
}
}Referenz
Automatisierungsstatus auf einen Blick
successDer Befehl wurde erfolgreich abgeschlossen oder eine interaktive Auswahl vor Arbeitsbeginn abgebrochen.input_requiredEine Pflichtangabe war bei nichtinteraktiver Ausführung nicht verfügbar.operation_failedDie Operation hat einen fehlgeschlagenen oder abgebrochenen Endzustand erreicht.Referenz
Stabile Exit- und Fehlercodes
Nutze den Prozessstatus für grobe Behandlung und den JSON-Fehlercode für gezielte Wiederherstellung.
| Exit | Stabiler Code | Bedeutung |
|---|---|---|
0 | success | Der Befehl wurde erfolgreich abgeschlossen oder eine interaktive Auswahl vor Arbeitsbeginn abgebrochen. |
1 | internal_failure / command_failed | Ein unerwarteter oder befehlsspezifischer Fehler ist aufgetreten. |
2 | invalid_usage | Argumente oder Befehlsverwendung sind ungültig. |
3 | authentication_failed | Authentifizierung fehlt, ist abgelaufen oder wurde abgelehnt. |
4 | input_required | Eine Pflichtangabe war bei nichtinteraktiver Ausführung nicht verfügbar. |
5 | local_failure | Lokale Datei, Werkzeug, Konfiguration oder Dateisystemaktion ist fehlgeschlagen. |
6 | gateway_failure | Das Gateway war nicht erreichbar oder lieferte eine ungültige Antwort. |
7 | remote_rejection | Der Remotedienst hat eine gültige Anfrage abgelehnt. |
8 | operation_failed | Die Operation hat einen fehlgeschlagenen oder abgebrochenen Endzustand erreicht. |
130 | interrupted | Der Prozess wurde unterbrochen; angenommene Serverarbeit wird nicht automatisch abgebrochen. |
Befehlsergebnisse
Felder je Befehl
Felder werden in Schemaversion 1 nur ergänzt. Unbekannte Felder sollten ignoriert werden.
| Befehl | Ergebnisfelder | Hinweise |
|---|---|---|
login / status | api_url, user_id, credential_source | Authentifizierungsdaten ohne Offenlegung des Tokens. |
logout | api_url, stored_token_removed, environment_authentication_active | Meldet Entfernung des gespeicherten Tokens und verbleibende Umgebungsanmeldung. |
project.bind | binding | cancelled, path | Gibt die Bindung oder einen Abbruch durch den Benutzer zurück. |
project.forget | path, removed[], cancelled | Bezeichnet entfernte Bindungen und einen möglichen Abbruch. |
project.bindings | bindings[] | Gibt alle passenden lokalen Bindungen zurück. |
project.sync | binding, mode, path, preview, applied, summary, media[], cancelled | Enthält Vorschau/Anwendung, Zusammenfassung, Medienänderungen und Abbruch. |
operation.start | cancelled, path, project_id, operation_id, status, lifecycle_status, detached, output_target, remove_track, sources_accepted, required_credits, available_credits, outputs[], applied_tracks, skipped_tracks, removed_tracks | Bezeichnet die Operation und ob die Ausführung getrennt wurde. |
operation.watch | operation_id, project_id, status, lifecycle_status, progress_status, failures[], local_output_pending | Meldet Lebenszyklus, Fortschritt, Fehler und ausstehende lokale Ausgabe. |
operation.apply | cancelled, path, operation_id, project_id, status, output_target, remove_track, partial, outputs[], applied_tracks, skipped_tracks, removed_tracks | Meldet geschriebene Ausgaben, Spuraktionen und Zustand von Teilergebnissen. |
Deterministische Eingabe
--json kann weiterhin auf stderr fragen. Ergänze --yes, um Rückfragen abzuschalten, und liefere jede nichtdeterministische Auswahl über Optionen, Konfiguration oder geschützte Umgebungsvariablen.
subft --json --yes operation start PATH --lang de --project-id PROJECT_ID --detach
Abbruch und Teilergebnisse
Interaktiver Abbruch endet vor dem Commit mit Exit 0 und cancelled: true. Ctrl-C endet mit 130, ohne angenommene Serverarbeit abzubrechen. Mit --yes brauchen unvollständige Ausgaben --allow-partial; nach dem Anwenden verfügbarer Spuren bleibt der Exitcode ungleich null.
subft --json --yes operation apply OPERATION_ID PATH --allow-partial