# 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= # Public: safe to expose to the browser (inlined into the client bundle at # build time). Anon-key access is still fully gated by RLS server-side. NEXT_PUBLIC_SUPABASE_URL= NEXT_PUBLIC_SUPABASE_ANON_KEY= # Server-only: bypasses Row Level Security entirely. Never prefix with # NEXT_PUBLIC_, never import outside lib/supabase/admin.ts (guarded by # `import "server-only"`), never log or return in an API response. SUPABASE_SERVICE_ROLE_KEY= # 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=