Security Policy

Riskcadence for Jira ยท Last updated: October 18, 2026

1. Overview

Riskcadence: Risk Register & Risk Management for Jira ("the App") is built on the Atlassian Forge platform and operates entirely within Atlassian's infrastructure under the Runs on Atlassian trust boundary. It reads and changes risks with the permissions of the person using it, makes no outbound network calls to any external server, calls no AI service and stores no credentials of any kind. This document describes the App's security architecture and our practices.

2. Architecture & Runtime Environment

3. Access Control

ControlDetails
Each person's own permissions Everything a person triggers, such as listing risks, changing a field, importing, starting or closing a review, building a report or publishing it, runs as the user, in the name of that person. Jira applies that person's permissions, including issue security, and Confluence applies page permissions. People see only the risks they may see in Jira.
App account, narrowly used The App uses its own app account only for: writing the calculated fields it owns (Risk score, Residual score, Risk level) and recalculating them in the background, reading the metadata of those fields, reading all risks of a project once when a review is closed, so that its closing state does not depend on who closes it, and the display-name lookups of the weekly personal data job. Stored rows are always filtered by the reader's current visibility in Jira before anything is displayed, so a review, a comparison or a report never shows a risk the reader cannot see.
Minimal API scopes read:jira-work (read risks, projects and search), write:jira-work (create and edit risks, comments, transitions, filters for reminders and issue properties), read:jira-user (names for history and pickers), manage:jira-configuration (company-managed setup: work type, fields, link type, screens), manage:jira-project (project schemes and screens during setup), storage:app (Forge key-value store and Forge SQL), write:app-data:jira (write the App's own calculated fields), read:page:confluence (check whether the user may view or edit the page before a published review state is shown or published; no page content is read) and report:personal-data (the weekly personal data report). The configuration scopes are used only by project or Jira admins during setup.
Admin actions checked on the server Setup, changing the risk matrix, recalculating fields, example risks and the full export need a project or Jira admin; Jira confirms this with the user's permissions on every call. The browser cannot grant itself these rights.
Published review states Only people who can edit the page can publish. Withdrawing is open to page editors and to the publisher while they can still view the page. Both are checked on the server with Confluence, as the user. A published state is stored under the page ID and macro ID of the Forge context, never from an ID sent by the browser, and bound to that page and macro. Showing it is a read of the App's own Forge storage after a check of the reader's permission to view the page, repeated each time; it makes no Jira request. Publishing reads the risks with the publisher's Jira permissions, and the confirmation tells the publisher what that shares. Jira permission changes after the fact do not withdraw a publication; withdrawing does.
Input validation Project keys, work item keys and IDs are validated before use, filters are built on the server from validated values and escaped, and the browser cannot send JQL. Spreadsheet rows are validated again on the server, in batches of at most 25, and an import never creates a second risk for the same source ID.
License enforcement The license is checked server-side on every request; if the Marketplace license of the site is inactive, the App shows a notice instead of data. A trial has the full functionality.
Developer access None. We cannot read, access, or export any data stored in your Jira or Confluence site or in the App's Forge storage. All data resides within Atlassian's infrastructure.

4. Data Protection

Data in transit:

Data at rest:

Data minimization:

5. No External Credentials or Integrations

The App does not require or accept any API keys, tokens, passwords, or third-party credentials. There is no configuration that could expose user secrets, and there are no integrations beyond the Atlassian platform itself.

6. Dependency & Vulnerability Management

7. Incident Response

If a security issue is discovered in the App:

To report a security vulnerability, contact support@janekbehrens.de with the subject line "Security Report โ€” Riskcadence". We aim to acknowledge reports within 2 business days.

8. Organizational Security Controls

9. Compliance

10. What We Cannot Access

For complete transparency, we have no technical means to access:

11. Contact

For security questions or to report a vulnerability:
Email: support@janekbehrens.de
Subject: Security Report โ€” Riskcadence

Atlassian, Jira and Confluence are trademarks of Atlassian. Riskcadence is an independent app by Janek Behrens and is not made or endorsed by Atlassian; the product names only say which products the app works with.