# Backend nutzt seit v1.1 die zentrale Root-.env im Projektverzeichnis. # → siehe ../.env.example für alle Variablen # # Diese Datei bleibt als Legacy-Fallback: wenn /.env nicht existiert, # liest das Backend backend/.env (z.B. für isolierte Backend-Tests). # Database DATABASE_URL="mysql://user:password@localhost:3306/opencrm" # JWT JWT_SECRET="your-super-secret-jwt-key-change-in-production" # Access kurz (XSS-Schutz, nur JS-Memory). Refresh lang im httpOnly-Cookie. JWT_EXPIRES_IN="15m" JWT_REFRESH_EXPIRES_IN="7d" # Encryption (for portal credentials) ENCRYPTION_KEY="32-byte-hex-key-for-aes-256-gcm" # Server PORT=3001 NODE_ENV=development # ==================== AUDIT-ANKER ==================== # Signiert Audit-Log-Eintraege per HMAC-SHA256 mit einem Schluessel, der NICHT # in der Datenbank liegt. Damit reicht ein reiner DB-Schreibzugriff nicht mehr # aus, um die Hash-Kette glaubwuerdig umzuschreiben (Pentest R166/R167). # # Erzeugen: openssl rand -hex 32 # Fail-safe: Ohne Schluessel schreibt das Audit-Log weiter die unsignierte # Version 2 - es faellt nichts aus, der Anker fehlt nur. # ACHTUNG: Schluessel sichern. Geht er verloren, sind alle damit signierten # Eintraege nicht mehr pruefbar (sie gelten dann als "nicht pruefbar", # NICHT als manipuliert). AUDIT_HMAC_KEY= # Nur waehrend eines Schluesselwechsels setzen: der vorherige Schluessel wird # bei der Pruefung zusaetzlich akzeptiert, damit Altbestand ohne Rehash gueltig # bleibt. Nach dem Wechsel wieder leeren. AUDIT_HMAC_KEY_OLD=