Stintwise

Privacy

Applies to: Stintwise — Cycle Time & Lead Time Chart for Jira.

Every statement on this page about the app describes what its code actually does; statements about other companies rest on their published documentation, quoted where the exact wording matters. Some claims name the automated test that enforces them. Where something is a limitation rather than a guarantee, it says so.


What the app reads

To compute how long work items take, the app reads, from your Jira site:

It reads nothing else. It does not request, and its Atlassian scopes do not permit, write access to anything in Jira. The one scope that writes, storage:app, reaches only the app's own storage, described below.

What the app stores

Only this:

Stored Why
Work item id and key To list them in the drill panel and the CSV export, and to check, as you, that you can still open every work item your chart lists and every completion the 5,000 cap drops
While your chart is being built, the ids and keys your search returned For the build to read, and for nothing else; deleted when the build finishes, and otherwise expiring as a chart does
A key made from your site and your account with a secret the app keeps, and that secret To mark which chart is yours. It is not your account id, and cannot be turned back into it without the secret; it goes with the chart
Work item creation date To compute lead time, and to show it in the drill panel and the CSV export
Status names To show where time was spent
Status change timestamps To compute durations
Computed durations and exclusion codes, which name each public holiday that removed time The numbers on the chart
The start and end of the date range each chart was built over To date the scatter's time axis with the range its dots come from
Whether Jira keeps some of the site's content from the app To say so on the chart
The site's status names, ids and categories, read from Jira about once an hour So each build matches statuses by id and labels them without reading the list again
For each build, bookkeeping: its progress, any error code and when it failed, when it started and was built, the names of the records it wrote and the sizes and positions needed to read its ledger a page at a time, the version of the app's arithmetic, whether any history was read one work item at a time or was incomplete, and whether any count is Jira's estimate To show the tile's progress and errors, to find and delete a build's records, to rebuild charts when the arithmetic changes, and to say on the chart how it was built
The gadget's settings: the saved filter's id and name, the Started and Done statuses (their names and ids), the date range, the calendar choices, and the time zone of the person who configured it Saved by Jira with the gadget on your dashboard, not in the app's own storage, and kept until the gadget is removed. Everyone who can see the gadget sees the filter's name and the time zone on the chart face

What the app never stores

Summaries. Descriptions. Comments. Attachments. Custom field values. Assignees. Reporters. Changelog authors. Any Atlassian account id. Any name or email address of any person.

This is not a policy statement, it is a property of the code, and it is checked by an automated test on every commit: the test feeds the app work items carrying a summary, a description, a comment, an assignee display name, a reporter email address, an account id and a custom field, then asserts that none of those values appears in anything the app writes to storage or sends to analytics. The fields of every stored record are additionally allow-listed, so adding a new field to a stored record fails the build.

(The tests are packages/ports/test/privacy.test.ts, "the app stores no issue content and no user identity", which runs a build, and packages/app/test/resolvers.test.ts, "what the app stores", which runs every path that writes — a chart request, a build, a build Jira refuses, a queue that refuses the job, the drill panel and both exports — and checks every stored field and that no filter name, query or account id is kept in the app's own storage. Every other test in that file checks the fields of what it wrote, too.)

Who can see a chart

A chart is built for one person, from the work items the saved filter returns for them in Jira, searched as them, and only they are shown it. The app then reads, as itself, the creation dates and status histories of exactly those work items, and asks Jira about no other. Colleagues whose access differs each see a chart of their own; two who can open the same work items see the same numbers, unless Jira changed between their first views of the day, as when a work item is reopened. A filter that uses currentUser() or another part of JQL that Jira answers differently for each person means, for each person, what it means to them in Jira.

Before any chart, drill panel or export is served, the app makes two checks as you, using your own Jira permissions. If either fails, you are not served its data.

Please read this part carefully, because these are real limitations. Jira describes the counts it gives as estimates that may miss the latest changes, so access you lost a moment ago can be noticed late, and an answer that lets you see a chart is reused for up to five minutes. Work items beyond the first 10,000 your search returns are counted, by Jira's estimate for you, and never listed. An organisation's app access rule can keep the app from some projects: work the app is not allowed to read is counted and listed by key, and if the rule also hides work from the searches the app makes for you, that work can be missing from the chart without being counted; the chart says so when Jira reports that such a rule applies.

We would rather state this plainly than imply something stronger.

Where data lives

Inside your own Atlassian cloud instance. The app runs entirely on Atlassian Forge and stores its computed numbers in Atlassian's own storage, in the region Atlassian allocates to your site. The app operates no servers, no database and no infrastructure of its own. Apart from the product events described under Analytics, nothing it computes is copied to any system the app's author controls.

How long data is kept

Analytics

The app records four product events in a PostHog project hosted in the European Union:

Each event carries a salted SHA-256 hash of your site's cloud id and nothing else that could identify anyone. That hash identifies an installation, never a person. No Atlassian account id, no name, no email address, no issue key and no project name is ever sent. Automated tests check this against what is actually sent: packages/app/test/resolvers.test.ts ("what reaches the analytics processor") runs a build and every action that sends an event, and checks each event and property against the list above and each event's text for issue keys, the filter's name and query, and the cloud id; packages/ports/test/privacy.test.ts checks the build's event for the issue content described above.

PostHog keeps events available for a year on the free plan this project uses, and for seven years on its paid plans. Its documentation (posthog.com/docs/data/events-retention) does not say they are deleted after that, and says a shorter period cannot be set. The events carry nothing that identifies a person or a work item.

Sub-processors

Sub-processor Purpose Region
Atlassian Hosting, storage, billing Per your Atlassian site
PostHog Product analytics (pseudonymous installation id only) European Union

There are no others for the app. Support email is separate: mail to stintwise@adigium.com is delivered by Cloudflare Email Routing to a Gmail mailbox, so Cloudflare and Google handle what you choose to write there.

Support, and why it is written

Support for this app is written documentation and written correspondence only. There is no chat widget, no phone number, and no live support session — by design, not by omission. A written-only support channel is also a privacy property: nobody screen-shares your Jira instance to a stranger, and no support session ever grants a third party access to your data.

Contact

Write to stintwise@adigium.com. It is a written inbox, and it is the only support channel — see the section above for why that is deliberate. The same address will be given on the app's Atlassian Marketplace listing.

For a question about your own data — what is held, or a request to delete it — say so in the subject line. Note that the app keeps nothing that names a person: its own storage holds what is derived from work item ids, keys and creation dates, status names and status timestamps, deleted on the schedule above; each chart's key, made from its viewer's site and account with a secret, which cannot be turned back into the account and goes with the chart; and that secret, one random value per installation. The gadget's settings, including the configuring person's time zone, are kept by Jira with the gadget and go when the gadget is removed.

Changes

Material changes to this page will be noted on the app's Marketplace listing.