Changelog — Permission Auditor for Confluence
Written for the person who installed the app, not for a developer. Marketplace release notes
are read by buyers.
1.0.0 — first Marketplace submission, not yet released
Deployed to the production environment on 14 September 2026 and waiting on the
partner account. Everything below is in that build.
What it does
-
Shows who can really view and edit every page in a space, resolving groups to the actual
people rather than leaving you to expand them yourself.
-
Finds the case Confluence hides:
edit restrictions do not cascade to child pages, so a page under a locked
parent is usually editable by the whole space (CONFCLOUD-5095, open since 2006).
-
Also finds: pages that look locked but are not, grants naming departed accounts, groups that
no longer exist, pages nobody can view or edit, and edit restrictions that change nothing.
-
Exports the findings with a header block recording the space, the page count and the exact
scan time, so the file still means something six months later.
- Re-run it and it tells you which findings from last time are now fixed.
-
Read scopes only. It cannot change a permission, and that is permanent rather than current.
Known limits, stated rather than left to be discovered
-
Confluence returns at most 200 principals per restriction. A page with more than that is
reported as incomplete, as a high-severity finding on that page — we would
rather tell you the report understates access than quietly hand you the part we could read.
-
An unrestricted page and a page restricted to nobody are identical in Confluence's API. We
read that as unrestricted, which is what it is in practice.
Fixed before first release — found by running the app against real Confluence
data rather than against its own tests, on 13 September:
-
Editing was gated on
create:page; Confluence uses update:page.
Every editor list in every report would have been wrong.
-
Access-class principals ("all licensed users") were dropped, so a default space reported as
though almost nobody had access.
-
The
expand parameter on the restrictions endpoint silently returned no data
unless each key is prefixed with its operation — every page would have parsed as
unrestricted.
-
Two Forge
route encoding bugs: one that threw on every call, one that dropped
paging parameters with no error at all.
-
An error handler that logged an empty object, making the first live failure undiagnosable.
-
The truncated-restriction warning reached our logs and nothing else; it is now a finding the
customer sees.
-
Export CSV showed the first 400 characters and told you to use a browser download button
that cannot exist in a sandboxed Forge frame. It now hands over the whole file.
Where this comes from
This page is rendered from the app's own CHANGELOG.md, which is also what goes
into the Marketplace release notes. There is one copy, so the two cannot disagree.
Documentation ·
Support