Documentation
Everything you need to install, configure and use LeakRadar.
Documentation version 1.0, published 19 October 2026. LeakRadar is in development: this documentation describes version 1.0 as specified for its first release on Atlassian Marketplace.
Overview
LeakRadar is an Atlassian Forge app that scans Jira Cloud and Confluence Cloud for credentials and personal data. Deterministic detectors find candidates, Forge LLMs review the ambiguous ones, and your team triages and remediates the findings. LeakRadar never stores the full value it found.
Product principles:
- LeakRadar never stores and never shows a full secret or personal data value.
- Every finding has a confidence and a reason. A false positive becomes a suppression so it does not come back.
- Remediation starts with rotating the secret. Deleting text comes second, because Jira history and Confluence page versions keep old content.
- Zero egress. The AI runs inside Atlassian and sees only masked context. AI triage is on by default and a Jira administrator can switch it off.
Requirements
- Jira Cloud (required). LeakRadar is installed on Jira and its licence follows your Jira users.
- Confluence Cloud on the same site (optional). Connect Confluence to LeakRadar to scan it with the same licence.
- A Jira administrator for installation and settings.
- Rovo only for the Rovo agent.
Install and get started
- Install LeakRadar on your Jira site from Atlassian Marketplace. Approve the requested scopes. To scan Confluence, also connect LeakRadar to Confluence when prompted.
- Open the admin page (Jira settings → Apps → LeakRadar). The onboarding shows an estimate of items per product.
- Choose the scope: all or selected Jira spaces and Confluence spaces, whether to include personal spaces (excluded by default), the time range (the last 24 months by default, or all time), and whether to include history and attachments (on by default).
- Start the first scan. LeakRadar scans newest content first, so recent leaks appear early. History and attachments run as a second pass.
- Add your LeakRadar team in Settings: the people who triage findings. Optionally grant delegated roles per space or project.
- Triage critical findings first. Open Findings, filter by Critical and Open, rotate the secret and clean up the content.
Where LeakRadar appears
- Admin page (Jira)
- Onboarding, scope, start and pause scans, coverage, detectors, AI settings and usage, team, retention, visibility toggles and the audit log.
- Global page in Jira and in Confluence
- Overview, Findings, Value groups, Exposure, Labels, Policies, Erasure, Suppressions, Scans, Reports, Detectors and Settings. The same data in both products.
- Work item glance and page byline
- A count of open findings you can see, with a panel of masked details. Can be switched off in Settings.
- Space and project admin views
- Findings for that space, with triage and redaction.
- Confluence administration
- A Confluence entry point with a link to the Jira admin page.
- Dashboard gadget
- Open leaks in Jira dashboards.
- Rovo
- The LeakRadar agent.
Scan scope
The scope decides what LeakRadar reads: Jira spaces and work types, Confluence spaces, personal spaces and archived spaces. Excluded content is never read after you save the exclusion. You can change the scope at any time in Settings.
Backfill and incremental scans
- Backfill: one job per Jira space and per Confluence space, resumable after failure, with progress per space (items scanned, findings, errors). Pause, resume or cancel from the Scans screen.
- Incremental scans: LeakRadar follows Jira and Confluence events for created and updated content, comments and attachments, and fetches the current content to scan it. Rapid edits are debounced. Live events have priority over a running backfill.
- Reconciliation: an hourly job re-checks items with open findings and catches missed events. When the content is gone, the finding is marked accordingly; when the value is gone, the finding moves to Resolved (verified).
- Re-scan on demand: one item, one space, or everything after a detector update.
- Scheduled full re-scans: weekly or monthly.
- Coverage report: what was scanned and what was skipped (excluded, too large, access denied, API error), with a reason code for every skipped item.
LeakRadar is built so that it never slows down Jira or Confluence pages or exports.
What is scanned
| Product | Content |
|---|---|
| Confluence | Pages and blog posts (title and body), live docs, footer and inline comments, page versions, attachments |
| Jira | Summary, description, environment, text custom fields, comments, field history, attachments |
| Attachments | Text formats, PDF and Office documents up to a size limit, HAR files, and text in images where supported |
Not scanned: video and audio, whiteboards and databases.
Detectors
Built-in detectors use prefixes, validators, checksums, entropy and keyword proximity:
- Cloud credentials: AWS access key pairs, Google Cloud service account keys and API keys, Azure connection strings, SAS tokens and client secrets.
- Code and CI tokens: GitHub, GitLab, Atlassian API tokens, npm, PyPI, Docker Hub, Slack tokens and webhook URLs, Stripe live keys, Twilio, SendGrid, AI provider keys and JSON Web Tokens.
- Private keys: RSA, EC, DSA, OpenSSH, PGP and PKCS#8 blocks.
- Connection strings and passwords: database and broker URLs with credentials, JDBC passwords, basic auth in URLs and password assignments, with placeholders such as
changemeignored. - Payment data: card numbers with Luhn and prefix checks, with phone-like numbers rejected.
- Financial identifiers: IBAN with mod-97, SWIFT/BIC near an IBAN.
- National IDs (jurisdiction packs): for example PESEL, NIP and REGON (Poland), Steuer-ID, NIR, DNI and NIE, codice fiscale, BSN, personnummer, NINO, SSN, SIN, CPF, Aadhaar and PAN, and passport MRZ lines, with checksums where they exist.
- Health basics (HIPAA pack): NPI, DEA numbers and medical record numbers near keywords.
- Code integrity: Trojan Source bidirectional control characters in code blocks.
- HAR files: cookies, authorization headers and bearer tokens.
- Contact data: email addresses and phone numbers (low severity; your own domains can be excluded).
- Context detection (opt-in): names, organisations, addresses and dates of birth near other personal data, recognised by the AI in several languages.
- Custom detectors: your own patterns, keyword lists and validators, with a test box. Patterns are checked so that a bad expression cannot slow scans down.
Known sample values from documentation (for example AWS's example key or common test card numbers) are discarded or marked low. Packs cover GDPR, PCI DSS and HIPAA basics. Detector changes are versioned, and every finding records the engine version.
AI triage
Each candidate gets a score from 0 to 100 and a band: definite, ambiguous or discard. Only the ambiguous band, plus hints for definite critical findings, goes to Forge LLMs, the Atlassian-hosted models available to Forge apps.
- What the AI sees: the detector type and surrounding text with other candidates masked. The candidate itself is replaced by a shape description (length, character set, entropy, provider prefix).
- What it returns: a label (for example real secret, likely test or example, placeholder, not sensitive), a confidence and a short reason that never quotes the value.
- Authority: the AI can move an ambiguous candidate to “likely false positive” (still visible under a filter) and add a hint to a definite one. It can never resolve, delete or hide a definite finding.
- Second opinion: critical candidates can get a second review by a stronger model. Disagreement keeps the finding open and shows both verdicts.
- Prompt injection: content is treated as untrusted data, the model has no tools and its output can only set the fields above.
- Control: AI triage is on by default when LeakRadar is installed. A Jira administrator can switch it off in Settings and set a monthly budget. When it is off or over budget, candidates stay visible as unclassified.
Prompts and responses are not stored.
Masking and hashing
- Masked snippet
- Credentials keep a short public provider prefix and, for long values, the last four characters, so the owner knows which key to rotate. National IDs are fully masked; email addresses are reduced to a pattern such as
j•••@•••.com. - Keyed hash
- An HMAC-SHA256 of the normalised value with a per-installation secret key, used to group the same value across locations and to support DSAR lookups. Plain hashes are not used because short values could be guessed.
- Location
- Product, space, item, field or comment and position.
The full value is held in memory only during the scan and discarded at the end of the invocation. It is never written to storage or logs.
Severity and exposure
| Severity | Default for |
|---|---|
| Critical | Cloud credentials, private keys, live payment provider keys, HAR files with secrets |
| High | Code and CI tokens, connection strings with passwords, card numbers, password assignments |
| Medium | National IDs, IBANs, health identifiers |
| Low | Email addresses, phone numbers |
Severity moves one step up when many values of the same type sit on one item, and when the content is visible to anonymous users or the whole site. The exposure score combines several factors and ranks items on the Exposure screen; the access explorer shows who can see an item. Triagers can override severity with a reason.
Findings
The Findings list supports filters for product, space, item, detector category, detector, severity, status, owner, first seen and AI label, a facet for spaces with findings, saved views and bulk actions. The detail drawer shows the masked snippet with masked context, why it matched, the AI label and reason, the location link, the value group, the remediation playbook and the history of decisions.
A finding is shown only to users who can see the source item. Other findings count as “restricted” without title, snippet or link.
Triage workflow
- Statuses: Open, Confirmed, Resolved, False positive and Accepted risk (with a reason and a review date). Closed statuses can be reopened. A re-scan that no longer finds the value moves the finding to Resolved (verified).
- Owner: any Atlassian account that can see the item. LeakRadar suggests the last editor of the version where the value first appeared.
- Due date and SLA: due dates default from the SLA for each severity, which you can edit. Overdue findings are flagged in the list, the gadget and reports.
- Bulk actions: set status, owner or due date, suppress, create work items.
- Audit trail: every change records actor, time and the before and after state.
Value groups
The same value in many places becomes one value group, for example “this token appears in 7 places”. Rotate it once and clean it up everywhere.
Suppressions
Suppress a value, a detector in a space, or a location, with a reason and an optional expiry. The Suppressions screen lists them with author and lets you undo them.
Remediation playbooks
- Rotate or revoke the secret at its provider. Playbooks link to the right page for common providers.
- Redact the value in the current content.
- Purge old Confluence page versions that still contain it.
- Check Jira history and restrict the work item if needed.
Copy clean-up instructions produces a message with the location, type and masked snippet that you can send to the owner.
Rotate anyway. LeakRadar cannot check whether a secret is still active, because that would need a call outside Atlassian. Treat every confirmed secret as live.
Assisted redaction
From the redaction dialog, replace the value with [REDACTED by LeakRadar] in the current version of a Jira field or comment, or a Confluence page, blog post or comment. The dialog shows the masked value, the location and a preview of the replacement. The edit runs as you, after you confirm, so your permissions apply and the product history shows your account. Formatting is preserved.
Version purge and history
- Confluence: LeakRadar lists old page versions that still contain a confirmed value and can delete them as you, with a two-step confirmation, for Confluence or space administrators. The current version is never deleted.
- Jira field history: apps cannot remove Jira field history. LeakRadar reports findings that exist only in history, recommends rotating and restricting the work item, and offers an export for customers who use Atlassian Guard to redact history there.
- Version grouping: repeated findings across consecutive versions are grouped.
Attachments
Attachment findings work like other findings. Attachment actions: delete an attachment, or replace a HAR file with a sanitised copy without cookies and authorization headers. Both run as you after confirmation.
Restrict access and labels
- Restrict access: apply a Jira security level or a Confluence page restriction as you. The change summary lists who loses access.
- Sensitivity labels: LeakRadar's own labels on pages and work items, in bulk, with defaults per space and inheritance. Labels are never lowered silently.
- Warning marker: optionally mark the source item with a label and a JQL-searchable property. Off by default.
Work items and notifications
- Remediation work items in a Jira security space you choose, one per value group, with type, masked value, location link and playbook. Created automatically for Critical and High if the rule is on, or manually for any finding.
- Notifications: the in-app inbox, Jira notifications on alert work items, a digest work item, and an optional notification to the content author.
- Slack or Teams: LeakRadar sends nothing outside Atlassian. Use your own Jira Automation rules on LeakRadar work items if you want alerts there.
Auto-remediation policies
Policies are opt-in rules that act on findings automatically, for example restricting an item with a definite critical finding. They apply to the definite band only, start with a 7-day dry run that shows what would have happened, and run as the administrator who approved them. Switching a policy live is done in Settings; every run is logged.
DSAR and erasure
The DSAR helper finds every mention of a specific email address or national ID through a hashed lookup. The value you enter is not stored. From the result, the erasure workflow guides you through GDPR Article 17 erasure and keeps an erasure record. The value is entered on the app screen, never in Rovo chat.
Reports and evidence
- Overview: open findings by severity, type and product, weekly trend, top spaces, median time to resolve, SLA breaches and scan health.
- CSV export of findings (masked) and of the triage audit trail and settings changes for a period.
- JSON export with the report hash chain.
- PDF evidence pack: scope and coverage, coverage and limitations, methodology, summaries, time to resolve, open critical items and decisions.
- Signed PDF: a SHA-256 hash and a link to the previous report form a chain. The Verify screen recomputes the hash of a file locally.
- Scheduled monthly evidence pack attached to an evidence work item you choose.
- Period comparison and a public detection methodology.
Every export is logged with who exported, the filters and the hash. Control mappings for ISO 27001, SOC 2 and GDPR are offered as evidence for your auditor to review.
Glance, byline and gadget
The work item glance and the Confluence page byline show “LeakRadar: 2 open findings” for findings you can see, with a panel of masked details and guidance. The Open leaks dashboard gadget shows Critical and High counts, the oldest open finding, SLA breaches and a 30-day trend.
Configuration (Settings)
- Scope
- Spaces, work types, personal spaces and archived spaces.
- Detectors
- Toggles and default severity per detector, entropy sensitivity, jurisdiction and framework packs, custom detectors.
- AI triage
- On by default. Switch it off, choose the model tier and set the monthly budget with a usage meter.
- Team and roles
- See Team and roles.
- Retention
- How long resolved and false positive findings are kept: 13 months by default, adjustable from 90 days to 24 months. Open, confirmed and accepted risk findings are kept while they stay in that state.
- Visibility
- Whether the glance and byline are shown.
- Work items
- Security space for remediation and alert work items, notification rules and SLAs.
- Scheduled re-scans and policies
- Cadence and auto-remediation policies.
Settings changes are themselves audited.
Team and roles
The LeakRadar team is everyone with the Jira Administer Jira permission plus accounts a Jira administrator adds in Settings. The team sees all findings it can see in the products and manages settings. Delegated roles are granted per Jira space or Confluence space, to users or groups:
- Viewer
- Reads findings in that space.
- Triager
- Changes status, owner and due dates.
- Remediator
- Redacts, purges, restricts and labels.
- Admin
- Manages settings for that space.
The space and project admin views are also available to the administrators of that space or project. Every action also requires that you can see the source item, and every edit runs as you, so Jira and Confluence apply your own permissions.
Rovo agent guide
LeakRadar adds an agent named LeakRadar to Rovo, in Jira and in Confluence. Rovo must be available on your site.
What it can do
- Read: list and explain findings, show where a type of data appears, summaries, top areas, value groups, remediation plans, SLA status, period comparisons, audit summaries, coverage, a pre-share check for the page you are on, exposure and who can see an item.
- Act after you confirm: set status, assign owners, set due dates, suppress, create work items, queue a re-scan, apply sensitivity labels, restrict an item, record an accepted risk and set scheduled re-scans.
- Open the app for sensitive steps: redaction and erasure return a link to the app screen, where you see the masked preview or enter the value.
Example workflows
- Triage session: list open critical findings, explain each one, propose confirm or false positive, then set status, owner and due date.
- Remediation plan: summarise a space, build an ordered plan (rotate, redact, purge, restrict), group shared secrets and create work items.
- Audit summary: coverage, findings, resolution times and the latest signed report hash, compared with the previous quarter.
- Pre-share check: “Is this page safe to share?” on the current page.
Rules the agent follows
- It answers only from LeakRadar results and cites finding IDs and links. It never infers that content is clean if it was not scanned.
- It never outputs, reconstructs, guesses or asks for a secret or personal data value. If you paste one, it tells you to remove and rotate it.
- It never claims a secret is inactive or rotated.
- Before any change it states exactly what will change and waits for confirmation, one step at a time.
- Findings in content you cannot see are mentioned only as a number.
Permissions and scopes
Before any read as the app, LeakRadar checks on the server that you are a Jira administrator, a member of the LeakRadar team or hold a delegated role for that space or project, and that you can see the source item. LeakRadar requests read scopes for Jira and Confluence content, comments, history and attachments, and write scopes for redaction, version purge, remediation and alert work items and Jira notifications. Write actions run as the requesting user after a confirmation. Auto-remediation policies run as the Jira administrator who approved them. Alert, digest and evidence work items are created by the app in the security space you choose and contain masked values only. The full list is on the Security page and on the Marketplace listing.
Data, privacy and security
- Stored: masked snippets, keyed hashes, locations, masked item titles, AI labels and reasons, statuses, owners, due dates, decisions and the triage notes you type (masked before storage), suppressions, saved views, labels, policies, erasure records, role grants, settings, reports and their hashes, and account IDs of owners, actors, team members and people with delegated roles.
- Not stored: raw secret or personal data values, rendered content, prompts and AI responses, IP addresses.
- Retention: resolved and false positive findings are kept for 13 months by default; a Jira administrator can change this.
- Content is processed in memory during a scan. AI requests stay inside Atlassian.
- When Atlassian reports an account as closed, LeakRadar replaces its account ID with a pseudonym.
- No data leaves Atlassian. See Privacy, Security and the DPA.
Editions
LeakRadar is licensed through Atlassian Marketplace with one licence for Jira and Confluence. The Standard edition includes scanning of both products, the detectors and packs, AI triage within the monthly budget, triage, remediation, evidence exports and the Rovo agent. An Advanced edition adds enterprise depth such as longer retention and scheduled signed packs; the Marketplace listing shows what each edition includes.
FAQ
Do we need two licences for Jira and Confluence?
No. LeakRadar requires Jira and works with Confluence. Connecting Confluence uses the same licence.
Does LeakRadar store the secrets it finds?
No. It stores a masked snippet, a keyed hash and the location. The full value is discarded at the end of the scan.
Does our content go to an external AI service?
No. AI triage uses Forge LLMs, which run inside Atlassian. The model sees masked context with the candidate replaced by a description. AI triage is on by default and a Jira administrator can switch it off.
Can LeakRadar tell us whether a key still works?
No, because that needs a call to the provider outside Atlassian. Rotate every confirmed secret.
Can LeakRadar remove values from Jira history?
Apps cannot change Jira field history. LeakRadar flags history-only findings, recommends rotation and restriction, and provides an export for Atlassian Guard if you use it.
Will LeakRadar edit our content automatically?
Only if you enable an auto-remediation policy, after its dry run. Otherwise every change is a confirmed action by a person.
Can we send alerts to Slack?
LeakRadar creates Jira work items and uses Jira notifications. Your own Jira Automation rules can forward those work items to Slack or Teams.
Troubleshooting
- The first scan is slow
- The backfill runs newest first and in batches to respect Atlassian limits. Progress per space is on the Scans screen. Live events are processed first.
- An item was skipped
- Open the coverage report. Every skipped item has a reason: excluded, too large, access denied or an API error.
- A finding is a false positive
- Mark it as false positive and add a suppression so it does not come back.
- Findings show as restricted
- You cannot see the source item. Ask a team member with access.
- Many findings are unclassified
- The AI triage budget for the month is used up, or AI triage is off. Candidates stay visible and can be triaged manually.
- Redaction failed
- Redaction runs as you. Check that you can edit the item, and that the item did not change since the scan.
Still stuck? See Support.