Configuration reference
This page describes every field of the Drovio Server configuration file
(settings.conf, JSON format). See Configure Drovio Server
for the file location on your platform and how to apply changes.
Changes are applied live, with two exceptions
The configuration file is watched: a change takes effect within a few seconds,
without restarting the service. Two families are read at startup only and need a
restart: plugin_management, and the fields that define
the HTTP listener, namely tls, http_port and https_port. On Linux,
keystore and keystore_password are reapplied without a restart when the
server receives SIGUSR2. See Enable HTTPS.
plugin_management
| Field |
Type |
Comment |
plugins |
Array |
List of plugins (e.g. the Slack integration). |
plugins[].classpath |
String |
JAR plugin path. |
plugins[].path |
String |
Package, e.g. com.drovio.server.slack. |
plugins[].ext |
String |
Always java. |
plugins[].base_address |
String |
Depends on the plugin, e.g. drovio.server.slack. |
http
| Field |
Type |
Comment |
url |
String |
Replace with the machine hostname or IP (required for transactional emails and invites). |
num_instances |
Number |
Number of HTTP listeners. Should be 0 (auto) or match the available CPU cores on the machine. |
session_timeout |
Number |
Session lifetime in ms (session expires when there's no activity from the user). |
tls |
Boolean |
Enable HTTPS. See Enable HTTPS. |
tls_protocols |
Array |
String array, e.g. ["TLSv1.2", "TLSv1.3"]. When no value is specified, TLSv1.2 and TLSv1.3 are enabled by default. |
tls_cipher_suites |
Array |
String array, e.g. ["TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", …]. |
keystore |
String |
Certificate used when TLS is enabled, packed as a JKS. Reloaded on SIGUSR2 (Linux). See Enable HTTPS. |
keystore_password |
String |
JKS password. Reloaded on SIGUSR2 (Linux). See Enable HTTPS. |
http_port |
Number |
Set to 80 (default: 8090). |
https_port |
Number |
Set to 443 (default: 8090); requires TLS to be enabled. |
admin_ip_whitelist |
Array (Strings) |
List of IPs allowed to access /admin, optionally with masks (e.g. "192.168.1.10", "172.42.13.0/24"). |
url_share_your_screen |
String |
URL leading to where users can download the app (shown in various emails). |
url_support |
String |
URL for support purposes. |
xsrf_enabled |
Boolean |
Enable cross-site request forgery protection (default: true). |
deny_xframe |
Boolean |
Disable the ability to display the client in a frame (default: true). |
drain_delay |
Number |
The server closes all WebSocket connections within this delay (in seconds) when receiving a SIGUSR1 signal (default: 180). |
drain_period |
Number |
The server closes WebSocket connections every period (in seconds) when receiving a SIGUSR1 signal (default: 10). |
prevent_indexing |
Boolean |
Prevent the server resources from being indexed by bot crawlers (such as Google). |
jwt_expiration_delay |
Number |
Expiration delay (in seconds) of the JWT used for authentication when using the meeting API. |
jwt_secret |
String |
Secret of the JWT used for authentication when using the meeting API. |
websocket_allowed_origins |
String |
Regular expression matching the origins allowed to open a WebSocket connection. Empty by default, which installs no CORS handler. |
http → session_store
| Field |
Type |
Comment |
type |
String |
Type of store used to manage sessions. Either default (in memory) or redis (default: default). |
session_store → on_change
| Field |
Type |
Comment |
transfer_sessions |
Boolean |
When changing the store during runtime, if true, all existing sessions are inserted into the new sessions store (default: false). |
clear_old_store |
Boolean |
When changing the store during runtime, if true, clear all sessions from the old sessions store (default: false). |
close_delay |
Number |
Delay in ms before stopping the old sessions store after the new store is set up. Avoids interrupting pending queries to the old store (default: 5000). |
session_store → redis
| Field |
Type |
Comment |
connections |
Array (Strings) |
List of connection strings to redis servers. Addresses follow redis://[:password@]host[:port][/db-number] (e.g. "redis://127.0.0.1:7001"). rediss is also possible. |
master |
String |
Name of the master (default: master). |
max_pool_size |
Number |
Max number of connections in the pool (default: 6). |
max_pool_waiting |
Number |
Max waiting handlers to get a connection in a queue (default: 24). |
type |
String |
Type of client: standalone, sentinel, cluster or replication (default: standalone). |
role |
String |
Role in HA mode: master, replica or sentinel. No value set by default. |
password |
String |
Password for cluster / sentinel mode. |
pool_cleaner_interval |
Number |
Period of the task that closes connections with an invalid state. -1 means the task is never executed (default: -1). |
pool_recycle_timeout |
Number |
Timeout (in ms) after which a connection is recycled (default: 15000). |
redis → tls
Only used when the connection strings use the rediss scheme.
| Field |
Type |
Comment |
verify_hostname |
Boolean |
Check that the certificate matches the host being connected to. |
trust_all |
Boolean |
Accept any certificate. Leave to false outside of testing. |
ca_certificate_path |
String |
Path to the CA certificate used to validate the Redis certificate. |
database
| Field |
Type |
Comment |
host |
String |
Database hostname. |
port |
Number |
Database port. |
database |
String |
Database name. |
user |
String |
Database user. |
password |
String |
Automatically generated when you deploy a package. |
ssl_mode |
String |
TLS policy for the connection, following PostgreSQL semantics: disable, allow, prefer, require, verify-ca or verify-full (default: prefer). |
database → pool_options → main
| Field |
Type |
Comment |
max_size |
Number |
Number of simultaneous connections; set to your actual DB capacity (default: 30) in conjunction with licensing max size. |
connect_timeout |
Number |
Connection timeout (in seconds); adapt to your DB capacity (default: 30). |
idle_timeout |
Number |
Timeout (in seconds) after which an idle connection can be closed to release server resources (default: 600). |
database → pool_options → licensing
| Field |
Type |
Comment |
max_size |
Number |
Number of simultaneous connections; set to your actual DB capacity (default: 30) in conjunction with main max size. |
connect_timeout |
Number |
Connection timeout (in seconds); adapt to your DB capacity (default: 30). |
idle_timeout |
Number |
Timeout (in seconds) after which an idle connection can be closed (default: 600). |
database → replicas
Read replica connection settings. Fields port, database, user, password
and ssl_mode mirror the primary database section, and the nested
pool_options → main / pool_options → licensing behave exactly like the primary
pool options above but apply to the replica instance.
maintenance
| Field |
Type |
Comment |
enabled |
Boolean |
Should not be modified here; use the admin panel to enable maintenance mode. |
message |
String |
Maintenance message. Should not be modified here; use the admin panel. |
webrtc
| Field |
Type |
Comment |
turn_servers_secret |
String |
If TURN server(s) are used, the shared secret token. |
turn_servers_auth_timeout |
Number |
If TURN servers are used, timeout for automatically generated credentials. |
ice_servers |
Array |
List of STUN / TURN servers used (default: Google STUN server and no TURN server). |
ice_servers[].url |
String |
STUN or TURN URL, e.g. stun:192.168.1.23:443, turn:192.168.1.23?transport=tcp. |
service_quality |
Object |
Bitrate range used for audio / video. |
service_quality.minimum |
Number |
Minimum bitrate in kbps. |
service_quality.maximum |
Number |
Maximum bitrate in kbps. |
See Relay server (TURN) for a full walkthrough.
smtp
| Field |
Type |
Comment |
enabled |
Boolean |
Enable email notifications. |
hostname |
String |
e.g. smtp.example.com. |
port |
Number |
25, 465, 587… |
start_tls |
String |
disabled, optional or required. |
ssl |
Boolean |
true or false. |
login |
String |
none, disabled or required. |
username |
String |
If login is enabled, basically an email address. |
password |
String |
SMTP password. |
from |
String |
Format: Drovio <drovio@example.com>. |
admin_email |
String |
Email address of the support team. |
trust_all |
Boolean |
Bypass any TLS issues. |
own_hostname |
String |
Set to your domain name, e.g. example.com. |
email_templating
| Field |
Type |
Comment |
transport |
String |
Transport used to deliver templated emails (default: smtp, using the smtp section above). |
users
| Field |
Type |
Comment |
add_all_contacts |
Boolean |
If true, when creating a user, add the user as a contact for all existing users. |
users → remove_inactive
| Field |
Type |
Comment |
enabled |
Boolean |
Enable automatic user removal after some period of inactivity. |
inactive_period |
Number |
Inactive period (in seconds) after which the user is automatically removed (default: 7776000, 90 days). |
users → license_allocation
| Field |
Type |
Comment |
enabled |
Boolean |
Enable automatic license allocation (assigns licenses to users when they sign in or create an account). |
mode |
String |
Either floating (when a user signs in) or new_user (when a user creates an account). |
max_users |
Number |
Automatically assigns licenses that let users invite up to max_users other users in their session (set it to 1, 4 or 999, depending on the licenses you acquired). |
license_allocation → low_count_notification
| Field |
Type |
Comment |
enabled |
Boolean |
Send an email to the support email defined above when the license pool is near exhaustion. |
threshold |
Number |
Percentage of free licenses in the pool below which an email is sent. |
users → auth → local
| Field |
Type |
Comment |
enabled |
Boolean |
Enable or disable classic authentication (email / password). |
allow_signup |
Boolean |
Allow users to create their own accounts using the app. |
users → auth → ldap
| Field |
Type |
Comment |
enabled |
Boolean |
Enable LDAP / AD. |
url |
String |
Hostname for the LDAP / AD server: ldap://ldap.example.com or ldaps://ldap.example.com, with optional port (e.g. ldap://ldap.example.com:389). |
service_account_dn |
String |
Account that can look up other accounts (e.g. cn=admin,dc=example,dc=com or Administrator@domain.com). |
service_account_password |
String |
Service account password. |
base |
String |
Organizational unit where user accounts are located (e.g. ou=users,dc=example,dc=com). |
search_filter |
String |
Which field contains the user email. On LDAP use mail; on Active Directory use mail or userPrincipalName (default: (&(objectClass=*)(mail={0}))). |
ca_certificate_path |
String |
Path to the CA certificate used to validate the server certificate when connecting over ldaps. |
users → auth → saml
| Field |
Type |
Comment |
enabled |
Boolean |
Enable SAML (cannot be enabled if OpenID Connect is enabled). |
keystore |
String |
JKS path, automatically generated when the file does not exist. |
keystore_password |
String |
JKS store password. |
private_key_password |
String |
JKS private key password. |
idp_metadata_path |
String |
Identity Provider metadata XML file path. |
sp_metadata_path |
String |
Where the Service Provider metadata are exported at every start. The server never reads this file back: the metadata are held in memory and served at /sso/metadata. Leave empty to skip the export. See SSO. |
sp_entity_id |
String |
Service Provider Entity ID, generally the server URL (when not defined, the complete callback URL is used). |
passive |
Boolean |
When the IdP doesn't require any user input. |
force_auth |
Boolean |
Force users to authenticate with the IdP each time they sign in with the app. |
use_name_qualifier |
Boolean |
Per the SAML spec the request must not contain a NameQualifier if the SP entity is in nameid-format:entity; however some IdPs require it. |
wants_assertions_signed |
Boolean |
Sign assertions when they need to be processed separately from the response. |
authn_request_signed |
Boolean |
Sign the authentication requests. |
email_attribute |
String |
IdP attribute name to which emails should be mapped. |
username_attribute |
String |
IdP attribute name to which usernames should be mapped. |
accepted_skew |
Number |
SAML time skew (SAML 1.1). |
max_auth_lifetime |
Number |
In seconds; should match your IdP's (e.g. 8 hours for ADFS, 14 days for Google). |
See SSO: SAML & OIDC for the keystore and callback URLs.
users → auth → oidc
| Field |
Type |
Comment |
enabled |
Boolean |
Enable OpenID Connect (cannot be enabled if SAML is enabled). |
client_id |
String |
OIDC Client ID. |
secret |
String |
OIDC Secret. |
discovery_uri |
String |
OIDC Discovery URI. |
email_attribute |
String |
IdP attribute name to which emails should be mapped. |
username_attribute |
String |
IdP attribute name to which usernames should be mapped. |
custom_params |
Array |
Custom parameters. |
custom_params[].key |
String |
e.g. prompt. |
custom_params[].value |
String |
e.g. consent. |
users → remove_unvalidated
| Field |
Type |
Comment |
enabled |
Boolean |
Whether to remove unvalidated accounts automatically. |
time |
String |
Time when to launch this task (e.g. 05:00). |
offset |
String |
UTC offset (e.g. +01:00). |
remove_delay |
Number |
Delay (in days) after which unvalidated local accounts are removed. Disabled when negative (default: -1). |
limit |
Number |
Maximum number of accounts to delete during each execution (default: 30). |
users → auth
| Field |
Type |
Comment |
sso_auth_token_lifetime |
Number |
Lifetime of any generated SSO auth token (default: 10 minutes). |
users → email_code
Single-use codes sent by email, used to confirm an address or to recover an
account.
| Field |
Type |
Comment |
enabled |
Boolean |
Enable email codes (default: true). |
ttl |
Number |
Lifetime of a code in seconds (default: 900, 15 minutes). |
max_per_day |
Number |
Maximum number of codes sent to one email address per day, all purposes taken together. 0 or less disables the quota (default: 10). |
alert_threshold_per_hour |
Number |
Number of codes sent per hour above which the administrator is alerted. 0 or less disables the alert (default: 500). |
logging
| Field |
Type |
Comment |
severity |
String |
Logging verbosity: off, error, warning, info, debug or trace (default: info). |
loggers.<key> |
String |
<key> can be any class or package. Overrides the logging verbosity for the specified class or package (same values as severity). |
reporting
| Field |
Type |
Comment |
enabled |
Boolean |
Enable automatic usage report generation. |
frequency |
String |
Usage report frequency: daily, weekly or monthly. |
hour |
Number |
Usage report generation hour, used with all frequencies. |
day_of_week |
Number |
Day of week for weekly reports; 1 = Sunday, 2 = Monday, and so on. |
day_of_month |
Number |
Day of month for monthly reports (1-31); value 31 triggers a report on the last day of each month. |
options |
Array (Strings) |
Event types to include: user_login, session_lifetime or swap_request. |
anonymous |
Boolean |
Mask any PII data. |
recipients |
Array (Strings) |
List of email addresses where reports are sent. |
archive_name_pattern |
String |
Filename pattern for the report data archive, e.g. My_archive generates My_archive [2019-08-01 14.00.00 to 2019-08-02 14.00.00]. |
remote_desktop
| Field |
Type |
Comment |
enabled |
Boolean |
Enable the remote desktop feature. |
app_update
| Field |
Type |
Comment |
base_url |
String |
Don't change the default value. Cloud-dedicated field. |
anonymize
| Field |
Type |
Comment |
enabled |
Boolean |
Enable the daily process to anonymize data. |
when |
String |
When the process runs: now (after the server starts) or an hour in HH:mm 24-hour format (e.g. 17:30). |
offset |
String |
Time offset used to schedule the process (e.g. +02:00). Defaults to the server offset. |
limit |
Number |
Maximum number of users to anonymize during one execution (default: 30). |
monitoring
| Field |
Type |
Comment |
enabled |
Boolean |
Mount the monitoring routes under /api/monitoring (default: false). |
meeting
| Field |
Type |
Comment |
url |
String |
URL to open to manage the meetings. |
enabled |
Boolean |
Enable the meeting button. |
calls
| Field |
Type |
Comment |
expiration_delay |
Number |
Delay (in seconds) after which a disconnected call attendee is considered as having left the call (default: 60). |
calls → clean_task
| Field |
Type |
Comment |
enabled |
Boolean |
Enable the task that removes old call data (default: true). |
frequency |
Number |
Frequency (in seconds) of the task that removes old call data (default: 1 day). |