Application-Befehle
Application-Befehle arbeiten mit dem portablen Contract und seinem Deployment-Zustand.
Anwendungsbedarf erstellen und ändern erklärt die interaktive Checkliste, Target-Provider-Präferenzen und Footprint-Vorschau.
| Befehl | Aufgabe |
|---|---|
baha new application |
Neue ecosystem-native Application erzeugen |
baha app new |
Interaktiven Bedarfswizard öffnen |
baha app edit |
Bestehenden Bedarf mit Vorschau und Zustimmung ändern |
baha app footprint show |
Target-bezogenen Footprint lesen |
baha init |
Bestehendes Repository übernehmen |
baha inspect |
Repository-/Application-Evidenz lesen |
baha app show |
Aufgelösten Vertrag anzeigen |
baha list |
Bekannte Applications auflisten |
baha plan |
Plan anzeigen |
baha app preflight |
Vor Mutation validieren |
baha up / baha app apply |
Application konvergieren/abgleichen |
baha down |
Application-Runtime stoppen |
baha status |
Zustand beobachten |
baha doctor |
Diagnostizieren, optional reparieren |
baha app update |
Unterstützte Application-Source aktualisieren |
baha destroy |
Application-eigene Ressourcen entfernen |
Erzeugen oder übernehmen
In einem übergeordneten Verzeichnis ohne vorhandenen Ordner shop-api:
baha init my-app \
--workload-source kubernetes:deploy/k8s \
--workload-component api \
--workload-component worker
Das Scaffold deklariert SQL/Cache, ergänzt Go-Clients und Runtime-Bindungsnamen. Fachliche Endpunkte und Tabellen ergänzt du selbst. Nach baha up zeigen baha app logs app die Logs und baha app env --format json maskierte Bindungen.
Bei vorhandenem Repository beginnst du dort mit baha inspect ., danach baha init; kein zweites Scaffold über vorhandene Dateien schreiben.
Source-neutrale Adoption
Compose, Repository-Quadlet und Raw Kubernetes YAML werden über denselben Source-Vertrag erkannt. Das garantiert nicht ihre Runtime-Ausführung. Mehrdeutige Quellen werden nicht stillschweigend ausgewählt. --quick scheitert sicher, wenn keine deterministische Wahl möglich ist.
Explizite Source-/Komponentenwahl, wenn im Repository tatsächlich vorhanden:
baha new application shop-api --stack go --http --sql --cache
cd shop-api
baha inspect .
baha app show
baha plan
Helm und Kustomize sind noch keine Source Adapter. Eine benötigte explizite Auswahl wird in baseharbor.repository.yaml gespeichert.
Weitere Operationen umfassen Backup/Restore, Secrets, Logs, Shell/Exec, Umgebung, TLS, Evidence, Runtime-Identität und Datenzugriff. CLI und Maschinenpfade verwenden dasselbe Domänenergebnis.
Exakte Referenz: Application-Befehle (EN).
Technische Bezeichner: baseharbor.yaml, baseharbor.workload-source-resolution/v1, baha status, baha plan, baha doctor, baha app ..., DATABASE_URL, DATABASE_CA_FILE, REDIS_URL, REDIS_CA_FILE.
Lokale Workload ohne managed Capabilities (v0.4.25)
Ein selbst geschriebenes baseharbor.yaml darf keine app.id enthalten;
services ist optional:
version: 1
app:
name: my-app
environment: dev
Lege eine unterstützte, eindeutig auswählbare Compose-Workload im Repository ab
und führe baha app init --quick, baha app plan --json und baha app apply aus.
Init vergibt über den geschützten Repository-App-Store eine stabile ID, ohne das
autorierte YAML umzuschreiben. Lesebefehle vergeben keine ID. Fehlende oder
mehrdeutige Source ist ein Fehler und kein READY-Deployment.
Eine echte lokale Workload ohne angeforderte managed Capabilities überspringt
im vorhandenen Lifecycle Core, managed Gateway und Broker. Es braucht weder
Profil-Schalter noch implizites SQL oder Core-Login. Status und Doctor verwenden
echte Workload-Beobachtungen; Stop/Up und wiederholtes Destroy behalten die
Ownership-Prüfungen. baha serve erhält dadurch keine Freigabe: Seine
Management-Sicherheitsvoraussetzungen und die explizite Core-Installation
bleiben erforderlich.
Ein lokales baha app destroy baut standardmäßig die eigene Runtime und die
App-Routen ab. Persistente Daten, Zugangsdaten, Recovery-Material und die
kanonische Deployment-Identität bleiben erhalten. baha app apply aktiviert
das Deployment anhand des aktuellen App-Bedarfs erneut. Runtime-Abbau und
vollständige Datenlöschung sind getrennte Entscheidungen. Provider-Folgen
werden mit Achtung angezeigt und erfordern zwei ausdrückliche Bestätigungen
desselben aktuellen Plans; --yes ersetzt keine dieser Bestätigungen. Das
strukturierte Destroy-Ergebnis enthält erhaltenes Material und das gemeinsame
Provider-Änderungsergebnis. Verifizierter Runtime-Abbau beweist weder weitere
Secret-Auslieferung noch Login, Zertifikatserneuerung oder nutzbare Recovery.
Ungeprüfte Folgen bleiben im Ergebnis ausdrücklich unvollständig.
Plan-JSON sowie MCP/HTTP-Plan verwenden denselben footprint
(baseharbor.footprint/v1). Ein neu geplanter Binding ist requested/unbound
und kein Live-Nachweis. Angeforderte managed Capabilities werden mit ausgewählten
Providern und ihren echten Abhängigkeiten realisiert. Ein bedingungsloses
SQL-/Secrets-/Identity-Paket für jede App gibt es nicht. Ein unabhängig aktivierter
Management-Core behält seine Sicherheitsvoraussetzungen. Speicher-/Containerwerte
bleiben unbekannt, wenn ihre Zuordnung nicht nachgewiesen ist. Provider-Beobachtungen
bleiben bis zum geprüften nativen Inventar unverifiable. Nichtinteraktives
App---yes autorisiert keine Einrichtung des Management-Core.
Kompatible native Placements werden wiederverwendet. Nicht unterstützte native BYO- oder Ersatzadapter werden vor Provisionierung abgelehnt; externe OIDC-/OTLP- Adapter bleiben unterstützt. Der Plan nennt die tatsächlichen Ausführungsgrenzen, ohne einen funktionierenden Ersatz zu behaupten. Es gibt keine Migration alter Manifest-Formate.
Capability-Entfernung löst das App-Binding und gleicht die verbleibenden Target-weiten Abhängigkeiten ab. Eigene Runtime-Dienste ohne verbleibenden Verbraucher werden entfernt. Anforderungen anderer Apps oder unabhängig aktivierter Management-Verbraucher erhalten gemeinsam genutzte Dienste. Persistente Daten, Credentials und Recovery-Material bleiben standardmäßig an ihren eigenen Orten. Erhaltenes Material ermöglicht Wiederherstellung; es belegt keinen weiter funktionierenden Dienstzugriff. Unterstütztes Wiederhinzufügen verwendet die bestehende Systemidentität und den geschützten Provider-Zustand erneut.
Bewusste Provider-Änderungen zeigen betroffene Verbraucher, verlorene Funktionen,
gewählte Fortsetzung und erhaltenes/gelöschtes Material. Alternativlose,
destruktive oder unbekannte Folgen werden mit Achtung angezeigt und erfordern
zwei ausdrückliche Bestätigungen des aktuellen Plans. Gewöhnliches --yes
ersetzt weder diese Bestätigungen noch die Zustimmung zur Datenlöschung.
Tatsächliche Berechtigung, Ownership und Prüfung nach der Änderung bleiben
Voraussetzung. Fehlgeschlagene oder unterbrochene Ausführung bleibt teilweise
erledigt und wiederaufnehmbar. Release-Bereitschaft benötigt die jeweils erforderliche
Provider-, Mutationspfad- und native Ökosystem-Abnahme. Einzelne grüne Fixtures
belegen keine Pre-Release-Bereitschaft.