Server configuration fields
Look up accepted server configuration fields, types and schema defaults here. Required fields must be present when their parent section is configured. A dash means the schema supplies no default; a deployment profile may still provide a value. Use the configuration guide for setup and verify effective settings on your server.
How to read the fields
Section titled “How to read the fields”Required means the field must be present when its parent section is configured. A dash means no schema default; it does not mean zero, disabled or a runtime default. Explicit null, omitted values and profile settings can differ. Unless a setting explicitly supports reload, plan a controlled restart and verify the effective value.
audit
| Key | Type | Required | Schema default |
|---|---|---|---|
audit | object | yes | — |
audit.backend | ndjson or duckdb or s3 or disabled | yes | — |
audit.buffer_size | integer | no | 1000 |
audit.enabled | boolean | yes | — |
audit.include_ip_address | boolean | no | true |
audit.include_query_text | boolean | no | true |
audit.log_path | string | no | — |
audit.sample_rate | number | no | — |
auth
| Key | Type | Required | Schema default |
|---|---|---|---|
auth | object | yes | — |
auth.admin_groups | array of string | yes | — |
auth.auth0 | object | yes | — |
auth.auth0.audience | string | no | — |
auth.auth0.groups_namespace | string | no | — |
auth.auth0.tenant | string | no | — |
auth.authorization_enabled | boolean | yes | — |
auth.azure | object | yes | — |
auth.azure.allow_multi_tenant | boolean | yes | — |
auth.azure.client_id | string | no | — |
auth.azure.tenant_id | string | no | — |
auth.cognito | object | yes | — |
auth.cognito.audience | string | no | — |
auth.cognito.region | string | no | — |
auth.cognito.user_pool_id | string | no | — |
auth.gcp | object | yes | — |
auth.gcp.client_id | string | no | — |
auth.gcp.project_id | string | no | — |
auth.gcp.require_workspace_domain | boolean | yes | — |
auth.max_concurrent_sessions | integer | no | 20 |
auth.max_session_ttl_hours | integer | no | 8 |
auth.max_sessions_per_hour | integer | no | 1000 |
auth.okta | object | yes | — |
auth.okta.audience | string | no | — |
auth.okta.auth_server_id | string | no | — |
auth.okta.org_domain | string | no | — |
auth.providers | array of string | yes | — |
auth.read_only_groups | array of string | yes | — |
auth_server
aws
| Key | Type | Required | Schema default |
|---|---|---|---|
aws | object | yes | — |
aws.access_key_id | string | no | — |
aws.https_conn_pool_size | integer | yes | — |
aws.region | string | yes | — |
aws.secret_access_key | string | no | — |
cluster_mode
| Key | Type | Required | Schema default |
|---|---|---|---|
cluster_mode | object | no | — |
cluster_mode.advertised_host | string | no | — |
cluster_mode.broker_heartbeat_interval_secs | integer | no | — |
cluster_mode.broker_stale_threshold_secs | integer | no | — |
cluster_mode.catalog_retention_hours | integer | no | null |
cluster_mode.enabled | boolean | yes | — |
cluster_mode.internal_api_port | integer | no | — |
cluster_mode.node_id_path | string | no | — |
cluster_mode.public_host | string | no | — |
cluster_mode.public_tcp_port | integer | no | — |
cluster_mode.swarm_enabled | boolean | no | null |
cluster_mode.swarm_lease_default_ttl_secs | integer | no | null |
cluster_mode.swarm_reaper_interval_secs | integer | no | null |
cluster_mode.swarm_task_retention_secs | integer | no | null |
cluster_mode.tls | object | no | — |
cluster_mode.tls.ca_cert_path | string | no | — |
cluster_mode.tls.cert_path | string | no | — |
cluster_mode.tls.enabled | boolean | yes | — |
cluster_mode.tls.key_path | string | no | — |
cluster_mode.tls.require_client_cert | boolean | no | — |
duckdb_persistence
| Key | Type | Required | Schema default |
|---|---|---|---|
duckdb_persistence | object | no | — |
duckdb_persistence.checkpoint_interval_ms | integer | no | 15000 |
duckdb_persistence.checkpoint_threshold_mb | integer | no | 64 |
duckdb_persistence.commit_interval_msSchedule for local DuckDB commits, in milliseconds. It is not an end-to-end visibility guarantee. | integer | no | 1000 |
duckdb_persistence.dry_run | boolean | no | — |
duckdb_persistence.enabled | boolean | yes | — |
duckdb_persistence.max_queued_bytes_per_writer | integer | no | 67108864 |
duckdb_persistence.max_writers | integer | no | — |
duckdb_persistence.storage_path | string | yes | — |
duckdb_persistence.super_dry_run | boolean | no | — |
duckdb_persistence.total_databases | integer | no | — |
ducklake
| Key | Type | Required | Schema default |
|---|---|---|---|
ducklake | array of object | no | — |
ducklake[] | object | yes | — |
ducklake[].attach | string | yes | — |
ducklake[].data_path | string | yes | — |
ducklake[].enabled | boolean | no | true |
ducklake[].name | string | yes | — |
ducklake[].processing_interval_seconds | integer | no | 30 |
ducklake[].reconciliation | object | no | {"interval_minutes":60,"max_concurrent_registrations":10,"on_startup":true} |
ducklake[].reconciliation.interval_minutes | integer | no | 60 |
ducklake[].reconciliation.max_concurrent_registrations | integer | no | 10 |
ducklake[].reconciliation.on_startup | boolean | no | true |
ducklake[].topics | array of string | no | — |
http_ingestion
kafka
| Key | Type | Required | Schema default |
|---|---|---|---|
kafka | object | yes | — |
kafka.advertised_host | string | no | null |
kafka.advertised_port | integer | no | null |
kafka.bind_address | string | yes | — |
kafka.enabled | boolean | yes | — |
kafka.max_connections | integer | no | 2048 |
kafka.port | integer | yes | — |
kafka.rate_limiting | object | no | {"burst_limit":15000,"disabled":false,"global_limit":100000,"max_requests_per_second":10000} |
kafka.rate_limiting.burst_limit | integer | no | 15000 |
kafka.rate_limiting.disabled | boolean | no | false |
kafka.rate_limiting.global_limit | integer | no | 100000 |
kafka.rate_limiting.max_requests_per_second | integer | no | 10000 |
kafka.relay_request_timeout_secs | integer | no | 60 |
kafka.relay_setup_timeout_secs | integer | no | 10 |
kafka.tls | object | no | {"cert_path":null,"cert_pem":null,"enabled":false,"key_path":null,"key_pem":null} |
kafka.tls.cert_path | string | no | — |
kafka.tls.cert_pem | string | no | — |
kafka.tls.enabled | boolean | yes | — |
kafka.tls.key_path | string | no | — |
kafka.tls.key_pem | string | no | — |
logging
| Key | Type | Required | Schema default |
|---|---|---|---|
logging | object | yes | — |
logging.rust_log | string | yes | — |
metrics
| Key | Type | Required | Schema default |
|---|---|---|---|
metrics | object | yes | — |
metrics.flush_interval_msMetric flush interval, in milliseconds. | integer | yes | — |
metrics.portPort for the Prometheus endpoint; keep it on the monitoring network. | integer | yes | — |
oauth_providers
otlp
| Key | Type | Required | Schema default |
|---|---|---|---|
otlp | object | no | null |
otlp.auto_provision_tables | boolean | no | false |
otlp.default_catalog | string | no | |
otlp.default_schema | string | no | main |
otlp.enabled | boolean | yes | — |
otlp.max_batch_size | integer | no | 1000 |
otlp.port | integer | no | 4317 |
otlp.topic_mapping | one of the documented shapes | no | {"catalog":"","schema":"main","type":"per_service"} |
pgwire
| Key | Type | Required | Schema default |
|---|---|---|---|
pgwire | object | yes | — |
pgwire.connection_timeout_seconds | integer | no | 1800 |
pgwire.enabled | boolean | yes | — |
pgwire.idle_timeout_seconds | integer | no | 900 |
pgwire.init_timeout_seconds | integer | no | 120 |
pgwire.initialization_sql | string | no | |
pgwire.max_connections | integer | no | 150 |
pgwire.metadata_backup_backend | string | no | — |
pgwire.metadata_backup_interval_seconds | integer | no | — |
pgwire.metadata_backup_path | string | no | — |
pgwire.metadata_db_path | string | no | ./metadata.duckdb |
pgwire.port | integer | yes | — |
pgwire.query_timeout_seconds | integer | no | 300 |
pgwire.refresh_interval_seconds | integer | no | 5 |
pgwire.tenant_data_base_path | string | no | /tmp/boilstream/tenants |
pgwire.tls | object | yes | — |
pgwire.tls.cert_path | string | no | — |
pgwire.tls.cert_pem | string | no | — |
pgwire.tls.enabled | boolean | yes | — |
pgwire.tls.key_path | string | no | — |
pgwire.tls.key_pem | string | no | — |
processing
| Key | Type | Required | Schema default |
|---|---|---|---|
processing | object | yes | — |
processing.bg_dry_run | boolean | no | — |
processing.buffer_pool_max_size | integer | yes | — |
processing.data_processing_threads | integer | yes | — |
processing.dry_run | boolean | no | — |
processing.enable_5mb_part_padding | boolean | no | true |
processing.include_metadata_columns | boolean | yes | — |
processing.max_file_size_mb | integer | no | 1024 |
processing.max_flush_latency_ms | integer | no | 10000 |
processing.max_part_size_mb | integer | no | 32 |
processing.parquet | object | yes | — |
processing.parquet.compression | string | yes | — |
processing.parquet.dictionary_enabled | boolean | yes | — |
processing.schema_validation_enabled | boolean | yes | — |
processing.snapshot_interval_minutesSchedule for completing historical files, in minutes. Upload and table publication remain separate. | integer | no | 10 |
processing.window_queue_capacity | integer | yes | — |
rate_limiting
| Key | Type | Required | Schema default |
|---|---|---|---|
rate_limiting | object | yes | — |
rate_limiting.base_size_bytes | integer | no | 4096 |
rate_limiting.burst_limit | integer | yes | — |
rate_limiting.disabled | boolean | yes | — |
rate_limiting.global_limit | integer | yes | — |
rate_limiting.max_requests | integer | yes | — |
server
| Key | Type | Required | Schema default |
|---|---|---|---|
server | object | yes | — |
server.admin_flight_port | integer | no | — |
server.consumer_flight_port | integer | no | — |
server.flight_base_port | integer | yes | — |
server.flight_thread_count | integer | no | 1 |
server.router | object | yes | — |
server.router.batch_size | integer | yes | — |
server.router.retry_delay_ms | integer | yes | — |
server.router.spsc_queue_capacity | integer | yes | — |
server.tokio_worker_threads | integer | no | — |
server.valkey_url | string | no | — |
storage
tantivy
| Key | Type | Required | Schema default |
|---|---|---|---|
tantivy | object | no | null |
tantivy.arena_mb | integer | no | 50 |
tantivy.bundle_buffer_pool_size | integer | no | 8 |
tantivy.bundle_buffer_size_mb | integer | no | 64 |
tantivy.channel_capacity | integer | no | 32 |
tantivy.commit_interval_secsSearch index commit schedule, in seconds. It is not a maximum search latency. | integer | no | 30 |
tantivy.data_dir | string | yes | — |
tantivy.enable_for_all_topicsEnable indexing for every provisioned topic rather than selecting tables individually. | boolean | no | false |
tantivy.enabledEnable the search service; table-level indexing must also be configured. | boolean | yes | — |
tantivy.hot_segments_to_keep | integer | no | 2 |
tantivy.s3_upload_enabled | boolean | no | true |
tantivy.upload_retry_base_delay_ms | integer | no | 1000 |
tantivy.upload_retry_max | integer | no | 10 |
tantivy.writer_threads_per_topic | integer | no | 4 |
tls
| Key | Type | Required | Schema default |
|---|---|---|---|
tls | object | yes | — |
tls.cert_path | string | no | — |
tls.cert_pem | string | no | — |
tls.disabled | boolean | yes | — |
tls.grpc_default_ssl_roots_file_path | string | no | — |
tls.key_path | string | no | — |
tls.key_pem | string | no | — |
Change a setting
Section titled “Change a setting”Use the configuration procedure, preserve the complete generated file, and validate the exact deployment profile before rollout.