Zum Inhalt springen

Umgebungssystem

Verwaltet Umgebungsvariablen durch konfigurierbare Speicher-Backends.

Das Umgebungssystem trennt Speicherung von Zugriff:

  • Speicher - Wo Werte gespeichert werden (OS, Dateien, Speicher)
  • Variablen - Benannte Referenzen zu Werten in Speichern

Variablen können referenziert werden durch:

  • Öffentlichen Namen - Der variable-Feldwert (muss systemweit eindeutig sein)
  • Entry-ID - Vollständige namespace:name-Referenz

Wenn Sie nicht möchten, dass eine Variable öffentlich über den Namen zugänglich ist, lassen Sie das variable-Feld weg.

KindBeschreibung
env.storage.memoryIn-Memory-Key-Value-Speicher
env.storage.fileDateibasierter Speicher (.env-Format)
env.storage.osSchreibgeschützter OS-Umgebungszugriff
env.storage.staticSchreibgeschützter statischer Key-Value-Speicher
env.storage.routerVerkettet mehrere Speicher
env.variableBenannte Variable die auf einen Speicher referenziert

Flüchtiger In-Memory-Speicher.

- name: runtime_env
kind: env.storage.memory

Persistenter Speicher im .env-Dateiformat (KEY=VALUE mit #-Kommentaren).

- name: app_config
kind: env.storage.file
file_path: /etc/app/config.env
auto_create: true
file_mode: 0600
dir_mode: 0700
EigenschaftTypStandardBeschreibung
file_pathstringerforderlichPfad zur .env-Datei
auto_createbooleanfalseDatei erstellen wenn nicht vorhanden
file_modeinteger0644Dateiberechtigungen
dir_modeinteger0755Verzeichnisberechtigungen

Schreibgeschützter Zugriff auf Betriebssystem-Umgebungsvariablen.

- name: os_env
kind: env.storage.os

Immer schreibgeschützt. Set-Operationen geben PERMISSION_DENIED zurück.

Schreibgeschützter Speicher mit direkt in der Konfiguration definierten Werten. Werte werden in den Eintrag eingebettet und können zur Laufzeit nicht geändert werden. Nützlich für öffentliche Konfigurationskonstanten, die mit einem Modul oder Paket ausgeliefert werden.

- name: defaults
kind: env.storage.static
values:
PUBLIC_API_HOST: "https://api.example.com"
PUBLIC_WS_HOST: "wss://api.example.com/ws"
APP_ENV: "production"
EigenschaftTypBeschreibung
valuesmapSchlüssel-Wert-Paare (String zu String)

Immer schreibgeschützt. Set-Operationen geben PERMISSION_DENIED zurück.

Verkettet mehrere Speicher. Lesevorgänge durchsuchen diese der Reihe nach, bis ein Wert gefunden wird. Schreibvorgänge gehen nur an den ersten Speicher.

- name: config
kind: env.storage.router
storages:
- app.config:memory # Primär (Schreibvorgänge hierhin)
- app.config:file # Fallback
- app.config:os # Fallback
EigenschaftTypBeschreibung
storagesarrayGeordnete Liste von Speicherreferenzen

Variablen bieten benannten Zugriff auf Speicherwerte.

- name: DATABASE_URL
kind: env.variable
variable: DATABASE_URL
storage: app.config:file
default: postgres://localhost/app
read_only: false
EigenschaftTypBeschreibung
variablestringÖffentlicher Variablenname (optional, muss eindeutig sein)
storagestringSpeicherreferenz (namespace:name)
defaultstringStandardwert wenn nicht gefunden
read_onlybooleanÄnderungen verhindern

Variablennamen dürfen nur enthalten: a-z, A-Z, 0-9, _

# Öffentliche Variable - zugänglich über Namen "PORT"
- name: port_var
kind: env.variable
variable: PORT
storage: app.config:os
default: "8080"
# Private Variable - nur über ID "app.config:internal_key" zugänglich
- name: internal_key
kind: env.variable
storage: app.config:secrets
BedingungArtWiederholbar
Variable nicht gefundenerrors.NOT_FOUNDnein
Speicher nicht gefundenerrors.NOT_FOUNDnein
Variable ist schreibgeschützterrors.PERMISSION_DENIEDnein
Speicher ist schreibgeschützterrors.PERMISSION_DENIEDnein
Ungültiger Variablennameerrors.INVALIDnein