# Copy to .env for local development. Gitignored.
#
# Only what differs from settings.py's defaults needs to be here. Everything
# absent falls back to "feature off", which is what lets the app run locally with
# no third-party account registered anywhere.
ENV=local
# A local Postgres, or the Cloud SQL Auth Proxy on 5432. Leave
# INSTANCE_UNIX_SOCKET unset locally - that is what selects the TCP driver.
DB_USER=myapp
DB_PASS=
DB_NAME=myapp
DB_PORT=5432
# Signs the session cookie. Any value works locally; main.py refuses to start
# with a placeholder only when ENV=prod. Generate one with:
# python -c "import secrets; print(secrets.token_urlsafe(48))"
SECRET_KEY=dev-only-not-for-production
# Unset: mail is logged to the console instead of sent.
# SMTP_HOST=
# Unset: "Sign in with Google" is hidden and /auth/google/* redirects to /login.
# To try it locally, register http://localhost:8080/auth/google/callback as a
# redirect URI on the OAuth client - localhost is a trusted origin for Google and
# for crud.public_base_url alike, so no tunnel is needed.
# GOOGLE_CLIENT_ID=
# GOOGLE_CLIENT_SECRET=
# The canonical public origin. Emailed links (verification, password reset) and
# the WebAuthn relying party are both built from it, and both REFUSE to fall back
# to the request's Host on anything but loopback - a reset link built from a
# spoofed Host is classic reset poisoning. Unset is fine locally; set it in
# app.yaml for every deployment.
# PUBLIC_BASE_URL=http://localhost:8080
# Shown in page titles, the shell's brand, and the passkey prompt.
# APP_NAME=myapp
# WebAuthn overrides. Leave all three unset unless the browser's origin is
# genuinely not PUBLIC_BASE_URL - deriving them from the one canonical origin
# means there is one setting to get right rather than three that can disagree.
# WEBAUTHN_RP_ID=
# WEBAUTHN_ORIGIN=
# WEBAUTHN_RP_NAME=
# Subscription billing. Leave unset and every organisation stays free - the whole
# app, including the billing page and its meters, runs with no Stripe account.
# STRIPE_SECRET_KEY=
# STRIPE_WEBHOOK_SECRET=
# STRIPE_PRICE_SILVER=
# STRIPE_PRICE_GOLD=
# Organisations that are not billed: an account listed here lifts every cap and
# gate in the organisations where it holds the `owner` role. Comma-separated.
# BILLING_EXEMPT_EMAILS=