Security Statement
Overview
Old Skool Board is a Jira Cloud app built on Atlassian Forge, Atlassian's serverless app platform. The app runs entirely on Atlassian's infrastructure. There are no external servers, databases, or third-party services.
Architecture
- Platform: Atlassian Forge (Custom UI)
- Runtime: Forge serverless functions (Atlassian-hosted)
- Frontend: React application served via Forge Custom UI sandbox
- Communication: The frontend calls the app's Forge resolvers through Forge's
invokebridge; the resolvers call Jira Cloud usingapi.asUser().requestJira, as the signed-in user - External network calls: None. The app makes no outbound requests to any server outside Atlassian's infrastructure.
Data flow
Old Skool Board reads and updates work item, board, and workflow data in Jira Cloud using the Jira REST API, from Forge resolvers via api.asUser().requestJira. Updates (creating work items and sub-tasks, changing status, editing fields and comments, and setting rank) are made as the signed-in user, with that user's Jira permissions. All data flows between the app and Jira remain within Atlassian's infrastructure.
The app does not send data to external servers, use analytics or tracking services, set cookies, or record which work items users view or change (the only usage data kept is a per-user board visit count used to time in-app prompts). This describes the Jira Cloud app specifically — the marketing website (spindriftlabs.net) is a separate system and uses Google Analytics; see the Privacy Policy's "Website analytics" section.
Data storage
The app uses the Forge Storage API to persist:
| What | Purpose |
|---|---|
| Selected board preference | Which board a user last viewed in a project (its ID and name) |
| Board preferences | Per-user settings and last-used filters for each board: completed item retention, type, label and quick-filter selections, quick-filter visibility, and default statuses for creating items |
| Usage prompt state | Per user: first-use date, first date on a paid licence, board visit count, and prompt-shown flags, used to time in-app feedback and review prompts |
| Card order (earlier versions) | Work item keys in arranged order, written by versions before 3.10, and sub-task keys in arranged order per parent work item and lane, written by versions before 3.12; no longer written or read, and deleted on uninstall. Card order is now kept in Jira's rank |
Keys for preferences and prompt state include the user's Atlassian account ID to scope them per user. Card order records from earlier versions are keyed by project (and, for sub-tasks, parent work item and lane) and hold only work item and sub-task keys. No display names, email addresses, or other personal profile data is stored.
Each week the app reports the account IDs stored with board preferences and selected-board records to Atlassian's personal data reporting API, and deletes those records for any account Atlassian reports as closed.
All Forge Storage data is encrypted at rest by Atlassian, scoped to the app installation, and deleted when the app is uninstalled.
Authentication
Authentication is handled entirely by the Atlassian platform. Old Skool Board does not implement its own authentication. The app respects Jira's existing permission model — users can only view and modify work items they have access to in Jira.
Tenant isolation
Forge provides automatic tenant isolation. Each app installation operates in its own isolated context. Cross-tenant data access is prevented at the platform level by Atlassian.
Encryption
- At rest: Forge Storage is encrypted at rest by Atlassian.
- In transit: All communication between the app and Jira APIs uses TLS, enforced by the Forge platform.
Dependencies
- Dependencies are reviewed and updated regularly
npm auditis run as part of the development workflow- Atlassian's Ecoscanner automatically scans all Marketplace apps for known vulnerabilities on an ongoing basis
Vulnerability disclosure
If you discover a security vulnerability in Old Skool Board:
- Email: security@spindriftlabs.net
- Do not disclose the issue publicly until it has been addressed
- We aim to acknowledge reports within 48 hours and provide a resolution timeline within 5 business days
For non-security bugs and feature requests: github.com/spindriftlabs/old-skool-board-feedback
Shared responsibility
Old Skool Board runs on Atlassian Forge, which operates under a shared responsibility model.
Atlassian is responsible for: infrastructure security, user authentication, encryption at rest and in transit, tenant isolation, DDoS protection, and platform monitoring.
Spindrift Labs is responsible for: application logic and input validation, output encoding, dependency management, authorisation logic within the app, and responding to security reports about app-specific behaviour.
Incident response
In the event of a security incident:
- Investigate and contain the issue
- Assess breach scope — determine whether personal data (e.g. Atlassian account IDs) was involved and whether affected individuals are likely to face risk
- Notify as required — if a personal data breach is confirmed, notify the relevant supervisory authority within 72 hours as required by GDPR (Art. 33), and notify affected customers without undue delay where risk to individuals is high (Art. 34). Notification is via the Marketplace listing and support channels.
- Deploy a fix via Forge deployment
- Publish a post-incident summary where appropriate
For platform-level incidents, Atlassian's own incident response processes apply.
Contact
- Security issues: security@spindriftlabs.net
- General support: support@spindriftlabs.net
- Bug reports: github.com/spindriftlabs/old-skool-board-feedback
Spindrift Labs is a sole trader business based in Australia.