Zum Inhalt

Unterstützte Operationen automatisieren

baha app down und baseharbor.app.stop verwenden denselben aktuellen Folgenplan. Prüfe betroffene Funktionen, Verbraucher und die Orte erhaltener Owner-Dateien vor der Bestätigung. Unbekannte Folgen oder ein Ergebnis ohne Alternative benötigen Achtung und zwei ausdrückliche Bestätigungen. MCP übergibt provider_change_consent mit der angezeigten plan_id, first und second; nichtinteraktive CLI-Aufrufe verwenden dasselbe begrenzte JSON-Objekt über BASEHARBOR_PROVIDER_CHANGE_CONSENT. --yes ersetzt keine der beiden Bestätigungen und erlaubt keine Datenlöschung. Stop erhält Intent, Bindings und gemeinsame Provider für ein späteres app up. Das strukturierte provider_change_result unterscheidet nachgewiesenen Runtime-/Recovery-Zustand von weiterhin ungeprüften und teilweise ausgewiesenen Verbraucherfolgen.

baha agent describe -o json und MCP tools/list zeigen tatsächliche IDs, Inputs, Sicherheit und Genehmigung. Dateireferenzen gelten auf dem Host, auf dem baha mcp serve läuft. Bei unterstützten lokalen Workloads können CLI/stdio verifizierten lokalen Runtime-Zugriff ohne gesonderten OIDC-Login verwenden, auch in test/prod, wenn keine Operator-Policy oder Management-Nutzung OIDC verlangt. Remote-Zugriff, geschütztes HTTP, Tenant-Scope und ausdrücklich verwaltete Operationen behalten ihre Operator-Authentifizierung.

Intent erzeugen und lesen

baha --no-input app create orders --sql --json
baha --no-input app show orders --json
baha --no-input app list --json

Das erzeugt Intent, keine Container. MCP baseharbor.app.create erhält typisierten intent ohne ApplicationID: BaseHarbor vergibt und speichert die Identität bei autorisierter Erstellung und liefert sie im Ergebnis. Client-seitig gesetzte IDs werden vor Änderungen abgewiesen. Discovery ist maßgeblich für die Property-Namen des Authoring-Schemas. Bestehender Intent wird nicht überschrieben.

Repository-Adoption verwendet app init beziehungsweise MCP baseharbor.app.adopt. Deployment-Inputs werden explizit konfiguriert; fehlende oder mehrdeutige Werte erzeugen Fehler statt Prompts. Quick Init bewahrt eine vorhandene Contract-Identität; Änderungen der Source bedeuten keine automatische Übernahme neuer Capabilities.

Secrets geschützt liefern

Die Eingabedatei außerhalb von Git vorbereiten und schützen:

{
  "name": "baseharbor.app.create",
  "arguments": {
    "intent": {
      "Version": 1,
      "Name": "orders",
      "Environment": "dev",
      "Services": {"SQL": true}
    }
  }
}

MCP baseharbor.secret.set erhält key und file, keinen Klartextwert. Lesen erfolgt nach Autorisierung und Scope-Prüfung. Löschen benötigt ausdrückliches approval. Env-/Connection-Ergebnisse maskieren Credentials, auch unbekannte Provider-Felder.

Trust und Lifecycle

trust.status und trust.export verwenden öffentliche CA-Daten. trust.install verändert den Ausführungshost und benötigt Genehmigung. Private Issuer-Schlüssel verlassen den Provider nicht.

Control-Plane-Up, Status, Doctor, Repair und Stop verwenden dieselben Core-Semantiken. Bootstrap-/Unseal-/Rotationspfade erhalten geschützte Recovery-Dateireferenzen statt Keys oder Tokens. Destruktion ist separat: aktiver Application-Besitz und der gesamte Scope werden geprüft, bevor eigene Ressourcen entfernt werden.

Für genaue MCP-Payloads, Workspace-Mapping und weitere Recipes: kanonische Maschinenoperationen (EN).

Weitere technische Beispiele

git clone https://github.com/mcpdev80/baseharbor-demo.git
cd baseharbor-demo
git checkout b2b2a91cb8a78aa180abd8ca90f61b3b42cd5d63
baha app inspect .
baha --no-input app init --quick --json
baha app preflight --json
baha --no-input app workspace init \
  --source backend=https://github.com/acme/api.git \
  --component api=backend -o json
baha --no-input app workspace map backend "$HOME/src/api" -o json
baha --no-input app workspace show -o json
chmod 600 /secure/orders-api-token
baha --no-input app secret set API_TOKEN --file /secure/orders-api-token --json
baha --no-input app secret list --json
baha --no-input trust status --json
baha --no-input trust export --output /tmp/baseharbor-public-ca.pem --json
baha --no-input trust install --yes --json
report := provider.RunFull(ctx, target)
if err := provider.WriteJSON(os.Stdout, report); err != nil {
    os.Exit(2)
}
os.Exit(provider.ExitCode(report))

Technische Kennungen: test, prod, baseharbor.app.show, {"name":"orders"}, baha app init orders --sql --json, repository, baseharbor.app.configure, hostname, tls_mode, certificate_directory, demo-app, exposure.http, baha app init, baseharbor.yaml, baseharbor.workspace.init, sources, components, baseharbor.workspace.map, path, {"key":"API_TOKEN","file":"/secure/orders-api-token"}, baseharbor.secret.delete, {"key":"API_TOKEN","approval":true}, secret.tls-set, certificate_file, private_key_file, app.environment, app.connection, approval=true, baseharbor.control-plane.up, postgres_port, openbao_port, recovery_file, control-plane.status, control-plane.doctor, control-plane.repair, control-plane.stop, openbao.bootstrap, openbao.unseal, openbao.rotate, openbao.status, control-plane.destroy, installation.destroy.