Settings
This page explains how to configure Aidbox using settings. Settings control how your Aidbox instance behaves and can be managed using Aidbox UI and environment variables.
How settings work
Each setting in Aidbox:
- Has a unique name that identifies it (like
fhir.search.defaultparams.count
) - Can be configured through the UI or environment variables
- Includes a description explaining its purpose
- Maps to a specific environment variable name
- May have a default value (for example,
fhir.search.defaultparams.count
defaults to100
)
Setting categories
You can find all settings organized into these categories in the Aidbox UI under the Settings
tab:
- General: Core server configuration options
- FHIR: Settings specific to FHIR functionality
- Security and Access Control: Authentication, authorization, audit logging settings
- Modules: Settings for individual Aidbox modules
- Web: HTTP server configuration
- Database: Database connection and connection pool settings
- Observability: Logging, monitoring, and debugging options
- Zen: Legacy settings (Note: Will be removed in July 2025)
Setting groups
Some settings have special properties:
- Sensitive Settings: These contain secure data like passwords and API keys
- Can only be set using environment variables
- Example:
security.encryptsecret
- Not editable in the UI
- Restart Required Settings: Changes to these require an Aidbox server restart
- Example:
db.pool.maximumpoolsize
- The UI will notify you when a restart is needed
Full details are available in the reference documentation.
Settings precedence
When Aidbox starts up, it determines setting values in this order:
- Environment variables (highest priority)
- * Take precedence over all other sources
- * Cannot be changed using the UI
- * Best practice for production environments
- 2. User-defined settings in UI
- * Applied when no environment variable exists
- * Can be changed using the UI
- 3. System defaults (lowest priority)
- * Built-in values provided by Aidbox
- * Used when no other value is specified
This hierarchy provides:
- Flexible and quick configuration during development via UI
- Secure, consistent configuration in deployment scripts and CI/CD pipelines via environment variables
Enable runtime settings editing
A user can enable runtime editing of Aidbox settings using the settings.mode
in read-write
value.
Possible values:
readwrite
: enables editing Aidbox settings using the UI. This mode disables loading configuration from the Aidbox configuration project (zen).readonly
: reads settings values from environment variables and Aidbox settings in readonly mode. This mode disables loading configuration from the Aidbox configuration project (zen).legacy
: reads configuration values from the legacy Aidbox configuration project (zen) in readonly mode. This mode exists for backward compatibility. It will be obsolete in July 2025. Read more.
For example, a user can set BOX_SETTINGS_MODE: read-write
in the environment variables to enable runtime editing of Aidbox settings.
Starting from March 2025 existing instances will use legacy
mode for backward compatibility. All new instances by default will use read-write
. Starting from July 2025 legacy
option will not be available.
Product-specific settings
In some cases there're specific settings defined in products: Smartbox, Multibox, etc. These settings will have
name format.
Settings reference documentation
You can find a complete list of settings in the reference documentation