Dwell

Privacy

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

Every statement on this page describes what the app's code actually does. Where a claim is enforced by an automated test, the test is named. 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 of any kind.

What the app stores

Only this:

Stored Why
Work item id and key To list them in the drill panel and the CSV export
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 The numbers on the chart
The gadget's settings: the saved filter's id and name, the Started and Done statuses, 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

Before any chart, drill panel or export is served, the app checks — as you, using your own Jira permissions — that you can open the saved filter the gadget is built from. If you cannot open the filter, you are not served its data.

Please read this part carefully, because it is a real limitation.

A chart is computed once per configuration and shared by everyone who views that gadget. That is what makes it fast, and what makes two colleagues looking at the same dashboard see identical numbers. It also means the numbers cover every work item the saved filter returns that completed in the range, whoever is viewing — not a per-viewer subset of it.

So: the guarantee is per filter, not per work item. If you can open the filter, you can see the chart for all of it. If a filter spans a project that some viewers cannot browse, either put the gadget on a dashboard shared with the right people, or narrow the filter.

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.

Events are retained for 12 months.

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.

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 hello@dwellchart.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 is published 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 no personal data of its own to return: everything in its own storage is derived from work item ids, keys and creation dates, status names and status timestamps, and it is deleted on the schedule above. 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.