Zum Inhalt

Anwendungsvertrag

Der Anwendungsvertrag beschreibt, was eine Anwendung benötigt.

Er soll klein und portabel bleiben.

version: 1

app:
  name: my-app
  environment: dev

services:
  sql:
    enabled: true

  key_value:
    enabled: true

  messaging_queue:
    enabled: true

  document_database:
    enabled: true

secrets:
  required:
    - name: APP_SECRET

Die wichtigste Regel:

application intent != provider configuration

Runtime-spezifische Namen, Provider-Auswahl, Platzierung und generierte Zugangsdaten gehören nicht in den portablen Vertrag.

Entwickler setzen keine app.id; diese Eingabe wird vor Änderungen abgelehnt. BaseHarbor erzeugt die stabile application_id einmal bei expliziter Initialisierung und verwaltet sie im bestehenden systemeigenen State. Lesen und Parsen erzeugen keine IDs oder State. Umbenennen, Verschieben des Repositorys oder eine andere Runtime ändern diese Identität nicht. Name und Umgebung bleiben lesbare Selektoren, keine dauerhaften Deployment-Primärschlüssel.

Applications können SQL, Cache, dauerhaften Key-Value-Speicher, Dokumentdatenbanken, Messaging, S3, Secrets, Identity, Exposure und Telemetrie anfordern. database.document schreibt kein MongoDB fest; messaging.queue kein RabbitMQ. database.key-value bleibt von rekonstruierbarem cache.key-value getrennt.

Die normative Definition steht in der englischen Spezifikation des Anwendungsvertrags v1.