Implement Project Components in Issues (SZ-115)
rk@tigase.net opened 2 days ago

Add a first-class Component entity to Sztab so that issues can be categorized, routed, and owned by the subsystem they belong to. Components are a foundational issue management primitive — without them, all issues land in an undifferentiated pool that doesn't scale beyond a small team.

A real example for a project like Sztab itself:

ComponentOwnerTypical issues
UIrkButton misaligned, modal not closing, dark theme broken
Backend ServicesJonAPI 500, auth token not refreshing, slow query
DatabaseJoanMigration failing, index missing, data integrity violation
InstallationMaryHelm chart error, env var missing, k3s crash
Git ServicerkClone URL wrong, PR diff empty, branch not showing

When an issue is filed against Database, Joan is notified. The reporter doesn't need to know the team structure — they pick the closest component and the system routes it correctly.

Acceptance Criteria

  • Component entity: id, name, description, project FK, defaultAssignee FK (optional)
  • Project gains a components collection
  • REST: GET/POST/DELETE /api/projects/{id}/components
  • Issue.component changes from plain String to Component FK
  • Create modal: component dropdown shown only when project has components configured; hidden otherwise
  • Edit modal: same conditional rendering
  • Project settings: new Components tab to add/rename/delete components and assign default owners
  • DEFAULT_COMPONENT sentinel removed from codebase
  • Flyway migration included

Comments

  1. We'll use Project-scoped components?
  2. Will auto-assign to component owner on creation
  3. If a project has components configured, then each issue in the project must be in one of the defined components.
issue 1 of 1
Type
New Feature
Priority
Normal
Assignee
Version
1.10.1
Sprints
n/a
Customer
n/a
Issue Votes (0)
Watchers (3)
Reference
SZ-115
Please wait...
Page is in error, reload to recover