Scopes and permissions

Forge apps declare the scopes they need, and Atlassian enforces them. The app can only do what its scopes allow, and a scope it does not have is not a scope it can use.

Scopes are about capability. Access to any individual page is still decided by Confluence permissions, per user, every time.


#When this matters

  • Security reviews asking why an app requests a given scope.

  • Understanding the difference between app capability and user access.

  • Approving an app upgrade that changes scopes.


#The detail

Thing

What happens

Read content

Reading pages and attachments, so diagrams can be found and rendered.

Write content

Storing diagram source, previews and macro configuration.

Attachments

Diagram source and preview images are attachments.

Custom content

Where diagram source and templates are stored. Collection membership is kept in a property on the same content.

Comments

Reading and writing Confluence comments (read:comment:confluence, write:comment:confluence). Diagram comments are footer comments on the diagram, always read and written as the signed-in person. The app already held these scopes, so comments did not add any.

User identity

Knowing who is acting, for permissions and audit, and finding people to @mention in a comment.


#A few things that catch people out

  • Scopes are the app's maximum capability, not any individual user's access.

  • A user only ever sees what Confluence lets them see, regardless of app scopes.

  • Upgrades that add a scope require an administrator to approve them, which is deliberate friction.

  • The app cannot delete comments. There is no delete scope for comments in its manifest.



Ask us the awkward questions. They have answers.