# --- Anthropic --- ANTHROPIC_API_KEY=sk-ant-... # --- Airtable: tasks (Master tracker) --- PULSE_AIRTABLE_API_KEY=pat... PULSE_AIRTABLE_BASE_ID=appXXXXXXXXXXXXXX PULSE_AIRTABLE_TABLE_ID=tblXXXXXXXXXXXXXX # --- Airtable: resource bookings --- # Falls back to PULSE_AIRTABLE_API_KEY if PULSE_RESOURCE_API_KEY is unset PULSE_RESOURCE_API_KEY=pat... PULSE_RESOURCE_BASE_ID=appXXXXXXXXXXXXXX PULSE_RESOURCE_TABLE_ID=tblXXXXXXXXXXXXXX # --- Azure AD (Microsoft SSO) --- # Single-page application registration in your Azure tenant. # Add redirect URIs for both prod and local dev. AZURE_TENANT_ID= AZURE_CLIENT_ID= # Comma-separated list (e.g. oliver.agency). Empty = allow any tenant user. AUTH_ALLOWED_DOMAINS=oliver.agency # Local dev only — skips token validation, sets g.user_email = 'dev@oliver.agency' DEV_AUTH_BYPASS=false # --- Postgres --- # Inside the compose network the host is `db`; override for local-against-host runs. DATABASE_URL=postgresql+psycopg://pulse:pulse@db:5432/pulse POSTGRES_USER=pulse POSTGRES_PASSWORD=pulse POSTGRES_DB=pulse # --- Server --- # Host port the deploy script picks; the container always listens on 5051. PROGRAMME_PULSE_PORT=5051