Fix #43: Fehlende Umgebungsvariablen durchreichen #50

Merged
florian.wilde merged 1 commits from fix/43-env-durchreichen into main 2026-09-01 14:13:09 +00:00
Owner

Closes #43

Was fehlte

Drei Werte, die die Anwendung ausliest, standen nicht im environment:-Block des Dienstes app:

Wert seit Folge
ERSTEINRICHTUNG_GEHEIMNIS v1.11.0 Neuinstallation nicht möglich, Meldung verweist auf eine .env, in der der Wert korrekt steht
VERTRAUE_PROXY v1.11.0 fehlt still — Anmeldesperre zählt eine Dimension weniger
S3_SSE v1.11.1 nicht abschaltbar bzw. nicht setzbar

Wer sie laut Anleitung in die .env eintrug, brachte sie damit nicht in den Behälter. Die Dokumentation war an dieser Stelle schlicht falsch.

VERTRAUE_PROXY bewusst ohne Vorgabe

Kein :-true. Die strengere Einstellung bleibt die Voreinstellung — ohne Proxy ist der weitergereichte Kopf frei erfunden. Wer einen davorstellt, sagt es ausdrücklich.

Der eigentliche Ertrag: der Test

tests/umgebung-durchreichen.test.ts liest beide Seiten und vergleicht sie:

  • links alles, was env.ts ausliest — process.env.X ebenso wie pflicht(), zahl(), schalter(), schluessel32()
  • rechts alles, was die Compose-Datei dem Dienst mitgibt

Jede Lücke schlägt an. Ausnahmen sind aufgezählt und begründet (Bauargumente, NODE_ENV, Werte mit brauchbarem Standard). Ein weiterer Test stellt sicher, dass die Erkennung überhaupt etwas findet — sonst stünde die Prüfung grün da und prüfte nichts.

Damit wiederholt sich der Fehler beim nächsten neuen Wert nicht.

Geprüft

736 Unit-Tests, tsc und Lint sauber. Gegen drei Mutationen: Wert entfernt · Vorgabe true gesetzt · S3_SSE entfernt — jede wird rot.

Für das Livesystem

Nach dem Ausrollen kann der app:-Block aus deiner docker-compose.override.yml weg — die Werte kommen jetzt aus der regulären Compose-Datei. Der minio:-Block mit dem KMS-Schlüssel entfällt mit #42.

Closes #43 ## Was fehlte Drei Werte, die die Anwendung ausliest, standen nicht im `environment:`-Block des Dienstes `app`: | Wert | seit | Folge | |---|---|---| | `ERSTEINRICHTUNG_GEHEIMNIS` | v1.11.0 | Neuinstallation nicht möglich, Meldung verweist auf eine `.env`, in der der Wert korrekt steht | | `VERTRAUE_PROXY` | v1.11.0 | fehlt **still** — Anmeldesperre zählt eine Dimension weniger | | `S3_SSE` | v1.11.1 | nicht abschaltbar bzw. nicht setzbar | Wer sie laut Anleitung in die `.env` eintrug, brachte sie damit nicht in den Behälter. Die Dokumentation war an dieser Stelle schlicht falsch. ## `VERTRAUE_PROXY` bewusst ohne Vorgabe Kein `:-true`. Die strengere Einstellung bleibt die Voreinstellung — ohne Proxy ist der weitergereichte Kopf frei erfunden. Wer einen davorstellt, sagt es ausdrücklich. ## Der eigentliche Ertrag: der Test `tests/umgebung-durchreichen.test.ts` liest beide Seiten und vergleicht sie: - **links** alles, was `env.ts` ausliest — `process.env.X` ebenso wie `pflicht()`, `zahl()`, `schalter()`, `schluessel32()` - **rechts** alles, was die Compose-Datei dem Dienst mitgibt Jede Lücke schlägt an. Ausnahmen sind aufgezählt und begründet (Bauargumente, `NODE_ENV`, Werte mit brauchbarem Standard). Ein weiterer Test stellt sicher, dass die Erkennung überhaupt etwas findet — sonst stünde die Prüfung grün da und prüfte nichts. Damit wiederholt sich der Fehler beim nächsten neuen Wert nicht. ## Geprüft **736 Unit-Tests**, `tsc` und Lint sauber. Gegen drei Mutationen: Wert entfernt · Vorgabe `true` gesetzt · `S3_SSE` entfernt — jede wird rot. ## Für das Livesystem Nach dem Ausrollen kann der `app:`-Block aus deiner `docker-compose.override.yml` weg — die Werte kommen jetzt aus der regulären Compose-Datei. Der `minio:`-Block mit dem KMS-Schlüssel entfällt mit #42.
florian.wilde added 1 commit 2026-09-01 14:13:01 +00:00
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
florian.wilde merged commit ea34294fa7 into main 2026-09-01 14:13:09 +00:00
florian.wilde deleted branch fix/43-env-durchreichen 2026-09-01 14:13:09 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: florian.wilde/betreuungs-cockpit#50