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 NameDescriptionDefault 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.feedLocationThe location of the local event feed for this node. Generally should not change.The default address.
sync.localInstanceIdThe unique instance identifier.
sync.clientsThe 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.enabledBoolean - If set to true, data will be sent to Parent from this Child automatically after cron schedule interval expires.True
sync.push.scheduleCron schedule reading the local feed - controls how often data will be pushed to Parent.Hourly schedule
sync.push.{classname}.enabledBoolean - 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}.preferredClientEach 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.enabledBoolean - If set to true, be retrieved from Parent automatically after cron schedule interval expires.True
sync.pull.scheduleCron schedule reading the Parent feed - controls how often data will be pulled from Parent.Hourly schedule
sync.pull.{classname}.enabledBoolean - 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}.preferredClientEach 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.enabledA boolean value which describes if the whitelist is enabled or is notFalse
sync.whitelist.instanceIdsAn 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 NameDescription
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.