Umgebungssystem
Umgebungssystem
Abschnitt betitelt „Umgebungssystem“Verwaltet Umgebungsvariablen durch konfigurierbare Speicher-Backends.
Übersicht
Abschnitt betitelt „Übersicht“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.
Entry-Typen
Abschnitt betitelt „Entry-Typen“| Kind | Beschreibung |
|---|---|
env.storage.memory | In-Memory-Key-Value-Speicher |
env.storage.file | Dateibasierter Speicher (.env-Format) |
env.storage.os | Schreibgeschützter OS-Umgebungszugriff |
env.storage.static | Schreibgeschützter statischer Key-Value-Speicher |
env.storage.router | Verkettet mehrere Speicher |
env.variable | Benannte Variable die auf einen Speicher referenziert |
Speicher-Backends
Abschnitt betitelt „Speicher-Backends“Memory-Speicher
Abschnitt betitelt „Memory-Speicher“Flüchtiger In-Memory-Speicher.
- name: runtime_env kind: env.storage.memoryDatei-Speicher
Abschnitt betitelt „Datei-Speicher“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| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
file_path | string | erforderlich | Pfad zur .env-Datei |
auto_create | boolean | false | Datei erstellen wenn nicht vorhanden |
file_mode | integer | 0644 | Dateiberechtigungen |
dir_mode | integer | 0755 | Verzeichnisberechtigungen |
OS-Speicher
Abschnitt betitelt „OS-Speicher“Schreibgeschützter Zugriff auf Betriebssystem-Umgebungsvariablen.
- name: os_env kind: env.storage.osImmer schreibgeschützt. Set-Operationen geben PERMISSION_DENIED zurück.
Statischer Speicher
Abschnitt betitelt „Statischer Speicher“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"| Eigenschaft | Typ | Beschreibung |
|---|---|---|
values | map | Schlüssel-Wert-Paare (String zu String) |
Immer schreibgeschützt. Set-Operationen geben PERMISSION_DENIED zurück.
Router-Speicher
Abschnitt betitelt „Router-Speicher“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| Eigenschaft | Typ | Beschreibung |
|---|---|---|
storages | array | Geordnete Liste von Speicherreferenzen |
Variablen
Abschnitt betitelt „Variablen“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| Eigenschaft | Typ | Beschreibung |
|---|---|---|
variable | string | Öffentlicher Variablenname (optional, muss eindeutig sein) |
storage | string | Speicherreferenz (namespace:name) |
default | string | Standardwert wenn nicht gefunden |
read_only | boolean | Änderungen verhindern |
Variablenbenennung
Abschnitt betitelt „Variablenbenennung“Variablennamen dürfen nur enthalten: a-z, A-Z, 0-9, _
Zugriffsmuster
Abschnitt betitelt „Zugriffsmuster“# Ö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| Bedingung | Art | Wiederholbar |
|---|---|---|
| Variable nicht gefunden | errors.NOT_FOUND | nein |
| Speicher nicht gefunden | errors.NOT_FOUND | nein |
| Variable ist schreibgeschützt | errors.PERMISSION_DENIED | nein |
| Speicher ist schreibgeschützt | errors.PERMISSION_DENIED | nein |
| Ungültiger Variablenname | errors.INVALID | nein |
Laufzeitzugriff
Abschnitt betitelt „Laufzeitzugriff“- env-Modul - Lua-Laufzeitzugriff
Siehe auch
Abschnitt betitelt „Siehe auch“- Sicherheitsmodell - Zugriffskontrolle für Umgebungsvariablen
- Konfigurationsanleitung - Anwendungskonfigurationsmuster