Fehlende Umgebungsvariablen durchreichen - und dauerhaft absichern
Der Dienst "app" zaehlt seine Umgebungsvariablen einzeln auf; ein env_file gibt es nicht. Drei Werte, die die Anwendung ausliest, standen dort nicht: ERSTEINRICHTUNG_GEHEIMNIS, VERTRAUE_PROXY (beide seit v1.11.0) und S3_SSE (seit v1.11.1). Wer sie laut .env.example und INSTALLATION.md eintrug, brachte sie damit nicht in den Behaelter - die Anleitung war an dieser Stelle schlicht falsch. Besonders unangenehm bei VERTRAUE_PROXY: Der Wert fehlt still, die Anmeldesperre zaehlt dann nur nach E-Mail-Adresse statt zusaetzlich nach Anschluss, und im Betrieb faellt nichts auf. VERTRAUE_PROXY bekommt bewusst KEINE Vorgabe "true". Die strengere Einstellung bleibt die Voreinstellung; wer einen Proxy davorstellt, sagt es ausdruecklich. Ohne Proxy ist der weitergereichte Kopf frei erfunden. Der eigentliche Ertrag ist der Test: Er liest, welche Variablen env.ts ausliest - ueber process.env ebenso wie ueber pflicht(), zahl(), schalter() und schluessel32() -, vergleicht das mit dem, was die Compose-Datei dem Dienst mitgibt, und meldet jede Luecke. Ausnahmen sind aufgezaehlt und begruendet. Damit wiederholt sich der Fehler beim naechsten neuen Wert nicht: Wer ihn einfuehrt und das Durchreichen vergisst, sieht es sofort. Gegen drei Mutationen geprueft: Wert wieder entfernt, Vorgabe "true" gesetzt, S3_SSE entfernt - jede wird rot. Refs #43
This commit is contained in:
@@ -93,6 +93,15 @@ services:
|
||||
AUTH_SECRET: ${AUTH_SECRET:?AUTH_SECRET fehlt in der .env}
|
||||
AUTH_URL: ${AUTH_URL:?AUTH_URL fehlt in der .env}
|
||||
AUTH_TRUST_HOST: 'true'
|
||||
# Ohne diesen Wert laesst sich der erste Zugang nicht anlegen - siehe
|
||||
# src/server/actions/ersteinrichtung.ts. Leer heisst: gesperrt.
|
||||
ERSTEINRICHTUNG_GEHEIMNIS: ${ERSTEINRICHTUNG_GEHEIMNIS:-}
|
||||
# Bewusst OHNE Vorgabe "true": Die strengere Einstellung bleibt die
|
||||
# Voreinstellung. Wer einen Reverse Proxy davorstellt - der
|
||||
# dokumentierte Betrieb tut das -, sagt es in der .env ausdruecklich.
|
||||
# Ohne den Wert zaehlt die Anmeldesperre nur nach E-Mail-Adresse.
|
||||
VERTRAUE_PROXY: ${VERTRAUE_PROXY:-}
|
||||
VERTRAUE_PROXY_STUFEN: ${VERTRAUE_PROXY_STUFEN:-}
|
||||
ENC_KEY_V1: ${ENC_KEY_V1:?ENC_KEY_V1 fehlt in der .env - ohne ihn sind die verschluesselten Felder nicht lesbar}
|
||||
# Bleibt leer, solange nicht rotiert wird. Die Anwendung ueberspringt
|
||||
# leere Schluesselvariablen - siehe src/lib/env.ts.
|
||||
@@ -110,6 +119,9 @@ services:
|
||||
S3_BUCKET: ${S3_BUCKET:-betreuungs-cockpit}
|
||||
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID}
|
||||
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY}
|
||||
# Leer lassen. Das mitgelieferte MinIO laeuft ohne KMS und lehnt jede
|
||||
# Ablage ab, sobald hier etwas steht - siehe .env.example.
|
||||
S3_SSE: ${S3_SSE:-}
|
||||
UPLOAD_MAX_BYTES: ${UPLOAD_MAX_BYTES:-26214400}
|
||||
OCR_AKTIV: ${OCR_AKTIV:-true}
|
||||
SMTP_HOST: ${SMTP_HOST:-}
|
||||
|
||||
Reference in New Issue
Block a user