This document outlines the steps required to configure workflows in OpenProject based on the Jira workflow mapping.
OpenProject's approach to workflows differs from Jira's:
- In OpenProject, all statuses are available to all work package types by default
- Custom workflow configurations need to be done manually through the Admin interface
- The migration tool helps by:
- Creating missing statuses in OpenProject
- Providing a mapping between Jira and OpenProject statuses
- Analyzing workflow transitions from Jira
- Generating documentation for manual configuration
The following steps are automated by the migration tool:
Run the status migration component to ensure all required statuses exist in OpenProject:
python src/main.py migrate --components workflow
This will:
- Extract statuses from Jira
- Extract existing statuses from OpenProject
- Create a mapping between Jira and OpenProject statuses
- Create any missing statuses in OpenProject
- Generate a status mapping file (
var/data/status_mapping.json
) - Produce an analysis of the status mapping (
var/data/status_mapping_analysis.json
)
The migration tool analyzes Jira workflows and creates a workflow mapping:
# This is run as part of the 'workflow' component
python src/main.py migrate --components workflow
This will:
- Extract workflow definitions from Jira
- Analyze workflow transitions for each Jira issue type
- Generate a workflow mapping file (
var/data/workflow_mapping.json
) - Create a configuration guide (
var/data/workflow_configuration.json
)
After the automated steps, manual configuration is required to set up the workflows properly in OpenProject.
- Open the
var/data/status_mapping.json
file - Verify that all Jira statuses have corresponding OpenProject statuses
- Check for any unmatched statuses in the analysis report
- Log in to OpenProject as an administrator
- Navigate to: Administration > Work Packages > Status
- Verify all required statuses exist and have correct colors/properties
- Navigate to: Administration > Work Packages > Types
- For each work package type:
- Select the type (e.g., "Bug", "Task", etc.)
- Click on the Workflow tab
- Configure status transitions based on the Jira workflow mapping
For each work package type, refer to the mapping and configure according to this template:
Reference the following section in workflow_mapping.json
:
"Bug": {
"transitions": [
{"from": "Open", "to": "In Progress"},
{"from": "In Progress", "to": "Testing"},
{"from": "Testing", "to": "Done"},
{"from": "Done", "to": "Open"}
]
}
In the OpenProject Admin interface:
- Select the "Bug" type
- In the Workflow tab, configure the transitions:
- From "Open" status, allow transition to "In Progress"
- From "In Progress" status, allow transition to "Testing"
- From "Testing" status, allow transition to "Done"
- From "Done" status, allow transition to "Open"
If not explicitly configuring transitions, OpenProject allows any transition between statuses. To restrict workflows to match Jira:
- For each work package type, go to the Workflow tab
- Set the "Allow status changes from" dropdown to "Selected status" for each status
- Select only the valid target statuses based on the workflow mapping
After configuration, test the workflows to ensure they match the expected behavior:
- Create a test project in OpenProject
- Create work packages of different types
- Attempt to transition between statuses
- Verify that only allowed transitions are permitted
- OpenProject has a different workflow model compared to Jira
- Some complex Jira workflows may need to be simplified for OpenProject
- Consider documenting any differences for end-user training
For complex workflow requirements, consider:
- Using OpenProject's REST API to programmatically configure workflows
- Implementing custom workflow scripts/plugins
- Creating transition buttons for common actions
If workflows don't behave as expected:
- Verify the status mapping is correct
- Check the workflow configuration in the Admin interface
- Ensure the user has appropriate permissions
- Look for any status transition restrictions in project settings