This page describes the technical architecture, components, and dependencies of the Sprint Health Analyzer app for Jira Cloud.
Sprint Health Analyzer is built using the Atlassian Forge, operates fully within the Atlassian Cloud ecosystem, and does not send or store any data outside your Jira instance.
⚙️ Architecture Overview
Jira Cloud + Forge UI Kit 2↓ Project context (projectKey, issues, changelogs)↓ 📊 React UI (DynamicTable, BarChart, StackBarChart)↓ 📈 Metric computation in memory↓ 📤 Export (CSV, JSON, MD, TXT)
🧱 App Components
Layer | Technology | Purpose |
|---|---|---|
UI | Forge UI Kit 2 + React | Render tables, charts, buttons |
Data Fetching |
| Load issues, changelogs, sprint metadata |
Processing | Custom JS logic (in-app) | Calculate health scores & Agile metrics |
Export | Client-side blob generation | Download CSV, JSON, Markdown, and TXT files |
📥 Jira APIs Used
API Endpoint | Usage |
|---|---|
| Load issues in sprint |
| Detect Story Points field |
| Fetch sprint metadata |
| Get historical status transitions |
📊 Metrics Calculated
Metric Type | Calculated Client-Side? | Source |
|---|---|---|
Health Score | ✅ Yes | Issue changelog & links |
Status Jumps | ✅ Yes | Changelog |
Blocked Time | ✅ Yes | Changelog |
Critical Links % | ✅ Yes | Issue links |
Cycle Time | ✅ Yes | Changelog |
Velocity | ✅ Yes | Story Points + Done dates |
Burndown / Burnup | ✅ Yes | Story Points + timeline |
🔐 Data Handling & Privacy
Principle | Implementation |
|---|---|
No external calls | All data stays within Jira Cloud and is processed in-browser |
No data storage | The app does not persist or transmit any data externally |
Ephemeral state | Metrics are computed on the fly and not cached |
🖥️ Supported Environments
Environment | Status |
|---|---|
Jira Cloud (Forge) | ✅ Supported |
Data Center / Server | ❌ Not available |
UI Kit 2 (Forge) | ✅ Used |
Custom UI / React Bridge | ❌ Not used |
Dark mode compatibility | ✅ Full |
📎 Dependencies
Library / Package | Purpose |
|---|---|
| Forge UI Kit 2 components |
| Jira API requests + context |
| UI rendering |
No third-party dependencies or analytics tools are used.
📤 Export Formats
All exports are generated client-side using the browser Blob API:
Format | Contents |
|---|---|
CSV | Comma-separated health data for all issues |
JSON | Full array of issue-level metrics (for custom processing) |
Markdown | Readable table for Confluence or docs |
TXT | Tab-separated plain text |
🔄 Refresh Behavior
The app auto-refreshes:
On sprint change
On “Refresh Data” button click
On first load (after resolving project context)
Metrics are re-calculated in memory and not stored between sessions.
maerortri