User manual — Roadmap App
1) Overview
The Roadmap app displays project milestones on a Gantt-like timeline. It shows milestones from:
- Epics (Jira issue type "Epic") — only when the Epic has a due date (
duedate).
- Releases (Jira Versions) — when versions exist and have release dates.
Milestones are shown per project according to the current saved view or the default (no view). Saved views control:
- Which projects appear on top (project order).
- Which projects use Epics vs Releases (milestone selection).
- Project colors and availability metadata.
Saved views can be either Everyone (visible to all users) or Only me (visible only to the current user).
2) Quick start
- Open the app inside Jira. The timeline shows milestones for projects with active milestone selections.
- Click the gears icon (configuration) to open the Configuration modal.
- In the modal you can:
- Reorder projects (▲ / ▼).
- Change a project color (click color swatch).
- Enable "Use Epics" or "Use Releases" for a project (if available).
- Save the current configuration as a saved view (Save new view).
- Load saved views from the dropdown (owner badge shows Everyone / Only me).
- Delete or update saved views.
3) Important data requirement (milestones will show only when)
To display milestones for a project the project must have at least one of:
- Epic(s) with a valid duedate (
Epic.fields.duedate), or
- Release(s) (versions) with
releaseDate.
If neither exists for that project, the project cannot provide milestones and the timeline will not show bars for it. Create Epics with a duedate or create Versions with release dates in Jira to use the Roadmap for that project.
4) Saved views — behavior & scope
Save new view opens a modal where you enter a view name and choose scope:
- Everyone — the view is saved under the global Everyone key and appears in the Everyone list for all users.
- Only me — the view is saved under your user key and appears only for you.
The saved-views dropdown loads only two places: Everyone views (global) and your personal views (Only me).
Each view includes:
projectOrder (list of project keys)
milestoneSelection (per-project value: 'epics', 'releases', or null)
projectColors
projectAvailability (hasEpics / hasReleases flags recorded at save time)
When a view loads:
- Projects that are part of the view (
milestoneSelection === 'epics' or 'releases') are prioritized and appear at the top (ordered by projectOrder).
- All other projects are still listed below the selected ones, so new projects are visible even if they weren’t previously included in the saved view.
- If a project was recorded as having epics/releases (
projectAvailability) at the time the view was saved, the app fetches full details for that project on load so the "Use Epics"/"Use Releases" buttons are available.
5) Config modal — how to enable/disable project milestones
- Open Configuration → table of projects appears.
- A project row shows: Key, Name, Color, Epics / Releases columns.
- "Use Epics" button appears only if the project currently has any Epic with a duedate (or the saved view recorded
hasEpics=true).
- "Use Releases" button appears only if the project has at least one Version (or saved view recorded
hasReleases=true).
Toggling a button:
- Selects/deselects that milestone type for that project in the in-memory view configuration.
- If the project lacks epics/versions locally but the saved view recorded availability, the app will fetch the project details automatically so the button can be used.
- Changes are applied immediately in the UI; use "Save current view" or "Save new view" to persist them.
6) Ordering and new projects
- Projects explicitly selected in the saved view (
milestoneSelection) are shown first in the order from projectOrder.
- All other projects appear after that so newly-created projects are visible even when a saved view is active.
- To make a new project part of a view persistently: enable Use Epics or Use Releases for it, then Save current view (or Save new view).
7) Owner badge and visibility
- Saved views in the dropdown display a small owner label after the view name:
- (Everyone) — global view
- (Only me) — a view you created for your account
- (User) — someone else’s personal view
- The list you see contains only Everyone views and your personal views.
8) Timeline controls (top bar)
- Saved view dropdown: pick a view to load configurations for the timeline.
- Timescale buttons: Quarter / 1/2 Y / Year / All
- Timescale slider: drag the blue thumb left/right to shift the timeline start. The thumb size reflects the visible window and is clamped to avoid overflow.
- Today line and grid are shown automatically per timeline range.
9) Milestone details and release notes
- Click a milestone diamond to open the Milestone modal:
- For Epics: edit summary, duedate, or apply a transition (invoke the workflow).
- For Versions: edit name, release date, mark released/unreleased.
- Release Notes button is available for roadmap milestones and opens the Release Notes modal that aggregates linked milestones across projects.
- From Release Notes you can view linked tickets and Print (sanitized printable content).
10) Saving & updating views — notes
- "Save new view" saves a fresh view (choose Everyone or Only me).
- "Save current view" updates the currently-selected saved view.
- When saving, the app records
projectAvailability (hasEpics/hasReleases) so future loads can enable buttons for projects that actually have milestone data.
- Views are identified and stored per owner key: the app will only fetch Everyone + your views when populating the dropdown.
11) Troubleshooting — missing projects or missing buttons
If a project does not appear or a button is missing, check the following in order:
A) Are you viewing a saved view?
The app shows all projects, but only view-selected projects appear on top. If you expect a project to be pre-selected, ensure the saved view’s milestoneSelection includes it or update and save the view.
B) Does the project have epics or releases?
Epics must be of type Epic and have a duedate set. Releases must be created versions with releaseDate. If neither exists, the project cannot produce milestones.
C) Project availability saved in the view
If the view was saved before the project had epics/releases, the app won’t fetch details automatically unless projectAvailability marks it. Update the view (enable epics/releases or save new view) to record availability.
D) Permissions
You need Browse Projects permission to see project details. If the app cannot fetch getProjectData for a project due to missing permission, it will be excluded from the detailed list.
E) Invalid project key characters
Project keys containing unusual characters may get filtered by the server validation. Confirm the project key uses standard characters.
F) How to test via browser (quick debug URLs)
Useful endpoints for quick checks:
https://your-domain.atlassian.net/rest/api/3/project/search?maxResults=1000
https://your-domain.atlassian.net/rest/api/3/project/PROJECT_KEY/versions
https://your-domain.atlassian.net/rest/api/3/search?jql=project=PROJECT_KEY%20AND%20issuetype=Epic&fields=key,summary,duedate,status,issuetype&maxResults=200
If an endpoint returns 401/403/410, consult the server logs or contact the Jira admin to ensure the app/user has the necessary permissions.
12) Common workflows (step-by-step)
A) Create a shared view for the team that shows epics
- Open the configuration modal.
- Enable "Use Epics" for any project rows that have Epics with duedates.
- Re-order projects if needed.
- Click Save new view — name it and choose Everyone → Save.
B) Create a personal view (only you see it)
- Configure the modal as desired.
- Click Save new view — choose Only me → Save.
C) Add a new project to an existing view
- Open the configuration modal while the view is loaded.
- Find the new project in the list and click Use Epics or Use Releases (button is available only if
projectAvailability is present or data exists).
- Click Save current view.
13) Known limitations & notes
- Milestones require Epic duedates or Version releaseDate to appear.
- The app records
projectAvailability when saving a view so future loads can enable buttons for projects that do have milestone data even if they weren’t selected when the view was saved.
- No automatic migration from older storage schemas is performed; old saved-view keys created before the owner-key change remain untouched unless migrated explicitly.
- For large sets of projects the app lazy-fetches details according to saved-view configuration and availability; toggling a project's selection may trigger an on-demand fetch.