Resolving config value conflicts
Tray's config resolution feature allows you to manage conflicts in config values during project import.
The Config Resolution Modal shows only the values that clash between incoming and existing projects, giving a clear view of potential issues.
It explains how these differences will affect the destination project in the 'Effect' column.
By default, it uses the incoming project's config values.
You can set all existing project values together or pick and choose individually.
The following screenshot is from a project where we are using different form and sheet variables in our source (dev) project and destination (prod) project. In this case we wish to maintain the existing values in the destination so that it continues to work in production:
Indicates which values are used in the current resolution
- custom values
List of values
A list of config values where the incoming and existing values are different in the source and destination projects
The config key
The config value that will be applied after completing the project import
You can set a different resolution method for each value individually
- custom values
The potential impact on the existing project resulting from the selected config value resolution`
Updated - will overwrite an existing configuration value.
New - will introduce a new configuration item.
Deleted - will delete a config item, unused by incoming workflows.
Unused - the item is not used by any incoming workflows, it has been likely deleted in the incoming project.
no changes - existing configuration item will remain unaffected
"Set all to existing": applies all configuration values from the existing project.
"Set all to incoming": applies all configuration values from the incoming project.
Individual item settings: “Use incoming value”, “Use existing value”, "Custom value": enables users to specify individual values based on their preferences.
Newly introduced configuration items require specified values. You can choose to use the incoming value or specify a custom one. They can be empty strings but cannot be (not set)
Updates in type from the incoming project are highlighted
Types must consistently match the incoming configuration
What information is shown in the config resolution modal?Copy
The config resolution modal exclusively presents configuration values with conflicts between the incoming project and the existing ones. It shows the configuration values that will be applied to the project after import, illustrating how these values impact the destination project. The default values are set to those of the incoming project. You can adjust the resolution by selecting 'Set all to existing' or specifying values individually.
Why can't I see all the project's configuration values?Copy
You may not see all the project's configuration values because the Config Resolution modal specifically displays conflicted values—those where the incoming configuration differs from the existing one. Values without conflicts, where the incoming and existing values match, are not shown in the modal.
How can I resolve config conflicts during the import process?Copy
You can choose to set all values to existing or incoming project values, or specify values individually by selecting incoming or existing values, or specifying custom values.
What does the “Effect” represent?Copy
The Effect highlights the potential impact on the existing project resulting from the selected resolution. It includes statuses like "No Change," "New," "Deleted," "Updated," and "Unused."
What does the "Final Value" represent?Copy
The "Final Value" is the configuration value that will be applied after completing the project import.
When is a config item marked as "Unused"?Copy
A config item is marked as "Unused" when it is not used by any incoming workflows. This occurs when a value has been deleted in the incoming config, but you have selected the existing or a custom non-empty config value instead of the incoming deletion.
Why do config keys and types have to match the incoming project config?Copy
Config keys and types must consistently match the incoming project config to maintain compatibility with the functionality of incoming workflows.
Can I perform the config resolution at import via the API?Copy
Yes, you can resolve configuration conflicts at import via the API. Utilize the export
ProjectConfig endpoint to retrieve destination configuration information and pass resolved values in the
importProject payload for seamless resolution. For more details, check the API documentation.