Update compliance framework project list UX

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Problem to solve

The current compliance framework project list has two problems:

  1. Seemingly random sorting. The current sorting is by project ID, but that doesn't show up in the table.
  2. If a user wants to apply frameworks to all projects in a group that has over a hundred projects, they will need to keep clicking on the next page in order to bulk apply.

Proposal

  1. Sort the table by fullPath. This would cluster the projects by their groups as well as alphabetically, making it much easier to scan the list.
  2. Add a banner to select all projects in the list

Screenshot 2025-04-02 at 12.06.14.png

2025-04-02 12.05.46.gif

Implementation plan

MR 1 - Bulk Mutation

  • Create a feature flag for these mutations
  • Create a GraphQL mutation that accepts a group and a list of compliance frameworks, then bulk adds those compliance frameworks to each of the projects in the group and subgroups
  • Create a similar mutation for removing compliance frameworks from projects in a group
  • These mutations should behave asynchronously so that they can handle large queries.

MR 2 - Sorting

  • Add ability to sort the list of projects by full path in the GraphQL query
  • Edit the query on the frontend to sort by project full path

MR 3 - Bulk select on frontend

  • Use the feature flag created in MR 1 to hide this feature
  • Add conditional banner to select all projects in the group
  • Use bulk mutations created in MR 1
  • Since the bulk mutations are async, we'll need to show that the projects are being updated in the background somehow.

MR 4 - Feature Flag Cleanup

  • Rollout feature flag in a separate rollout issue (to be created as part of MR 1)
  • Cleanup feature flag after rollout
Edited by 🤖 GitLab Bot 🤖