Security and data handling
Last updated 28 October 2026
The short version: BugForesight reads Jira, writes nothing to Jira, runs entirely on Atlassian's Forge platform, and keeps its data in a private database per Jira site.
How it's built
- Runs on Atlassian Forge. Atlassian hosts the app's code, its database and the AI model. BeyondX runs no server that receives your Jira data.
- No outside network access. The app declares no external permissions. The only calls it makes are to Jira, through Forge, and to Atlassian's AI service.
- Read-only on Jira. The one Jira permission is
read:jira-work. The app can't edit, comment on or create issues. It also holdsreport:personal-data, which only lets it use Atlassian's personal data reporting service (see below). - Results live in a tab. The app adds nothing to your tickets. Its output is shown only to the person who opens the Bug Foresight tab.
- No external scripts. The tab is built with Atlassian's own Forge UI components. It loads no third-party scripts or frames.
What it stores
Per Jira site, in a database that belongs to that installation:
- Past bugs (issue type Bug): key, project, title, a short snippet of the description (about 700 characters), the root-cause line if there is one, labels, components, priority, status, resolution and dates.
- A word index built from that text, used for ranking.
- Cached results for stories that have been checked.
- Votes (Useful / Not useful) with the Atlassian account ID of the person who voted, and cached results kept per viewer.
- Counters of AI checks used per day and per month.
It doesn't store names, email addresses, avatars or phone numbers. Account IDs are Atlassian's opaque identifiers. Ticket text written by your team can itself contain personal data. The app treats it as ordinary text and doesn't profile people.
What goes to the AI
To judge which past bugs matter for a story, the app sends the story's title, up to 4,000 characters of its description, and about 20 candidate past bugs (key, labels, title and a short snippet) to Claude through Atlassian's Forge LLM service. Nothing goes to any other AI provider. The prompt tells the model to treat the text as data, not instructions. The app only accepts ticket keys that were in the candidate list, so a warning can't cite a ticket that doesn't exist.
How Atlassian handles Forge LLM requests is covered by Atlassian's Forge terms. Where the AI is unavailable or a limit is reached, the app uses keyword matching, which makes no AI call.
Logs
The app's logs hold counts, timings, issue keys and error names. They're written to avoid ticket text, AI prompts and responses, and account IDs.
Personal data reporting
Following Atlassian's user privacy rules, the app regularly reports the account IDs it holds to Atlassian's personal data reporting service. If Atlassian says an account has been closed, the app deletes that account's votes and cached results.
Deleting data
Uninstalling the app is the quickest way to remove everything for a site. Atlassian then removes the app's storage under its Forge retention rules. When a bug is deleted in Jira, the app drops it from its index. To ask what we hold or to ask for something to be deleted, write to support@beyondxia.xyz.
Our own security practices
We're a small company and we'll be straight about that. We rely on the Forge platform for hosting, isolation, encryption and access control; Atlassian describes those in its Forge security FAQ and in its Forge data processing addendum. BeyondX doesn't hold its own SOC 2 report or ISO 27001 certificate and hasn't commissioned an external penetration test. The app has an automated test suite and is checked with Atlassian's Forge linter before each release.
Reporting a security problem
If you think you've found a vulnerability, or you suspect an incident affecting your data, write to security@beyondxia.xyz. We reply within 24 hours. If we find an incident that affects your data, we tell Atlassian and the affected customers promptly, and we say what happened, which data was involved and what to do next.