Privacy policy, JQL Gaps for Jira
Last updated 29 August 2026.
The short version
The app runs entirely inside Atlassian's Forge platform. It declares no external domain, makes no outbound network call, and holds no storage of its own outside Jira: every fact it needs to answer a search is either read fresh from Jira at the moment of the search, or written back into a single custom Jira field it owns. No data leaves your Atlassian site because of this app, and the publisher operates no server that could receive any.
What the app reads
Through Jira's REST API, under these scopes only:
read:jira-work: issue fields relevant to the function called (dates, assignee, reporter, creator, attachments, parent/children, comments, worklogs, remote links, changelog entries), and project metadata.read:jira-user: whether an account is active, for theinactiveUserfunction only.read:sprint:jira-software: a sprint's own start, end and complete dates.read:field:jira: the list of fields on your site, used only to resolve two field ids that differ from one Jira instance to the next (the Sprint field, and the app's own index field described below).
Which of these a given search touches depends entirely on which function is called and with what arguments — a call to businessDays never reads a comment, and a call to commentedBy never reads a sprint.
What the app writes, and where
Nothing is stored in Forge storage. This app requests no storage:app scope and holds no database of its own. The only write it ever makes is to a single custom field it declares and owns, JQL Gaps Marks, under the write:field:jira and write:app-data:jira scopes. That field holds a short, fixed vocabulary of tokens (for example, whether an issue has children, or which sprints it entered or left) for four functions that can otherwise answer across your whole instance in one step rather than scanning it.
The field is marked read-only for people: it is written only by the app, on a schedule and when a work item changes, and it carries no history and raises no notification. It is not a place where anyone enters data, and it is not usable by any other app.
What is never read
Nothing in the app reads Personally Identifiable Information beyond what Jira's own issue and user objects already expose to anyone with access to those APIs (an account id, and whether it is active). No email address, no name beyond what Jira's user object already carries, and no field content is ever sent anywhere outside the request that already needed it to compute an answer.
Search results and permissions
A JQL function called by this app returns a list of issue identifiers, or a condition on the indexed field above. Jira itself evaluates that result inside the searching user's own query, under that user's own permissions, exactly as it would any other part of a JQL search. An issue the searching user cannot browse is filtered out by Jira before it is ever shown, regardless of what the app's own lookups — which run with the app's broader read access — found while computing the answer.
Problem reports and JQL requests
The in-app "Report a bug or suggest a query" button builds a pre-filled URL and hands it to your browser. Your browser navigates there if you choose to; the app itself never sends anything and declares no external domain. A report carries your message, whether it is a bug or a suggested search, and a fixed technical context: app version, locale, the function name you typed (if any), and your browser. No issue keys, no issue content, no project names, and no JQL you actually ran — only what you typed into the report form itself.
Retention and deletion
Uninstalling the app removes the custom field it owns, and with it every token the app ever wrote. There is nothing else to delete, because there is nowhere else data was sent or stored.
Sub-processors
None. The publisher operates no infrastructure for this app.
Contact
support@toolooloo.fr