-
Notifications
You must be signed in to change notification settings - Fork 142
Server Configuration Options
This is a list of options contained in the sormas.properties file that can be used to configure and customize SORMAS. If you want to learn more about how a SORMAS server can be customized, including an instruction on where and how to change these options, please have a look at the Server Customization Guide.
- (2024/11/04) Changed automatic case classification property and added
negativeCovidTestsMaxAgeDays
- (2022/06/17) Changed example value for
interface.demis.jndiName
- (2022/03/25) Added
audit.logger.config
,audit.source.site
andsormas2sormas.districtExternalId
; RemoveddaysAfterCaseGetsArchived
anddaysAfterEventGetsArchived
- (2022/03/04) Added
interface.patientdiary.tokenLifetime
,map.tiles.url
andmap.tiles.attribution
- (2022/01/20) Added
sormasStats.url
,interface.patientdiary.acceptPhoneContact
,interface.patientdiary.frontendAuthurl
andsurvnet.versionEndpoint
- (2021/11/08) Added
central.location.sync
, removedsormas2sormas.retainCaseExternalToken
- (2021/10/18) Added
sormas2sormas.ignoreProperty.additionalDetails
,sormas2sormas.ignoreProperty.externalId
,sormas2sormas.ignoreProperty.externalToken
andsormas2sormas.ignoreProperty.internalToken
- Country Settings
- Mobile Application
- File Paths
- Server Settings
- Communication and Notifications
- Custom Branding
- Authentication
- Geocoding Service
- SORMAS Central
- SORMAS2SORMAS Interface
- SurvNet Interface
- Symptom Journals and Patient Diaries
- DEMIS Interface
country.locale
The default locale each user will be using as long as they don't overwrite it in their settings. It impacts both the language that SORMAS is displayed in as well as the date and number formats. This property must be filled in for SORMAS to work properly. If it's not specified, the application will try to fall back to English.
Default: en
Examples: en, en-US, en-NG, de-DE, fr-FR
country.name
The name of the country this SORMAS instance is used in. If the database contains countries, this property must be filled in and match the name of one of those countries for SORMAS to work properly. The country will be used to pre-fill the country fields of locations.
country.epidprefix
If your country is using so-called EPID numbers to identify cases, you need to specify the country prefix here.
Examples: NIE, GHA
country.center.latitude
country.center.longitude
GPS coordinates of the geographical center of the country SORMAS is used in. The maps on the Dashboard and the Statistics screen will be centered to these coordinates if no user region is provided or map.usecountrycenter is set to true.
Defaults: 0 (latitude), 0 (longitude)
Examples: 52.2721095 (latitude), 10.3878027 (longitude)
map.usecountrycenter
Forces the dashboard map to always center on the country.center
coordinates defined above.
Default: true
Possible Values: true, false
map.zoom
Initial zoom level of the maps on the Dashboard and the Statistics screen.
Default: 1
map.tiles.url
URL used to retrieve the tileset for maps.
Example: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
map.tiles.attribution
Attribution of the map tileset, required for tiles from OpenStreetMap (see https://www.openstreetmap.org/copyright)
csv.separator
The character used in .csv files to separate columns from each other. Should match the separator that is commonly used in the locale specified in country.locale
.
Default: ,
Examples: , or ; - you can use \u0020 for a whitespace or \u0009 for a horizontal tab
app.url
The URL that can be used to download the Android .apk file. Must contain a placeholder for the app version, or a specific version number (not recommended). If you want to use the mobile app, this property must be filled in because the app is using it to automatically download new versions.
Example: https://SERVER-NAME/downloads/sormas-%version-release.apk
For all properties in this category, please make sure that the right separators are used, based on the operating system that SORMAS is running on. Typically, those are \\
for Windows (escaped backslash) and /
for Linux.
rscript.executable
Location of the Rscript executable. Necessary to display infection network diagrams on the Contact Dashboard.
documents.path
Path to the folder on the server where documents added as attachments to cases, contacts or events are stored.
Default: /opt/sormas/documents/
temp.path
Path where temporary files will be stored. Both Payara and PostgreSQL need read and write access to this folder. Temporary files are deleted on a nightly basis, so make sure to not store any important files here.
Default: /opt/sormas/temp/
generated.path
Path where generated files, such as import templates or the data dictionary, are stored.
Default: /opt/sormas/generated/
custom.path
Path where custom files that are used by the system for various purposes can be stored, e.g. HTML content for the login page or a custom logo.
Default: /opt/sormas/custom/
createDefaultEntities
Determines whether default infrastructure data and users are created when the server is starting with an empty database. Please note that a default admin user is always created to make sure that you can log in and use the system.
Default: false
Possible Values: true, false
skipDefaultPasswordCheck
Determines whether logging in as a default user using a default password will bring up a prompt that asks the user to change their password.
Default: false
Possible Values: true, false
devmode
Dev mode allows administrators to use functionalities that are not intended for live systems, such as creating random cases for testing or training purposes.
Default: false
Possible Values: true, false
caseClassification.ALL
Configuration for case classification calculation for all diseases.
Default: MANUAL_AND_AUTOMATIC
Possible values: DISABLED, MANUAL, AUTOMATIC, MANUAL_AND_AUTOMATIC
caseClassification.{disease}
Configuration for case classification calculation for specific diseases.
Default: taken from caseClassification.ALL
Possible Values: DISABLED, MANUAL, AUTOMATIC, MANUAL_AND_AUTOMATIC
Examples:
caseClassification.CORONAVIRUS=MANUAL_AND_AUTOMATIC
caseClassification.CHOLERA=DISABLED
daysAfterSystemEventGetsDeleted
Number of days after which system events are deleted from the database. An example for a system event is the last date at which data from an external service was pulled.
Default: 90
negativeCovidTestsMaxAgeDays
Number of days after which negative CORONAVIRUS
pathogen tests and their samples are soft deleted
Default: not set, meaning no delete
Possible values: any integer representing the number of days
namesimilaritythreshold
The similarity threshold after which two names are identified as similar enough to consider them for duplicate detection. The higher the value, the more restrictive the similarity search. The default value should work for most servers. If you need to change it, please change it carefully as slightly higher or lower values already lead to significant differences. The "D" after the number is required and specified that it is a decimal number.
Default: 0.65D
Possible Values: 0.0D - 1.0D
duplicatechecks.excludepersonsonlylinkedtoarchivedentries
Excludes persons that are only related to archived cases, contacts or event participants when searching for duplicate persons during case, contact or event participant creation. Setting this value to true might increase performance during imports and entity creation, but will likely lead to more duplicate persons in the system.
Default: false
Possible Values: true, false
infrastructuresyncthreshold
Maximum number of communities and facilities that can be synchronized in a single infrastructure synchronization call. Lower this value if you expect mobile app users to have a bad internet connection frequently.
Default: 1000
stepSizeForCsvExport
Number of entries in detailed CSV exports that are processed in one batch. Only change this value if there is a good reason for it, i.e. there are performance issues with the detailed exports that could be improved by it.
Default: 5000
dashboardMapMarkerAutoLimit
Maximum number of cases, contacts and events to be displayed automatically on the Dashboard and Statistics maps. If the amount of markers exceed this threshold, a warning message is displayed instead. Leaving this empty means that markers are always shown. Please note that this could significantly slow down your systems if there are a lot of markers to be displayed.
Default: 1000
auditor.attribute.logging
Determines whether database logs storing the information which user changed which data at which point in time also includes the specific values that were changed.
Default: true
Possible Values: true, false
audit.logger.config
Config file path of the audit logger.
Possible Values: Any file system path, but preferably /opt/config/audit-logback.xml
audit.source.site
Identifies the SORMAS instance in the audit log.
Possible Values: Any identifier, but preferably the host name
docgeneration.nullReplacement
Replacement for empty variables in generated documents.
Default: ./.
documentUploadSizeLimitMb
Maximum file size allowed for the upload of documents and document templates in MB.
Default: 20
importFileSizeLimitMb
Maximum file size allowed for the upload of import files in MB.
Default: 20
sormasStats.url
If defined, adds a button to open SORMAS-STATS to the statistics screen that takes the user to the specified URL.
email.sender.address
Email address that will be set as the sender address of email notifications sent out by the system.
Default: noreply@sormas.org
email.sender.name
Name that will be set as the sender of email notifications sent out by the system.
Default: SORMAS Support
sms.sender.name
Name that will be set as the sender of SMS notifications sent out by the system.
Default: SORMAS
sms.auth.key
sms.auth.secret
SORMAS supports the delivery of SMS notifications via Vonage (https://www.vonage.com/communications-apis/). You need to specify a valid authentication key and secret in order to use this feature. SORMAS will not attempt to send out SMS if these properties are left empty.
SORMAS allows server administrators to customize the name and logo of the application. This will for example affect the login page, main menu, and generated files (like exports or import templates). Further customization can be done by editing the files in the custom directory, e.g. to add additional supporter logos to the sidebar or a disclaimer text to the login area.
custombranding
Determines whether custom branding is supposed to be used. If custom branding is disabled, the following properties as well as the files in the custom directory will have no effect.
Default: false
Possible Values: true, false
custombranding.name
Custom name that is used instead of SORMAS for this instance.
custombranding.logo.path
The path on the server to an image file to replace the standard SORMAS logo. Please have a look at the "File Paths" section to see how paths are supposed to be formatted depending on your operating system.
custombranding.useloginsidebar
Determines whether the login sidebar that contains the SORMAS logo, description, and logos of the original creators should be shown.
Default: true
Possible Values: true, false
custombranding.loginbackground.path
The path on the server to an image file to replace the standard world map background of the login page. Please have a look at the "File Paths" section to see how paths are supposed to be formatted depending on your operating system.
authentication.provider
Specifies the authentication provider to be used for the user interface and the ReST API.
Default: SORMAS
Possible Values: SORMAS, KEYCLOAK
authentication.provider.userSyncAtStartup
Specifies whether server startup will trigger a user sync to Keycloak. Since this is mainly needed for an initial sync, it is recommended to disable this property once that initial sync has been performed.
Default: false
Possible Values: true, false
authentication.provider.syncedNewUserRole
Specifies what user role should be used as default for new users synced from the authentication provider (e.g. Keycloak).
Must be set to the name of an existing user role in the database when the feature AUTH_PROVIDER_TO_SORMAS_USER_SYNC
is active
See AUTH_PROVIDER_TO_SORMAS_USER_SYNC and synchronization between SORMAS and keycloak for more details.
Default: empty, meaning no user role
Possible Values: the name of any user role
geocodingServiceUrlTemplate
URL template used to access a geocoding service. If specified, the application can generate geo coordinates based on entered addresses.
Example (Germany): https://sg.geodatenzentrum.de/gdz_geokodierung_bund__{credentials}/geosearch.json?query=${street}+${houseNumber},${postalCode}+${city}&filter=typ:haus&count1 Example (France): https://api-adresse.data.gouv.fr/search?q=${houseNumber}+${street},${postalCode}+${city}&type=housenumber&limit=1
geocodingLatitudeJsonPath
geocodingLongitudeJsonPath
JSON paths of the longitude and latitude in the result of the geocoding service calls.
Examples: $.features[0].geometry.coordinates[0] (longitude), $.features[0].geometry.coordinates[1] (latitude)
geocodingEPSG4326_WKT
EPSG4326 WKT string used to interpret geo coordinates (e.g. axis order).
Default: GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AXIS["Long",EAST],AXIS["Lat",NORTH],AUTHORITY["EPSG","4326"]]
SORMAS Central currently serves as the central point that connects all SORMAS2SORMAS instances.
central.oidc.url
URL of the OIDC server (e.g., Keycloak) authenticating 3rd party requests.
central.etcd.host
The host name of the etcd instance providing data.
central.etcd.clientName
The client name which is used to authenticate to the central etcd.
central.etcd.clientPassword
The password which is used to authenticate to the central etcd.
central.etcd.caPath
The path to the CA cert trusted by etcd clients.
central.location.sync
If set to true, all infrastructure data from the central server will be synchronized into the local SORMAS database at startup and on a nightly basis.
Default: false
Possible Values: true, false
sormas2sormas.path
Path on the server where certificates and files related to SORMAS2SORMAS are stored. Please have a look at the "File Paths" section to see how paths are supposed to be formatted depending on your operating system.
Default: /opt/sormas/sormas2sormas/
sormas2sormas.id
The unique S2S ID of this instance.
sormas2sormas.keystoreName
Name of the key store file used for data encryption under sormas2sormas.path
.
Default: {host name}.sormas2sormas.keystore.p12
sormas2sormas.keystorePass
Password of the key store used for data encryption.
sormas2sormas.rootCaAlias
The alias of the trusted root CA. This is used to fetch the CA from the key store.
sormas2sormas.truststoreName
Name of the trust store file used for verification of incoming S2S data. Placed under sormas2sormas.path
.
Default: sormas2sormas.truststore.p12
sormas2sormas.truststorePass
Password of the trust store.
sormas2sormas.oidc.realm
Name of the authorization realm.
sormas2sormas.oidc.clientId
The client ID used in OIDC (client authorization grant).
sormas2sormas.oidc.clientSecret
The client secret used in OIDC (client authorization grant).
sormas2sormas.etcd.keyPrefix
The key space (prefix) which is used in etcd to store S2S related information.
Default: true
Possible Values: true, false
sormas2sormas.ignoreProperty.additionalDetails
sormas2sormas.ignoreProperty.externalId
sormas2sormas.ignoreProperty.externalToken
sormas2sormas.ignoreProperty.internalToken
Specifies whether the respective property is excluded from the data shared with other instances.
Default: true
Possible Values: true, false
sormas2sormas.districtExternalId
External ID of the district to which the cases/contacts will be assigned when accepting a share request.
survnet.url
URL of the SurvNet Gateway. Leaving this empty will disable all features related to SurvNet.
Example: https://localhost:8080/survnet/rest/admin
survnet.versionEndpoint
Name of the endpoint for getting the version of the SurvNet Gateway
Default: version
interface.symptomjournal.url
Website that is displayed inside an iFrame to create a symptom journal user account for a contact person. If left empty, this feature will be disabled.
interface.symptomjournal.authurl
interface.symptomjournal.clientid
interface.symptomjournal.secret
Authentication details necessary to access the external symptom journal.
interface.symptomjournal.defaultuser.username
interface.symptomjournal.defaultuser.password
Credentials of the default user used by the symptom journal to communicate with the SORMAS API. Can be used to automate the setup process of new systems.
interface.patientdiary.url
Website that is displayed inside an iFrame to create a patient diary user account for a contact person. If left empty, this feature will be disabled.
interface.patientdiary.probandsurl
URL that is used to register new persons in the patient diary.
interface.patientdiary.authurl
URL used to retrieve tokens for backend requests.
interface.patientdiary.frontendAuthurl
URL used to retrieve tokens for frontend requests. If not specified, the authurl is used instead.
interface.patientdiary.tokenLifetime
Number of seconds tokens fetched via the authurl are cached.
Default: 21600
interface.patientdiary.email
interface.patientdiary.password
Authentication details necessary to access the external patient diary. Used for both authUrls.
interface.patientdiary.defaultuser.username
interface.patientdiary.defaultuser.password
Credentials of the default user used by the patient diary to communicate with the SORMAS API. Can be used to automate the setup process of new systems.
interface.patientdiary.acceptPhoneContact
Configures whether the phone number is accepted for registering a person in the patient diary.
Default: true
Possible Values: true, false
interface.demis.jndiName
JNDI name of the DEMIS adapter that is connected to this SORMAS instance. Specifies where additionally deployed modules are stored.
Example: java:global/sormas-demis-adapter/DemisMessageFacade