Skip to main content

Issue titles from your tracker

Costpilot attributes cost to issue keys such as PROJ-123. Titles, type, status and parent come from a read-model mirror of your tracker: the issues table in the SQLite database. Keys without a hit are shown as the raw key, so the mirror is optional but makes the dashboard far more readable for managers. Grouping by project works without it.

Columns​

ColumnMeaning
keyIssue key, the join key with the telemetry (PROJ-123)
project_idId of the row in projects; create the project in Admin → Projects first
titleShown in the drilldown
typeStory, Bug, Epic, …
hierarchy_level, parent_keyFor rolling up to epics; parent_key is the only nullable column
status, status_categoryCurrent tracker status
updated, synced_atTimestamps (ISO)

All columns except parent_key are NOT NULL.

Filling the mirror​

Today there is no built-in sync in this repository. Two ways to fill the table:

  • Your own script. Anything that can run SQL against the SQLite file on the volume works: export issues from your tracker and upsert them into issues. The demo seed in apps/api/src/seed.ts shows the insert.
  • Jira sync from the PoC. The original FeatureCost repository contains a Jira sync under prototype/, but it targets the older table shape with a free-text project column. It needs adapting to project_id first; an issues table in the old shape is dropped on server startup.
Open question

A first-party tracker sync (Jira, Linear, GitHub Issues) is on the roadmap but not decided. If you need it, open an issue on GitHub and describe your tracker.