Backend - Spike on backend tasks needed to support issues on group level
Investigate what are the tasks from backend perspective needed to be able to support work items at group level
High level list of tasks
Phase 1 - Setup
-
add namespace_idcolumn toissuestable- Can be worked on as soon as %15.2
-
Ensure issues#namespace_idis populated when issue is created, updated, moved, etc- Can be worked on as soon as %15.2 after namespace_id column is added
-
backfilling namespace_id column with project_namespace_id- Can be worked on as soon as %15.2
-
Finalize backfilling namespace_idcolumn withproject_namespace_id- Can be worked on as soon as %15.3
-
Add not null constraint on issues#namespace_idafter backfilling is complete- Can be worked on in %15.3 after finalize backfilling
namespace_idcolumn is done.
- Can be worked on in %15.3 after finalize backfilling
Phase 2 - Prerequisite work
-
Investigate permission model as well as any performance concerns related to that with issues being available at various hierarchy levels - PoC on permission checks may be require or maybe we can make use of FFs or both.
-
Investigate what other models need to support namespaces before we can have work item at namespace level - notes
- ???
-
Adjust CRUD service(s) to handle project_idandnamespace_id- Can/should be broken down into smaller, more specific tasks/issues.
- Can also partially be started in %15.2 but after 1
-
Adjust APIs(REST and GraphQL) to handle project_idandnamespace_id- Ideally should be broken into smaller more specific endpoints.
- Can also partially be started in %15.2 after 1
-
Investigate how would finders at subgroup or project level fetch work items from higher level groups. -
what about confidential issues from higher level groups ?
-
Phase 3 - MVC
-
Allow a restricted list of specific work item types at group level, e.g. epics only, so that work items reach parity with existing Plan items.
Phase 4 - Work items at group level
-
Conceptualise which work items flow up and down the hierarchy and how does that happen under what situations, are there any configurations needed, etc -
Investigate any index changes needed on issuestable given the usage ofnamespace_idvsproject_id -
Investigate bulk update of work items from group level - This would require UX involvement as well. Having different work item types from different projects, groups etc in the bulk update list can make it tricky to have bulk update.
-
issue_search_datawould also neednamespace_id. This table is also currently partitioned byproject_idwhich complicates things a bit.
Edited by Alexandru Croitor