Data synchronization
Synchronization has a lot of use-cases, but it requires some additional context to ensure you use it the right way.
The purpose of the synchronization services is to give you a screenshot of whatever variables you select for an environment at a specific time. This makes it great to compare such variables between specific moments in time.
You might use these services to check what settings were altered over the course of one week.
While it is technically possible to use these services to copy the configuration from one environment to another, we recommend caution when using the services for this purpose. Settings are often bespoke to linked systems and there are no safeguards.
Available variables
The following configuration can be exported:
- Roles (including functionalities)
- ScheduledTasks
- RecurringTasks
- Settings
- Cookbook
- Stencil
- Symphony
Synchronization can also be performed in its dedicated front end: Synchronization.
Creating a synchronization file
Specify what area you'd like to synchronize in the 'Name' field. The values correspond to the ones listed here above. Be sure to start this service in the environment you'd like to copy from .
We can create a synchronization file with CreateSynchronization:
{
"Managers": [
{
"Name": "Settings"
}
]
}
{
"BlobUrl": "https://assets.typings.on-eva.io/blob/bfe60331-a90a-4cf2-ba4a-01114f8ffb2e",
"ExpireDate": "2022-01-10T10:56:57.3807481Z"
}
Above request will instruct EVA to create a synchronization file for settings only. Leave the Managers
property empty to create a file for all components. The response will contain a BlobUrl which can be imported into another environment. Specifying multiple managers will not create multiple files.
Blobs generated as a result of
CreateSynchronization
expire after 30 minutes. They can however be downloaded and locally stored or manually hosted if so desired.
Use GetAvailableSynchronizationManagers to see what configuration can be synchronized:
{}
{
"Managers": [
{
"Name": "ScheduledTasks"
},
{
"Name": "RecurringTasks"
},
{
"Name": "Stencil"
},
{
"Name": "Settings"
},
{
"Name": "Symphony"
},
{
"Name": "Cookbook"
}
]
}
Comparing data
Start this service in the environment you'd like to compare the settings from the first environment with.
Since the list is huge in practice, here's a selection of three values from our CompareSynchronization call. Note that when you state "IncludeIdentical":"False", any hidden values will always be shown, since they cannot be compared.
Enter the URL you received in the Create
call and whether you'd like to be shown values which are identical.
{
"BlobUrl": "https://assets.typings.on-eva.io/blob/bfe60331-a90a-4cf2-ba4a-01114f8ffb2e",
"IncludeIdentical":"false" // or true, based on whether you'd like to see identical values
}
{
"Files": [
{
"Name": "Settings",
"Data": [
{
"ID": "Setting:docs_inc_Blobs:StorageLocation",
"Description": "Docs Incorporated - Blobs:StorageLocation",
"ObjectInfo": {
"OrganizationUnitName": "Docs Incorporated",
"Key": "Blobs:StorageLocation",
"Sensitivity": 0
},
"IsIdentical": true,
"Values": [
{
"Type": "value",
"NewValue": "azure",
"CurrentValue": "azure",
"CanCompare": true,
"CanSync": true
}
]
},
{
"ID": "Setting:docs_inc_Smtp:Password",
"Description": "Docs Incorporated - Smtp:Password",
"ObjectInfo": {
"OrganizationUnitName": "Docs Incorporated",
"Key": "Smtp:Password",
"Sensitivity": 2
},
"Values": [
{
"Type": "value",
"NewValue": "**********s~",
"CurrentValue": "**********s~",
"CanCompare": false, // Cannot compare, since the value is hidden
"CanSync": true
}
]
},
{
"ID": "Setting:docs_inc_Orders:Reservations:ClickAndCollectEnabled",
"Description": "Docs Incorporated - Orders:Reservations:ClickAndCollectEnabled",
"ObjectInfo": {
"OrganizationUnitName": "Docs Incorporated",
"Key": "Orders:Reservations:ClickAndCollectEnabled",
"Sensitivity": 0
},
"IsIdentical": true,
"Values": [
{
"Type": "value",
"NewValue": "true",
"CurrentValue": "true",
"CanCompare": true,
"CanSync": true
}
]
}
]
}
]
}
Applying changes
Also start this service in the environment you want to copy to.
Service call UploadSynchronization lets you specify which settings (or any other configuration subject) you would actually like to import into the second environment. Specify the same 'BlobUrl' and enter the IDs of the objects (as seen in the Compare
call) to import to the second environment.
You can also enter another value if you'd like.
{
"BlobUrl":"https://assets.typings.on-eva.io/blob/ac901f9-9703-4063-9da5-1cd90f46d8",
"Import":[
{"ID":"Setting:docs_inc_UserSearch:UseNewUserTypeFiltering", "Values": [{"Type": "value", "Value": "false"}]}
]
}
{
"NumProcessed": 1,
"Processed": [
{
"Type": "Settings",
"ID": "Setting:docs_inc_UserSearch:UseNewUserTypeFiltering",
"IsSuccess": true,
"IsNew": false
}
],
"Errors": []
}
IsNew
specifies whether the setting was already present but with a deviating value (false), or if it was completely missing (true).