Overview
Configuration is loaded in this order (later overrides earlier):- Built-in defaults
config.yaml(optional)- Environment variables with
FHIR__prefix (e.g.FHIR__SERVER__PORT) DATABASE_URLfallback fordatabase.urlwhenFHIR__DATABASE__URLis unset- Runtime overrides in PostgreSQL (Admin UI / Admin API)
__: FHIR__DATABASE__URL → database.url. Arrays use comma: FHIR__SERVER__CORS_ORIGINS=https://a.com,https://b.com.
Config Reference
server
database
fhir
fhir.interactions — Toggle FHIR operations. All default to true.
system: capabilities, search, history, delete, batch, transaction, history_bundletype_level: create, conditional_create, search, history, conditional_update, conditional_patch, conditional_deleteinstance: read, vread, update, patch, delete, history, delete_history, delete_history_versioncompartment: searchoperations: system, type_level, instance
fhir.search
fhir.fhirpath
fhir.referential_integrity
fhir.default_packages — core, extensions, terminology. Each: install, install_examples, include_resource_types, exclude_resource_types (mutually exclusive).
fhir.packages — Additional packages: name, version, install_examples, include_resource_types, exclude_resource_types.
fhir.capability_statement — Metadata for GET /metadata: id, name, title, publisher, description, software_name, software_version, contact_email, supported_resources.
workers
logging
logging.audit — Audit logging for FHIR operations.
logging.audit.interactions — Per-interaction audit toggles: read, vread, history, search, create, update, patch, delete, capabilities (default: false), operation, batch, transaction, export.
ui
auth
auth.oidc — Required when auth.enabled=true: issuer_url, audience. Optional: jwks_url, jwks_cache_ttl_seconds (300), http_timeout_seconds (5).
Example
Runtime Configuration
A subset of settings can be changed at runtime via Admin UI (Settings) or Admin API (GET/PUT /admin/config/{key}). Stored in PostgreSQL; multi-instance sync via LISTEN/NOTIFY. See apps/server/src/runtime_config/keys.rs for supported keys.