FEB 2025 UPDATE: Thank you all so much for your continued testing & feedback. Based on what we’ve heard from developers & customers in our EAP, we have a new RFC for how we see Live Docs evolving in Confluence. Please take a look & give us input for the latest on Live Docs! RFC-83: Live Docs & Pages in Confluence Cloud
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
Here are some more technical details & things we recommend you try. Please feel free to leave comments here!
Page States
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).
Extension Points
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)
Macros
Bodied Macros
Many apps use bodied macros to allow Confluence users to add rich Confluence content inside of them while editing a page. Then, when the user publishes the page, the app applies formatting to the content and renders it in a “display” state on the published page.
Since live pages are designed to not need to be published, we have added a way to see a bodied macro’s “display state” directly while editing. Now, you can switch between bodied macros “editing” and “display” with a simple click in live pages
When you insert a bodied macro, the macro will automatically start in “editing” mode, allowing you to add content. Once you’ve added content and are ready to see the “display” mode of your macro, simply click “Done editing.” To make any changes, just hover over the macro and click “Make edits” to switch back to the “editing” mode.
Any other viewers of the page will see the “display” state by default, and can enter the Editing mode if they like by hovering over the macro and clicking “Make edits.”
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.
Connect Webhooks / Forge Events
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 |
---|---|---|
page_started |
avi:confluence:started:page |
Emitted at the end of the first editing session of a page. The page will have a user generated title and 1 version. |
page_snapshotted |
avi:confluence:snapshotted:page |
Emitted at the end of every subsequent editing session. |
Query if a page is a live page via API
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.
Page Version Changes in Live Pages
A 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.