This tutorial shows app developers how to migrate app workflow rules from server to cloud. There are three steps to migrate app workflow rules:
We recommend reading the Getting started guide to familiarize yourself with the app migration platform.
If your app is included in the migration plan, the Jira Cloud Migration Assistant (JCMA) will migrate the workflow rules that your app has claimed as part of product data migration.
On your server app, add the interface JiraAppCloudMigrationListenerV1
on top of the class that implements DiscoverableListener
to provide a map of the app workflow rules to be migrated.
Here's the method you'll have to implement:
1 2public interface JiraAppCloudMigrationListenerV1 { Map<String, String> getSupportedWorkflowRuleMappings(); }
The method above returns a map of the server to cloud workflow rule mappings, where:
key
is class name of server workflow rule (ex: com.example.plugins.tutorial.jira.workflow.CloseParentIssuePostFunction
)value
is key of cloud workflow rule (ex: sample-cloud-workflow-post-function-key
)See an example
1 2@Override public Map<String, String> getSupportedWorkflowRuleMappings() { Map<String, String> map = new HashMap<>(); map.put("com.vendor.impl.workflows.ParentIssueBlockingCondition", "parentIssueBlockingCondition-cloud"); map.put("com.vendor.impl.workflows.CloseParentIssuePostFunction", "closeParentIssuePostFunction-cloud"); map.put("com.vendor.impl.workflows.CloseIssueWorkflowValidator", "closeIssueWorkflowValidator-cloud"); return map; }
jira/classic:workflowRule
to retrieve the mappings for migrated workflow rules.Mappings returned at this step may contain workflow rules that are already processed by your cloud app as part of previous migrations from the same server to cloud site, as the scope of the mappings is at server and cloud site level. You can find more details about mappings here.
Request mappings
) step. Your cloud app should store the cloud IDs of migrated workflows, workflow rules (i.e. {cloudWorkflowId}/{cloudWorkflowRuleID}
) that are already processed by your app for the given cloud site to achieve this step.Format of workflow rules ID Mapping
1 2{ {serverWorkflowRuleID}:{cloudWorkflowId}/{cloudWorkflowRuleID} }
In the above code:
serverWorkflowRuleID
is the ID generated by JCMA (UUID) for server workflow rule.cloudWorkflowId
is the entity ID of cloud workflow (UUID).cloudWorkflowRuleID
is the ID of cloud workflow rule (UUID), which your apps can use to update workflow configuration.See an example
1 2{ "b1357138-b7fd-4a7a-910f-a61d5adea551": "9674634a-c02f-4383-a4b6-fbb3ca228b23/d3a7c66e-c76b-4ac0-aa7c-a44e15a54c43", "c96282be-1f2f-4a28-94ce-5d6fe36ac4d8": "9674634a-c02f-4383-a4b6-fbb3ca228b23/e863d81d-fc90-41f6-afe4-271cef08a032", "dba809dd-433d-4ffa-9046-c1a41a17c8e4": "9674634a-c02f-4383-a4b6-fbb3ca228b23/9b2b1b87-4bfc-4197-9ee9-d5077765d4f0" }
Use the new GET workflow details API to get the details of workflow rules which your cloud app retrieved in step 2 of this tutorial.
The code below shows you how the Jira Cloud Migration Assistant migrates server app workflow rule parameters to the cloud app workflow configuration.
Sample server workflow rule config
1 2<condition type="class"> <arg name="statuses">workflowMode,5,atl_token,descriptorTab</arg> <arg name="class.name">com.example.plugins.tutorial.jira.workflow.ParentIssueBlockingCondition</arg> </condition>
Corresponding sample cloud workflow rule config
1 2{ "value": "{ \"statuses\": \"workflowMode,5,atl_token,descriptorTab\", \"class.name\":\"com.example.plugins.tutorial.jira.workflow.ParentIssueBlockingCondition\" }" }
The screenshot below shows you how the migrated workflow rule configuration becomes available in the configuration field of ConnectWorkflowTransitionRule
:
All the migrated app workflow rules migrates to cloud in a disabled state i.e. disabled
property of the migrated workflow rule configuration will be set to true
.
Your cloud app can use the cloudWorkflowRuleIds
to do either of the following:
Rate this page: