RFCs are a way for Atlassian to share what we’re working on with our valued developer community.
It’s a document for building shared understanding of a topic. It expresses a technical solution, but can also communicate how it should be built or even document standards. The most important aspect of an RFC is that a written specification facilitates feedback and drives consensus. It is not a tool for approving or committing to ideas, but more so a collaborative practice to shape an idea and to find serious flaws early.
Please respect our community guidelines: keep it welcoming and safe by commenting on the idea not the people (especially the author); keep it tidy by keeping on topic; empower the community by keeping comments constructive. Thanks!
Project Summary
Atlassian is exploring introducing “App Migrations – Cloud Product Migration Mode”, which would provide apps an expanded set of permissions during server-to-cloud migrations. The goal is to reduce the number of failed app migrations caused by differences in how permissions are handled between Atlassian’s server and cloud products.
We are exploring automatically enabling a new migration mode on the destination cloud site for the duration of a server-to-cloud migration, and then disabling it once the migration is complete.
-
Publish: 29 December 2025
-
Discuss: Until 26 January 2026
-
Resolve: Estimated to be by 9 February 2026
Problem
Atlassian is developing a migration mode for Confluence that will be activated automatically on a destination cloud site when a server-to-cloud migration runs.
In today’s model, apps participating in server-to-cloud migrations are often denied access to restricted content that they still need to read or update as part of the migration. A common example is when an app needs to transform IDs or URLs in macros that change as content is moved from server to cloud. Similar issues arise whenever an app needs to adjust data it owns within a space that is restricted to it in cloud.
Because those permissions are stricter in cloud than on server, app developers can’t reliably perform all the transformations they need, even though they are responsible for the data.
This gap is most clearly visible in the long-running issue MIG-837. By addressing this problem, we aim to:
-
reduce friction and failure rates in app migrations
-
improve migration reliability for customers and app developers
-
remove a long-standing pain point that app developers have had to work around themselves
Who are we solving for?
App Developers
We want to:
-
Allow apps installed on a destination cloud site to access restricted content for the duration of a server-to-cloud migration, where that access is required to complete the app’s migration logic. This should:
- reduce failure modes that app developers currently cannot mitigate due to cloud permission constraints
Customers
We want to:
-
Reduce the number of failed or partially-complete migrations, especially during test runs
-
Reduce the manual effort required to coordinate with Atlassian and app developers support to repair or re-run migrations
Proposed Solution
This section is work in progress and we are especially interested in feedback from app developers on the approach and scope.
At a high level, Atlassian intends to:
-
Automatically detect when a space migration (server-to-cloud) begins.
-
Enable migration mode on the destination cloud site for the relevant apps.
-
Keep migration mode active:
-
from completion of the space migration,
-
until all apps involved in the migration have reached a “settled” state (no further migration activity),
-
or up to a maximum of 14 days after the app migration started — whichever comes first.
-
-
Disable migration mode once these conditions are met.
While migration mode is active, installed apps will be granted temporary, scoped access to content that would otherwise be restricted at the user level, so that they can identify and modify the content they own or depend on for migration.
We want to minimise the scope of this access while still ensuring that app developers have the permissions they need to complete migrations successfully. Our current proposal is that an app should be able to access content under migration mode when at least one of the following is true:
-
The app has a macro on a page → the app should have access to that page.
-
The app owns custom content on a page → the app should have access to that page.
-
The app owns a content property → the app should have access to that content property (and whatever is minimally required to read/update it).
The intent is that migration mode:
-
is orchestrated entirely by Atlassian and compatible with all existing CCMA integrated app migrations,
-
is time-bound and automatically cleaned up,
-
is scoped to content the app already owns or is clearly associated with, and
-
is only used to support migration-related operations, not ongoing runtime behaviour.
We will refine the exact rules and technical implementation based on feedback to this RFC.
Asks
We welcome any feedback and we are particularly interested in input from app developers on the following:
-
Does this approach address the core issues behind MIG-837 for your app(s)?
- Are there specific failure modes you see today that this proposal would not resolve?
-
What types of content does your app need access to during a migration?
-
Pages with your macros?
-
Custom content you own?
-
Content properties?
-
Any other Confluence entities or data types that would need to be in scope?
-
-
Are there additional constraints or safeguards you think we should include?
- For example, further scoping rules, audit requirements, or visibility for customers app developers.
-
Are there scenarios where this migration mode would still not be sufficient to complete your migrations?
- If so, what additional capabilities would be required?
Your feedback will help us tune the scope of migration mode and ensure it provides enough access to be useful, while remaining safe and predictable for customers.