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 |
---|---|---|
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 |
---|---|
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.