App Data Annex

Soverain s.r.o. Last updated: 3 August 2026

This annex forms part of the Soverain Privacy Policy. It records, per app, exactly which personal data categories the app touches, whether the app merely accesses the data or durably stores it, and how long stored data is kept.

Everything below is derived from each app's source code, not from a questionnaire.


Apps in scope

AppPlatformHost productDistributionData location
Kanban+Atlassian Forge (Custom UI)Jira CloudAtlassian MarketplaceAtlassian-hosted Forge storage, inside the customer's installation
DiagonElectron desktop app (Windows, Linux; macOS in development)None — it runs on its ownDownload from soverain.czYour own computer. Files where you save them, plus the app's own application-data folder

The two apps are shaped so differently that they are documented separately: sections 1–7 cover Kanban+, section 8 covers Diagon. Future Soverain apps will be added here rather than getting their own privacy policy.


1. Kanban+ — summary

Soverain's roleProcessor. The Atlassian customer is the controller.
Where the app runsAtlassian-hosted compute only. No Soverain servers.
External network accessNone. No remotes, no external permissions declared.
Sub-processorsAtlassian only.
AI / model inferenceNone. The previous AI assistant was removed in full, including the code that could store an API key. On an installation that saved one before the removal, the orphaned value is still reaped by the full purge in §6.
Payment dataNever seen. Atlassian is the seller of record.

2. Permissions the app requests

You approve these at installation. They define what the app can read — a wider boundary than what it stores.

ScopeWhy the app needs it
read:jira-workRead issues, statuses, priorities, fields and versions to render boards, timelines and reports
write:jira-workApply transitions, field edits, labels, due dates, subtasks and comments — the actions your automation and SLA rules perform
read:jira-userPower the user picker for board administrators, team rosters and assignee filters
read:project:jiraList projects when configuring a board
read:board-scope:jira-softwareImport existing Jira boards and read their column configuration
read:board-scope.admin:jira-softwareRead the backing filter of an imported board
write:board-scope:jira-softwareBacklog view: create and update sprints, move issues between sprint and backlog
storage:appPersist board configuration in Forge hosted storage

3. Data the app STORES

Everything in this table lives in Forge hosted storage, inside your Atlassian installation, subject to your data residency configuration.

RecordContentsPersonal data?Retention
Board configurationBoard name, projects, JQL, columns, colours, card settings, quick filters, saved views, automation rules, issue templates, custom pagesYes — creator account ID; board administrator account IDs and display names; saved-view assignee account IDs; "assign" automation actions store an account ID and display name; automation rule names and comment templates are administrator free textUntil the board is deleted
Retrospective content (stored inside board configuration)Retrospective column items: free text, vote list, author nameYes — and the most sensitive text the app holds. Free text written by team members, attributed by display name, with account IDs recorded as votes. Retrospective text is where colleagues write about colleagues.Until the board is deleted
Team rosterTeam name, member list, creatorYes — member account IDs and display names; creator account ID. A people directory.Until the team is deleted
Cross-board blocker recordsFor each cross-board dependency: blocked and blocker issue keys, verbatim Jira issue summary text, blocker status, board namesTreat as yes. Issue summaries routinely contain customer names, employee names and confidential project detail.Recomputed daily; deleted when the board is deleted
Automation audit logPer automation run: timestamp, rule ID, rule name (free text), trigger type, issue key, actions attempted and their results, durationTreat as yes. Rule names are administrator free text and often contain a person's name.Newest 100 entries per board; deleted when the board is deleted; clearable on demand
Issue status timestampsIssue ID, issue key, status ID, timestamp the issue entered that statusNo person is named. It is a per-work-item timeline.Life of the installation — see §5
Daily analytics snapshotsBoard ID, date, the time the snapshot ran, and three integer issue countsNo. Aggregate counts only.365 days, then deleted by a daily job
SLA alert cooldown markersA timestamp, used to avoid sending duplicate alerts within 24 hoursNo in the value. The record's key can embed an administrator-authored rule name where a rule has no ID.48 hours, then deleted by a daily job
Active-board pointerWhich board a user last had openYes — the Atlassian account ID is part of the record's key.Cleared when the board it points at is deleted

Browser storage

One key, kanban:collapsedCols, in the browser's local storage. It records which board columns you collapsed. No personal data. It never leaves your device.

4. Data the app ACCESSES but does NOT store

Read from Jira, rendered in your browser, then discarded. Never written to app storage, never transmitted anywhere.

CategoryNotes
Issue summaries, descriptions, commentsRendered live. Exception: summaries of cross-board blockers are stored — see §3.
Assignees, reporters, avatars, display namesRendered live. Exception: stored when an administrator explicitly saves someone as a board admin, team member or saved-view filter.
Changelogs, worklogs, sprints, versions, issue linksRendered live
Projects, statuses, priorities, field definitionsRendered live
AttachmentsNot read by the app
Boards, columns, filters, backlog and rankingRead and written to Jira; nothing persisted in app storage

5. Retention decisions worth explaining

Analytics snapshots: 365 days. The product surfaces at most 90 days of history. A year is generous headroom while still being a real, statable number rather than "indefinitely".

SLA cooldown markers: 48 hours. The marker's purpose expires after 24 hours. 48 gives margin for clock skew and delayed scheduled runs.

Issue status timestamps: not aged out. Each record holds the moment an issue entered its current status — the input to every SLA calculation. A long-lived issue legitimately has a months-old timestamp, so age-based deletion would silently corrupt your SLA reporting instead of reclaiming dead data. The record names no person.

Known minimisation gap, disclosed rather than hidden. The app writes a status-timestamp record for every issue on the Jira site that changes status, not only issues on a Kanban+ board. An installation with one board covering one project still accumulates one small record per site-wide issue. Narrowing it to board-relevant issues is a product change rather than a retention one — issues would carry no timing history until a board covering them existed — and we would rather describe the current behaviour plainly here than quietly alter what your SLA reports are built on. As it stands, each record is a few fields naming no person, and it is removed by the full purge in §6 and by uninstallation.

Board deletion cascades. Deleting a board now also deletes its audit log, its snapshots, its cross-board blocker records, and any user's pointer to it. Earlier versions deleted only the board record itself, orphaning the rest.

6. Deletion and uninstall

EventWhat happens
Delete a boardThat board's configuration, audit log, snapshots, blocker records and active-board pointers are deleted
Delete a teamThe team roster record is deleted
Clear the audit logThat board's audit entries are deleted
Full erasure without uninstallingAvailable via an admin-gated purge function. No UI has shipped yet — email support@soverain.cz and we will guide your site administrator through it
Uninstall the appAtlassian deletes the data. Forge hosted storage is retained 28 days after uninstallation, soft-deleted then disposed of per Atlassian's retention policy. Within 21 days you can ask Atlassian to relink a reinstallation to your previous data.
Delete the Atlassian siteAll associated app data is deleted with the site

Kanban+ implements no uninstall-time cleanup hook, deliberately. Atlassian already performs the deletion; the only available hook is documented as non-blocking and could not support a reliable promise; and wiping storage eagerly would destroy your 21-day relink window.


7. Data residency — in scope and out of scope

Runs on Atlassian requires apps to support the host product's data residency. Here is what that covers for Kanban+.

IN SCOPE — pinned to your Atlassian data residency location

  • All Kanban+ records listed in §3, stored in Forge hosted storage.
  • All Jira data the app reads, which never leaves your Atlassian environment.

Because the app holds no data outside Forge storage, every piece of customer data the app handles is in scope for data residency. There is no second copy anywhere.

OUT OF SCOPE — not covered by data residency pinning

Stated because Runs on Atlassian obliges us to be specific, and because these are the items an enterprise reviewer will ask about:

ItemWhy it is out of scope
Application logsDiagnostic log lines are collected by the Atlassian logging platform, not by Forge hosted storage, and are not covered by data residency pinning. Retained 30 days by Atlassian. A site administrator can disable app log access. See §5.2 of the Privacy Policy.
Compute location for individual invocationsData residency pins where data is stored, not where every unit of compute runs. Kanban+ executes wholly on Atlassian's platform; Soverain neither chooses nor is told the region an individual invocation runs in, so we make no residency promise about it. Atlassian's own data residency documentation is the authoritative statement. Either way, nothing is written outside Forge hosted storage.
Marketplace licence and transaction recordsHeld by Atlassian as seller of record and shared with Soverain as a partner. Commercial records about your organisation, not app data. See §5.1 of the Privacy Policy.
Support correspondenceIf you email us, that email is in our mailbox, not in Forge storage.

Not applicable

Kanban+ has no realm-migration obligations of its own: it stores nothing outside Forge hosted storage, so when Atlassian moves your site between regions the app's data moves with it. There is no Soverain-side migration step.


8. Diagon — desktop app

Diagon is a different shape of product from Kanban+. You install it on your own computer and it runs there. There is no Soverain server holding your diagrams, because no server is involved in making them.

Summary

Soverain's roleController, and only for your licence. Your diagrams never reach us.
Where the app runsYour computer.
External network accessOne request the app makes on its own: a licence refresh to soverain.cz. The only other outbound request is fetching an image your own diagram names by URL. See below.
Sub-processorsPaddle (purchase and billing) and Microsoft Azure Communication Services (the email that delivers your key). Neither touches a diagram.
AI / model inferenceLocal. The model file ships inside the app and runs on your machine. What you type into it, and what it writes back, stay there.
Payment dataNever seen. Paddle is the seller of record.
TelemetryNone. No analytics, no usage counters, no crash reporting, no "app was opened" ping.

Data the app STORES on your computer

RecordContentsPersonal data?WhereRetention
Your diagramsThe plain-text diagram source you write, and anything you export from itWhatever you choose to put in themFiles you name, in folders you pickYours. Keep or delete them like any other file — we hold no copy and cannot read them
Licence keyThe signed key itself: the email address the licence was bought under, its issue and expiry dates, and the Paddle transaction reference used for support lookupsYes — the buyer email is inside the keyThe app's own application-data folder (the standard Electron userData directory for your operating system)Until you clear it or remove the app
Trial and licence stateWhen the 30-day trial began, and when the current key expiresNoSame folderSame
Editor preferencesDiagram language, light or dark theme, auto-colour settingsNoSame folderSame

Nothing in that folder is transmitted anywhere except the licence key, and only as described next.

Data the app SENDS

Licence refresh — the signed key, and nothing else. While the app is online with an active subscription, it sends its current licence key to soverain.cz so a fresh one can be issued for the new period. The request carries the key and nothing more: no diagram, no filename, no file path, no machine or hardware identifier, no account. Our server verifies the key's signature, asks Paddle whether the subscription is still running, and hands back a replacement key. As with any web request, our server sees the connecting IP address and a timestamp in its ordinary logs. Everyday licence checks — is this key genuine, has it expired — need no network at all: they are done against a public key built into the app.

Icon URLs you write yourself. If one of your diagrams references an image by URL, Diagon fetches that image from the host you named so it can be drawn and included in exports. That request goes to that third party, not to us, and only because your diagram asked for it. A diagram with no icon URLs makes no requests at all.

Deletion

Delete a diagram file and it is gone — it was only ever your file. Removing the app's application-data folder clears the licence key, the trial and licence state, and the preferences; your diagrams are untouched, because they were never inside it. The purchase records held by Paddle and by us — the buyer email and transaction identifiers — sit outside the app entirely and are covered by the Privacy Policy. Write to privacy@soverain.cz about those.


Related: Privacy Policy · Data Processing Agreement · Security Statement

© 2026 Soverain s.r.o. — IČO 29693144 · Praha, Czechia