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
Live Docs & Pages
What we have long been calling “live pages” now have a new name: Live Docs. Furthermore, we will be rolling out Live Docs as a new content type in addition to the existing Page content type. Pages will continue to start as drafts and need to be published, with subsequent edits needing to be published. Users will have the option to create Live Docs OR Pages. That way, they can create Live Docs when they want to quickly collaborate and Pages when they want to create more authoritative knowledge base content. We are eager to get your feedback on this direction.
NB: To end users, Live Docs & Pages will appear as two different content types. But, in their underlying API representation, Live Docs & Pages are both still Pages, differentiated by a subtype - more details below.
- Publish: Feb 4 2025
- Discuss: Feb 18 2025
- Resolve: Mar 4 2025
Problem
Customers want to be able to create Live Docs OR Pages. That way, customers can create Live Docs when they want to quickly collaborate and Pages when they want to create more authoritative knowledge base content.
Proposed Solution
Here are some highlights of how the experience of Live Docs differs from Pages. We will also provide more technical details under “Impact to apps” below.
- When visited, Live Docs are editable without any extra clicks, displaying edits in realtime. Users with view-only permissions cannot edit, but can still see others’ realtime edits.
- When created, Live Docs do not start as drafts. They are “open by default.” In other words, other teammates in the space will be able to view and edit the page, as well as search for it & see it in the sidebar, without it ever being published. Users can, of course, update permissions for the page after creating it.
- Users can toggle from “Editing” and “Viewing” a Live Doc, if they want to view a Doc in a view-only state to review it and avoid accidental edits.
- Live Docs will still maintain version history, but each version will be the result of automatic “snapshots” taken after each unique edit session.
- Live Docs can be converted into Pages (then, further edits will need to be published), and Pages (both unpublished drafts and published Pages) can be converted into Live Docs.
- Just like Whiteboards or Databases can be turned off in a space (making it so no new Whiteboards or Databases can be created in that space), Live Docs can also be turned off in a space (making it so no new Live Docs can be created in that space).
Timelines / Rollout Plan
- Late February 2025 - We’ll be rolling out Live Docs as a new content type to customers that are already enrolled in our EAP as well as sites in the Developer Canary Program for developers to test. All EAP customers are aware that some apps may not be fully functional yet in Live Docs.
- Early April 2025 - We’ll allow 100% of customers to opt in to a Live Docs Open Beta. These customers will also be aware that some apps may not be fully functional yet in Live Docs.
- Later in 2025 - We’ll start gradually rolling out Live Docs to all customers (GA / General Availability).
Dates are estimates and are subject to change.
Impact to apps
API’s
Live Docs will be available through REST API V2. Developers will be able to Create or Filter Live Docs using the existing Pages API itself. This will enable developers to leverage the existing infrastructure and their learning to work Page APIs to develop Live Docs .
In order to get the REST API V2 support for Live Docs ensure Live Doc feature is enabled for your tenant.
Create Live Doc with API
- To create a Live Doc, use the field
"subtype" : "live"
in the request body for Page Create endpoint. - The existing behavior for creating a Page will stay as it is i.e for creating a Page no
subtype
field is necessary.
Identify a Live Doc from response
- The Page API response for Live Docs will contain an exclusive field called
subtype
with valuelive
. - This subtype field will not be present for pages.
Filter Live Docs on bulk fetch
- Bulk
Get pages
by default will return both Pages and Live Docs. The endpoint will support an additional query parametersubtype
which can be specified aspage
for Pages andlive
for Live Docs.
/pages?subtype=live -> Get Live Docs Only
/pages?subtype=page -> Get Pages only
/pages -> Get both(Live Docs and Pages)
Timing: The above API changes are now available for all tenants in the EAP & the Developer Canary Program. They will continue to be made available to all tenants in future rollout phases (Open Beta, GA).
Under consideration: We would love to hear your feedback around some other API-related changes we are considering making.
- Making subtype available in the Forge context, allowing Forge apps to determine whether a document is a Page or Live Doc without a REST call.
- Adding a client-side API to get the latest editor content & update it, to allow apps to make instant changes to Live Doc content.
Connect Webhooks / Forge Events
Connect Webhooks & Forge Events for Live Docs
Connect Webhook Key | Forge Event | Description |
---|---|---|
avi:confluence:initialized:page | page_initialized | Emitted when a new blank Live Doc is created |
avi:confluence:started:page | page_started | Emitted at the end of the first editing session of a page. The page will have a user generated title and 1 version. |
avi:confluence:snapshotted:page | page_snapshotted | Emitted at the end of every subsequent editing session. |
avi:confluence:published:page | page_published | Emitted when a Live Doc is converted to a Page (and is therefore published). |
Connect Webhooks & Forge Events common to both Pages and Live Docs
Events such as avi:confluence:moved:page
or page_moved
, which apply to both pages and live docs, will have a subtype=live
field added in their payload if emitted by a Live Doc. Developers can use this if they need to filter for only Live Docs or only Pages. At this time, only Live Docs events are guaranteed to have a subtype
field in the events. Page events are not guaranteed have a subtype
.
Timing: We plan to make the above webhook & event changes available by late February 2025.
Under consideration: We are also considering adding an event for when a Page is converted back into a Live Doc. We would love to hear your feedback whether an event like that would be needed.
Macros
Since macros live within the editing experience that is shared across Pages and Live Docs, your app’s macros will automatically be available in Live Docs. Over the past few months, we’ve rolled out changes that make macros fully supported in Live Docs:
- Macros can both be interacted and configured in Live Docs (Changelog)
- Users can access both the “display” and “editing” state of bodied macros in Live Docs (Changelog)
- Apps will be able to detect whether they’re on a live page via REST API (above)
Your app’s macros will continue to function as expected on Pages, as well.
Timing: Macros will automatically be available in Live Docs for all customer cohorts (EAP, Open Beta, GA).
We understand that some macros display “placeholder” content while editing, as they are not primarily used to display content but to mark parts of a page to behave a certain way when published or exported. For example, Atlassian’s native Anchor macro used to display placeholder content when inserted while editing that did not appear when published.
Since Live Docs are most often consumed in the editing state, we recommend that you update your macro UX to always display a consumable state while editing. For example, we made the Anchor macro UX more consumable and feel like “it belongs”
Extension Point Modules
Live Docs already support the below extension points (shared with Pages). We do not have plans to support other extension points at this time. Sites in today’s customer EAP & the Developer Canary Program have these extension points in Live Docs today, and future Open Beta sites will as well, so developers can more easily test & update their apps as needed for Live Docs. Customers in these cohorts are made aware that apps may not be fully functional yet in Live Docs.
Extension points supported in Live Docs:
- Forge
- confluence:contentBylineItem
- confluence:contentAction
- confluence:contextMenu
- Connect
- contentBylineItem
- system.content.action
- system.content.action/primary
- system.content.action/secondary
- system.content.action/modify
- system.content.action/marker
- page.view.selection/action-panel
- atl.general
- atl.footer (for running background scripts).
However, when we start gradually rolling out Live Docs to General Availability (GA), apps using these extension points will not automatically appear in Live Docs. That way, developers can have control over testing & updating their apps as needed in Live Docs before they GA to all customers. Note that this does not apply to atl.general or atl.footer as they are designed to persist throughout Confluence.
To make your apps using any of these extension points appear in Live Docs, our proposal is that developers will have to proactively opt in by adding a new optional showsInLiveDocs
(or some similar name) property to its corresponding Connect module or Forge module and set it to true. Note that, if your app previously had a major version on Forge or Connect, the update to opt in to Live Docs will only reflect for customers on the latest version. By default, showsInLiveDocs
will be set to false for all modules, unless developers proactively set it to true.
6 months after GA’ing Live Docs, we plan to change the default value of the showsInLiveDocs
property to true, meaning if the property showsInLiveDocs
is not explicitly set, it will update to true, making those modules appear in Live Docs. So, we recommend that developers of affected apps ensure their apps function well in Live Docs by then to avoid having their customers run into issues.
Under consideration: Alternatively, we are also considering making showsInLiveDocs
a new top-level field in the Forge manifest or Connect app descriptor, making it a setting at the overall app level instead of at the module level. We are eager to get your feedback on which direction to take, and feedback in general on our proposed approach!
Timing: As mentioned above, once we GA Live Docs (timing still TBD, later in 2025), apps using Live Doc supported extension points will no longer automatically appear in Live Docs, giving developers time to make sure their apps are supported & opt in when ready. 6 months after GA begins, all apps using Live Doc supported extension points will again appear in Live Docs, meaning developers should make sure their apps are well supported in Live Docs by then.
CQL
Developers will be able to use CQL to filter for Live Docs, using the subtype
field which we are indexing.
Timing: We plan to support Live Docs in CQL by late February 2025.
Version Changes in Live Docs
A new version is created immediately once a user makes changes. As the user makes changes, the latest version itself will continually be updated, until the editing session ends and the version is finalized (15 minutes after the editing session ends).
Live Doc & Page States
We recommend ensuring that your app functions well across all states that Live Docs and Pages can be experienced in:
- Editing a Live Doc
- Viewing a Live Doc
- Editing a Page
- Viewing a rendered Page
Also continue to consider permissions scenarios around who can edit / view Live Docs, these continue to exist in Live Docs (e.g. a user may have view-only permission of a Live Doc).
Asks
- We are eager to hear your feedback on all outlined above!
- Once we release Live Docs in late February to EAP customers & sites in the Developer Canary Program, please start testing and updating your apps, and continue to give us feedback.
- Note that Live Docs are already available in an “older” version (than what we’ll release in late February) on sites in the Developer Canary Program today (see details here Live pages are available for testing on sites in the Developer Canary Program). Feel free to play with Live Docs on those sites to get a feel for them, but keep in mind that the above changes are on the way.