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
| Column | Meaning |
|---|---|
key | Issue key, the join key with the telemetry (PROJ-123) |
project_id | Id of the row in projects; create the project in Admin → Projects first |
title | Shown in the drilldown |
type | Story, Bug, Epic, … |
hierarchy_level, parent_key | For rolling up to epics; parent_key is the only nullable column |
status, status_category | Current tracker status |
updated, synced_at | Timestamps (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 inapps/api/src/seed.tsshows 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-textprojectcolumn. It needs adapting toproject_idfirst; anissuestable 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.