PostgreSQL für eine Order-API
Mit installiertem baha in einem übergeordneten Verzeichnis ohne orders-api:
baha new application orders-api --stack go --http --sql
cd orders-api
baha plan
baha up -e dev
baha app env --format json
up benötigt ein konfiguriertes Docker-/Podman-Target. Das Go-Scaffold ergänzt pgx, deklariert DATABASE_URL/DATABASE_CA_FILE und prüft die Verbindung beim Start. Laufzeitzugangsdaten kommen aus geschützten Bindungen; normale Env-Ausgabe maskiert sie.
Eigene Daten abfragen
Nach erfolgreichem Deployment:
baha app sql
In dieser PostgreSQL-Sitzung:
CREATE TABLE IF NOT EXISTS orders (id integer PRIMARY KEY, total_cents integer NOT NULL);
INSERT INTO orders VALUES (42, 1990) ON CONFLICT (id) DO NOTHING;
SELECT id, total_cents FROM orders WHERE id = 42;
Mit \q beenden, anschließend baha doctor. Das prüft Application-Zugriff, keine Provider-Admin-Zugangsdaten. Ein bestehendes Repository wird mit Inspect/Init übernommen statt mit einem zweiten Scaffold überschrieben.
Isolation
Shared PostgreSQL ist ein Target-eigener Provider mit getrennten Application-Datenbanken, Rollen und Zugangsdaten. Die Identität berücksichtigt Application, Umgebung und SQL-Instanz. Öffentlicher Datenbank-/Schema-Zugriff wird eingeschränkt und Cross-App-Zugriff negativ geprüft. baseharbor_admin bleibt ausschließlich beim Provider-Lifecycle.
Für bewusst dedizierten Placement existiert BASEHARBOR_PROVIDER_POSTGRESQL_SCOPE=application. Zusätzliche Instanzen können mehr Ressourcen benötigen; die Core-Capability bleibt verpflichtend.
Weiter: Backup/Restore, exakte SQL-Erklärung (EN).
Weitere technische Beispiele
one shared PostgreSQL provider
├── baseharbor_admin BaseHarbor control plane only
├── app-a/dev/default own database + own role + own credential
├── app-a/dev/analytics own database + own role + own credential
└── app-b/dev/default own database + own role + own credential
App A role -> App A database ALLOW
App A role -> App B database DENY
App B role -> App B database ALLOW
App B role -> App A database DENY
Technische Bezeichner: baha inspect ., baha init.