Skip to content

Environment Variable Inventory

Executive Overview — all summaries for decision-makers.

Keine Secrets in diesem Dokument. Werte nur in Render Dashboard / Azure / Cloudflare setzen.

Production — Backend (mqa-backend)

VariablePflichtBeschreibungQuelle
DATABASE_URLPostgreSQL Connection StringRender Postgres (auto)
NODE_ENVproductionrender.yaml
PORT3000render.yaml
JWT_SECRETJWT Signing (min. 32 Zeichen)Render generate
CORS_ORIGINhttps://portal.mqa.grouprender.yaml
FRONTEND_URLhttps://portal.mqa.grouprender.yaml
CRON_SECRETHeader x-cron-secret für /api/jobs/runRender generate
SKIP_OAUTH_VALIDATIONMuss false sein in Productionrender.yaml
OAUTH_CLIENT_IDAzure App RegistrationAzure Portal
OAUTH_CLIENT_SECRETAzure App SecretAzure Portal
OAUTH_TENANT_IDAzure Tenant IDAzure Portal
OAUTH_REDIRECT_URIhttps://api.mqa.group/api/auth/callbackAzure + Render
ANTHROPIC_API_KEYClaude APIAnthropic Console — siehe AI-SERVICES
OPENROUTER_API_KEYAlternative LLM RouteOpenRouter — siehe AI-SERVICES
RESEND_API_KEYE-Mail via ResendResend — siehe RESEND
MICROSOFT_SENDER_EMAILGraph E-Mail AbsenderAzure
R2_ACCOUNT_IDCloudflare R2 AccountCloudflare (MQA-Org)
R2_ACCESS_KEY_IDR2 API KeyCloudflare
R2_SECRET_ACCESS_KEYR2 API SecretCloudflare
R2_BUCKET_NAMEz.B. mqa-mediaCloudflare
R2_PUBLIC_URLPublic R2 CDN URLCloudflare
ADMIN_MAINTENANCE_SECRET/api/admin/maintenance/*openssl rand
EMAIL_WEBHOOK_SECRET/api/email-tracking/deliveredopenssl rand
OPENSANCTIONS_API_KEYKYC ScreeningOpenSanctions
HIDE_PORTAL_DEMO_CONTENTDemo-Inhalte ausblendentrue in Prod

Production — Frontend (mqa-frontend)

VariablePflichtBeschreibung
VITE_API_BASE_URLhttps://api.mqa.group/api
VITE_APP_ENVproduction
VITE_DOCS_URLhttps://docs.mqa.group (externe VitePress-Site)
NODE_VERSION20

Niemals Secrets unter VITE_* — landen im Browser-Bundle.

Production — Developer Docs (mqa-docs)

VariablePflichtBeschreibung
DOCS_PASSWORDHTTP Basic Auth für docs.mqa.group — ohne Wert ist die Site öffentlich
DOCS_USERNAMEBasic-Auth-Benutzer (Default mqa)
PORTVon Render gesetzt
NODE_VERSION20

Staging (geplant)

Gleiche Keys wie Production, andere Werte:

  • CORS_ORIGIN / FRONTEND_URLhttps://staging.portal.mqa.group
  • VITE_API_BASE_URLhttps://staging.api.mqa.group/api
  • Eigene DATABASE_URL, JWT_SECRET, OAuth-App

Local Development

DateiGit
backend/.env❌ gitignored
.env.local❌ gitignored
backend/ENV_TEMPLATE.txt✅ Template

Rotation

SecretEmpfohlene FrequenzTrigger
JWT_SECRET12 MonateInvalidiert alle Sessions
CRON_SECRET12 MonateRender Cron Job Header updaten
R2 KeysBei Account-MigrationSofort
OAuth Secret24 Monate (Azure Policy)Azure Portal
ADMIN_MAINTENANCE_SECRETBei Team-WechselManuell

Siehe SECURITY-STATUS.