URSACORP Apps / Epic Lens
A Jira project page that shows the active sprint as one dense, foldable table grouped by epic, with progress on every epic and a keyboard-first interface.
Jira's board is a planning surface. Most of the time you do not want to plan, you want to answer one question: what is in this sprint, which epic does it belong to, and how far along is that epic?
Epic Lens answers that as a single table. When you open the page it finds the Scrum boards belonging to the project, takes the active sprint, loads its issues, groups them by parent epic, and renders one row per issue. Each group header carries a done-versus-total count and a progress bar. Issues with no parent collect under No epic at the bottom.
If the project has no Scrum board, or the board has no active sprint, the page does not show an empty panel. It falls back to all open work in the project and tells you why it did.
Everything is computed in your browser from data Jira returns for the signed-in user. The app stores nothing except which groups you folded, which stays in your own browser.
| Key | Action |
|---|---|
j | Move focus down one row |
k | Move focus up one row |
e | Fold or unfold the focused group |
/ | Jump to the filter box |
Enter | Open the focused issue in Jira |
There is nothing to configure. The page reads the project you are in from the Jira page context.
j and k to move
between rows, e to fold the focused group, / to jump to the
filter, and Enter to open the focused issue.Nine permissions, all read-only. The app requests no write permission. Every request is made
with asUser(), so a viewer only ever sees issues they could already open in Jira.
| Permission | Why it is needed |
|---|---|
read:board-scope:jira-softwareread:project:jira |
List the Scrum boards belonging to the project being viewed. |
read:sprint:jira-software |
Find the active sprint on those boards and load its issues. |
read:issue-details:jira |
The six fields the table renders: key, summary, status, assignee, issue type and priority. |
read:jql:jira |
The enhanced search endpoint, used for the all-open-work fallback view. |
read:audit-log:jiraread:avatar:jiraread:field-configuration:jiraread:issue-meta:jira |
The set Atlassian's documentation lists as required for that same search endpoint. The app does not read your audit log, field configurations or issue metadata for any other purpose; the endpoint will not authorize without them. |
Granular permissions are used rather than the older read:jira-work
because the Jira Software agile endpoints reject read:jira-work, and Forge does not
permit mixing classic and granular permissions in one app.
No data leaves your Atlassian site. The manifest declares no external permissions and the source contains no outbound network call, so the app is eligible for Atlassian's Runs on Atlassian programme. The only thing kept is which groups you folded, stored in your own browser. Full detail is in the privacy policy.