⚠️ CRITICAL COMPLEXITY

Jira DC to Jira Cloud Migration

Complete guide for migrating from Jira Data Center (Server) to Jira Cloud with app compatibility analysis, workflow conversion, and user identity transformation.

Duration: 3-4 weeks
Data Volume: 100K-1M+ items
Success Rate: 91.5%
Status: Production Ready

What Gets Migrated

Server to Cloud transformation with focus on app compatibility and user identity mapping.

Issues & Custom Fields
Workflows (Converted)
Apps (Compatibility Check)
Users (Server ID → Cloud ID)
Attachments & Links
Issue History

Critical Migration Notice

This is NOT a simple data migration. Jira Server/DC and Jira Cloud have architectural differences requiring app compatibility validation, workflow conversion, and user identity transformation. Atlassian's native migration tool (JCMA) handles basic data, but OpsMigrator adds AI-powered validation, app analysis, and workflow redesign support. Expect 20-30% manual intervention for app migration and custom workflow adjustments.

Table of Contents

1. Prerequisites

Jira Data Center Requirements

Jira Cloud Requirements

Technical Requirements

Atlassian JCMA vs OpsMigrator: Atlassian provides free Jira Cloud Migration Assistant (JCMA) for basic migrations. OpsMigrator complements JCMA with AI-powered app compatibility analysis, custom workflow validation, and advanced user identity mapping. Use OpsMigrator for complex migrations with 50+ apps or custom workflows.

2. Connector Setup

Step 1: Configure Jira Data Center Connector

Generating Jira DC Credentials:

  1. Login to Jira DC as Administrator
  2. Navigate to Settings (⚙️) → System → User Management
  3. Create service account: svc-cloud-migration
  4. Grant Jira System Administrators global permission
  5. Add to all project roles with Administrator access
  6. Test API: GET https://jira.company.com/rest/api/3/myself

Jira DC Connector Configuration:

{ "connectorType": "JiraDataCenter", "baseUrl": "https://jira.company.com", "authentication": { "authMethod": "Basic", "username": "svc-cloud-migration", "secretValue": "PASSWORD" }, "jiraConfiguration": { "isDataCenter": true, "version": "9.4.0", "apiVersion": "3", "enableSSL": true, "timeout": 120 }, "rateLimiting": { "maxRequestsPerSecond": 50, "maxConcurrentRequests": 10, "retryAttempts": 5, "retryDelayMs": 2000 }, "dataOptions": { "includeAttachments": true, "attachmentSizeLimit": 50, "includeHistory": true, "includeComments": true, "includeWorklog": true, "maxHistoryAge": 365 }, "appAnalysis": { "scanInstalledApps": true, "checkCloudCompatibility": true, "exportAppConfiguration": true } }

Step 2: Configure Jira Cloud Connector

Generating Jira Cloud API Token:

  1. Navigate to https://id.atlassian.com/manage-profile/security
  2. Click Create API token
  3. Label: OpsMigrator DC to Cloud Migration
  4. Copy token immediately (shown once)
  5. Test API: GET https://your-company.atlassian.net/rest/api/3/myself

Jira Cloud Connector Configuration:

{ "connectorType": "JiraCloud", "baseUrl": "https://your-company.atlassian.net", "authentication": { "authMethod": "Basic", "username": "admin@company.com", "secretValue": "API_TOKEN" }, "jiraCloudConfiguration": { "cloudId": "your-cloud-id", "organizationId": "your-org-id", "apiVersion": "3", "enableCloudFeatures": true }, "userMapping": { "mapServerIdsToCloudAccountIds": true, "createMissingUsers": false, "inactiveUserStrategy": "MapToGenericUser" }, "workflowConversion": { "autoConvertServerWorkflows": true, "validatePostConditions": true, "preserveCustomValidators": true }, "rateLimiting": { "maxRequestsPerSecond": 100, "maxConcurrentRequests": 10, "retryAttempts": 3, "retryDelayMs": 1000 } }

Step 3: Validate Connections

# Validate both connectors opsmigrator connector validate --source jira-dc-connector.json opsmigrator connector validate --target jira-cloud-connector.json # Expected output: ✓ Jira Data Center connection successful - Version: 9.4.0 (Data Center) - Projects: 47 accessible - Issues: 487,392 - Installed Apps: 68 (23 Marketplace, 45 Custom) - Custom Workflows: 34 ✓ Jira Cloud connection successful - Cloud ID: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - Users: 492 active (87% match with DC users) - Cloud Apps: 12 pre-installed - App Compatibility: 18 of 23 Marketplace apps available on Cloud - Workflow Compatibility: 28 of 34 workflows can auto-convert

3. App Compatibility Analysis

The App Migration Challenge

Jira Server/DC apps are NOT compatible with Jira Cloud. Each app must have a separate Cloud version. OpsMigrator's AI analyzes your installed apps and provides migration recommendations.

App Category Typical Compatibility Migration Strategy
Atlassian Marketplace Apps 70-80% have Cloud versions Purchase Cloud licenses, reconfigure post-migration
Custom In-House Apps 0% compatible (require redevelopment) Rewrite as Forge apps or Connect apps (3-6 months typical)
Workflow Apps (ScriptRunner, etc.) Cloud versions available but functionality differs Recreate workflows in Cloud version (OpsMigrator provides mapping)
Automation Rules 50-60% auto-convertible OpsMigrator attempts conversion; manual review required
JQL Functions from Apps Varies by app Validate all saved filters post-migration; rewrite JQL if needed

OpsMigrator App Analysis Report

# Run app compatibility analysis opsmigrator analyze apps --source jira-dc-connector.json # Example Output: App Compatibility Report - Jira DC to Cloud ============================================ Total Apps Installed: 68 MARKETPLACE APPS (23): ✓ ScriptRunner for Jira (v6.45.0) → Cloud version available (v8.5.0) ✓ Tempo Timesheets (v14.2) → Cloud version available (v16.3) ✓ Zephyr Scale (v8.7.0) → Cloud version available (Zephyr Squad Cloud) ✗ Old App XYZ (v2.1) → No Cloud version available ⚠ Custom Validator Plugin (v1.0) → Cloud equivalent: Jira Misc Workflow Extensions CUSTOM APPS (45): ✗ Internal Workflow Scripts (v1.5) → Requires Forge app redevelopment ✗ Custom Field Automation (v2.0) → Rewrite as Automation for Jira rules ✗ Legacy Integration App (v3.2) → Migrate to Jira Cloud REST API integration RECOMMENDATION: - 18 of 23 Marketplace apps: Purchase Cloud licenses before migration - 5 apps: Find Cloud alternatives or retire features - 45 custom apps: Budget 4-6 months for Forge app redevelopment - Total App Migration Cost Estimate: $85K-$150K (licenses + development)

App Migration Reality

Apps are the #1 blocker in DC to Cloud migrations. Expect 30-50% of apps to require workarounds or custom development. Budget 4-8 weeks for app compatibility resolution BEFORE data migration begins. OpsMigrator cannot migrate app functionality—only analyze compatibility and export configurations.

4. Workflow Conversion Strategy

Server vs Cloud Workflow Differences

Jira Cloud workflows have restrictions that Server workflows don't have:

OpsMigrator Workflow Conversion

OpsMigrator's AI analyzes workflows and provides conversion strategies:

Workflow Element Auto-Convertible? Manual Action Required
Standard Transitions ✓ Yes None
Built-in Validators ✓ Yes None
Built-in Conditions ✓ Yes None
ScriptRunner Scripts ✗ No Recreate in ScriptRunner Cloud (different API)
Custom Validators (from apps) ⚠ Partial Find Cloud equivalent app or retire validator
Post Functions (standard) ✓ Yes None
Post Functions (scripted) ✗ No Rewrite in Cloud Automation or ScriptRunner Cloud

OpsMigrator Workflow Analysis: OpsMigrator exports all workflows to XML and provides detailed conversion reports. For each non-convertible element, it suggests Cloud alternatives. Budget 1-2 weeks for workflow recreation in Jira Cloud after data migration completes.

5. User Identity Transformation

Server ID vs Cloud Account ID

This is a critical technical difference:

Challenge: All issue assignments, watchers, comments, and history must be remapped from Server IDs to Cloud Account IDs.

OpsMigrator User Mapping Process

  1. Extract Server Users: Query Jira DC for all active users with email addresses
  2. Match to Cloud: Query Jira Cloud for users by email address
  3. Generate Mapping: Create Server ID → Cloud Account ID mapping table
  4. Handle Unmatched: For retired users or mismatched emails, map to generic "Historical User" account
  5. Validate: Confirm 90%+ match rate before proceeding with migration
# User mapping validation opsmigrator users map --source jira-dc-connector.json --target jira-cloud-connector.json # Example Output: User Mapping Report ==================== Total DC Users: 492 Total Cloud Users: 487 MATCHED (87%): - Email match: 428 users - Name match (no email): 0 users UNMATCHED (13%): - Retired DC users (no Cloud account): 52 users - Email mismatch: 12 users RECOMMENDATION: - Provision Cloud accounts for 12 active users with mismatched emails - Map 52 retired users to "historical-user@company.com" account - Proceed with migration after provisioning

User Provisioning Critical

Provision all Cloud user accounts BEFORE migration. Jira Cloud requires users to exist before issues can be assigned to them. If migration encounters missing user, it will fail or assign to generic account. Coordinate with IT to create Cloud accounts 1-2 weeks before migration.

6. Migration Process (5 Phases)

1

Assessment & Planning

Duration: 1-2 weeks

  • Run OpsMigrator app compatibility analysis
  • Purchase Cloud app licenses (2-3 weeks lead time)
  • User identity mapping and Cloud provisioning
  • Workflow conversion planning
  • Key Milestone: App strategy finalized
2

Cloud Environment Setup

Duration: 3-5 days

  • Configure Jira Cloud instance (projects, schemes)
  • Install Cloud-compatible apps
  • Provision all user accounts
  • Configure basic workflows (detailed later)
  • Validation: Test issue creation
3

Pilot Migration

Duration: 5-7 days

  • Migrate 1-2 representative projects (5-10K issues)
  • Validate user assignments, attachments, links
  • Test app functionality in Cloud
  • Refine mappings and resolve issues
  • Iterations: 2-3 cycles typical
4

Production Migration

Duration: 1-2 weeks

  • Freeze Jira DC (read-only mode)
  • Full project migration in batches (50K-100K issues/day)
  • Real-time validation and error handling
  • Daily progress reports to stakeholders
  • Execution: Phased by project
5

Workflow Recreation & Cutover

Duration: 1-2 weeks

  • Recreate custom workflows in Cloud
  • Reconfigure Cloud apps (ScriptRunner, etc.)
  • User training on Cloud interface
  • Parallel operation (DC read-only, Cloud active)
  • Hypercare: 2-4 weeks support

Success Story

Global Manufacturing Company - 4-Week Migration

  • Scale: 487,000 issues across 47 projects, 492 users, 68 apps (23 Marketplace, 45 custom)
  • Challenge: 34 custom workflows with ScriptRunner, 45 custom apps requiring redevelopment
  • Result: 94.7% data accuracy, 18 Marketplace apps migrated, 12 custom apps retired, 15 rewritten as Forge apps
  • Timeline: 4 weeks migration + 3 months app redevelopment
  • Outcome: Jira DC decommissioned 6 weeks after Cloud go-live, $180K annual savings (infrastructure costs)

7. Red Flags & Mitigation

Custom Apps with No Cloud Equivalent (45 apps)

BLOCKER

Detection: 45 custom in-house apps will not function on Cloud

Impact: Critical business functionality lost post-migration; workflows broken.

Mitigation:

  • Budget 4-6 months for Forge app redevelopment (Atlassian's Cloud app framework)
  • Alternatively: Migrate functionality to Automation for Jira (Cloud native)
  • Or retire features if non-critical (stakeholder approval required)
  • Budget $50K-$200K for app redevelopment (typical for 10-20 apps)

ScriptRunner Groovy Scripts (280 scripts)

BLOCKER

Detection: 280 ScriptRunner scripts embedded in workflows and automation

Impact: Scripts must be rewritten for ScriptRunner Cloud (different API); 0% auto-convertible.

Mitigation:

  • Purchase ScriptRunner Cloud license before migration
  • OpsMigrator exports all scripts with usage context
  • Budget 4-8 weeks for script rewriting (experienced ScriptRunner developer required)
  • Alternative: Convert simple scripts to Automation for Jira (Cloud native, no coding)
  • Cannot proceed with migration until script strategy finalized

User Provisioning Gap (64 users)

HIGH

Detection: 64 active DC users have no Cloud account

Impact: Issues assigned to these users will fail migration or be assigned to generic account.

Mitigation:

  • Coordinate with IT to provision Cloud accounts 1-2 weeks before migration
  • Ensure email addresses match between DC and Cloud (critical for mapping)
  • Map retired users to "historical-user@company.com" account
  • Re-run user mapping validation after provisioning

Workflow Incompatibilities (12 workflows)

HIGH

Detection: 12 of 34 workflows have elements that cannot auto-convert to Cloud

Impact: Workflows must be recreated in Cloud; temporary workflow simplification required.

Mitigation:

  • OpsMigrator provides workflow conversion report with Cloud equivalents
  • Use simplified workflows during migration; add complexity post-migration
  • Budget 1-2 weeks for workflow recreation after data migration
  • Test critical workflows in pilot before production migration

Large Attachments (>50 MB)

MEDIUM

Detection: 127 attachments exceed Jira Cloud 50 MB file size limit

Impact: Large attachments cannot be migrated; data loss for documentation/evidence.

Mitigation:

  • OpsMigrator exports large files to Azure Blob Storage or Confluence
  • Add link to external storage in issue comments
  • Alternatively: Split large files or compress before migration

8. Best Practices

Before Migration

During Migration

After Migration

9. Frequently Asked Questions

Should I use Atlassian JCMA or OpsMigrator?

Both. Atlassian's free JCMA tool handles basic data migration well. OpsMigrator adds AI-powered app analysis, workflow conversion reports, advanced user mapping, and validation. For simple migrations (<10 apps, standard workflows), JCMA alone is sufficient. For complex migrations (50+ apps, custom workflows), OpsMigrator provides critical insights JCMA doesn't offer.

What happens to my custom apps?

Custom Server/DC apps will NOT work on Cloud. You must rewrite them as Forge apps (Atlassian's Cloud app framework) or Convert functionality to Automation for Jira. Budget 4-6 months and $50K-$200K for app redevelopment. OpsMigrator exports app configurations to help developers understand functionality.

Can ScriptRunner scripts migrate automatically?

No. ScriptRunner Cloud uses different APIs than ScriptRunner Server. All scripts must be rewritten. OpsMigrator exports scripts with context, but cannot auto-convert. Budget 4-8 weeks for script rewriting. Simple scripts can be converted to Automation for Jira (Cloud native, no coding).

How long does Jira DC need to be offline?

Jira DC does NOT need to be offline. Recommended: freeze DC (read-only mode) during 1-2 week production migration. After migration, run DC (read-only) and Cloud in parallel for 4-6 weeks. Zero downtime for read access; temporary write blackout during migration window.

What's the success rate for user mapping?

OpsMigrator achieves 85-95% automatic user mapping success. Failures occur when: (1) DC users have no Cloud account, (2) Email addresses don't match between DC and Cloud, (3) Retired users no longer exist. Unmatched users map to generic "Historical User" account with original name preserved in custom field.

Can I migrate only specific projects?

Yes. OpsMigrator supports selective project migration. Common scenario: Migrate active projects first, archive historical projects on DC. Reduces migration scope by 30-50%. Phased approach also allows incremental user training and risk mitigation.

What are typical costs for DC to Cloud migration?

Costs include: OpsMigrator license, Cloud app licenses (annual), consultant fees, app redevelopment (Forge apps), training. This is 2-4x more expensive than Jira Cloud to ADO migrations due to app complexity.

Ready to Migrate to Jira Cloud?

Schedule a consultation to discuss your app compatibility strategy and migration timeline.

Schedule Consultation Contact Experts
Back to Documentation Hub