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.
Project Summary
The project addresses the integration of role-based access control (RBAC) in Confluence, focusing on its impact on apps and the ecosystem. The proposal suggests restricting apps from creating, updating, or deleting custom roles to prevent issues related to role limits per site. We are seeking feedback to determine if apps can continue updating user access using default roles and whether product admins should configure roles for apps to use.
- Publish: 25 March 2025
- Discuss: 8 April 2025
- Resolve: 22 April 2025
Problem
Role-based access control (currently in EAP with customers and partners) in Confluence provides space access based on the roles assigned to users, groups, and user classes. All space-level access decisions will eventually be driven by role assignments and not individual permission assignments like they are today.
With the introduction of role-based access control, there will be four default roles available out of the box and Confluence product admins can create additional custom roles as needed. Product admins can create, update and delete custom roles through the UI or the REST APIs we will be providing. There will be a limit to the number of custom roles allowed per Confluence site, and we are trying to determine whether apps should be allowed to create roles.
Proposed Solution
We are considering preventing apps from creating, updating and deleting custom roles. This will prevent apps from changing any existing custom roles, and will allow apps to use only the four default roles and any additional existing product-admin created custom roles when assigning a role to a user, group or user class.
The reason we are considering this approach is because the number of custom roles allowed per site will be limited. If apps are relying on the ability to create custom roles, the apps may not work correctly on sites where the custom role limit has been reached.
Asks
We are trying to understand whether the apps that update user access today via permissions will still be able to make the necessary permissions updates needed using the default roles. Would it be reasonable to have a product admin configure roles for the app to use?