Skip to the content.

Security Policy — Freeze Mode for Jira

Effective date: 1 July 2026

Freeze Mode for Jira (“the app”) is developed and operated by David Lee (“I”, “me”), an independent developer. This document describes how the app is secured, how it handles your data, and how to report a security concern. The short version: the app runs entirely on Atlassian Forge, holds only the admin-grade permissions its freeze mechanism requires, gates every privileged action on a verified global-admin check, stores nothing outside Atlassian’s infrastructure, and keeps a tamper-evident audit log.

Architecture and hosting

The app is built entirely on Atlassian Forge and runs inside Atlassian’s cloud infrastructure. There are no external servers, no third-party services, and no network egress outside Atlassian:

Data handling

Permissions and least privilege

The app runs at Jira’s permission layer, so it necessarily requests admin-grade scopes. Each is present for one specific reason, and no more:

The app requests no scope to read, write, or delete Jira issue content, and does not declare allowImpersonation. New scopes will not be added without updating this policy and the privacy policy first.

Authentication and authorization model

All scheme-mutating Jira calls run as the app’s own identity (asApp()), a deliberate design choice recorded in ADR-0001: the app’s granted scopes are the capability, and a verified global-admin check is the sole authorization gate. Because those scopes are powerful, the app treats that check as a security-critical invariant:

Action Verified against the user
Freeze / Release / list Freeze Log / export Verified global Jira admin (Administer Jira)
Read freeze status (issue-context indicator) Not gated — freeze status is readable by anyone who can browse the project (by design). The admin-only reason is never exposed on this path

These checks are enforced in the backend resolver and service, never only in the UI; closed by default (any ambiguous or non-authorized result denies the action); and covered by unit tests, including denial paths.

A structural consequence reinforces the model: the locked-down scheme strips ADMINISTER_PROJECTS, so a project admin cannot change the scheme to self-unfreeze. Only a global admin can release. The freeze holds against exactly the people whose work is being frozen.

Application security controls

Security model and honest limitations

A Freeze is enforcement at Jira’s permission layer, not tamper-proof immutability. Stated plainly:

These are deliberate v1 boundaries, documented so the app’s guarantees are not overstated.

Vulnerability reporting

If you believe you have found a security vulnerability in the app, please report it privately to support@davidleetech.uk with the subject line “Security — Freeze Mode”. Please include:

Please do not disclose the issue publicly until it has been addressed. I will acknowledge reports within 5 business days, keep you informed of progress, and credit reporters who wish to be acknowledged. As an independent developer I do not operate a paid bug-bounty program.

For vulnerabilities in the underlying Atlassian Forge platform, please use Atlassian’s security channels.

Changes to this policy

If a future version of the app changes its security posture (for example, new permissions or data handling), this policy will be updated and the effective date revised before that version is released.

Contact

Security or privacy questions: support@davidleetech.uk