Data synchronization
Some EVA configuration can be exported from one environment, to be imported into another EVA environment. 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
).