zaniiid

Configuration reference

Generated by scripts/gen_docs.py from app/config.py; do not edit by hand. Every setting is an environment variable with the ZANII_ID_ prefix, read at start-up (production reads /opt/zanii-id/.env). With ZANII_ID_ENVIRONMENT=production the server refuses to start unless the rows marked in the last column hold, and reports every problem at once.

Core

Variable Type Default Production requirement
ZANII_ID_ENVIRONMENT str 'dev'
ZANII_ID_ISSUER str 'http://localhost:8000' an https:// URL
ZANII_ID_DATABASE_URL str 'sqlite+aiosqlite:///./zanii_dev.db' PostgreSQL, never SQLite
ZANII_ID_REDIS_URL str None none
ZANII_ID_APP_SECRET str (secret) not the shipped default, at least 32 characters
ZANII_ID_ADMIN_TOKEN str (secret) not the shipped default
ZANII_ID_COOKIE_SECURE bool None none
ZANII_ID_DB_STATEMENT_TIMEOUT_MS int 15000
ZANII_ID_BUILD_REF str None none

Tokens and sessions

Variable Type Default Production requirement
ZANII_ID_ACCESS_TOKEN_TTL_SECONDS int 600
ZANII_ID_ID_TOKEN_TTL_SECONDS int 600
ZANII_ID_CODE_TTL_SECONDS int 60
ZANII_ID_REFRESH_SLIDING_DAYS int 30
ZANII_ID_REFRESH_ABSOLUTE_DAYS int 90
ZANII_ID_REFRESH_REUSE_GRACE_SECONDS int 10
ZANII_ID_SESSION_IDLE_DAYS int 14
ZANII_ID_SESSION_ABSOLUTE_DAYS int 180
ZANII_ID_MFA_ISSUER_NAME str 'Zanii ID'

Mail

Variable Type Default Production requirement
ZANII_ID_SMTP_HOST str None none
ZANII_ID_SMTP_PORT int 587
ZANII_ID_SMTP_USER str None none
ZANII_ID_SMTP_PASSWORD str None none
ZANII_ID_SMTP_FROM str 'Zanii ID <no-reply@zanii.agency>'
ZANII_ID_SMTP_STARTTLS bool True
ZANII_ID_RESEND_API_KEY str None none

Ledger and receipts

Variable Type Default Production requirement
ZANII_ID_LEDGER_BASE_URL str 'https://ledger.zanii.agency'
ZANII_ID_LEDGER_TIMEOUT_SECONDS float 10.0
ZANII_ID_LEDGER_BUNDLE_TIMEOUT_SECONDS float 120.0
ZANII_ID_LEDGER_CACHE_TTL_SECONDS float 60.0
ZANII_ID_LEDGER_CACHE_MAX_ENTRIES int 512
ZANII_ID_LEDGER_BUNDLE_CONCURRENCY int 3
ZANII_ID_LEDGER_BUNDLE_WAIT_SECONDS float 5.0
ZANII_ID_RECEIPTS_MAX_PENDING int 500
ZANII_ID_LEDGER_MAX_CONNECTIONS int 20
ZANII_ID_LEDGER_REQUEST_CONCURRENCY int 5
ZANII_ID_LEDGER_IDENTITY_PASSPHRASE str None none
ZANII_ID_COSIGNER_IDENTITY_PATH str None none
ZANII_ID_WITNESS_CHECKPOINTS_PATH str None none
ZANII_ID_HOSTING_PROVIDER str 'digitalocean'
ZANII_ID_HOSTING_REGION str None none
ZANII_ID_SOVEREIGNTY_PATH str None none
ZANII_ID_COSIGNER_PASSPHRASE str None none
ZANII_ID_RECEIPT_RETRY_MAX_ATTEMPTS int 8
ZANII_ID_CONSTITUTION_PATH str None none
ZANII_ID_PQ_BINDING_PATH str None none
ZANII_ID_LEDGER_AGENT_IDENTITY_PATH str None none
ZANII_ID_LEDGER_API_KEY str None none

Lifecycle and retention

Variable Type Default Production requirement
ZANII_ID_LIFECYCLE_SWEEP_SECONDS int 15
ZANII_ID_RETENTION_BATCH int 1000
ZANII_ID_RETENTION_SESSION_DAYS int 30
ZANII_ID_RETENTION_REFRESH_DAYS int 30
ZANII_ID_RETENTION_DELIVERY_DAYS int 30
ZANII_ID_RETENTION_PARKED_DAYS int 90
ZANII_ID_RETENTION_AUDIT_DAYS int 365
ZANII_ID_LIFECYCLE_MAX_ATTEMPTS int 8
ZANII_ID_RETENTION_INTENT_DAYS int 30

Capacity

Variable Type Default Production requirement
ZANII_ID_MAX_BODY_BYTES int 262144
ZANII_ID_IO_THREADS int 16

Observability

Variable Type Default Production requirement
ZANII_ID_OTEL_ENDPOINT str None none
ZANII_ID_OTEL_SERVICE_NAME str 'zanii-id'

Age assurance

Variable Type Default Production requirement
ZANII_ID_AGE_ASSURANCE_PROVIDER str None none

Hosted pages

Variable Type Default Production requirement
ZANII_ID_UI_LANG str 'en'
ZANII_ID_UI_DIR str 'ltr'

Other

Variable Type Default Production requirement
ZANII_ID_NEW_DEVICE_ALERTS bool True
ZANII_ID_SIGNING_KEY_ROTATION_DAYS int 90
ZANII_ID_CONSOLE_SESSION_SECONDS int 43200
ZANII_ID_EMAIL_REVERT_DAYS int 7
ZANII_ID_LOG_JSON bool None none