Privacy Policy
Effective date: August 20, 2026
Key point: File Field's entire purpose is storing the files you upload through it — unlike Contextra Labs' other Forge apps, which only reformat content in place. This policy is written for that difference: read section 3 carefully, especially if you use Private mode.
1. Where the app runs
File Field for Jira is built on Atlassian Forge and runs entirely on infrastructure operated by Atlassian. Contextra Labs operates no servers, no database and no analytics endpoint for this app.
The app declares no external domains in its manifest. It makes no network request to any third party — not for analytics, error reporting, telemetry, or any other purpose. Every byte the app handles stays inside Atlassian's platform, in one of two Atlassian-operated stores described in section 3.
The only outward-facing links are the optional "leave a review" prompt, to the app's
Atlassian Marketplace listing, and a mailto: link to our support address.
Neither is contacted unless you click it, and neither carries any of your data.
2. What the app reads
To do its job the app reads, through Atlassian's APIs and only within the sites where it is installed:
- The field's own configuration — storage mode, allowed file types, size and count limits
- File metadata — filename, size, MIME type and upload timestamp, held in the custom field's own value
- Uploaded file content — to validate it against your configured rules, including the server-side check that a file's content matches its claimed type
- The calling user's own Jira permission on the issue — re-checked via Jira's own APIs before returning a field's files, in both storage modes
- Your licence status — supplied by Atlassian, used to enable the app and gate mutations when inactive
3. What the app stores — read this section carefully
Unlike a text-formatting app, File Field's purpose is to store files, so this is the most important section in this policy.
File metadata (both modes)
The custom field's own value — filename, file size, MIME type, upload timestamp, and the Atlassian account ID of the uploader — is stored as the Jira custom field's value itself, which is Jira's own storage, not a separate database the app operates.
File content — Portable mode
Files are stored as ordinary Jira attachments, using Jira's own attachment storage. The app does not keep a separate copy. Uploads go directly from your browser to Jira's attachment API; the app's backend never receives the file bytes.
File content — Private mode
Files are stored in Forge Object Storage, a store Atlassian operates on the app's behalf, accessible only to this app's installation on your site. Uploads go directly from your browser to a time-limited, cryptographically signed upload URL Atlassian issues; the app's backend never receives the file bytes here either.
Configuration
Per-field settings — storage mode, allowed file types, size and count limits — are stored via Forge's key-value store, inside your Atlassian site. There are no per-field group or project-role access settings to store — access to a field's files follows the same permission as viewing the Jira issue itself, in both storage modes.
| Stored value | Where | Survives uninstall? |
|---|---|---|
| File content, Portable mode | Jira's own attachment storage | Yes |
| File content, Private mode | Forge Object Storage (this app's bucket) | No — download it first |
| File metadata (filename, size, uploader, etc.) | The Jira custom field's own value | Follows the field/issue, like any custom field data |
| Field configuration (rules, mode) | Forge key-value store | No — deleted on uninstall |
4. Personal data — read this section too
Your uploaded files may contain personal data. That is a normal, expected use of an attachment field — identity documents, signed contracts, resumes and similar files are exactly what this kind of field is for. Contextra Labs does not inspect, scan for, or attempt to identify personal data inside file content; the app treats every file as opaque bytes, validated only for type, size, and — server-side — that its content matches its claimed type, never read for meaning.
Contextra Labs is a processor, not a controller, of any personal data in your files. You, the customer, decide what to upload and who can access it; Atlassian hosts the storage; Contextra Labs operates the app's logic without ever receiving a copy of file content outside Atlassian's infrastructure.
Neither storage mode restricts access to a field's files beyond ordinary Jira issue-view permission — anyone who can view the issue can access the files attached through it, in Portable and Private mode alike. There is no per-field group or project-role access control to configure.
5. Data location, retention and sub-processors
All processing and all storage happen within Atlassian's infrastructure, in the region Atlassian assigns to your site. Contextra Labs holds no copy of anything outside it.
Retention follows the table in section 3: Portable-mode content persists exactly as long as the underlying Jira attachment does, governed by your own Jira data, not this app; Private-mode content and all configuration are deleted when the app is uninstalled.
Sub-processors: none. Every store the app uses — Jira's attachment storage and Forge Object Storage — is operated by Atlassian itself, not a third party engaged by Contextra Labs.
6. How to remove everything
- Remove individual files through the field's edit view. In Portable mode you choose whether removal also deletes the underlying Jira attachment; in Private mode removal deletes the stored object.
- Download before removing, if you want a copy — open a file individually from the field's view, or use Download all as ZIP to bulk-export every file in the field at once.
- Uninstall the app. Portable-mode files remain as ordinary Jira attachments — this is a deliberate design choice. Private-mode files, and all field configuration, are deleted by Atlassian along with the app's storage.
7. Your rights
Because file content may contain personal data belonging to people other than the Jira account holder — for example, a document naming a third party — data-subject requests concerning that content should generally be directed to you, the Jira site owner, as the data controller for content your organisation chooses to store. Contextra Labs holds no independent copy to export or erase.
Contextra Labs is established in Dubai, United Arab Emirates. Where we do process personal data — in practice, only an email address if you write to support — we do so in accordance with UAE Federal Decree-Law No. 45 of 2021 on the Protection of Personal Data and, where it applies to you, the EU General Data Protection Regulation. You may exercise any right you hold under those laws by writing to our support address.
8. Security
The app runs in Atlassian's Forge sandbox, inherits Atlassian's authentication and
permission model, and requests the minimum scopes it needs:
read:attachment:jira, write:attachment:jira,
delete:attachment:jira, read:jira-work,
write:jira-work and storage:app.
Uploads are validated server-side — not only in your browser — including a check that a file's actual content matches its claimed type, to reduce the risk of disguised file uploads.
9. Changes to this policy
Material changes will be published on this page with an updated date, and noted in the app's release notes.
10. Contact
See also the Terms & EULA and Security Policy for File Field for Jira.