# Direkter PostgreSQL-Zugang. Die Anwendung spricht künftig unmittelbar mit # der Datenbank statt über eine API-Schicht — damit läuft sie auf jedem # PostgreSQL ab 15 (Azure Flexible Server, RDS, Cloud SQL, eigenes Blech). # # Die Rolle in diesem String darf KEIN BYPASSRLS haben: fehlt der # Sitzungskontext, sollen die Policies nichts zurückgeben statt alles. DATABASE_URL= # Auf "false" setzen, wenn die Datenbank ohne TLS läuft (lokal, CI). DATABASE_SSL= # Verbindungen im Pool; Vorgabe 10. DATABASE_POOL_MAX= # ── Anmeldung (Auth.js + Microsoft Entra ID) ───────────────────────── # Schlüssel, mit dem das Sitzungscookie signiert und verschlüsselt wird. # Erzeugen mit `npx auth secret` oder `openssl rand -base64 32`. Ein Wechsel # meldet alle ab — was im Ernstfall genau das gewünschte Mittel ist. AUTH_SECRET= # Aus der Anwendungsregistrierung im Entra-Portal: Anwendungs-ID (Client), # ein Geheimnis daraus, und der Aussteller mit der Verzeichnis-ID (Mandant). # # Der Aussteller darf NICHT auf /common/ stehen bleiben — sonst könnte sich # jedes Microsoft-Konto anmelden, auch ein privates. AUTH_MICROSOFT_ENTRA_ID_ID= AUTH_MICROSOFT_ENTRA_ID_SECRET= AUTH_MICROSOFT_ENTRA_ID_ISSUER=https://login.microsoftonline.com//v2.0 # Nur nötig, wenn die Anwendung hinter einem Reverse Proxy unter einer # anderen Adresse erreichbar ist, als sie selbst sieht. Ohne diesen Wert baut # Auth.js die Rückruf-Adresse aus den Request-Headern. AUTH_URL= # Shared secret Vercel Cron sends as `Authorization: Bearer ` when it # calls /api/cron/apply-pending-changes (set the same value in the Vercel # project's env vars). Generate with e.g. `openssl rand -hex 32`. CRON_SECRET=