Contact: security@lichenapps.com Last updated: 2026-09-05
This page says how to report a vulnerability in this app, what the vendor can and cannot reach, what happens if something goes wrong, and which controls exist today. It is written to be checked rather than admired: every claim below is either a property of the Atlassian platform this app is built on, or something the repository can show.
Email security@lichenapps.com with the words "security" in the subject. Please include what you did, what you observed, and the site or app version if you have them.
Please do not run denial-of-service tests or automated scanners against a customer's Jira site.
Nothing. That is not a policy, it is the shape of the app.
The privacy policy's "Who can see what" section is the detailed version of that last point.
The steps a one-person vendor can actually keep, and no others:
Supported versions: the latest Marketplace version only. There is no back-porting. A security fix ships as a new version and customers on Atlassian cloud receive it automatically.
Not aspirations - these run on the vendor's machine for every change:
| Control | What it is |
|---|---|
| Tests | Every change carries tests, and each new test is seen to FAIL before the change makes it pass. The suite is run before every deploy. |
| Lint | npm run lint over the whole of src/, with no-undef on. It was added after an unlinted file shipped a ReferenceError that silently disabled a feature for one deploy. |
| Dependency audit | npm audit --omit=dev --audit-level=high, run as part of the test suite. When the advisory service cannot be reached, the run says so and is recorded as NOT CHECKED rather than passing. Production dependencies only; development tools are not shipped. |
| Runs on Atlassian check | forge eligibility --verbose after every deploy, with all seven trust signals recorded. A change that would introduce egress or a remote fails it. |
| Read-only scopes | The manifest requests read scopes only. A write scope would be visible in review and in the app's own permission screen. |
| Deploy gate | A hook prevents production deploys that were not explicitly ordered, so a development experiment cannot reach customers by accident. |
Secrets. The app has one: a per-installation salt, generated once inside the installation's own storage and used to key each user's saved view. It is never transmitted, never leaves Atlassian's infrastructure, and the vendor cannot read it. The vendor's own Atlassian API token is used only for development against a test site and is rotated when a machine changes hands.
Known dependency exceptions. At the time of writing the audit reports two moderate advisories and none at high or critical, both for uuid reached through Atlassian's own @forge/bridge SDK (@atlaskit/react-ufo). The app does not call uuid, and pinning a nested version inside the vendor SDK would put the tree out of step with the version under Marketplace review. It is recorded, not silenced, and is re-checked whenever @forge/bridge is upgraded.
It does not claim a SOC 2 report, a penetration test, a security team, or a 24/7 rota, because this app has none of those. It claims what a one-person vendor building on Atlassian's own infrastructure can honestly claim: no servers to breach, no data to leak, read-only access, and a fast, named human to email.