Audit-Siegel: Schluessel erreicht jetzt tatsaechlich den Container

Ohne diesen Fix waere das Siegel im Docker-Betrieb wirkungslos geblieben - die
Variable wurde nirgends an den Container durchgereicht. docker-compose.yml
listet die Umgebungsvariablen einzeln auf und speist sie aus der .env im
Projektstamm; ein env_file gibt es nicht, backend/.env wird vom Container also
gar nicht gelesen. Dokumentiert und ergaenzt hatte ich bisher nur
backend/.env.example - also die Datei, die fuer den Container irrelevant ist.

- AUDIT_HMAC_KEY und AUDIT_HMAC_KEY_OLD in docker-compose.yml und in
  docker/docker-compose.yml aufgenommen (beide mit :- Default, damit ohne Wert
  weiterhin fail-safe ungesiegelt geschrieben wird)
- beide Variablen samt Erklaerung in die .env.example im Projektstamm und in
  docker/.env.example uebernommen
- README benennt jetzt explizit, welche Datei fuer welchen Betrieb gilt
  (Stamm-.env bei Docker, backend/.env nur ohne Container)

Verifiziert: `docker-compose config` loest AUDIT_HMAC_KEY korrekt auf.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-19 19:29:34 +02:00
co-authored by Claude Opus 5
parent ab0d6214f2
commit 0ae6b13d6c
5 changed files with 62 additions and 3 deletions
+28
View File
@@ -53,6 +53,34 @@ JWT_REFRESH_EXPIRES_IN=7d
# Generieren: openssl rand -hex 32
ENCRYPTION_KEY=change-this-to-64-hex-characters-please-rotate-before-production-xx
# ---------- Siegel für das Audit-Log ----------
# OpenCRM protokolliert, wer wann welche Daten gesehen oder geändert hat die
# Beweisspur bei Streit oder Datenschutz-Nachfragen. Dieser Schlüssel versieht
# jeden neuen Eintrag mit einem Siegel, das sich nur damit erzeugen lässt. Er
# liegt AUSSERHALB der Datenbank; wer nur die Datenbank in die Hände bekommt,
# kann damit nichts fälschen, ohne dass es auffliegt.
#
# Generieren: openssl rand -hex 32 (pro Umgebung ein eigener Wert)
#
# Ohne Wert läuft alles normal weiter, nur eben ungesiegelt nichts fällt aus.
# Nachträglich setzen ist jederzeit möglich: bestehende Einträge bleiben gültig,
# ab dem Neustart werden neue gesiegelt (keine Fehlalarme dadurch).
#
# ACHTUNG einmal gesetzt, nicht wieder entfernen: Einträge, die ohne Schlüssel
# entstehen, werden beanstandet, sobald er zurück ist (ein ungesiegelter Eintrag
# inmitten gesiegelter ist von einer Fälschung nicht zu unterscheiden).
# Schlüssel sichern wie ein Passwort geht er verloren, sind die damit
# gesiegelten Einträge dauerhaft nicht mehr prüfbar.
# Ausführlich erklärt in der README, Abschnitt "Audit-Siegel".
AUDIT_HMAC_KEY=
# Nur beim Schlüsselwechsel füllen: die FRÜHEREN Schlüssel, kommagetrennt und
# jüngster zuerst. Damit bleiben die bisherigen Einträge prüfbar, während neue
# schon mit dem neuen Schlüssel gesiegelt werden. Nicht voreilig leeren sonst
# werden die alten Einträge als "manipuliert" gemeldet.
# Beispiel: AUDIT_HMAC_KEY_OLD=<vorheriger>,<davor>
AUDIT_HMAC_KEY_OLD=
# Server
NODE_ENV=development
PORT=3001 # Backend-internal Port (Dev: localhost:3001)