What runs, and where it runs.
The detection tiers inside Forge, and every place your content is permitted to go.
What it finds, and what it still misses.
Tier-0 regex plus a Tier-1 distilbert model for people, organisations and places. Both run inside Forge, on onnxruntime-web under WASM, scored against a corpus of nine languages by 200 examples each.
- precision
- 86.9%
- recall
- 96.5%
- F1
- 91.4%
Combined, as shipped, with the precision filter in place.
What is not shipped yet
In-place masking currently covers the regex and structured findings: emails, IBANs, cards, national IDs, secrets. Names found by the model are detected, scored and reported, and masking them in place is still to come. The product marks those findings REPORT ONLY rather than leaving you to discover it.
It declares egress, so it does not carry the badge.
permissions:
external:
fetch:
backend:
- address: https://huggingface.co
- address: https://us.aws.cdn.hf.coTwo outbound addresses, declared in the manifest where anyone reviewing the app can read them. They pull about 129 MB of model weights in. Nothing goes out: no issue, no page, no attachment, no finding.
An app that declares any egress at all cannot hold Atlassian’s badge for apps that make none, so Velum Privacy does not have it. We took the model over the badge, and this is where we say so.
Two scopes worth explaining
- read:audit-log:confluence
- Used only to tell a Confluence administrator from an ordinary user, so a Confluence admin can manage Confluence findings without also holding Jira admin. The app reads one record from an endpoint that requires the Confluence Administrator permission, then discards it.
- read:attachment:confluence
- PDF and text only, capped at 12 MB and 20 files per page, read-only. An attachment is never rewritten, and the extracted text is not stored. Only the findings are.
- Runtime nodejs22.x, with Forge licensing enabled.
- One admin page in Jira, one global settings page in Confluence. Jira is required, Confluence optional.
- Seven functions, an async-events consumer on the velum-scans queue, three product triggers covering five events, and two scheduled triggers: the scan driver daily, the detection-queue drain hourly.
- The mapping that makes masking reversible is encrypted with AES-256-GCM under the Forge encrypted variable VELUM_MAPPING_KEY, stored through kvs.setSecret. De-anonymizing is gated on an administrator.
This app is licensed through the Atlassian Marketplace, and the listing carries its pricing. The apps your staff run on their own machines are licensed separately: see pricing for one person, or Velum for organisations for a fleet.
See it work on your own data.
Tell us what you work with and we will walk you through it on a call, on your own files. Nothing leaves your machine while we do.
Your address is used to reply to you, and for nothing else.