Welcome to jira-workflow-sharing-plugin

jira-workflow-sharing-plugin is a plugin that provides the ability to import/export workflows.

Workflow Export

The export takes a workflow from JIRA and its associated custom fields and screens and puts them in a
zip file called a workflow bundle. This bundle can be uploaded to MPAC or to JIRA directly for import.

It is not possible to export parts of the workflow that have configuration that reference non-exported entities (e.g.
users, groups, permission schemes, pretty much everything). For example, it is not possible to export the
UserInGroupCondition because the group name will probably not make sense to anyone importing it.
The export strips the workflow of all conditions, validators and functions that are not in the
jira-workflow-sharing-plugin/src/main/resources/whitelist.txt. The user is told which parts of the export are removed.

A workflow bundle can be put onto MPAC for admins to install through a UI provided by this plugin. The check-bundle.sh
script can be used to work out if a bundle is safe to upload to MPAC. It simply checks that the bundle only contains
postfunctions, conditions and validators from jira-workflow-sharing-plugin/src/main/resources/whitelist.txt.

Workflow Import

The import takes a bundle exported from JIRA and restores the contained workflows, fields and screens. The workflow
bundle can be imported directly by a system admin or by accessing bundles exposed by MPAC (which are safe) through
the UI provided by the plugin.

The import process will strip a workflow bundle of conditions, validators and functions that are not in the
jira-workflow-sharing-plugin/src/main/resources/whitelist.txt.

Use By Other Plugins

Most of the interfaces are exported into OSGi so you must be careful when changing API methods.

This plugin is used by many other plugins to import workflows. For example, it is used by the workflow designer,
project templates (and through this things like agile, service desk). It exposes its functionality through OSGi
services exported to plugins. Some of the APIs exported include: