Service settings reference

Every Service setting with its environment variable, type, bounds, and default.

Note

Generated from the Settings definitions used by the Service loader. Run uv run --locked python scripts/docs/references.py after changing them instead of editing rows.

Use Configure Service for precedence, examples, role/storage requirements, and cross-field validation. Types and field constraints below do not replace those combined checks. Secret defaults are masked by the schema; this reference never reads deployment environment values. Defaults apply to the source version, not every historical release.

The complete machine-readable validation schema, including named enum/union definitions, is available as Service settings JSON.

server

SettingEnvironment variableType / choicesConstraints and default
server.hostA13N_SERVER__HOSTstringdefault="127.0.0.1"
server.portA13N_SERVER__PORTintegerminimum=1; maximum=65535; default=8000
server.public_urlA13N_SERVER__PUBLIC_URLstringmaxLength=2048; default="http://127.0.0.1:8000"
server.trusted_proxiesA13N_SERVER__TRUSTED_PROXIESarray of stringdefault=[]
server.request_bytesA13N_SERVER__REQUEST_BYTESintegerminimum=1024; maximum=33554432; default=2097152
server.request_timeoutA13N_SERVER__REQUEST_TIMEOUTnumbermaximum=60; exclusiveMinimum=0; default=10
server.readiness_timeoutA13N_SERVER__READINESS_TIMEOUTnumbermaximum=30; exclusiveMinimum=0; default=2
server.shutdown_timeoutA13N_SERVER__SHUTDOWN_TIMEOUTintegerminimum=1; maximum=300; default=15
server.tls_certificateA13N_SERVER__TLS_CERTIFICATEstring or nullformat="path"; default=null
server.tls_keyA13N_SERVER__TLS_KEYstring or nullformat="path"; default=null

database

SettingEnvironment variableType / choicesConstraints and default
database.urlA13N_DATABASE__URLstringformat="password"; default="**********"
database.auto_migrateA13N_DATABASE__AUTO_MIGRATEbooleandefault=true
database.pool_sizeA13N_DATABASE__POOL_SIZEintegerminimum=1; maximum=100; default=5
database.connect_timeoutA13N_DATABASE__CONNECT_TIMEOUTintegerminimum=1; maximum=60; default=5
database.statement_timeoutA13N_DATABASE__STATEMENT_TIMEOUTintegerminimum=1; maximum=300; default=10
database.migration_advisory_lock_timeoutA13N_DATABASE__MIGRATION_ADVISORY_LOCK_TIMEOUTintegerminimum=1; maximum=3600; default=900
database.migration_lock_timeoutA13N_DATABASE__MIGRATION_LOCK_TIMEOUTintegerminimum=1; maximum=60; default=3
database.migration_statement_timeoutA13N_DATABASE__MIGRATION_STATEMENT_TIMEOUTintegerminimum=1; maximum=3600; default=900
database.migration_idle_transaction_timeoutA13N_DATABASE__MIGRATION_IDLE_TRANSACTION_TIMEOUTintegerminimum=1; maximum=300; default=30

objects

SettingEnvironment variableType / choicesConstraints and default
objects.backendA13N_OBJECTS__BACKEND"local", "s3"default="local"
objects.rootA13N_OBJECTS__ROOTstringformat="path"; default="var/service/objects"
objects.bucketA13N_OBJECTS__BUCKETstring or nulldefault=null
objects.prefixA13N_OBJECTS__PREFIXstringdefault=""
objects.endpoint_urlA13N_OBJECTS__ENDPOINT_URLstring or nulldefault=null
objects.path_styleA13N_OBJECTS__PATH_STYLEbooleandefault=false
objects.regionA13N_OBJECTS__REGIONstring or nulldefault=null
objects.access_key_idA13N_OBJECTS__ACCESS_KEY_IDstring or nullformat="password"; default=null
objects.secret_access_keyA13N_OBJECTS__SECRET_ACCESS_KEYstring or nullformat="password"; default=null
objects.max_bytesA13N_OBJECTS__MAX_BYTESintegerminimum=65536; maximum=67108864; default=16777216
objects.timeoutA13N_OBJECTS__TIMEOUTnumbermaximum=60; exclusiveMinimum=0; default=5
objects.upload_bytesA13N_OBJECTS__UPLOAD_BYTESintegerminimum=1; maximum=33554432; default=1048576
objects.upload_limitA13N_OBJECTS__UPLOAD_LIMITintegerminimum=1; maximum=1000; default=60
objects.upload_window_secondsA13N_OBJECTS__UPLOAD_WINDOW_SECONDSintegerminimum=1; maximum=3600; default=60

redis

SettingEnvironment variableType / choicesConstraints and default
redis.urlA13N_REDIS__URLstringformat="password"; default="**********"
redis.timeoutA13N_REDIS__TIMEOUTnumbermaximum=30; exclusiveMinimum=0; default=2

auth

SettingEnvironment variableType / choicesConstraints and default
auth.session_secondsA13N_AUTH__SESSION_SECONDSintegerminimum=60; maximum=604800; default=43200
auth.login_limitA13N_AUTH__LOGIN_LIMITintegerminimum=1; maximum=1000; default=10
auth.login_window_secondsA13N_AUTH__LOGIN_WINDOW_SECONDSintegerminimum=1; maximum=3600; default=60
auth.invitation_secondsA13N_AUTH__INVITATION_SECONDSintegerminimum=3600; maximum=2592000; default=604800
auth.link_secondsA13N_AUTH__LINK_SECONDSintegerminimum=300; maximum=86400; default=3600
auth.expiry_scan_secondsA13N_AUTH__EXPIRY_SCAN_SECONDSnumbermaximum=3600; exclusiveMinimum=0; default=60
auth.mail.smtp_hostA13N_AUTH__MAIL (JSON field smtp_host)string or nullmaxLength=253; default=null
auth.mail.smtp_portA13N_AUTH__MAIL (JSON field smtp_port)integerminimum=1; maximum=65535; default=587
auth.mail.smtp_securityA13N_AUTH__MAIL (JSON field smtp_security)"starttls", "tls"default="starttls"
auth.mail.smtp_usernameA13N_AUTH__MAIL (JSON field smtp_username)string or nullmaxLength=320; default=null
auth.mail.smtp_passwordA13N_AUTH__MAIL (JSON field smtp_password)string or nullformat="password"; default=null
auth.mail.senderA13N_AUTH__MAIL (JSON field sender)string or nullmaxLength=320; default=null
auth.mail.timeoutA13N_AUTH__MAIL (JSON field timeout)numbermaximum=60; exclusiveMinimum=0; default=10

encryption

SettingEnvironment variableType / choicesConstraints and default
encryption.active_key_idA13N_ENCRYPTION__ACTIVE_KEY_IDstring or nullminLength=1; maxLength=128; default=null
encryption.keysA13N_ENCRYPTION__KEYSobject—
encryption.key_fileA13N_ENCRYPTION__KEY_FILEstring or nullformat="path"; default=null

control

SettingEnvironment variableType / choicesConstraints and default
control.scan_secondsA13N_CONTROL__SCAN_SECONDSnumbermaximum=60; exclusiveMinimum=0; default=1
control.sweep_batchA13N_CONTROL__SWEEP_BATCHintegerminimum=1; maximum=10000; default=100
control.inbox_countA13N_CONTROL__INBOX_COUNTintegerminimum=1; maximum=10000; default=128
control.inbox_bytesA13N_CONTROL__INBOX_BYTESintegerminimum=1024; maximum=16777216; default=2097152
control.subscriptionsA13N_CONTROL__SUBSCRIPTIONSintegerminimum=1; maximum=1000; default=32
control.webhook_timeoutA13N_CONTROL__WEBHOOK_TIMEOUTnumbermaximum=30; exclusiveMinimum=0; default=10
control.import_timeoutA13N_CONTROL__IMPORT_TIMEOUTnumbermaximum=120; exclusiveMinimum=0; default=30
control.stream_refresh_secondsA13N_CONTROL__STREAM_REFRESH_SECONDSnumbermaximum=60; exclusiveMinimum=0; default=2

outbox

SettingEnvironment variableType / choicesConstraints and default
outbox.purge_interval_secondsA13N_OUTBOX__PURGE_INTERVAL_SECONDSnumbermaximum=3600; exclusiveMinimum=0; default=60
outbox.purge_batchA13N_OUTBOX__PURGE_BATCHintegerminimum=1; maximum=10000; default=1000
outbox.purge_budget_secondsA13N_OUTBOX__PURGE_BUDGET_SECONDSnumbermaximum=60; exclusiveMinimum=0; default=5
outbox.defaults.delivered_retention_secondsA13N_OUTBOX__DEFAULTS (JSON field delivered_retention_seconds)integerminimum=1; maximum=31536000; default=86400
outbox.defaults.dead_retention_secondsA13N_OUTBOX__DEFAULTS (JSON field dead_retention_seconds)integerminimum=1; maximum=31536000; default=1209600
outbox.defaults.max_attemptsA13N_OUTBOX__DEFAULTS (JSON field max_attempts)integerminimum=1; maximum=100; default=12
outbox.defaults.batchA13N_OUTBOX__DEFAULTS (JSON field batch)integerminimum=1; maximum=1000; default=32
outbox.defaults.parallelA13N_OUTBOX__DEFAULTS (JSON field parallel)integerminimum=1; maximum=128; default=8
outbox.defaults.lease_secondsA13N_OUTBOX__DEFAULTS (JSON field lease_seconds)numberminimum=10; maximum=600; default=60
outbox.defaults.backlog_countA13N_OUTBOX__DEFAULTS (JSON field backlog_count)integerminimum=1; maximum=1000000; default=10000
outbox.defaults.backlog_age_secondsA13N_OUTBOX__DEFAULTS (JSON field backlog_age_seconds)numbermaximum=86400; exclusiveMinimum=0; default=300
outbox.defaults.backlog_alert_secondsA13N_OUTBOX__DEFAULTS (JSON field backlog_alert_seconds)numbermaximum=86400; exclusiveMinimum=0; default=300
outbox.by_kindA13N_OUTBOX__BY_KINDobject—

worker

SettingEnvironment variableType / choicesConstraints and default
worker.slotsA13N_WORKER__SLOTSintegerminimum=1; maximum=128; default=4
worker.max_attemptsA13N_WORKER__MAX_ATTEMPTSintegerminimum=1; maximum=20; default=3
worker.lease_secondsA13N_WORKER__LEASE_SECONDSintegerminimum=3; maximum=300; default=30
worker.scan_secondsA13N_WORKER__SCAN_SECONDSnumbermaximum=30; exclusiveMinimum=0; default=1
worker.authority_secondsA13N_WORKER__AUTHORITY_SECONDSnumbermaximum=30; exclusiveMinimum=0; default=1
worker.drain_secondsA13N_WORKER__DRAIN_SECONDSnumbermaximum=300; exclusiveMinimum=0; default=10
worker.delivery_countA13N_WORKER__DELIVERY_COUNTintegerminimum=1; maximum=128; default=8
worker.delivery_bytesA13N_WORKER__DELIVERY_BYTESintegerminimum=1024; maximum=16777216; default=262144
worker.display_bytesA13N_WORKER__DISPLAY_BYTESintegerminimum=65536; maximum=67108864; default=8388608
worker.output_bytesA13N_WORKER__OUTPUT_BYTESintegerminimum=1024; maximum=16777216; default=1048576
worker.stream_lengthA13N_WORKER__STREAM_LENGTHintegerminimum=16; maximum=100000; default=10000
worker.stream_ttlA13N_WORKER__STREAM_TTLintegerminimum=1; maximum=86400; default=600
worker.stream_coalesce_secondsA13N_WORKER__STREAM_COALESCE_SECONDSnumberminimum=0; maximum=1; default=0.1
worker.stream_trim_secondsA13N_WORKER__STREAM_TRIM_SECONDSnumberminimum=0; maximum=600; default=10
worker.child_depthA13N_WORKER__CHILD_DEPTHintegerminimum=0; maximum=16; default=4
worker.child_countA13N_WORKER__CHILD_COUNTintegerminimum=0; maximum=256; default=16

environments

SettingEnvironment variableType / choicesConstraints and default
environments.scan_secondsA13N_ENVIRONMENTS__SCAN_SECONDSnumbermaximum=300; exclusiveMinimum=0; default=5
environments.batchA13N_ENVIRONMENTS__BATCHintegerminimum=1; maximum=1000; default=16
environments.operation_secondsA13N_ENVIRONMENTS__OPERATION_SECONDSnumbermaximum=3600; exclusiveMinimum=0; default=120
environments.renewal_secondsA13N_ENVIRONMENTS__RENEWAL_SECONDSnumbermaximum=60; exclusiveMinimum=0; default=20
environments.wait_secondsA13N_ENVIRONMENTS__WAIT_SECONDSnumbermaximum=3600; exclusiveMinimum=0; default=300
environments.managed_countA13N_ENVIRONMENTS__MANAGED_COUNTintegerminimum=1; maximum=100000; default=100
environments.docker_hostA13N_ENVIRONMENTS__DOCKER_HOSTstring or nullminLength=1; maxLength=2048; default=null
environments.docker_mount_rootsA13N_ENVIRONMENTS__DOCKER_MOUNT_ROOTSarray of stringmaxItems=64; default=[]

provisioning

SettingEnvironment variableType / choicesConstraints and default
provisioning.local.enabledA13N_PROVISIONING__LOCAL (JSON field enabled)booleandefault=false
provisioning.local.rootA13N_PROVISIONING__LOCAL (JSON field root)string or nullformat="path"; default=null
provisioning.docker.enabledA13N_PROVISIONING__DOCKER (JSON field enabled)booleandefault=false
provisioning.docker.imageA13N_PROVISIONING__DOCKER (JSON field image)stringminLength=1; maxLength=1024; default="a13n-docker-environment:local"
provisioning.docker.pull_policyA13N_PROVISIONING__DOCKER (JSON field pull_policy)"never", "if_missing"default="never"

memory

SettingEnvironment variableType / choicesConstraints and default
memory.max_file_bytesA13N_MEMORY__MAX_FILE_BYTESintegerminimum=1024; maximum=1048576; default=65536
memory.revisions_per_fileA13N_MEMORY__REVISIONS_PER_FILEintegerminimum=1; maximum=1000; default=10
memory.max_total_bytesA13N_MEMORY__MAX_TOTAL_BYTESintegerminimum=65536; maximum=1073741824; default=33554432
memory.mounts_per_threadA13N_MEMORY__MOUNTS_PER_THREADintegerminimum=1; maximum=32; default=8
memory.guide_bytesA13N_MEMORY__GUIDE_BYTESintegerminimum=256; maximum=65536; default=4096
memory.context_bytesA13N_MEMORY__CONTEXT_BYTESintegerminimum=1024; maximum=1048576; default=32768
memory.always_load_bytesA13N_MEMORY__ALWAYS_LOAD_BYTESintegerminimum=0; maximum=1048576; default=8192
memory.description_charsA13N_MEMORY__DESCRIPTION_CHARSintegerminimum=1; maximum=1000; default=200
memory.frontmatter_bytesA13N_MEMORY__FRONTMATTER_BYTESintegerminimum=128; maximum=16384; default=2048
memory.path_bytesA13N_MEMORY__PATH_BYTESintegerminimum=16; maximum=1024; default=256
memory.write_retriesA13N_MEMORY__WRITE_RETRIESintegerminimum=0; maximum=10; default=3
memory.recall_limitA13N_MEMORY__RECALL_LIMITintegerminimum=1; maximum=50; default=5
memory.recall_bytesA13N_MEMORY__RECALL_BYTESintegerminimum=512; maximum=65536; default=8192
memory.recall_secondsA13N_MEMORY__RECALL_SECONDSnumbermaximum=30; exclusiveMinimum=0; default=2
memory.record_charsA13N_MEMORY__RECORD_CHARSintegerminimum=1; maximum=8000; default=8000
memory.default_guide.fileA13N_MEMORY__DEFAULT_GUIDE (JSON field file)string or nullmaxLength=65536; default=null
memory.default_guide.recordA13N_MEMORY__DEFAULT_GUIDE (JSON field record)string or nullmaxLength=65536; default=null

providers

SettingEnvironment variableType / choicesConstraints and default
providers.private_domainsA13N_PROVIDERS__PRIVATE_DOMAINSarray of stringdefault=[]
providers.private_cidrsA13N_PROVIDERS__PRIVATE_CIDRSarray of stringdefault=[]
providers.http_originsA13N_PROVIDERS__HTTP_ORIGINSarray of stringdefault=[]
providers.require_httpsA13N_PROVIDERS__REQUIRE_HTTPSbooleandefault=true
providers.return_urlsA13N_PROVIDERS__RETURN_URLSarray of stringdefault=[]
providers.mcp_serversA13N_PROVIDERS__MCP_SERVERSMcpServersdefault=[]
providers.flow_secondsA13N_PROVIDERS__FLOW_SECONDSintegerminimum=30; maximum=1800; default=600
providers.operation_secondsA13N_PROVIDERS__OPERATION_SECONDSnumberminimum=2; maximum=30; default=10
providers.operation_scan_secondsA13N_PROVIDERS__OPERATION_SCAN_SECONDSnumbermaximum=3600; exclusiveMinimum=0; default=30
providers.discovery_ttlA13N_PROVIDERS__DISCOVERY_TTLintegerminimum=1; maximum=86400; default=300
providers.tool_call_secondsA13N_PROVIDERS__TOOL_CALL_SECONDSnumbermaximum=600; exclusiveMinimum=0; default=60
providers.model_timeoutA13N_PROVIDERS__MODEL_TIMEOUTnumbermaximum=3600; exclusiveMinimum=0; default=300
providers.response_bytesA13N_PROVIDERS__RESPONSE_BYTESintegerminimum=65536; maximum=268435456; default=16777216

plugins

SettingEnvironment variableType / choicesConstraints and default
plugins.keysA13N_PLUGINS__KEYSarray of stringdefault=[]

composer

SettingEnvironment variableType / choicesConstraints and default
composer.modelsA13N_COMPOSER__MODELSarray of stringdefault=["gpt-5.6-luna", "claude-sonnet-5", "deepseek-v4.1-flash", "gemini-3.8-flash"]

telemetry

SettingEnvironment variableType / choicesConstraints and default
telemetry.log_levelA13N_TELEMETRY__LOG_LEVEL"DEBUG", "INFO", "WARNING", "ERROR"default="INFO"
telemetry.log_formatA13N_TELEMETRY__LOG_FORMATLogFormatdefault="json"
telemetry.log_stdoutA13N_TELEMETRY__LOG_STDOUTbooleandefault=true
telemetry.log_fileA13N_TELEMETRY__LOG_FILEstring or nullformat="path"; default=null
telemetry.log_file_max_mbA13N_TELEMETRY__LOG_FILE_MAX_MBintegerminimum=1; maximum=10240; default=100
telemetry.log_file_backupsA13N_TELEMETRY__LOG_FILE_BACKUPSintegerminimum=1; maximum=100; default=5
telemetry.metrics_portA13N_TELEMETRY__METRICS_PORTinteger or nullminimum=1; maximum=65535; default=null
telemetry.trace_backendA13N_TELEMETRY__TRACE_BACKEND"none", "langfuse", "logfire"default="none"
telemetry.trace_urlA13N_TELEMETRY__TRACE_URLstring or nullmaxLength=2048; pattern="^https?://[^\\s?#@]+$"; default=null
telemetry.langfuse_public_keyA13N_TELEMETRY__LANGFUSE_PUBLIC_KEYstring or nullmaxLength=256; default=null
telemetry.langfuse_secret_keyA13N_TELEMETRY__LANGFUSE_SECRET_KEYstring or nullformat="password"; default=null
telemetry.logfire_write_tokenA13N_TELEMETRY__LOGFIRE_WRITE_TOKENstring or nullformat="password"; default=null
telemetry.logfire_read_tokenA13N_TELEMETRY__LOGFIRE_READ_TOKENstring or nullformat="password"; default=null
telemetry.trace_contentA13N_TELEMETRY__TRACE_CONTENT"none", "standard", "full"default="standard"
telemetry.trace_query_timeoutA13N_TELEMETRY__TRACE_QUERY_TIMEOUTnumbermaximum=60; exclusiveMinimum=0; default=10

On this page