Sync 2.0 configuration variables

In order to be flexible, Sync should provide the following variables in order to give implementers the flexibility to administer the Sync operations.

List of variables

Variable Name

Description

Default Value

Variable Name

Description

Default Value

General

sync.parent.feedLocation

The location of the Parent atom feed. Required to do any synchronization. If not set (but with Sync enabled), sync log warnings and not read the feeds.

Note. Parent instance should set the own URI address, otherwise the manual push and pull will be disabled.

Empty

sync.local.feedLocation

The location of the local event feed for this node. Generally should not change.

The default address.

sync.localInstanceId

The unique instance identifier.



sync.clients

The map which contains clients configurations (more detail in the "Client Configuration" section below). For now this configuration is only available while PUSH operation.

Empty

Push

sync.push.enabled

Boolean - If set to true, data will be sent to Parent from this Child automatically after cron schedule interval expires.

True

sync.push.schedule

Cron schedule reading the local feed - controls how often data will be pushed to Parent.

Hourly schedule

sync.push.{classname}.enabled

Boolean - controls if the data for the given entity class is pushed to Parent from this node. Affects filtering of the local atom feed.

True for classes we want to sync out of the box

sync.push.{classname}.preferredClient

Each class could have a specific preferred client. If the value is null then the global preferred client (from global properties) will be chosen.

null

Pull

sync.pull.enabled

Boolean - If set to true, be retrieved from Parent automatically after cron schedule interval expires.

True

sync.pull.schedule

Cron schedule reading the Parent feed - controls how often data will be pulled from Parent.

Hourly schedule

sync.pull.{classname}.enabled

Boolean - controls if the data for the given entity class is pulled from Parent to this node. Affects filtering of the Parent atom feed.

True for classes we want to sync out of the box

sync.pull.{classname}.preferredClient

Each class could have a specific preferred client. If the value is null then the global preferred client (from global properties) will be chosen.

null

Whitelist

sync.whitelist.enabled

A boolean value which describes if the whitelist is enabled or is not

False

sync.whitelist.instanceIds

An array of identifiers which represent children instances (localInstanceId). If a child instance occurs on the list it will be allowed to push data to the parent. Please remember to share credentials with children in order to complete validation on the push endpoints.

Empty

 

The whitelist section is not obligatory. If it won't be provided, a default whitelist configuration will be added automatically.

All configuration for error handling described in Auditing and error handling should also be included.

Client configuration

Since module version:

1.4.0

The section of the Sync 2 configuration.

Variable Name

Description

Variable Name

Description

hostAddress

The specific value of the client address.

login

The specific value of the client login

password

The specific value of the client password



Example value
{ "general" : { ... "clients" : { "fhir": { "hostAddress" : "[specificAddress]", "login" : "login", "password" : "password" } } } ... }



Configuration UI

The Sync configuration from Sync 2.0 configuration variables should be easily configurable by administrators through the UI. The UI should validate the inputs and display errors to the administrators if he tries to submit invalid data. For now inputs can be fairly simple - i.e. we do not need a sophisticated cron picker for schedules, it is a nice to have of course.