Configure only changes made by one synchronization partner to be synchronized
Backbone's advanced settings screen contains a 'sync.responsibilityConfiguration' setting allowing you to define which synchronization partner has the 'responsibility' of making changes to a synchronized issue. When one synchronization partner has responsibility, changes made by the other synchronization partner are not synchronized.
This article will provide a step-by-step guide to configuring this setting.
Configuration
- The responsibility setting is managed using a custom field – so firstly, you need to create a new Select List (single choice) custom field. In this example, we'll call the field 'Responsibility'.
- The custom field should have two options with names that make it clear whether your instance or the partner instance has responsibility for making changes. In this example, we'll make this clear by calling the options 'Local' and 'Remote'.
- Configure all the screens where you want to display the responsibility field, also include the edit screen so that Backbone can modify this field.
- Find the custom field ID of the Responsibility custom field.
Find the option IDs of the 'Local' and 'Remote' field options. To do this, navigate to Administration > Issues > Custom Fields > scroll to the Responsibility custom field > cog icon > Configure > Edit Options. To find out the ID of a field option, click edit , and the option ID will be displayed as the 'selectedValue' in the URL bar. For example, if the URL bar contained:
CODEselectedValue=10101
then the option ID would be 10101 .
- Now you have the Custom Field ID and option IDs, navigate to the Advanced screen in the Backbone configuration, and configure the sync.responsibilityConfiguration setting.
The format of this field is a JSON object containing the field ID of the custom responsibility field, the local responsibility option ID, and the remote responsibility option ID. You can structure the code like this, just swapping out the IDs with the values you found in steps 4 and 5:
{
"localOptionId": 11111,
"remoteOptionId": 12222,
"fieldId": "customfield_13333"
}
Use
After both synchronization partners have configured the synchronization, you can define who has the responsibility to make changes using the Responsibility field:
If the responsibility field is set to Local, you have the responsibility to make changes, and if it is set to Remote, the partner instance has responsibility.
Advanced
You can use the advanced setting sync.automaticConflictResolution to define how Backbone handles changes made by the partner without responsibility.
- if this option is set to Yes, the changes are rolled back when the synchronization is updated
- if this option is set to No, the changes are kept but not synchronized