Umgebungsvariablen
Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“Zugriff auf Umgebungsvariablen für Konfigurationswerte, Secrets und Laufzeiteinstellungen.
Variablen müssen im Umgebungssystem definiert werden, bevor auf sie zugegriffen werden kann. Das System steuert, welche Speicher-Backends (OS, Datei, Speicher) Werte liefern und ob Variablen schreibgeschützt sind.
local env = require("env")Holt einen Umgebungsvariablenwert.
-- Datenbankverbindungsstring holenlocal db_url = env.get("DATABASE_URL")if not db_url then return nil, errors.new("INVALID", "DATABASE_URL not configured")end
-- Mit Fallback holenlocal port = env.get("PORT") or "8080"local host = env.get("HOST") or "localhost"
-- Secrets holenlocal api_key = env.get("API_SECRET_KEY")local jwt_secret = env.get("JWT_SECRET")
-- Konfigurationlocal log_level = env.get("LOG_LEVEL") or "info"local debug_mode = env.get("DEBUG") == "true"| Parameter | Typ | Beschreibung |
|---|---|---|
key | string | Variablenname |
Gibt zurück: string, error
Gibt nil, error zurück, wenn Variable nicht existiert.
Setzt eine Umgebungsvariable.
-- Laufzeitkonfiguration setzenenv.set("APP_MODE", "production")
-- Für Tests überschreibenenv.set("API_URL", "http://localhost:8080")
-- Basierend auf Bedingungen setzenif is_development then env.set("LOG_LEVEL", "debug")end| Parameter | Typ | Beschreibung |
|---|---|---|
key | string | Variablenname |
value | string | Zu setzender Wert |
Gibt zurück: boolean, error
get_all
Abschnitt betitelt „get_all“Holt alle zugänglichen Umgebungsvariablen.
local vars = env.get_all()
-- Konfiguration protokollieren (achten Sie darauf, keine Secrets zu protokollieren)for key, value in pairs(vars) do if not key:match("SECRET") and not key:match("KEY") then logger.debug("env", {[key] = value}) endend
-- Erforderliche Variablen prüfenlocal required = {"DATABASE_URL", "REDIS_URL", "API_KEY"}for _, key in ipairs(required) do if not vars[key] then return nil, errors.new("INVALID", "Missing required env var: " .. key) endendGibt zurück: table, error
Berechtigungen
Abschnitt betitelt „Berechtigungen“Umgebungszugriff unterliegt der Sicherheitsrichtlinienauswertung.
Sicherheitsaktionen
Abschnitt betitelt „Sicherheitsaktionen“| Aktion | Ressource | Beschreibung |
|---|---|---|
env.get | Variablenname | Umgebungsvariable lesen |
env.set | Variablenname | Umgebungsvariable schreiben |
env.get_all | * | Alle Variablen auflisten |
Zugriff prüfen
Abschnitt betitelt „Zugriff prüfen“local security = require("security")
if security.can("env.get", "DATABASE_URL") then local url = env.get("DATABASE_URL")endSiehe Sicherheitsmodell für Richtlinienkonfiguration.
| Bedingung | Art | Wiederholbar |
|---|---|---|
| Leerer Schlüssel | errors.INVALID | nein |
| Variable nicht gefunden | errors.NOT_FOUND | nein |
| Berechtigung verweigert | errors.PERMISSION_DENIED | nein |
Siehe Fehlerbehandlung für die Arbeit mit Fehlern.
Siehe auch
Abschnitt betitelt „Siehe auch“- Umgebungssystem - Speicher-Backends und Variablendefinitionen konfigurieren