Migrating from Jira Server / Data Center to Jira Cloud
This article explains the steps required when migrating a Jira Server or Data Center instance to Jira Cloud when you were using JMWE workflow extensions on your Jira Server instance.
Background:
Because of the way Atlassian's Connect framework is implemented, workflow extensions (validators, conditions and post-functions) provided by add-ons are incompatible between JIRA Server and JIRA Cloud. The entire JMWE configuration is contained within the workflows themselves. So you need to take a backup of your entire JIRA Server instance, identify the workflows and transitions that use JMWE workflow extensions, and fix them.
Challenges
Workflows using JMWE post-functions/conditions/validators in the Server will break on the Cloud because post-function configurations are incompatible with their Cloud equivalents.
- Some workflow extensions are unavailable in the Cloud and hence they need to be removed
- Some workflow extensions need to be completely recreated looking at their equivalents in the Server, followed by deleting the existing one in the Cloud
- Some workflow extensions might be
Run as a specific user
which fail to reflect the user in the Run as section after the import. You will have to identify them, edit them and add the user in the configuration looking at the Server. - Some workflow extensions might use Groovy scripts either to execute the post-function conditionally or set a field value or comment an issue. Wherever you use Groovy scripts, write its equivalent Nunjucks template (in post-functions) or Jira expressions (in Conditions and Validators). You can test your Nunjucks scripts using the Nunjucks tester. Examples:
- Because of architectural differences between Jira Server and Jira Cloud, post-functions on Jira Cloud run asynchronously. This has two consequences:
- You cannot rely on the order of execution of JMWE post-functions based on their position in the list of post-functions (unless you group post-functions in a "Sequence of post-functions" post-function)
- Post-functions run after the transition completes, and thus after the issue is refreshed in the browser. Unless you take advantage of View Issue Page Actions, the result of post-functions will not be visible until you manually refresh the issue view page.
Missing features
Some features of workflow extensions mentioned below are unavailable in the Cloud.
- The Assign to last role member and Assign to role member post-functions do not have the option to customize the assignment
- Send Issue commented notification: This option is irrelevant in Comment issue(s) and Comment linked issues post-functions of JIRA Cloud because the notifications will always be sent.
- Use value before current transition: The Copy value from field to field post-function does not have the option to use the value before the current transition.