The security reviewer opened the Marketplace screenshot.
The Mermaid macro looked clean: live preview, export buttons, wide view for architecture diagrams. The documentation team wanted it yesterday. The listing said the app runs on Atlassian Forge.
The reviewer asked one question nobody had written down:
"Where does user diagram source go, who renders it, and what happens if someone pastes a malicious link into a node label?"
That is the gap behind Confluence Mermaid macro security. Rendering diagrams is not the same as approving a macro that turns user-authored text into SVG inside Confluence pages.
Before you install any Mermaid Confluence macro, run a security checklist — not a feature tour.
Quick Answer
- Start with the install surface. Verify Marketplace listing identity, Confluence Cloud compatibility, Forge scopes, external egress, and Privacy & Security tab links before anyone clicks install.
- Trace the data flow. Document where Mermaid source is stored, where rendering happens (browser vs remote service), and whether exports are generated locally or server-side.
- Test Mermaid-specific behavior. Confirm how the macro handles HTML labels, JavaScript URLs, click actions, author-supplied security-level overrides, SVG sanitization, and oversized source.
Vendor privacy, security, and support pages are necessary input. The install prompt and sandbox trial are the evidence. They should match.
Who Owns Which Part of the Review
Split the work so platform, appsec, and procurement do not each re-read the same screenshot.
| Review area | Platform admin | Appsec / security | Procurement |
|---|---|---|---|
| Marketplace listing and install approval | Primary | Consulted | Informed |
| Forge scopes and egress | Primary | Primary | Informed |
| Data storage and classification | Consulted | Primary | Consulted |
| Mermaid sanitization and interactivity tests | Informed | Primary | — |
| Vendor privacy/security/support pages | Consulted | Primary | Primary |
| Sandbox trial and sign-off | Primary | Primary | Consulted |
One owner should attach sandbox results to the approval ticket. Split ownership is how macros reach production with no recorded test for risky diagram syntax.
Why Mermaid Macros Need Their Own Review
Static image macros display files. Mermaid macros parse text.
The Mermaid documentation describes diagrams defined as text and code. That is powerful for documentation teams. It also means authors can paste architecture names, internal hostnames, credentials placeholders, or deliberately risky syntax into source that the macro later renders.
Mermaid also supports features that matter to security reviewers. The Mermaid security configuration documents securityLevel settings that affect whether HTML tags and script-like behavior are allowed in rendered output. Flowcharts can include click syntax and links. Those features are useful in some contexts and risky in others if the macro honors them without controls.
A Confluence macro privacy checklist therefore needs Mermaid-specific rows, not only generic "is it Forge?" questions.
Checklist 1: Marketplace Listing and Install Prompt
Atlassian's Manage your apps documentation says user-installed apps are usually downloaded from Marketplace and configured through Connected Apps. Site admin access is required.
For every candidate Mermaid macro, verify on the listing and in the install prompt:
| Check | Why it matters | What to record |
|---|---|---|
| App name and vendor | Support and procurement routing | Exact listing name, vendor, support URL |
| Confluence Cloud compatibility | Wrong product installs fail or behave oddly | Hosting tab matches your site |
| Forge scopes | Defines Atlassian API access | Full scope list from install prompt |
| External egress | Defines off-platform network calls | Declared endpoints vs vendor architecture page |
| Privacy & Security tab | Atlassian-hosted vendor disclosures | Linked policies; note if tab missing or stale |
| Version and update date | Maintenance signal only | Version string and last updated date at evaluation time |
| Uninstall / retention notes | Offboarding risk | What vendor and Atlassian docs say happens on uninstall |
Word Marketplace pricing, ratings, and install counts cautiously. They change. Use phrasing such as "the listing showed at the time of evaluation."
At the time of research on July 11, 2026, I did not find an official Atlassian Marketplace listing for BacklogBridge Diagram Lens for Confluence through available public sources. Search Marketplace again before you treat any search result as the official listing.
Compare Marketplace Privacy & Security tab content with vendor site policies. They can lag each other. Mismatch is a finding, not a detail to ignore.
Checklist 2: Forge Scopes and storage:app
Many Confluence diagram macros store configuration: Mermaid source, titles, theme, zoom state, layout preferences.
Forge apps that persist app-owned data commonly request storage:app. Atlassian's Forge key-value store documentation states that using @forge/kvs requires the storage:app scope and that Forge persistent storage inherits Atlassian data residency capabilities.
Questions to ask:
- What exactly is stored? Diagram source only, or also rendered SVG caches, analytics events, or user identifiers?
- Is storage required for page view? Some macros can render ephemerally; others need stored config to reopen pages reliably.
- Who can read stored data through Confluence? Forge app storage is scoped to the installation, but diagram source may still contain sensitive business information because users typed it there.
- What happens on uninstall? Verify vendor and Atlassian guidance for retained app data.
storage:app is not automatically risky. It is also not automatically minimal. Compare requested scopes to the macro's job.
Data classification scenario: An author embeds internal service names, database hostnames, or ticket URLs in Mermaid source. If the macro stores that source under storage:app, your diagram policy is now a data-handling policy. Confirm whether that storage model is acceptable for the spaces where the macro will be allowed.
Checklist 3: External Egress and Remote Renderers
The highest-impact architecture question for Mermaid macros is simple:
Does diagram source leave the Confluence/Forge boundary to render?
Remote renderers, external analytics, AI diagram services, and vendor-hosted backends expand your review:
| Pattern | Security review focus |
|---|---|
| Client-side Mermaid in Forge Custom UI | Browser sandbox, CSP, sanitization, source-size limits |
| Vendor API render endpoint | Data classification, retention, subprocessors, transport encryption |
| External font or asset CDN | Unexpected network calls from diagram pages |
| Analytics beacon | Telemetry content, opt-out, data minimization |
Atlassian's Forge permissions documentation explains that manifest permissions declare scopes and external resources. Compare:
- Marketplace Privacy & Security egress declarations
- Vendor security page architecture description
- Observed network behavior during a sandbox trial, if your security team requires it
If the vendor says "no external egress," the install prompt and manifest should agree. If they disagree, stop and ask before production.
Checklist 4: Mermaid-Specific Controls
Feature screenshots rarely mention HTML labels. Security reviewers should.
Verify how the macro handles:
HTML labels and raw markup
Mermaid diagrams can include HTML label syntax in some configurations. Ask whether the macro disables HTML labels, strips them, or renders them.
JavaScript links and unsafe URL schemes
Node links and click targets may accept URLs. Ask whether javascript: links are blocked or sanitized.
Click actions and interactivity
Mermaid supports click syntax that binds nodes to callbacks or URLs. Ask whether click actions are blocked, sanitized, or allowed — and whether strict rendering strips interactivity.
Security-level overrides in source
Authors can attempt to set Mermaid security levels in diagram source. Ask whether the macro ignores author-supplied securityLevel directives and enforces strict settings centrally.
SVG sanitization
Even with strict Mermaid settings, rendered SVG should pass through an HTML/SVG sanitizer before display or export. Ask what sanitizer is used and whether exports receive the same sanitized output as page view.
Source-size limits
Very large sources increase denial-of-service and browser memory risk. Ask whether the macro warns or blocks oversized sources before render.
These controls matter because Confluence pages are collaborative. You are not only trusting the admin who installs the macro. You are trusting every author who can edit a page containing it.
Checklist 5: Vendor Privacy, Security, and Support Pages
Marketplace tabs are the first stop. Vendor pages are the second.
Before approving install, locate and read:
| Page | What to extract |
|---|---|
| Privacy policy | Processed data categories, storage location, retention, subprocessors — only if explicitly stated |
| Security page | Architecture, scopes, egress, rendering model, sanitization, security contact |
| Support page | Security contact, response targets, known limitations, troubleshooting for unsafe source |
| Terms | Data handling boundaries, if relevant to procurement |
Verify the security contact is reachable and monitored. A generic support inbox may be acceptable if the vendor documents security routing and response targets. Missing security contact information is a gap for incident reporting.
Do not infer SOC 2, ISO, GDPR compliance, Cloud Fortified status, or Marketplace Bug Bounty participation unless explicitly documented and current.
If a page is missing, that is a finding — not something to fill in from architecture assumptions.
Sandbox Validation: Test With Risk-Shaped Diagrams
Marketplace copy is claims. Sandbox behavior is evidence.
In a test space, try:
- A minimal valid flowchart — baseline render and save/reopen behavior.
- A diagram with an external HTTPS link on a node — confirm expected link behavior.
- A diagram that attempts HTML label syntax — confirm block, strip, or sanitize behavior matches vendor claims.
- A diagram that attempts click syntax — confirm interactivity is blocked or sanitized as claimed.
- An oversized source sample — confirm warning or block behavior.
- Export to SVG and PNG — confirm exported files match on-page rendering and do not reintroduce unsafe content.
Record browser, Confluence site type, app version if visible, and whether network tools showed unexpected egress. Attach results to the approval ticket.
After security sign-off, authors benefit from guidance on safe Mermaid patterns. Backlog Bridge's Mermaid chart tips guide describes Diagram Lens-safe diagram scope; similar author guidance may exist for other macros.
Worked Example: Diagram Lens Public Claims vs What to Verify
This section is not an install recommendation. It shows how to apply the checklist to BacklogBridge Diagram Lens for Confluence, the app named in editorial research.
| Public claim (Backlog Bridge pages, effective 8 July 2026) | Verify independently before approval |
|---|---|
| Confluence Cloud Forge app; client-side Mermaid in Custom UI | Current Marketplace listing and install prompt |
Manifest scope: storage:app only | Live install prompt scope list |
| No external egress declared | Marketplace egress tab + sandbox network review if required |
| Strict Mermaid settings; HTML labels disabled; click/JS URL controls; DOMPurify sanitization | Sandbox tests with risky diagram samples |
| Diagram config stored in Forge hosted storage | Data classification sign-off for spaces where macro is allowed |
| Public privacy, security, support pages | Procurement artifacts: SOC 2, ISO, DPA, Cloud Fortified — not verified here |
| PNG/PDF/clipboard export available | Public support docs call these best effort; test your largest diagrams if exports matter |
For reader workflow questions beyond security, see Mermaid Diagrams in Confluence: Why Big Diagrams Need a Reader, Not Just a Renderer.
When a Mermaid Macro May Be More Than You Need
A full Mermaid macro adds parsing, storage, rendering, and export surface area.
A simpler path may be enough when:
- diagrams are small and rarely edited
- authors are trusted and limited in number
- interactivity is not required
- exports are not part of the workflow
- security review bandwidth is limited and diagrams are low sensitivity
In those cases, evaluate whether native tooling or static diagrams meet the need before approving a macro that executes user text.
Master Admin Checklist
Copy this table into your evaluation ticket:
| # | Check | Owner | Done |
|---|---|---|---|
| 1 | Marketplace listing matches intended app and vendor | Admin | ☐ |
| 2 | Confluence Cloud compatibility confirmed | Admin | ☐ |
| 3 | Install prompt scopes documented and approved | Admin + Appsec | ☐ |
| 4 | External egress declarations match vendor security page | Appsec | ☐ |
| 5 | Privacy & Security tab links reviewed | Appsec + Procurement | ☐ |
| 6 | Vendor privacy, security, support, and terms pages reviewed | Appsec + Procurement | ☐ |
| 7 | Security contact and response path documented | Appsec | ☐ |
| 8 | Rendering location documented: client-side vs remote | Appsec | ☐ |
| 9 | Storage model documented (storage:app or other scopes) | Appsec | ☐ |
| 10 | Sensitive diagram content policy agreed for allowed spaces | Admin + Appsec | ☐ |
| 11 | HTML labels, JavaScript URLs, click actions tested | Appsec | ☐ |
| 12 | Author securityLevel overrides tested or vendor confirms ignore | Appsec | ☐ |
| 13 | SVG sanitization and export behavior tested | Appsec | ☐ |
| 14 | Source-size limits understood | Admin | ☐ |
| 15 | Uninstall/retention behavior understood | Admin + Procurement | ☐ |
| 16 | Sandbox results attached | Admin | ☐ |
Final Recommendation
Confluence Mermaid macro security review is about data flow and diagram execution features, not logo count on a Marketplace page.
Use a checklist that covers Forge scopes, Forge app storage app scope usage, external egress, remote renderers, Mermaid interactivity controls, and vendor privacy pages. Treat every vendor sentence as a claim to verify at install time — especially for diagram source that authors will paste from runbooks, tickets, and architecture notes.
If you are evaluating Diagram Lens specifically, public materials describe a narrow Forge scope model and strict Mermaid rendering — but your approval should still rest on the current listing, install prompt, sandbox tests, and procurement requirements, not this article.
See the Diagram Lens security page and support page for vendor-published details to compare against your trial results.