Confluence Cloud has no report that answers "who can access this?" across a space. Premium lets you inspect one user at a time. On Data Center you could query the database directly. On Cloud that option is gone.
I built PermPilot to close that gap. This post covers what it does, the specific problem it catches, and two design decisions that mattered more than I expected.
In Confluence, view restrictions inherit down the page tree. Edit restrictions do not.
So a page can be correctly hidden from most of the company, while everyone who can still see it is also able to edit it. There is a padlock. It looks locked down. It is not.
Handbook (view restricted to: HR group)
└── Compensation Bands <- inherits the view restriction, no edit restriction
└── 2026 Salary Review <- same
Everyone in HR can read those pages, which is intended. Everyone in HR can also quietly rewrite the salary bands, which usually is not. Nothing in Confluence surfaces this. You would only find it by opening Restrictions on every page and comparing the view list against the edit list by hand.
I wrote up the native ways to find this, and where they run out, in How to audit who can view and edit every page in Confluence Cloud.
One click, for a single space or the whole site:
An app can read Confluence in one of two ways: as the app, or on behalf of the person using it. That sounds like a detail. It is not.
An app reading as itself is not on anyone's restriction list. So restricted pages are simply invisible to it. It would scan a space full of locked-down pages, never see the locked-down ones, and report that everything looks fine.
In other words, an auditing tool built the obvious way would skip exactly the pages you most need audited.
PermPilot always reads on behalf of the admin running the audit. It sees precisely what you would see if you opened every page yourself, and nothing you are not already entitled to see.
For developers: this is asUser() rather than asApp(), and it is the single most important implementation detail in the app.
PermPilot makes no outside connections at all. No page content and no permission data is sent anywhere. It qualifies for Atlassian's Runs on Atlassian programme.
For a security tool that matters more than it might sound. It means the app can usually clear a customer's security review without a data processing agreement to negotiate, and that negotiation is normally what stalls anything touching permissions.
The trade-off is real: no email alerts, no outside processing, no integrations with anything. For this kind of tool it is worth it.
PermPilot never changes permissions. It cannot: it has no write access at all. It shows you what to fix and leaves the fixing to you, which is the right split for a tool whose entire job is telling you the truth about who can reach what.
PermPilot is available now for Confluence Cloud.
Try PermPilot on the Atlassian Marketplace
If you audit Confluence permissions and there is a case it does not catch, I would like to hear it. That feedback is the most useful thing I can get right now.
Peter Hallander _Stackedboost_
1 comment