Documentation
This page explains how Keyring works, how to install and configure it, how to run an effective-access report and a certification campaign, and gives step-by-step instructions to verify the app's functionality end to end on a test Jira + Confluence Cloud site.
Runs on AtlassianPure ForgeZero external egressRead-only
Overview
Keyring answers a single governance question for every Jira project and Confluence space: who can access this, through which grant — and should they still? It resolves group and role membership into a plain-language effective-access report, then runs recurring certification campaigns in which reviewers attest keep / revoke / exception on each grant and an admin countersigns a signed, checksummed evidence pack.
It is an access-holder review tool intended to help evidence access reviews for frameworks such as SOC 2 CC6.3 and ISO 27001:2022 A.5.18. It is read-only, does not enforce least privilege, and does not auto-revoke access — remediation is produced as a worklist for a human admin to act on.
Architecture
Keyring is built entirely on Atlassian Forge and runs inside your Atlassian Cloud tenant. The data path has four stages:
Keyring reads permission and directory configuration — Jira permission schemes, project roles, groups and their members; Confluence space permissions — and stores a normalized snapshot in Atlassian-hosted Forge storage. Scans run daily on a schedule and can also be triggered on demand from the admin page. Large tenants are fanned out asynchronously over a Forge queue so a scan never blocks the UI.
The snapshot is expanded into a per-project / per-space effective-access view: each holder, and the grant chain by which they got in. Object-level grants (issue-security schemes) and context-dependent holders (dynamic roles such as assignee/reporter, and anonymous/public access) are flagged and shown separately rather than silently folded in, so the report never overstates what it can resolve.
A campaign freezes the current access for a chosen scope and routes it to reviewers, who attest a decision on every grant, sign a completeness affirmation, and hand off to an admin who countersigns on close. Recurring templates carry the campaign forward on a monthly, quarterly, semiannual, or annual cadence.
Closing a campaign materializes an append-only, per-record hashed evidence pack plus a remediation worklist. On a later scan that covers the same scope, Keyring records whether each revoked grant is confirmed absent, still present, or unverifiable.
Getting started
Navigation
| Module | Product location | Who sees it |
|---|---|---|
| Keyring Access Review (admin) | Jira → Settings → Apps; Confluence → Global settings | Site / space administrators — scans, campaigns, countersign |
| Keyring Reviews (reviewer) | Jira global page; Confluence global page | All assigned reviewers, including non-admins — attest decisions |
The admin console is gated so only administrators can launch scans, create campaigns, and countersign. The reviewer page renders each reviewer only the grants assigned to them, in their own isolated view.
Free feature
Every install — free — gets an exportable effective-access report for each Jira project and Confluence space Keyring can see.
The free report is an access inventory, not a signed-off audit record: it carries no reviewer attestations, no completeness affirmation, and no coverage statement. Those come from a campaign.
Paid feature
Output
Closing a campaign materializes a two-part evidence pack:
Every record in the pack is append-only and carries a per-record integrity hash, giving a verifiable audit trail. Keyring describes this as a strong hashed audit record — not a cryptographically-guaranteed or "tamper-proof" ledger.
For reviewers & evaluators
The following steps exercise Keyring end to end on a test Jira + Confluence Cloud site. A test site with a few projects/spaces, a couple of groups, and 2–3 users is enough.
Install Keyring on the test site from the Marketplace listing and approve the read-only scopes. Confirm the install completes with no request for any external credential or configuration.
Open Keyring Access Review (Jira Settings → Apps, or Confluence Global settings) and trigger a scan. Confirm it completes and reports a snapshot timestamp.
Open the report for a project or space. Verify it lists the expected holders and, for each, the grant chain (role/group → member). Confirm any dynamic-role or anonymous/public access is flagged separately rather than merged in.
Export the report and confirm the CSV contents match the on-screen report.
With the evaluation license enabled, create a campaign scoped to one or two targets. Confirm each grant is routed to a reviewer.
Open Keyring Reviews, record keep / revoke / exception decisions, and sign the completeness affirmation. Confirm a reviewer sees only their assigned grants.
As an admin, countersign and close the campaign. Confirm the campaign moves to a closed state.
Export the pack and confirm it contains the frozen core (scope, decisions, exceptions, coverage & limitations statement) and per-record integrity hashes. Re-run a scan over the same scope and confirm the addendum records remediation-verification status for revoked grants.
Review the app manifest / permissions: Keyring requests only read scopes plus storage:app and report:personal-data, declares no external fetch / egress permissions, and therefore cannot alter your permission configuration or transmit data off-platform.
Security
Keyring requests read-only scopes only, plus app storage and personal-data reporting. It requests no write scopes and no external-egress permission.
| Scope | Why |
|---|---|
read:permission-scheme:jira, read:permission:jira, read:project-role:jira, read:issue-security-level:jira | Resolve Jira permission schemes, roles, and object-level grants into effective access |
read:group:jira, read:user:jira, read:project:jira, read:jira-work, read:jira-user | Expand group/role membership and identify projects and holders |
read:space:confluence, read:space.permission:confluence, read:group:confluence, read:user:confluence | Resolve Confluence space permissions into effective access |
storage:app | Store scan snapshots, campaigns, and evidence packs in Atlassian-hosted Forge storage |
report:personal-data | Support the Personal Data Reporting API for account-holder data included in reports |
See the Data & Security and Privacy Policy pages for full detail on data handling and retention.
Help
Questions, issues, or feature requests go through our support portal. We aim to acknowledge every request within the response target published on our Marketplace Support tab.