Skip to main content
The full annotated list is .env.example in the repository. This page groups it by purpose and flags the ones that matter operationally.
Secrets belong in Key Vault in production, not in App Service configuration. See Deployment.

Core

Microsoft Entra ID and Graph

Set ALLOWED_EMAIL_DOMAINS in production. Unset, the Entra tenant boundary alone gates implicit signup — legacy behaviour, logged as a warning.

Storage and secrets

In production the bootstrap fetches the key from Key Vault and stashes it in TOKEN_ENCRYPTION_KEY for the runtime. Locally, leave Key Vault unset and supply the key directly.

Authentication behaviour

ENABLE_DEV_LOGIN is not a feature flag. It requires exactly "true", a non-production NODE_ENV, and a non-production host — but production deployments must leave it unset regardless.

Integrations

The two CAPTCHA variables must be set together. A partial configuration fails closed: a warning is logged and every DSAR submission is rejected with CAPTCHA_REQUIRED.

AI

Scheduling

Optional

Feature flags

FEATURE_<NAME>=true|false for each module. See Feature flags.

Production checklist

  • Secrets in Key Vault; the managed identity has Key Vault Secrets User.
  • ALLOWED_EMAIL_DOMAINS set to the customer’s domains.
  • ENABLE_DEV_LOGIN unset.
  • COOKIE_SECURE unset or true.
  • LOCAL_IMPORT_HOME_PATH unset.
  • CRON_SECRET set and configured in the scheduled workflows.
  • CAPTCHA pair set, or both deliberately unset.
  • SECO and DocuSign pointing at production endpoints, not staging or demo.