Configuration
The most important environment variables and secrets.
Configuration lives in .env or as environment variables. Secrets never belong in the repository. In production, APP_BASE_URL and OAUTH_ISSUER must be set explicitly.
Key variables
| Variable | Meaning |
|---|---|
DATABASE_URL | SQLite (dev) or PostgreSQL (prod) |
APP_BASE_URL | Canonical public URL |
OAUTH_ISSUER | Issuer for OAuth metadata |
ENCRYPTION_KEY | Fernet key for credentials at rest |
ANTHROPIC_API_KEY | AI grouping (optional) |
VC_SELLERS_ID | Own VeloConnect seller ID |
VC_SELLER_NAME | Display name in the profile |
MCP_ALLOWED_HOSTS | Host allowlist for MCP |
DISPATCH_AUDIT_HMAC_KEY | Stable key for dispatch audit |
Secrets
ENCRYPTION_KEY encrypts reversible credential columns. If lost, stored secrets are irrecoverable. The HMAC key for dispatch audits must remain stable, otherwise old signatures can no longer be verified.
Database
Schema migrations run via Alembic (alembic upgrade head). SQLite is for development, PostgreSQL 15 for production. Create a backup before every upgrade.
Auth
OIDC runs per tenant via the tenant IdP (Keycloak, PKCE, back-channel logout). MCP uses its own OAuth 2.1 authorization server with discovery, dynamic client registration, PKCE, refresh rotation and revocation.