This page includes release notes and updates for Confluence Cloud app developers. Use this page to keep track of upcoming changes, deprecation notices, new features, and feature updates from Confluence Cloud.
For updates about changes to the Forge platform, see the Forge changelog in the Forge documentation.
You can also ask questions and learn from other Confluence Cloud developers on the Atlassian Developer Community.
We’ve stopped injecting stylesheets for Connect apps via inline styles, in favour of loading from the Connect CDN. This affects the Theming API and dynamic content macros that supported the legacy Confluence editor.
We originally announced this 6 months ago, in line with our standard deprecation policy. It is now live for https://developer.atlassian.com/cloud/confluence/developer-canary-program tenants, and will roll out to all customers widely throughout this week.
If your app doesn’t use the above Connect features, or doesn’t use a Content Security Policy (CSP) for style-src
, no action is required. Otherwise, please read the details here or see https://developer.atlassian.com/platform/marketplace/security-requirements/#connect-apps on how to modify your CSP to support these changes.
To support these changes in your app, if you're using a Content Security Policy that sets the style-src policy, you must add the Connect CDN (https://connect-cdn.atl-paas.net
) to your policy to allow these stylesheets to be injected. It's safe to remove unsafe-inline
from your policy if you've been using it up until now.
The stylesheets mentioned here were included automatically via the Connect JS script, not manually by the app vendor. There are two circumstances under which Connect injected stylesheets into your app:
The first is only for apps which opted in to the Theming API.
The theme stylesheets previously loaded via an inline stylesheet, which forced vendors to adopt the insecure unsafe-inline
policy, and is the main motivation for this change.
The second location is only for dynamic content macros.
We injected a stylesheet with CSS classes representing colors from the legacy Confluence editor.
This happened without opt-in, to be backwards-compatible with macros created in the legacy editor.
This injection was done via CSSOM, not inline styles, and therefore isn’t impacted by style-src
CSP rules currently. However, it is also now being served from the CDN.
To summarise, all styles are now being loaded from the CDN, and the inline/CSSOM methods have been removed.
Starting in December, we plan to gradually rollout a change to improve how apps are organized in Confluence’s page overflow menu into an Apps item, that will help the menu scale better with more items. See More details for imagery.
No work is required from developers due to these changes. Your apps will automatically appear in the Apps item.
As discussed in an RFC, apps will be organized into an “Apps” item in the overflow menu and given a higher relative position. Accessing apps will require no additional clicks as apps will appear upon hover.
Note that apps in the overflow menu in live pages are already organized this way.
Following this deprecation notice from May 13, 2024, we're removing the POST /wiki/rest/api/content-states/delete
endpoint and the GET /wiki/rest/api/content-states/task/{taskId}
endpoint from the Confluence Cloud v1 REST API. They will no longer be available from the time of this announcement, and we won’t be providing a replacement functionality.
For guidance on how to adapt to these changes, see the deprecation notice.
All partners in the Developer Canary Program can now test their apps with live pages! Note that live pages are still in early access, and customers that opt in are aware that some apps may not be fully functional yet in live pages. Starting January 2025, we will start gradually rolling out the ability to opt in to the live pages beta to more customers (expecting to be available for opt in for all customers by April 2025).
To get started with testing live pages, follow the instructions here: Create and collaborate on live pages in Confluence. We also announced this in the developer community, where you can leave comments & feedback. See our community announcement here.
See More details, for more technical details & things we recommend you try.
We recommend making sure that your app works in live pages that may never be published and always remain live pages. Keep in mind that live pages can still be published (e.g. for use cases like knowledge bases), so make sure that your app still makes sense with published pages--both while viewing & editing them.
Continue to consider permissions scenarios around who can edit / view pages, these continue to exist in live pages (e.g. a user may have view-only permission of a live page).
Live pages will support the following page extension points. If you are using any other extension points, we recommend you migrate so that your app is accessible in live pages. As stated on October 31, 2024, we will be deprecating other Confluence page extension points (note that extension points beyond pages are unaffected). Learn more about the extension points we are deprecating here.
Forge
confluence:contentBylineItem
confluence:contentAction
confluence:contextMenu
Connect
system.content.action/secondary
contentBylineItem
system.content.action
system.content.action/primary
atl.general
system.content.action/modify
page.view.selection/action-panel
system.content.action/marker
atl.footer
(will not render a UI component, but can still be used for running background scripts)
Bodied Macros (COMING SOON)
In December, we plan to rollout changes that make Bodied Macros like Table Filters & Aura Tabs functional in live pages. Today while editing, bodied macros only display in their “Edit” state--a text box where users can enter rich Confluence content. Users must publish to see macros in their rendered “Display” state. We will be giving users the option to switch between these “Edit” and “Display” states freely within the Editor without publishing, making them functional in Live Pages.
When inserting a bodied macro, users will see the “Edit” state of the macro by default, so they can add content. They will need to exit the “Edit” state to see the “Display” state – now, they won’t need to publish & scroll around to see the “Display” content.
When viewing a page with a bodied macro, users (assuming they did not insert the macro themselves) will see the “Display” state by default. They will be able to hover on the macro and enter the “Edit” mode.
We will let you know when we release these changes and we recommend testing your apps then to make sure they work as expected.
Non-Bodied Macros
As discussed in RFC-50, we’ve made it so non-bodied macros like Gliffy and draw.io, are more easily interacted with AND configured in the Editor, both for live pages & classic published pages. This has also been referred to as “removing the glass pane” from macros while editing. We recommend that you test your non-bodied macros in live pages to make sure they work as expected.
Since live pages do not have drafts and are not explicitly published, there are updated events for them. Note that live pages can still be published, which turns them back into standard published pages.
Webhook Key | Forge Event | Description |
---|---|---|
|
| Emitted at the end of the first editing session of a page. The page will have a user generated title and 1 version. |
|
| Emitted at the end of every subsequent editing session. |
Currently, Live pages and draft/published pages will be differentiable via the content API by the subtype
field. Currently the subtype
is not available on the v2
API. This is not considered a stable API.
In the near future, we will make the subtype
field available on the v2
content API, making it a stable API.
Currently, a new version is created at the end of the “editing session”, which occurs 15 minutes after the users finish making changes.
In the near future, this logic will change such that the new version is created immediately once a user makes changes, but this version will remain in flux as users make changes, and only finalized 15 minutes after the editing session ends.
Integrations that use the Create whiteboard endpoint can now benefit from two optional parameters.
Use the optional templateKey
parameter to create a whiteboard with template content.
Use the optional locale
parameter to specify the language of the template. If omitted, the API will use the language of caller’s user locale.
We are removing mirrors of third-party packages such as maven-central from packages.atlassian.com
We're updating how we provide packages for customers and partners to develop with our platforms. Starting February 1, 2025, we will discontinue providing third-party packages on packages.atlassian.com. Instead, customers and partners must fetch these packages directly from the original upstream repositories.
For details on how this change affects you and for guidance on migration, please refer to the documentation available at http://developer.atlassian.com .
Starting May 8, 2025, the Confluence Cloud system.content.metadata
Connect extension point will no longer be available on Confluence pages.
As we bring some of our most popular extension points into the Editor to increase their visibility & make apps functional in live-edit pages, we are deprecating extension points that do not work in the Editor or are very unpopular in the Editor to simplify how customers interact with apps, and decision-making for vendors. Last week, we announced the deprecation of a number of other extension points. Learn more about other deprecated extension points here.
Developers using system.content.metadata
will need to instead use different extension points that we are making available for use in the Editing experience, which will give them more overall visibility to customers. Here are the extension points they can use:
Forge
confluence:contentBylineItem
confluence:contentAction
confluence:contextMenu
Connect
system.content.action/secondary
contentBylineItem
system.content.action
system.content.action/primary
atl.general
system.content.action/modify
page.view.selection/action-panel
system.content.action/marker
Why is this deprecation necessary?
As we bring some of our most popular extension points into the Editor to increase their visibility & make apps functional in live-edit pages, we are deprecating extension points that do not work in the Editor or are very unpopular in the Editor to simplify how customers interact with apps, and decision-making for developers. Learn more about the other extension points we are deprecating here.
What is changing? Dates and rollout?
Starting May 8, 2025, the Confluence Cloud system.content.metadata
Connect extension point will no longer be available on Confluence pages.
Migration guidance
Check the extension point locations your app is using to determine if your app is using system.content.metadata
. Our documentation on Extension Point Locations as well as our Extension Point Finder for Confluence app may be useful.
Update your app configuration to use a location name that’s suitable for your app & not being deprecated. The simplest approach would be to use a location name within the same extension point, as their properties are likely the same. For example, replace the deprecated system.content.button
"location"
property with system.content.action/secondary
, since both are web items. As a reminder, here are the extension points on pages that are not being deprecated:
Forge
confluence:contentBylineItem
confluence:contentAction
confluence:contextMenu
Connect
system.content.action/secondary
contentBylineItem
system.content.action
system.content.action/primary
atl.general
system.content.action/modify
page.view.selection/action-panel
system.content.action/marker
For more info about moving to a new location, check documentation for the location you’re trying to switch to: Content Byline Item, Web Item, Web Panel
Known issues
None so far. We will update this if any come up.
Support
Please feel free to start discussions in the Confluence Cloud category of our developer community, where we’ll be monitoring for your posts. You can also contact our developer support service desk.
Q&A
As we start to field more questions from developers/ partners we will update this section.
Previously, when copy pasting a Forge macro within a Confluence page, the macro’s localId
would stay the same, losing its uniqueness within the page.
Now, when copy pasting a macro, a new localId
will be generated. Existing macros will be unaffected.
In further detail:
Any macros copy + pasted from this point onwards will receive a newly generated localId
Any existing macros with duplicate IDs will not be affected
This is because changing these IDs has the possibility of altering the user’s view of the page, if apps are storing data keyed against this ID
The only caveat to the above is:
Cutting and pasting a pre-existing duplicated macro also triggers the paste logic, and will result in a new localId
being generated
This does not apply to using the handles in the Confluence UI to drag the macro to a new position
Note that localId
s are only expected to be unique within a given page, so if you wish to have a globally unique ID across the entire site, you should continue to use a combination of content.id
and localId
.
Because of this, copying and pasting a macro from one page to another will not result in the ID being regenerated, unless that ID is no longer unique on the new page (such as the macro being pasted from another page multiple times).
The Confluence cloud navigation changes are now available in EAP. This Early Access Program will enable partners to test the new navigation and assess how apps will adapt to the proposed changes.
As part of EAP, we’ve set up a dedicated group on CDAC where you’ll be able to discuss these changes. Please note that the designs in the EAP are not final, so you are NOT expected to make any changes to your apps during the EAP. For partners who previously expressed interest, the new navigation will be activated to the test instances today.
To join this Early Access Program, register using the EAP form.
See RFC-59 for more information on Confluence Cloud navigation changes
The settings to synchronise calendar applications, such as iCal, Thunderbird and Outlook, with Confluence Calendars have been updated.
The current settings will become inactive after December 31, 2024.
Update your calendar application to continue to retrieve or create new entries with Confluence Cloud calendars using external apps.
There is no change to Confluence Calendars via web browser.
To update your calendar application, visit Confluence > Apps > Calendars > “…” (next to the calendar you want to synchronise) > Subscribe and then select the appropriate app from the Calendar app list.
For step-by-step guides on setting up or adjusting Calendar Subscriptions, see https://support.atlassian.com/confluence-cloud/docs/subscribe-to-team-calendars-from-third-party-calendars/
Starting Apr 30, 2025, the following Connect extension points will no longer be available on Confluence pages:
page.metadata.banner
atl.page.metadata.banner
system.content.button
atl.editor.savebar
system.editor.precursor.buttons
Update: We are also deprecating system.content.metadata
as stated in CHANGE-2021.
Also, the following Connect extension point will no longer render a UI component on Confluence pages, but can still be used for running background scripts only.
atl.footer
As we bring some of our most popular extension points into the Editor to increase their visibility & make apps functional in live-edit pages, we are deprecating extension points that do not work in the Editor or are very unpopular in the Editor to simplify how customers interact with apps, and decision-making for vendors.
Developers using any of the deprecated Connect extension points will need to instead use one of the following extension points that we are not deprecating and are making available for use in the Editing experience, which will give them more overall visibility to customers.
Forge
confluence:contentBylineItem
confluence:contentAction
confluence:contextMenu
Connect
system.content.action/secondary
contentBylineItem
system.content.action
system.content.action/primary
atl.general
system.content.action/modify
page.view.selection/action-panel
system.content.action/marker
If you are simply using atl.footer
to run background scripts, you will not need to take any action.
Note that these changes only apply to extension points available when interacting with Confluence pages. Any extension points beyond the context of a Confluence page are not impacted.
Why is this deprecation necessary?
As we bring some of our most popular extension points into the Editor to increase their visibility & make apps functional in live-edit pages, we are deprecating extension points that do not work in the Editor or are very unpopular in the Editor to simplify how customers interact with apps, and decision-making for developers. Thank you so much to all of the developers who participated in our RFC discussing the matter.
What is changing?
Starting Apr 30, 2025, the Connect extension points page.metadata.banner
, atl.page.metadata.banner
, system.content.button
, atl.editor.savebar
, system.editor.precursor.buttons
, system.content.metadata
, and atl.footer
will no longer display on Confluence pages to simplify the number of ways customers can interact with apps. Note that atl.footer
will still be available for running background strips, but will no longer render a UI component on Confluence pages.
Starting May 8, 2025, system.content.metadata
will no longer display on Confluence pages.
Dates and rollout
Starting Apr 30, 2025, we will be rolling out this change gradually. Even though we are rolling it out gradually, a portion of customers will no longer see deprecated extension points starting on that date, so plan to make and launch necessary changes before then to avoid impact to customers.
Migration guidance
Check the extension point locations your app is using to determine if any of them are being deprecated. Our documentation on Extension Point Locations as well as our Extension Point Finder for Confluence app may be useful. As a reminder, here are the Connect extension points being deprecated:
page.metadata.banner
atl.page.metadata.banner
system.content.button
atl.editor.savebar
system.editor.precursor.buttons
Also, the atl.footer
Connect extension point will no longer render a UI component on Confluence pages, but can still be used for running background scripts only.
Update your app configuration to use a location name that’s suitable for your app & not being deprecated. The simplest approach would be to use a location name within the same extension point, as their properties are likely the same. For example, replace the deprecated system.content.button
"location"
property with system.content.action/secondary
, since both are web items. As a reminder, here are the extension points on pages that are not being deprecated:
Forge
confluence:contentBylineItem
confluence:contentAction
confluence:contextMenu
Connect
system.content.action/secondary
contentBylineItem
system.content.action
system.content.action/primary
atl.general
system.content.action/modify
page.view.selection/action-panel
system.content.action/marker
For more info about moving to a new location, check documentation for the location you’re trying to switch to: Content Byline Item, Web Item, Web Panel.
Known issues
None so far. We will update this if any come up.
Support
Please feel free to start discussions in the Confluence Cloud category of our developer community, where we’ll be monitoring for your posts. You can also contact our developer support service desk.
Q&A
As we start to field more questions from developers/ partners we will update this section.
Following the recent announcement of Role Based Access Control (RBAC), we’re releasing a set of new role-based APIs.
The existing Space permissions and V1 Space resources, which accept and return space permission information in terms of individual permissions, are being deprecated. They will be replaced by V2 APIs that return space permission information in terms of roles instead.
All Confluence instances enrolled in the EAP will have these newer APIs enabled alongside the deprecated APIs, to allow you to test your apps during the EAP and beta phases. These APIs will be released for all other sites when RBAC reaches General Availability. Again, please reference our early access announcement for more details. https://community.atlassian.com/t5/Confluence-articles/Early-Access-Improved-space-access-management-with-new/ba-p/2855017
With the introduction of roles which are assigned ‘named collections of permissions’, space permissions for Confluence principals are now allocated via role assignment, rather than direct space permission addition & deletion. As such, the below capabilities are now available to customers enrolled in our Early Access Program in order to help power the new experience.
Our intention is to allow customers using the V1 Space permission APIs the time to investigate these new V2 APIs, and make sure that their integrations will work seamlessly when we fully release this capability more broadly over time. We welcome feedback on the APIs and their usages.
In addition, capabilities for retrieving available space permissions on a tenant, retrieving information about a specific space role by its id, and creating a space with specified role assignments are also being made available at this time.
The Get available space permissions
endpoint is primarily available to support newly split permissions on a tenant (and indicate their availability). Please see more in the announcement post.
Newly released APIs |
---|
Get Available Space Roles - |
Get Available Space Permissions - |
Get Space Role Assignments - |
Set Space Role Assignments - |
Get Space Role by Id - |
Create Space - |
We recommend using the above endpoints to identify existing roles and role assignments, and use the Set Space Role Assignments
endpoint to add/remove role assignments that fit your use case, in place of manually assigning space permissions.
The below table indicates the V1 Space permission APIs that can be replaced by identifying and assigning roles with the new V2 endpoints.
Old Endpoint | New Endpoint |
---|---|
Add new permission to space - |
|
Remove a space permission - |
|
The V1 Space creation endpoint has a direct V2 successor endpoint now available that optionally accepts an array of role assignments, roleAssignments
, for a newly created space, rather than direct space permission assignments.
Finally, an additional query param has been made available for the V2 Get Space by Id GET /spaces/{id}
endpoint, include-role-assignments
, which will return existing role assignments within the retrieved space. The V2 Get Space by Id query param include-permissions
is included in the set of deprecations associated with this change.
Old Endpoint | New Endpoint |
---|---|
Get Space - | Get Space V2 - |
Create Space - | Create Space V2 - |
Create Private Space - | Create Space V2 - |
The below list of endpoints that directly manipulate space permissions are being deprecated.
Deprecated API |
---|
Add new permission to space - |
Add new custom content permission to space - |
Remove a space permission - |
Create a space - |
Create private space - |
Get space by id |
We’re pleased to announce that custom UI apps can now utilize the layout: inline
property for Confluence macro modules. This allows custom UI apps to add macros within the text flow of a paragraph or other text element in which the macro appears.
Our products have been in the process of transitioning to the Grouped View for rendering notifications instead of the previously used List View.
The notification logic for the view type is internal and there are no existing APIs available to app developers to control or interact with that. Therefore no actions are needed and apps don’t require any update as we complete the roll-out of the Grouped View and phase out the List View one.
EDIT, 24 Oct 2024: Clarified that there is no impact on apps due to this change and changed the changelog type to Announcement.
The Atlassian Connect Spring Boot and Atlassian Connect Express (Node.js) projects in the Atlassian Ecosystem Jira track issues with the two frameworks. To improve response times, we’re no longer accepting new issues in these Jira projects as of this announcement. Instead, we encourage our partners to file issues with Developer and Marketplace support.
Rate this page: