Skip to content

Server configuration ​

Config keys are inputs read through the env adapter by get_defaults and get_production_defaults. Django settings are the values the application reads after settings assembly. A config key can supply a differently named or nested Django setting.

Defaults below are Python expressions from source, not values from a running project. A key without a default is required whenever its read executes. Production keys apply only when calling get_production_defaults; Mailgun keys apply only with that email backend. Projects can override the returned Django settings.

The settings inventory includes direct reads, local fallbacks, and selected conditional factory outputs. Standard Django settings used without changing their meaning can have explicit exemptions, listed below. Factory declarations show source expressions and overrides in order; they do not evaluate local variables or optional imports.

See Configuration surface and defaults for assembly and override behavior, and Configure cache and sessions for cache setup. Client configuration belongs in the JavaScript API reference.

Config keys ​

KeyDjango setting pathsDefault or requirement
ACCOUNT_REAUTHENTICATION_TIMEOUTACCOUNT_REAUTHENTICATION_TIMEOUT300
ALLAUTH_ACCOUNT_ADAPTERACCOUNT_ADAPTER'vueda.user.adapters.VuedaAllAuthAccountAdapter'
ALLAUTH_HEADLESS_ADAPTERHEADLESS_ADAPTER'vueda.user.adapters.VuedaAllAuthHeadlessAdapter'
ALLAUTH_MFA_ADAPTERMFA_ADAPTER'vueda.user.adapters.VuedaAllAuthMFAAdapter'
ALLOWED_HOSTSALLOWED_HOSTSRequired when read
ANYMAIL_MAILGUN_API_KEYANYMAIL_MAILGUN_API_KEYRequired when read
ANYMAIL_MAILGUN_API_URLANYMAIL_MAILGUN_API_URL'https://api.mailgun.net/v3'
ANYMAIL_MAILGUN_SENDER_DOMAINANYMAIL_MAILGUN_SENDER_DOMAINRequired when read
ANYMAIL_MAILGUN_WEBHOOK_SIGNING_KEYANYMAIL_MAILGUN_WEBHOOK_SIGNING_KEYRequired when read
ANYMAIL_WEBHOOK_SECRETANYMAIL_WEBHOOK_SECRETRequired when read
AUTH_USER_MODELAUTH_USER_MODELRequired when read
CACHE_URLCACHES.defaultRequired when read
CELERY_BROKER_URLCELERY_BROKER_URL''
CORS_ALLOWED_ORIGINSCORS_ALLOWED_ORIGINSRequired when read
CSRF_TRUSTED_ORIGINSCSRF_TRUSTED_ORIGINSRequired when read
DATABASE_BACKUP_DIRDATABASE_BACKUP_DIRRequired when read
DATABASE_URLDATABASES.defaultRequired when read
DEBUGDEBUGFalse
DJANGO_APPSDJANGO_APPS['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.postgres']
EMAIL_BACKENDEMAIL_BACKEND, MAILERS.default.BACKEND'django.core.mail.backends.console.EmailBackend'
EMAIL_SUBJECT_PREFIXEMAIL_SUBJECT_PREFIX''
FRONTEND_DOMAINFRONTEND_DOMAINRequired when read
FRONTEND_LOGIN_URLFRONTEND_LOGIN_URLRequired when read
FRONTEND_RESET_URLFRONTEND_RESET_URL'/reset-password'
LANGUAGE_CODELANGUAGE_CODE'en-us'
LOCAL_APPSLOCAL_APPS[]
LOGS_FOLDERLOGGING.handlers.file.filename'.'
MEDIA_ROOTMEDIA_ROOT'/tmp/media'
MEDIA_URLMEDIA_URL'/media/'
NO_REPLY_EMAILNO_REPLY_EMAILRequired when read
PACKAGE_MANAGERPACKAGE_MANAGER'auto'
SECRET_KEYSECRET_KEYRequired when read
SECURE_CONTENT_TYPE_NOSNIFFSECURE_CONTENT_TYPE_NOSNIFFTrue
SECURE_CROSS_ORIGIN_OPENER_POLICYSECURE_CROSS_ORIGIN_OPENER_POLICY'same-origin'
SECURE_HSTS_SECONDSSECURE_HSTS_SECONDS31536000
SECURE_REFERRER_POLICYSECURE_REFERRER_POLICY'same-origin'
SENTRY_DSNSENTRY_DSNRequired when read
SENTRY_ENVIRONMENTSENTRY_ENVIRONMENT'production'
SENTRY_LOG_LEVELSENTRY_LOG_LEVELlogging.INFO
SENTRY_TRACES_SAMPLE_RATESENTRY_TRACES_SAMPLE_RATE0.1
SITE_IDSITE_ID1
SITE_NAMESITE_NAMERequired when read
STATIC_ROOTSTATIC_ROOTRequired when read
STATIC_URLSTATIC_URL'/static/'
STATICFILES_DIRSSTATICFILES_DIRSRequired when read
SUPPORT_EMAILSUPPORT_EMAILRequired when read
TEST_POSTGRES_DBTEST_POSTGRES_DB'dbname=postgres user=postgres'
THIRD_PARTY_APPSTHIRD_PARTY_APPS['rest_framework', 'corsheaders', 'django_extensions', 'private_storage', 'django_filters', 'generic_relations', 'phonenumber_field', 'anymail', 'allauth', 'allauth.account', 'allauth.headless', 'allauth.mfa']
TIME_ZONETIME_ZONERequired when read
TWILIO_ACCOUNT_SIDTWILIO_ACCOUNT_SID''
TWILIO_AUTH_TOKENTWILIO_AUTH_TOKEN''
TWILIO_CALLER_IDTWILIO_CALLER_ID''
VUEDA_APPSVUEDA_APPS['vueda.core', 'vueda.history', 'vueda.info', 'vueda.user', 'vueda.workflow', 'vueda.vdq', 'vueda.release']
VUEDA_USER_ADAPTERVUEDA_USER_ADAPTER'vueda.user.adapters.DefaultUserAdapter'

ACCOUNT_REAUTHENTICATION_TIMEOUT ​

Time in seconds during which django-allauth considers a recent authentication valid for reauthentication checks.

Django setting paths: ACCOUNT_REAUTHENTICATION_TIMEOUT.

AccessorDefault or requirementScopeRead at
env.int(...)300Base defaultsserver/vueda/core/default_settings.py:304

ALLAUTH_ACCOUNT_ADAPTER ​

Class path assigned to ACCOUNT_ADAPTER for django-allauth account behavior.

Django setting paths: ACCOUNT_ADAPTER.

AccessorDefault or requirementScopeRead at
env(...)'vueda.user.adapters.VuedaAllAuthAccountAdapter'Base defaultsserver/vueda/core/default_settings.py:300

ALLAUTH_HEADLESS_ADAPTER ​

Class path assigned to HEADLESS_ADAPTER for django-allauth headless behavior.

Django setting paths: HEADLESS_ADAPTER.

AccessorDefault or requirementScopeRead at
env(...)'vueda.user.adapters.VuedaAllAuthHeadlessAdapter'Base defaultsserver/vueda/core/default_settings.py:299

ALLAUTH_MFA_ADAPTER ​

Class path assigned to MFA_ADAPTER for django-allauth multi-factor authentication behavior.

Django setting paths: MFA_ADAPTER.

AccessorDefault or requirementScopeRead at
env(...)'vueda.user.adapters.VuedaAllAuthMFAAdapter'Base defaultsserver/vueda/core/default_settings.py:301

ALLOWED_HOSTS ​

Hostnames that Django accepts in incoming requests. Use hostnames without URL schemes or ports.

Django setting paths: ALLOWED_HOSTS.

AccessorDefault or requirementScopeRead at
env.list(...)Required when readBase defaultsserver/vueda/core/default_settings.py:181

ANYMAIL_MAILGUN_API_KEY ​

API credential for sending email through Mailgun.

Django setting paths: ANYMAIL_MAILGUN_API_KEY.

Applies: When EMAIL_BACKEND selects anymail.backends.mailgun.EmailBackend.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaults; email_backend == 'anymail.backends.mailgun.EmailBackend'server/vueda/core/default_settings.py:411

ANYMAIL_MAILGUN_API_URL ​

Mailgun API base URL used by the email backend.

Django setting paths: ANYMAIL_MAILGUN_API_URL.

Applies: When EMAIL_BACKEND selects anymail.backends.mailgun.EmailBackend.

AccessorDefault or requirementScopeRead at
env(...)'https://api.mailgun.net/v3'Base defaults; email_backend == 'anymail.backends.mailgun.EmailBackend'server/vueda/core/default_settings.py:413

ANYMAIL_MAILGUN_SENDER_DOMAIN ​

Mailgun sending domain for outgoing email.

Django setting paths: ANYMAIL_MAILGUN_SENDER_DOMAIN.

Applies: When EMAIL_BACKEND selects anymail.backends.mailgun.EmailBackend.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaults; email_backend == 'anymail.backends.mailgun.EmailBackend'server/vueda/core/default_settings.py:412

ANYMAIL_MAILGUN_WEBHOOK_SIGNING_KEY ​

Signing key for validating Mailgun webhook payloads.

Django setting paths: ANYMAIL_MAILGUN_WEBHOOK_SIGNING_KEY.

Applies: When EMAIL_BACKEND selects anymail.backends.mailgun.EmailBackend.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaults; email_backend == 'anymail.backends.mailgun.EmailBackend'server/vueda/core/default_settings.py:414

ANYMAIL_WEBHOOK_SECRET ​

Shared secret used by django-anymail webhook authentication.

Django setting paths: ANYMAIL_WEBHOOK_SECRET.

Applies: When EMAIL_BACKEND selects anymail.backends.mailgun.EmailBackend.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaults; email_backend == 'anymail.backends.mailgun.EmailBackend'server/vueda/core/default_settings.py:415

AUTH_USER_MODEL ​

Django user model label used by VUEDA model relationships and migration generation.

Django setting paths: AUTH_USER_MODEL.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaultsserver/vueda/core/default_settings.py:223

CACHE_URL ​

Cache connection URL parsed into CACHES.default. Required because the factory stores sessions in this cache. Use a shared cache for multiple worker processes; a Redis URL also needs the redis extra.

Django setting paths: CACHES.default.

AccessorDefault or requirementScopeRead at
env.dj_cache_url(...)Required when readBase defaultsserver/vueda/core/default_settings.py:189

CELERY_BROKER_URL ​

Broker URL for Celery task delivery, including the VDQ dispatch queue.

Django setting paths: CELERY_BROKER_URL.

AccessorDefault or requirementScopeRead at
env(...)''Base defaultsserver/vueda/core/default_settings.py:131

CORS_ALLOWED_ORIGINS ​

Origins allowed by the configured CORS middleware for HTTP and ASGI requests.

Django setting paths: CORS_ALLOWED_ORIGINS.

AccessorDefault or requirementScopeRead at
env.list(...)Required when readBase defaultsserver/vueda/core/default_settings.py:372

CSRF_TRUSTED_ORIGINS ​

Origins Django trusts for CSRF origin checks. Include each origin’s URL scheme.

Django setting paths: CSRF_TRUSTED_ORIGINS.

AccessorDefault or requirementScopeRead at
env.list(...)Required when readBase defaultsserver/vueda/core/default_settings.py:206

DATABASE_BACKUP_DIR ​

Directory where the VUEDA update command writes a PostgreSQL backup before applying migrations.

Django setting paths: DATABASE_BACKUP_DIR.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaultsserver/vueda/core/default_settings.py:399

DATABASE_URL ​

Database connection URL parsed into DATABASES.default. The factory enables atomic requests, disables persistent connections, and selects repeatable-read isolation for supported PostgreSQL backends.

Django setting paths: DATABASES.default.

AccessorDefault or requirementScopeRead at
env.dj_db_url(...)Required when readBase defaultsserver/vueda/core/default_settings.py:182

DEBUG ​

Enables Django debug mode and VUEDA debug routes and exception details. Also lowers the CORS preflight cache lifetime to 600 seconds.

Django setting paths: DEBUG.

AccessorDefault or requirementScopeRead at
env.bool(...)FalseBase defaultsserver/vueda/core/default_settings.py:135

DJANGO_APPS ​

Django applications included in the assembled INSTALLED_APPS list.

Django setting paths: DJANGO_APPS.

AccessorDefault or requirementScopeRead at
env.list(...)['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.postgres']Base defaultsserver/vueda/core/default_settings.py:254

EMAIL_BACKEND ​

Email backend class path. The console backend prints messages during development. With use_mailers=True, the factory places this value in MAILERS.default.BACKEND; otherwise it sets EMAIL_BACKEND. Selecting the Mailgun backend also reads the ANYMAIL_MAILGUN_* keys and ANYMAIL_WEBHOOK_SECRET.

Django setting paths: EMAIL_BACKEND, MAILERS.default.BACKEND.

AccessorDefault or requirementScopeRead at
env(...)'django.core.mail.backends.console.EmailBackend'Base defaultsserver/vueda/core/default_settings.py:128

EMAIL_SUBJECT_PREFIX ​

Prefix for account email subjects. When empty, the user adapter uses SITE_NAME in square brackets.

Django setting paths: EMAIL_SUBJECT_PREFIX.

AccessorDefault or requirementScopeRead at
env(...)''Base defaultsserver/vueda/core/default_settings.py:190

FRONTEND_DOMAIN ​

Frontend origin prepended to login and password-reset paths in account emails.

Django setting paths: FRONTEND_DOMAIN.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaultsserver/vueda/core/default_settings.py:173

FRONTEND_LOGIN_URL ​

Frontend login path used in account emails, appended to FRONTEND_DOMAIN.

Django setting paths: FRONTEND_LOGIN_URL.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaultsserver/vueda/core/default_settings.py:174

FRONTEND_RESET_URL ​

Frontend password-reset path used to build the reset link with its token and user identifier.

Django setting paths: FRONTEND_RESET_URL.

AccessorDefault or requirementScopeRead at
env(...)'/reset-password'Base defaultsserver/vueda/core/default_settings.py:175

LANGUAGE_CODE ​

Default language code used by Django.

Django setting paths: LANGUAGE_CODE.

AccessorDefault or requirementScopeRead at
env(...)'en-us'Base defaultsserver/vueda/core/default_settings.py:177

LOCAL_APPS ​

Project applications appended to INSTALLED_APPS. VUEDA also uses this list to group models in the permissions overview.

Django setting paths: LOCAL_APPS.

AccessorDefault or requirementScopeRead at
env.list(...)[]Base defaultsserver/vueda/core/default_settings.py:296

LOGS_FOLDER ​

Directory containing django.log for the rotating file handler declared in LOGGING. The root logger uses only the console handler by default.

Django setting paths: LOGGING.handlers.file.filename.

AccessorDefault or requirementScopeRead at
env(...)'.'Base defaultsserver/vueda/core/default_settings.py:158

MEDIA_ROOT ​

Filesystem directory for uploaded media.

Django setting paths: MEDIA_ROOT.

AccessorDefault or requirementScopeRead at
env(...)'/tmp/media'Base defaultsserver/vueda/core/default_settings.py:216

MEDIA_URL ​

URL prefix for uploaded media.

Django setting paths: MEDIA_URL.

AccessorDefault or requirementScopeRead at
env(...)'/media/'Base defaultsserver/vueda/core/default_settings.py:217

NO_REPLY_EMAIL ​

Sender address for user account email and the SYSTEM sender record used by VDQ.

Django setting paths: NO_REPLY_EMAIL.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaultsserver/vueda/core/default_settings.py:203

PACKAGE_MANAGER ​

Returned package-manager preference (auto, uv, or pipenv). The current update command detects the manager from project files and executable availability; it does not read this setting.

Django setting paths: PACKAGE_MANAGER.

AccessorDefault or requirementScopeRead at
env(...)'auto'Base defaultsserver/vueda/core/default_settings.py:400

SECRET_KEY ​

Django signing secret. Supply a private value for each project environment.

Django setting paths: SECRET_KEY.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaultsserver/vueda/core/default_settings.py:136

SECURE_CONTENT_TYPE_NOSNIFF ​

Controls the nosniff response header from Django security middleware.

Django setting paths: SECURE_CONTENT_TYPE_NOSNIFF.

AccessorDefault or requirementScopeRead at
env.bool(...)TrueBase defaultsserver/vueda/core/default_settings.py:195

SECURE_CROSS_ORIGIN_OPENER_POLICY ​

Cross-origin opener policy for Django security middleware. An empty string becomes None and disables the header.

Django setting paths: SECURE_CROSS_ORIGIN_OPENER_POLICY.

AccessorDefault or requirementScopeRead at
env(...)'same-origin'Base defaultsserver/vueda/core/default_settings.py:196

SECURE_HSTS_SECONDS ​

Lifetime in seconds advertised by the HTTP Strict Transport Security header.

Django setting paths: SECURE_HSTS_SECONDS.

AccessorDefault or requirementScopeRead at
env.int(...)31536000Base defaultsserver/vueda/core/default_settings.py:197

SECURE_REFERRER_POLICY ​

Referrer policy for Django security middleware. An empty string becomes None and disables the header.

Django setting paths: SECURE_REFERRER_POLICY.

AccessorDefault or requirementScopeRead at
env(...)'same-origin'Base defaultsserver/vueda/core/default_settings.py:199

SENTRY_DSN ​

Sentry destination supplied by the production defaults for project error-reporting setup.

Django setting paths: SENTRY_DSN.

AccessorDefault or requirementScopeRead at
env(...)Required when readProduction defaultsserver/vueda/core/default_settings.py:547

SENTRY_ENVIRONMENT ​

Environment name supplied by the production defaults for Sentry events.

Django setting paths: SENTRY_ENVIRONMENT.

AccessorDefault or requirementScopeRead at
env(...)'production'Production defaultsserver/vueda/core/default_settings.py:549

SENTRY_LOG_LEVEL ​

Logging threshold supplied by the production defaults. logging.INFO is the Python INFO logging level.

Django setting paths: SENTRY_LOG_LEVEL.

AccessorDefault or requirementScopeRead at
env.int(...)logging.INFOProduction defaultsserver/vueda/core/default_settings.py:548

SENTRY_TRACES_SAMPLE_RATE ​

Trace sampling rate supplied by the production defaults for Sentry.

Django setting paths: SENTRY_TRACES_SAMPLE_RATE.

AccessorDefault or requirementScopeRead at
env.float(...)0.1Production defaultsserver/vueda/core/default_settings.py:550

SITE_ID ​

Django sites framework identifier for this installation.

Django setting paths: SITE_ID.

AccessorDefault or requirementScopeRead at
env.int(...)1Base defaultsserver/vueda/core/default_settings.py:176

SITE_NAME ​

Site name in account email templates and the fallback email subject prefix.

Django setting paths: SITE_NAME.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaultsserver/vueda/core/default_settings.py:200

STATIC_ROOT ​

Destination directory for collected static files.

Django setting paths: STATIC_ROOT.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaultsserver/vueda/core/default_settings.py:209

STATIC_URL ​

URL prefix for static files.

Django setting paths: STATIC_URL.

AccessorDefault or requirementScopeRead at
env(...)'/static/'Base defaultsserver/vueda/core/default_settings.py:210

STATICFILES_DIRS ​

Additional directories searched for static files.

Django setting paths: STATICFILES_DIRS.

AccessorDefault or requirementScopeRead at
env.list(...)Required when readBase defaultsserver/vueda/core/default_settings.py:211

SUPPORT_EMAIL ​

Support address inserted into account email context.

Django setting paths: SUPPORT_EMAIL.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaultsserver/vueda/core/default_settings.py:201

TEST_POSTGRES_DB ​

PostgreSQL connection string supplied as TEST_POSTGRES_DB for project test setup.

Django setting paths: TEST_POSTGRES_DB.

AccessorDefault or requirementScopeRead at
env(...)'dbname=postgres user=postgres'Base defaultsserver/vueda/core/default_settings.py:353

THIRD_PARTY_APPS ​

Third-party applications included in INSTALLED_APPS. The factory appends pgtrigger and pghistory, plus drf_spectacular when importable.

Django setting paths: THIRD_PARTY_APPS.

AccessorDefault or requirementScopeRead at
env.list(...)['rest_framework', 'corsheaders', 'django_extensions', 'private_storage', 'django_filters', 'generic_relations', 'phonenumber_field', 'anymail', 'allauth', 'allauth.account', 'allauth.headless', 'allauth.mfa']Base defaultsserver/vueda/core/default_settings.py:279

TIME_ZONE ​

Default time zone used by Django. The factory also enables time-zone-aware datetimes.

Django setting paths: TIME_ZONE.

AccessorDefault or requirementScopeRead at
env(...)Required when readBase defaultsserver/vueda/core/default_settings.py:178

TWILIO_ACCOUNT_SID ​

Twilio account identifier. VDQ initializes its Twilio client and status polling only when this value is nonempty and the Twilio package is available.

Django setting paths: TWILIO_ACCOUNT_SID.

AccessorDefault or requirementScopeRead at
env(...)''Base defaultsserver/vueda/core/default_settings.py:132

TWILIO_AUTH_TOKEN ​

Twilio credential used to send SMS messages and validate incoming webhook signatures.

Django setting paths: TWILIO_AUTH_TOKEN.

AccessorDefault or requirementScopeRead at
env(...)''Base defaultsserver/vueda/core/default_settings.py:134

TWILIO_CALLER_ID ​

Sender phone number for user account SMS messages and the SYSTEM sender record.

Django setting paths: TWILIO_CALLER_ID.

AccessorDefault or requirementScopeRead at
env(...)''Base defaultsserver/vueda/core/default_settings.py:133

VUEDA_APPS ​

VUEDA applications included in INSTALLED_APPS. The factory requires vueda.history because the shipped migrations depend on it. Including vueda.workflow also adds its OpenAPI tag when drf_spectacular is available.

Django setting paths: VUEDA_APPS.

AccessorDefault or requirementScopeRead at
env.list(...)['vueda.core', 'vueda.history', 'vueda.info', 'vueda.user', 'vueda.workflow', 'vueda.vdq', 'vueda.release']Base defaultsserver/vueda/core/default_settings.py:266

VUEDA_USER_ADAPTER ​

Class path for the user adapter that implements VUEDA account operations.

Django setting paths: VUEDA_USER_ADAPTER.

AccessorDefault or requirementScopeRead at
env(...)'vueda.user.adapters.DefaultUserAdapter'Base defaultsserver/vueda/core/default_settings.py:278

Django settings ​

Local fallbacks belong to individual reads. They do not replace values supplied by the defaults factories or by a project's settings module.

AUTH_USER_MODEL ​

Django user model label used by VUEDA model relationships and migration generation.

Config input: AUTH_USER_MODEL.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:223.

python
AUTH_USER_MODEL = env('AUTH_USER_MODEL')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/management/commands/makegroupmigrations.py:497attributeNone supplied
server/vueda/user/migrations/0001_initial.py:9attributeNone supplied
server/vueda/user/migrations/0001_initial.py:22attributeNone supplied
server/vueda/user/migrations/0001_initial.py:34attributeNone supplied
server/vueda/user/migrations/0003_totpdevice.py:14attributeNone supplied
server/vueda/user/migrations/0003_totpdevice.py:59attributeNone supplied
server/vueda/user/migrations/0006_totpdeviceevent_totpdevice_insert_insert_and_more.py:17attributeNone supplied
server/vueda/user/migrations/0006_totpdeviceevent_totpdevice_insert_insert_and_more.py:132attributeNone supplied
server/vueda/user/models.py:208attributeNone supplied
server/vueda/vdq/migrations/0002_workflow_migrations_2025_09_22.py:2122attributeNone supplied
server/vueda/vdq/migrations/0005_workflow_migrations_2025_11_21.py:1018attributeNone supplied
server/vueda/workflow/management/commands/makeworkflowmigrations.py:173attributeNone supplied
server/vueda/workflow/migrations/0001_initial.py:25attributeNone supplied
server/vueda/workflow/migrations/0001_initial.py:195attributeNone supplied
server/vueda/workflow/migrations/0002_statepermission_historical_group_name_and_more.py:14attributeNone supplied
server/vueda/workflow/migrations/0002_statepermission_historical_group_name_and_more.py:114attributeNone supplied
server/vueda/workflow/migrations/0002_statepermission_historical_group_name_and_more.py:176attributeNone supplied
server/vueda/workflow/migrations/0002_statepermission_historical_group_name_and_more.py:241attributeNone supplied
server/vueda/workflow/migrations/0002_statepermission_historical_group_name_and_more.py:303attributeNone supplied
server/vueda/workflow/migrations/0002_statepermission_historical_group_name_and_more.py:366attributeNone supplied
server/vueda/workflow/migrations/0002_statepermission_historical_group_name_and_more.py:426attributeNone supplied
server/vueda/workflow/migrations/0002_statepermission_historical_group_name_and_more.py:501attributeNone supplied
server/vueda/workflow/migrations/0002_statepermission_historical_group_name_and_more.py:542attributeNone supplied

CACHES ​

VUEDA checks that the cache selected for sessions can be shared between production workers.

Config input: CACHE_URL.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:189.

python
CACHES = {'default': env.dj_cache_url('CACHE_URL')}

Local fallback values: {}. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/core/checks.py:468getattr{}

COLUMN_TOTALS_PARAM ​

Query parameter selecting named column totals for list requests. The client has a matching constant that must change with this setting.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:369.

python
COLUMN_TOTALS_PARAM = 'ct'

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/open_api.py:453attributeNone supplied
server/vueda/core/viewsets/__init__.py:348attributeNone supplied
server/vueda/core/viewsets/__init__.py:1309attributeNone supplied

CORS_ALLOW_CREDENTIALS ​

Allows credentials in cross-origin requests accepted by the CORS middleware.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:396.

python
CORS_ALLOW_CREDENTIALS = True

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/middleware.py:73attributeNone supplied

CORS_ALLOW_HEADERS ​

Request headers allowed by the CORS middleware, including VUEDA’s dry-run and acknowledge-warnings headers.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:381.

python
CORS_ALLOW_HEADERS = ['accept', 'accept-encoding', 'content-type', 'user-agent', 'x-csrftoken', 'x-requested-with', 'dry-run', 'acknowledge-warnings']

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/middleware.py:70attributeNone supplied

CORS_ALLOW_METHODS ​

HTTP methods allowed by the CORS middleware.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:373.

python
CORS_ALLOW_METHODS = ['DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT']

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/middleware.py:72attributeNone supplied

CORS_ALLOWED_ORIGINS ​

Origins allowed by the configured CORS middleware for HTTP and ASGI requests.

Config input: CORS_ALLOWED_ORIGINS.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:372.

python
CORS_ALLOWED_ORIGINS = env.list('CORS_ALLOWED_ORIGINS')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/middleware.py:69attributeNone supplied

CORS_EXPOSE_HEADERS ​

Response headers readable by cross-origin browser clients. The factory exposes content-disposition and retry-after.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:391.

python
CORS_EXPOSE_HEADERS = ['content-disposition', 'retry-after']

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/middleware.py:71attributeNone supplied

CORS_PREFLIGHT_MAX_AGE ​

Lifetime in seconds of cached CORS preflight results. DEBUG reduces the factory value from 86400 to 600.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:395.

python
CORS_PREFLIGHT_MAX_AGE = 86400

Base defaults; return_dict['DEBUG']. Source: server/vueda/core/default_settings.py:419.

python
CORS_PREFLIGHT_MAX_AGE = 600

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/middleware.py:74attributeNone supplied

DATABASE_BACKUP_DIR ​

Directory where the VUEDA update command writes a PostgreSQL backup before applying migrations.

Config input: DATABASE_BACKUP_DIR.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:399.

python
DATABASE_BACKUP_DIR = env('DATABASE_BACKUP_DIR')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/update.py:235attributeNone supplied

DATABASES ​

The update command reads the default database connection to create backups.

Config input: DATABASE_URL.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:182.

python
DATABASES = {'default': env.dj_db_url('DATABASE_URL')}

Base defaults. Source: server/vueda/core/default_settings.py:492.

python
DATABASES["default"]["ATOMIC_REQUESTS"] = True

Base defaults; 'OPTIONS' not in return_dict['DATABASES']['default']. Source: server/vueda/core/default_settings.py:494.

python
DATABASES["default"]["OPTIONS"] = {}

Base defaults; return_dict['DATABASES']['default'].get('ENGINE') in _POSTGRES_ENGINES. Source: server/vueda/core/default_settings.py:496.

python
DATABASES["default"]["OPTIONS"]["isolation_level"] = IsolationLevel.REPEATABLE_READ

Base defaults. Source: server/vueda/core/default_settings.py:498.

python
DATABASES["default"]["CONN_MAX_AGE"] = 0

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/update.py:236attributeNone supplied
server/vueda/update.py:237attributeNone supplied

DEBUG ​

Enables Django debug mode and VUEDA debug routes and exception details. Also lowers the CORS preflight cache lifetime to 600 seconds.

Config input: DEBUG.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:135.

python
DEBUG = env.bool('DEBUG', default=False)

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/checks.py:462attributeNone supplied
server/vueda/core/exceptions.py:95attributeNone supplied
server/vueda/core/exceptions.py:99attributeNone supplied
server/vueda/info/urls.py:24attributeNone supplied
server/vueda/update.py:295attributeNone supplied
server/vueda/update.py:349attributeNone supplied
server/vueda/update.py:472attributeNone supplied
server/vueda/update.py:492attributeNone supplied
server/vueda/update.py:535attributeNone supplied
server/vueda/user/urls.py:50attributeNone supplied
server/vueda/workflow/urls.py:20attributeNone supplied

EMAIL_BACKEND ​

Email backend class path. The console backend prints messages during development. With use_mailers=True, the factory places this value in MAILERS.default.BACKEND; otherwise it sets EMAIL_BACKEND. Selecting the Mailgun backend also reads the ANYMAIL_MAILGUN_* keys and ANYMAIL_WEBHOOK_SECRET.

Config input: EMAIL_BACKEND.

Factory declarations and overrides

Base defaults; not (use_mailers). Source: server/vueda/core/default_settings.py:406.

python
EMAIL_BACKEND = email_backend

EMAIL_SUBJECT_PREFIX ​

Prefix for account email subjects. When empty, the user adapter uses SITE_NAME in square brackets.

Config input: EMAIL_SUBJECT_PREFIX.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:190.

python
EMAIL_SUBJECT_PREFIX = env('EMAIL_SUBJECT_PREFIX', default='')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/adapters.py:116attributeNone supplied

EMAIL_TIMEOUT ​

Email timeout in seconds supplied when use_mailers=False.

Factory declarations and overrides

Base defaults; not (use_mailers). Source: server/vueda/core/default_settings.py:407.

python
EMAIL_TIMEOUT = 5

FRONTEND_DOMAIN ​

Frontend origin prepended to login and password-reset paths in account emails.

Config input: FRONTEND_DOMAIN.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:173.

python
FRONTEND_DOMAIN = env('FRONTEND_DOMAIN')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/models.py:126attributeNone supplied
server/vueda/user/models.py:139attributeNone supplied

FRONTEND_LOGIN_URL ​

Frontend login path used in account emails, appended to FRONTEND_DOMAIN.

Config input: FRONTEND_LOGIN_URL.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:174.

python
FRONTEND_LOGIN_URL = env('FRONTEND_LOGIN_URL')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/models.py:126attributeNone supplied

FRONTEND_RESET_URL ​

Frontend password-reset path used to build the reset link with its token and user identifier.

Config input: FRONTEND_RESET_URL.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:175.

python
FRONTEND_RESET_URL = env('FRONTEND_RESET_URL', '/reset-password')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/models.py:139attributeNone supplied

IN_TESTS ​

Treat exception handling as a test environment even when DEBUG is false. Includes diagnostic tracebacks in responses and suppresses Sentry capture of ValidationError exceptions.

The defaults factories do not set this Django setting.

Local fallback values: False. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/core/exceptions.py:95getattrFalse
server/vueda/core/exceptions.py:99getattrFalse

INSTALLED_APPS ​

Assembled from DJANGO_APPS, VUEDA_APPS, THIRD_PARTY_APPS, and LOCAL_APPS. VUEDA uses it to detect optional application behavior.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:532.

python
INSTALLED_APPS = return_dict['DJANGO_APPS'] + return_dict['VUEDA_APPS'] + return_dict['THIRD_PARTY_APPS'] + return_dict['LOCAL_APPS']

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/installed_apps.py:22attributeNone supplied
server/vueda/user/mixins.py:50attributeNone supplied

LOCAL_APPS ​

Project applications appended to INSTALLED_APPS. VUEDA also uses this list to group models in the permissions overview.

Config input: LOCAL_APPS.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:296.

python
LOCAL_APPS = env.list('LOCAL_APPS', default=[])

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/views.py:363attributeNone supplied

MAILERS ​

With use_mailers=True, the factory creates the default mailer and its timeout option.

Config input: EMAIL_BACKEND.

Factory declarations and overrides

Base defaults; use_mailers. Source: server/vueda/core/default_settings.py:404.

python
MAILERS = {'default': {'BACKEND': email_backend, 'OPTIONS': {'timeout': 5}}}

MAX_PAGE_SIZE ​

Maximum requested page size. VUEDA also uses it when computing pagination metadata and documenting page-size defaults.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:359.

python
MAX_PAGE_SIZE = 200

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/open_api.py:380attributeNone supplied
server/vueda/core/pagination.py:22attributeNone supplied
server/vueda/core/pagination.py:37attributeNone supplied
server/vueda/core/pagination.py:68attributeNone supplied
server/vueda/core/spectacular_hooks.py:105attributeNone supplied
server/vueda/info/serializers.py:1748attributeNone supplied
server/vueda/info/serializers.py:1759attributeNone supplied
server/vueda/info/serializers.py:1915attributeNone supplied
server/vueda/info/serializers.py:1929attributeNone supplied
server/vueda/info/serializers.py:2049attributeNone supplied
server/vueda/info/serializers.py:2063attributeNone supplied

MIDDLEWARE ​

Default Django, CORS, allauth, and VUEDA history middleware. The factory inserts VuedaHistoryMiddleware immediately after AuthenticationMiddleware to record the actor and request. History checks validate its presence and order. User decorators also check for CSRF middleware.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:242.

python
MIDDLEWARE = ['corsheaders.middleware.CorsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.common.BrokenLinkEmailsMiddleware', 'allauth.account.middleware.AccountMiddleware']

Base defaults. Source: server/vueda/core/default_settings.py:519.

python
MIDDLEWARE = middleware

Local fallback values: None. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/history/checks.py:36getattrNone
server/vueda/user/decorators.py:19attributeNone supplied

NO_REPLY_EMAIL ​

Sender address for user account email and the SYSTEM sender record used by VDQ.

Config input: NO_REPLY_EMAIL.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:203.

python
NO_REPLY_EMAIL = env('NO_REPLY_EMAIL')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/adapters.py:148attributeNone supplied
server/vueda/user/adapters.py:167attributeNone supplied

PAGE_QUERY_PARAM ​

Query parameter for the requested page. Server schemas and request validation use this name. A change requires a matching client constant change.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:361.

python
PAGE_QUERY_PARAM = 'p'

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/open_api.py:374attributeNone supplied
server/vueda/core/pagination.py:20attributeNone supplied
server/vueda/core/viewsets/__init__.py:1300attributeNone supplied

PAGE_SIZE_QUERY_PARAM ​

Query parameter for the requested page size. Server schemas and request validation use this name. A change requires a matching client constant change.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:360.

python
PAGE_SIZE_QUERY_PARAM = 'ps'

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/open_api.py:379attributeNone supplied
server/vueda/core/pagination.py:21attributeNone supplied
server/vueda/core/viewsets/__init__.py:1301attributeNone supplied

PERMISSION_NAMES_MAPPING ​

Maps Django permission verbs to VUEDA CRUDL verbs (create, read, update, delete, and list). The factory remaps add, change, and view. Runtime authorization and metadata read this mapping. Set it before importing vueda.core.patch_django; changing it does not rename existing permission rows.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:236.

python
PERMISSION_NAMES_MAPPING = {'add': 'create', 'change': 'update', 'view': 'read'}

Local fallback values: None. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/core/checks.py:503getattrNone
server/vueda/core/patch_django.py:31attributeNone supplied
server/vueda/core/patch_django.py:119attributeNone supplied
server/vueda/core/permissions.py:394attributeNone supplied
server/vueda/core/permissions.py:395attributeNone supplied
server/vueda/info/serializers.py:208attributeNone supplied
server/vueda/info/serializers.py:209attributeNone supplied
server/vueda/info/serializers.py:212attributeNone supplied
server/vueda/info/serializers.py:213attributeNone supplied
server/vueda/info/viewsets.py:306attributeNone supplied
server/vueda/info/viewsets.py:307attributeNone supplied
server/vueda/info/viewsets.py:310attributeNone supplied
server/vueda/info/viewsets.py:311attributeNone supplied
server/vueda/info/viewsets.py:558attributeNone supplied
server/vueda/info/viewsets.py:559attributeNone supplied
server/vueda/info/viewsets.py:562attributeNone supplied
server/vueda/info/viewsets.py:563attributeNone supplied

PGHISTORY_APPEND_ONLY ​

Requires tracked event rows to remain immutable. The factory sets this to True to match the trigger operations in shipped migrations.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:523.

python
PGHISTORY_APPEND_ONLY = True

PGHISTORY_CREATED_AT_FUNCTION ​

Uses clock_timestamp() so each event records its write time, rather than the transaction start time. This matches the trigger operations in shipped migrations.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:529.

python
PGHISTORY_CREATED_AT_FUNCTION = 'clock_timestamp()'

QUEUE_ITEM_SERIALIZER ​

Serializer class object for queued items, selected at module import time. Supply the class itself, not a dotted import string.

The defaults factories do not set this Django setting.

Local fallback values: DefaultQueueItemSerializer. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/serializers.py:122getattrDefaultQueueItemSerializer

REST_AUTH ​

Authentication serializer defaults. The who-is endpoint imports USER_DETAILS_SERIALIZER, with vueda.user.serializers.WhoIsSerializer as its fallback when the dictionary omits that key.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:339.

python
REST_AUTH = {'LOGIN_SERIALIZER': 'vueda.user.serializers.LoginSerializer', 'USER_DETAILS_SERIALIZER': 'vueda.user.serializers.WhoIsSerializer', 'TOKEN_MODEL': None, 'TOKEN_SERIALIZER': 'vueda.user.serializers.VuedaTokenSerializer', 'OLD_PASSWORD_FIELD_ENABLED': True}

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/views.py:119attributeNone supplied

REST_FLEX_FIELDS2 ​

Names of the expand, selected-field, and omitted-field query parameters, plus the maximum expansion depth. VUEDA reads these for serialization, request validation, metadata, and OpenAPI. Query names must agree with the client.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:346.

python
REST_FLEX_FIELDS2 = {'EXPAND_PARAM': 'e', 'FIELDS_PARAM': 'f', 'OMIT_PARAM': 'om', 'MAXIMUM_EXPANSION_DEPTH': 4}

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/open_api.py:616attributeNone supplied
server/vueda/core/serializers/__init__.py:675attributeNone supplied
server/vueda/core/serializers/__init__.py:680attributeNone supplied
server/vueda/core/serializers/__init__.py:691attributeNone supplied
server/vueda/core/serializers/__init__.py:757attributeNone supplied
server/vueda/core/serializers/__init__.py:777attributeNone supplied
server/vueda/core/serializers/__init__.py:847attributeNone supplied
server/vueda/core/serializers/__init__.py:1265attributeNone supplied
server/vueda/core/serializers/__init__.py:1266attributeNone supplied
server/vueda/core/spectacular_hooks.py:18attributeNone supplied
server/vueda/core/spectacular_hooks.py:135attributeNone supplied
server/vueda/core/viewsets/__init__.py:595attributeNone supplied
server/vueda/core/viewsets/__init__.py:1302attributeNone supplied
server/vueda/core/viewsets/__init__.py:1303attributeNone supplied
server/vueda/core/viewsets/__init__.py:1304attributeNone supplied
server/vueda/core/viewsets/__init__.py:1315attributeNone supplied
server/vueda/core/viewsets/__init__.py:1316attributeNone supplied
server/vueda/core/viewsets/__init__.py:1317attributeNone supplied
server/vueda/core/viewsets/__init__.py:1354attributeNone supplied
server/vueda/core/viewsets/__init__.py:1355attributeNone supplied
server/vueda/core/viewsets/__init__.py:1357attributeNone supplied
server/vueda/core/viewsets/__init__.py:1359attributeNone supplied
server/vueda/core/viewsets/__init__.py:1373attributeNone supplied
server/vueda/core/viewsets/__init__.py:1394attributeNone supplied
server/vueda/info/schema.py:135attributeNone supplied
server/vueda/info/serializers.py:559attributeNone supplied
server/vueda/info/serializers.py:1625attributeNone supplied
server/vueda/workflow/schema.py:28attributeNone supplied
server/vueda/workflow/serializers.py:96attributeNone supplied
server/vueda/workflow/serializers.py:105attributeNone supplied

REST_FRAMEWORK ​

VUEDA defaults for DRF renderers, authentication, pagination, filtering, permissions, throttling, and exception handling. VUEDA reads PAGE_SIZE, SEARCH_PARAM, and ORDERING_PARAM directly. Query names must agree with the client. When drf_spectacular imports successfully, the factory adds DEFAULT_SCHEMA_CLASS.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:309.

python
REST_FRAMEWORK = {'DEFAULT_THROTTLE_RATES': {'change_password': '5/min', 'forgot_password': '20/hour', 'totp_send_destination': '5/hour', 'totp_send_user': '5/hour'}, 'NON_FIELD_ERRORS_KEY': 'non_field_errors', 'DEFAULT_RENDERER_CLASSES': ['vueda.core.renderers.VuedaJSONRenderer'], 'DEFAULT_AUTHENTICATION_CLASSES': ['rest_framework.authentication.SessionAuthentication'], 'DEFAULT_PAGINATION_CLASS': 'vueda.core.pagination.VUEDAPageNumberPagination', 'PAGE_SIZE': 100, 'SEARCH_PARAM': 's', 'DEFAULT_FILTER_BACKENDS': ('vueda.core.filters.VuedaOrderingFilter', 'vueda.core.filters.VuedaSearchFilterBackend', 'django_filters.rest_framework.DjangoFilterBackend'), 'DEFAULT_PERMISSION_CLASSES': ['vueda.core.permissions.ObjectPermissions'], 'UPLOADED_FILES_USE_URL': True, 'EXCEPTION_HANDLER': 'vueda.core.exceptions.debug_stack_exception_handler', 'ORDERING_PARAM': 'o'}

Base defaults; imports succeed: import drf_spectacular. Source: server/vueda/core/default_settings.py:458.

python
REST_FRAMEWORK["DEFAULT_SCHEMA_CLASS"] = 'vueda.core.open_api.VuedaAutoSchema'

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/core/open_api.py:395attributeNone supplied
server/vueda/core/open_api.py:396attributeNone supplied
server/vueda/core/pagination.py:19attributeNone supplied
server/vueda/core/viewsets/__init__.py:1305attributeNone supplied
server/vueda/core/viewsets/__init__.py:1306attributeNone supplied

SEND_QUEUE_VIEWSET ​

Viewset class object for queued items, selected at module import time. Supply the class itself, not a dotted import string.

The defaults factories do not set this Django setting.

Local fallback values: DefaultSendQueueViewSet. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/viewsets.py:58getattrDefaultSendQueueViewSet

SENT_ITEM_SERIALIZER ​

Serializer class object for sent items, selected at module import time. Supply the class itself, not a dotted import string.

The defaults factories do not set this Django setting.

Local fallback values: DefaultSentItemSerializer. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/serializers.py:153getattrDefaultSentItemSerializer

SENT_ITEM_VIEWSET ​

Viewset class object for sent items, selected at module import time. Supply the class itself, not a dotted import string.

The defaults factories do not set this Django setting.

Local fallback values: DefaultSentItemViewSet. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/viewsets.py:95getattrDefaultSentItemViewSet

SESSION_CACHE_ALIAS ​

Cache alias inspected by VUEDA’s production session-cache check. The local fallback is default, matching Django’s session cache alias.

The defaults factories do not set this Django setting.

Local fallback values: 'default'. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/core/checks.py:467getattr'default'

SESSION_ENGINE ​

The factory selects cache-backed sessions. Production checks reject a process-local session cache.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:191.

python
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

Local fallback values: ''. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/core/checks.py:464getattr''

SITE_NAME ​

Site name in account email templates and the fallback email subject prefix.

Config input: SITE_NAME.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:200.

python
SITE_NAME = env('SITE_NAME')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/adapters.py:118attributeNone supplied
server/vueda/user/adapters.py:136attributeNone supplied
server/vueda/user/adapters.py:185attributeNone supplied

SPECTACULAR_SETTINGS ​

OpenAPI title, tags, schema options, and hooks supplied only when drf_spectacular imports successfully. Tags depend on the selected VUEDA_APPS.

Factory declarations and overrides

Base defaults; imports succeed: import drf_spectacular. Source: server/vueda/core/default_settings.py:459.

python
SPECTACULAR_SETTINGS = {'TITLE': 'VUEDA API', 'DESCRIPTION': "VUEDA is designed for projects that integrate Vue.js frontends with Django REST Framework backends. This server library enhances Django's native authentication and permissions systems with default DRF classes and optimizes integration with django-filter, drf-flex-fields2, and drf-writable-nested. It offers essential out-of-the-box functionalities such as custom workflow management, audit trails (with DRF support for django-pghistory), and row-level permissions. Additionally, vueda-server provides DRF classes to expose Django model details to the frontend, filtered by user permissions. It is built with customization in mind, offering most features as base classes that can be extended in your application, ensuring both control and adaptability.", 'VERSION': '1.0.0', 'TAGS': spectacular_tags, 'COMPONENT_SPLIT_PATCH': False, 'SHOW_REQUEST_BODY': True, 'SHOW_RESPONSE_BODY': True, 'DEFAULT_MODEL_DEPTH': None, 'SERVE_INCLUDE_SCHEMA': False, 'PARSER_WHITELIST': ['rest_framework.parsers.JSONParser'], 'PREPROCESSING_HOOKS': ['vueda.core.spectacular_hooks.preprocessing_hooks', 'vueda.core.spectacular_hooks.register_cart_with_model_info'], 'POSTPROCESSING_HOOKS': ['drf_spectacular.hooks.postprocess_schema_enums', 'vueda.core.spectacular_hooks.postprocess_schema_components'], 'SORT_OPERATION_PARAMETERS': False}

SUPPORT_EMAIL ​

Support address inserted into account email context.

Config input: SUPPORT_EMAIL.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:201.

python
SUPPORT_EMAIL = env('SUPPORT_EMAIL')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/models.py:127attributeNone supplied

TWILIO_ACCOUNT_SID ​

Twilio account identifier. VDQ initializes its Twilio client and status polling only when this value is nonempty and the Twilio package is available.

Config input: TWILIO_ACCOUNT_SID.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:132.

python
TWILIO_ACCOUNT_SID = env('TWILIO_ACCOUNT_SID', default='')

Local fallback values: None. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/user/adapters.py:210attributeNone supplied
server/vueda/user/utils.py:34getattrNone
server/vueda/vdq/celery.py:34getattrNone
server/vueda/vdq/celery.py:40getattrNone
server/vueda/vdq/handlers.py:189getattrNone
server/vueda/vdq/handlers.py:191attributeNone supplied

TWILIO_AUTH_TOKEN ​

Twilio credential used to send SMS messages and validate incoming webhook signatures.

Config input: TWILIO_AUTH_TOKEN.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:134.

python
TWILIO_AUTH_TOKEN = env('TWILIO_AUTH_TOKEN', default='')

Local fallback values: None. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/user/adapters.py:210attributeNone supplied
server/vueda/user/utils.py:35getattrNone
server/vueda/vdq/handlers.py:192attributeNone supplied
server/vueda/vdq/views.py:48attributeNone supplied

TWILIO_CALLER_ID ​

Sender phone number for user account SMS messages and the SYSTEM sender record.

Config input: TWILIO_CALLER_ID.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:133.

python
TWILIO_CALLER_ID = env('TWILIO_CALLER_ID', default='')

Local fallback values: None. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/user/adapters.py:199attributeNone supplied
server/vueda/user/adapters.py:213attributeNone supplied
server/vueda/user/utils.py:36getattrNone

TWILIO_WEBHOOK_URL ​

Twilio SMS status callback URL. A truthy URL enables webhook-based status updates with timeout polling; a false value selects status polling. Configure the URL when using Twilio callbacks.

The defaults factories do not set this Django setting.

Local fallback values: False. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/celery.py:35getattrFalse
server/vueda/vdq/celery.py:40getattrFalse
server/vueda/vdq/handlers.py:207getattrFalse

VDQ_EMAIL_TRACKING_STRATEGY ​

Class, or dotted import path of the class, that attaches the queue item's key to an outgoing email and reads it back from an Anymail tracking event. The read site falls back to vueda.vdq.tracking.MetadataEmailTrackingStrategy, which carries the key in Anymail metadata. Set vueda.vdq.tracking.EmailTrackingStrategy to send without tracking data on an ESP that accepts no metadata.

The defaults factories do not set this Django setting.

Local fallback values: MetadataEmailTrackingStrategy. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/tracking.py:65getattrMetadataEmailTrackingStrategy

VDQ_MAX_FILES_AGE_IN_SECONDS ​

A value of zero deletes queue attachment files when an item reaches a done state. The current read site does nothing for None or positive values; this setting alone does not schedule age-based cleanup.

The defaults factories do not set this Django setting.

Local fallback values: None. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/models.py:155getattrNone

VDQ_TWILIO_SMS_TIMEOUT_HOURS ​

Time in hours before awaiting SMS messages time out. Also determines the retry count of the unknown-message check task. The task class reads it at import time.

The defaults factories do not set this Django setting.

Local fallback values: 2. These apply only at the read sites that supply them.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/handlers.py:275getattr2
server/vueda/vdq/handlers.py:311getattr2
server/vueda/vdq/tasks.py:184getattr2

VDQ_URL ​

VDQ URL prefix used to build attachment download URLs. Supply it when serializing queue attachments; neither get_defaults nor the read site supplies a fallback.

The defaults factories do not set this Django setting.

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/serializers.py:60attributeNone supplied

VUEDA_USER_ADAPTER ​

Class path for the user adapter that implements VUEDA account operations.

Config input: VUEDA_USER_ADAPTER.

Factory declarations and overrides

Base defaults. Source: server/vueda/core/default_settings.py:278.

python
VUEDA_USER_ADAPTER = env('VUEDA_USER_ADAPTER', default='vueda.user.adapters.DefaultUserAdapter')

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/user/adapters.py:223attributeNone supplied

VUEDA_VDQ_RECEIVER_MODEL ​

Swapper model label for the VDQ receiver. Swapper supplies vueda_vdq.Receiver when no override exists; VUEDA migration files read the setting directly. Choose the replacement model before creating project migrations.

The defaults factories do not set this Django setting.

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/migrations/0001_initial.py:170attributeNone supplied
server/vueda/vdq/migrations/0001_initial.py:186attributeNone supplied
server/vueda/vdq/migrations/0001_initial.py:212attributeNone supplied
server/vueda/vdq/migrations/0001_initial.py:228attributeNone supplied
server/vueda/vdq/migrations/0001_initial.py:254attributeNone supplied
server/vueda/vdq/migrations/0001_initial.py:270attributeNone supplied
server/vueda/vdq/migrations/0001_initial.py:309attributeNone supplied
server/vueda/vdq/migrations/0007_queueitemevent_receiverevent_senderevent_and_more.py:253attributeNone supplied
server/vueda/vdq/migrations/0007_queueitemevent_receiverevent_senderevent_and_more.py:285attributeNone supplied

VUEDA_VDQ_SENDER_MODEL ​

Swapper model label for the VDQ sender. Swapper supplies vueda_vdq.Sender when no override exists; VUEDA migration files read the setting directly. Choose the replacement model before creating project migrations.

The defaults factories do not set this Django setting.

No fallback at the direct read sites. The setting must exist when those reads execute.

Read locations
SourceAccessLocal fallback
server/vueda/vdq/migrations/0001_initial.py:316attributeNone supplied
server/vueda/vdq/migrations/0007_queueitemevent_receiverevent_senderevent_and_more.py:264attributeNone supplied
server/vueda/vdq/migrations/0007_queueitemevent_receiverevent_senderevent_and_more.py:306attributeNone supplied

Django exemptions ​

  • MIGRATION_MODULES: Django migration module overrides retain their Django meaning in migration discovery and generation.