Optional environment variables
Last updated
Was this helpful?
Last updated
Was this helpful?
URL to use in links between resources.
Default is
Parameters prefixed with AIDBOX_DB_PARAM_
will be passed to .
If provided, enables mode to push logs to ElasticSearch
value
is one of: none
, estimate
, accurate
.
Sets the default total search parameter value.
if you use box_search_default__params_total=none
you still get total
when:
you don't use _page
the number of returned resources is less than _count
(by default is 100).
Basic auth credentials for ElasticSearch. API key is not supported.
Log batch size used to optimize log shipping performance. The default value is 200
Timeout to post a batch to ElasticSearch. If there is not enough records to reach full batch size
Custom index format string. The default value is 'aidbox-logs'-yyyy-MM-dd.
If provided, enables mode to pipe logs as json into the file by specified path. If ElasticSearch URL is provided then the file is used as a fallback in case if ElasticSearch is not available
Sets the limit of log records to push into the file. When the limit is reached, the current log file is renamed with ".old" postfix and a new log file is created. The default value is "10000"
log-level
is one of: off
, fatal
, error
, warn
, info
, debug
, trace
, all
.
By setting one of these values you would also get all the values to the left. e.g. if you set log level to warn
you would also get log events with fatal
and error
levels (off
is excluded).
log-level
is one of: off
, fatal
, error
, warn
, info
, debug
, trace
, all
.
By default log-level
is error
.
By setting one of these values you would also get all the values to the left. e.g. if you set log level to warn
you would also get log events with fatal
and error
levels (off
is excluded).
If provided, pushes logs into _logs table of aidboxdb. Can be useful for testing and debugging
If provided, enables mode to push logs to DataDog
Size of log batch, used to optimize performance of log shipping. The default value is 200
Timeout (in ms) to post a batch to DataDog if there are not enough records to reach full batch size. Default value: 3600000 (1 hour)
Fallback file to write logs in if uploading to DataDog fails
Overrides createdAt extension url, default is ex:createdAt
If provided, activates transforming unknown polymorphic extensions to the correct Aidbox format avoiding keeping them at FHIR-format.
For example, extension.*.valueString
stored as extension.0.value.string
Specifies entry point for loading Aidbox configuration.
Enables watcher which reloads zen namespaces when they change.
<source>
is either url
, or path
.
url
is used to load project from remote location
path
is used to load project from local location
<format>
is either zip
, or dir
, or edn
.
Table of sources and format compatibility:
source/format
zip
dir
edn
url
✓
✓
path
✓
✓
✓
Overrides the default count search parameter value. 100 is the default value. The provided value should be <= 1000
false
to use preferred version of zen-search (true
to backward compatibility zen search)
Use conformant S256 code challenge validation scheme.
Maximum size of request body in bytes. Default is 8388608 (8 MiB)
Count of HTTP server web workers. Default is 8
Enables synchronous terminology bundle import
Create a user when using foreign JWT access token and the user does not already exist.
BOX_FEATURES_GRAPHQL_WARMUP__ON__STARTUP=<boolean>
Warmup graphql caches on startup
AIDBOX_COMPLIANCE=enabled
:
- Adds various attributes and endpoints info to CapabilityStatement
- Sanitises CapabilityStatement (i.e. removes attributes containing null
values and empty arrays)
- Adds /fhir
to base URL for FHIR search parameters definitions in CapabilityStatement
- Adds AIDBOX_BASE_URL in Bundle.link.url
- Adds FHIR date search parameter validation on lastUpdated
search parameter
- Adds "alg": "RS256" entry for JWKS
- Changes validation error status to 422 (instead of 400)
- Changes cache-control
header to no-store
on authorization code auth flow (instead of no-cache, no-store, max-age=0, must-revalidate
)
- Removes Bundle.entry
if empty
Parameters prefixed with AIDBOX_DB_PARAM is passed to JDBC PostgreSQL connection string.
For an instance:
AIDBOX_DB_PARAM_SSL=true
AIDBOX_DB_PARAM_SSLMODE=verify-ca
will add ssl=true&sslmode=verify-ca
params to connection string.
The next step is to configure your database to accept SSL connections. You can do that by passing your own postgresql.conf with argument -c config_file passed into the db containter and probably you want to set up postgres to receive only SSL connections, you can do that by passing your own pg_hba.conf file with -c hba_file
PostgreSQL extensions can create objects. By default PostgreSQL sets up extension to use current schema. If you are going to share database between multiple applications, we recommend to create a dedicated schema for the extensions.
Use AIDBOX_EXTENSION_SCHEMA
environment variable to set up Aidbox to use dedicated extension schema:
Note: if your database already has extensions installed and you change extension schema (or current schema if extension schema is not configured), then you need to drop extensions from previous schema:
Then change AIDBOX_EXTENSION_SCHEMA
and restart Aidbox.
Aidbox generates JWT tokens for different purposes:
As part of OAuth 2.0 authorization it generates authorization_code in JWT format
If you specify auth token format as JWT, then your access_token and refresh_token will be in JWT format.
Aidbox supports two signing algorithms: RS256 and HS256. RS256 expects providing private key for signing JWT and public key for verifing it. As far as HS256 needs only having secret for both operations.
Attention: by default Aidbox generates both keypair and secret on every startup. This means that on every start all previously generated JWT will be invalid. In order to avoid such undesirable situation, you may pass RSA keypair and secret as Aidbox parameters.\
It is required to pass RSA keypair and secret as Aidbox parameters if you have multiple replicas of the same Aidbox/Multibox instance.
Generate private key with openssl genrsa -out key.pem 2048
in your terminal. Private key will be saved in file key.pem
. To generate public key run openssl rsa -in key.pem -outform PEM -pubout -out public.pem
. You will find public key in public.pem
file.
Use next env vars to pass RSA keypair:
To generate random string for HS256 algoritm you can run openssl rand -base64 36
command. The length of the random string must be more than 256 bits (32 bytes).
use next env var to pass secret param:
By default Aidbox and Multibox runs with 8 web workers and 8 DB connection pool size. That means that Aidbox can process at same time 8 concurrent connections.
A good practice is stay pool size the same as CPU count of your database. For example, if your database has 16 CPU cores you can set BOX_DB_POOL_MAXIMUM__POOL__SIZE=16
. Box web workers count is dependent on your load profile. For example, if you have a lot of fast read queries you can set BOX_WEB_THREAD
equal x2 or x3 of your DB pool size (32 or 48). Or if you have a lot of batch insert queries we recommend stay web workers count as the same DB pool size.
You can configure this parameter using following environment variables.
By default, Aidbox collects and sends high-level anonymous API usage statistics used solely for Aidbox improvement.
Disable sending anonymous errors data.
Disable sending anonymous API usage statistics.
By default, Aidbox works in multi-replica mode, so more than one Aidbox replica could be connected to the same database. If you are sure you'll be running only one Aidbox replica, you could disable replication mechanism with this variable. Check for additional information.
Enables _debug=policy
for
entrypoint
is in format specified .
Schema for PostgreSQL extensions. Default is current schema. See .
Use FHIR compliant .
Enables strict date time validation in JSON schema validation engine per .
Enables su
request header .
Enables skip resource reference validation .
These parameters will enable SSL connection from Aidbox to postgresql Docs on JDBC PostgreSQL connection string are here:
By default Aidbox uses public
schema. If you want Aidbox to use different schema, set using environment variable AIDBOX_DB_PARAM_CURRENT_SCHEMA
: