Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

https://github.com/SORMAS-Foundation/SORMAS-Project/blob/development/docs/SERVER_CUSTOMIZATION.md#server-configuration

The general SORMAS configuration is stored in the sormas.properties file that you can find in your payara domain folder. When you set up a new SORMAS server, please make sure to go over all entries in that file and adjust their values if necessary. Each property has an explanation telling you its purpose, and some of them also have a default value that you can use to revert the changes you've made.

Most of these properties are commented (indicated by a # in front of their name and value), which means that the default value will automatically be used (e.g. the path to temporary files on the server) or the associated feature will not be used at all (e.g. the custom branding properties or the configuration of an external symptom journal). Some properties however are not commented, but also don't have a default value. It is strongly recommended to enter values for these properties because they are required for some parts of SORMAS to work correctly, or because they are very specific to your individual SORMAS instance. This especially applies to the country.locale and country.name properties, which will cause serious problems while using the application if left empty.

Important: The sormas.properties file contains all properties that existed in the SORMAS version that you initially installed on your server. New properties added in more recent SORMAS versions are not automatically added! If you're operating a SORMAS server, we strongly suggest to read the release notes of new versions. If properties have been added to this file, they will be communicated in these notes so that you can add them to your properties file.

Server Configuration File Properties

This is a list of options contained in the sormas.properties file that can be used to configure and customize SORMAS.


Country Settings

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


Mobile Application

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


File Paths

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/


Server Settings

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

feature.automaticcaseclassification

Determines whether cases are automatically classified according to a specific ruleset based on their disease. Please note that automatic case classification is not necessarily available for every disease.

Default: true
Possible Values: true, false

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

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.


Communication and Notifications

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.


Custom Branding

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

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


Geocoding Service

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

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 Interface

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 Interface

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


Symptom Journals and Patient Diaries

Symptom Journals (e.g. PIA)

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.

Patient Diaries (e.g. Climedo)

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


DEMIS Interface

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

  • No labels