Add feature flag and scaffold for Projects summary widget
What does this MR do and why?
Adds the scaffolding for a new Projects summary widget on the group Security Inventory page, to the left of the existing Tool coverage widget, behind a new feature flag that defaults to disabled. No behavior change is visible yet; this is the first of a stack of small MRs that build the widget incrementally.
A new feature flag, security_inventory_projects_widget, gates a new ProjectsCard component. The component currently renders only a title and a GlSkeletonLoader placeholder, styled as a bordered panel (gl-border gl-rounded-base gl-p-5, matching the design) rather than a GlCard. inventory_dashboard.vue now wraps ProjectsCard and ToolCoverageCard in a flex row, with ProjectsCard rendered only when glFeatures.securityInventoryProjectsWidget is on.
References
- Issue: Add feature flag and scaffold for Projects summ... (#632828)
- Design:
Security coverage prototype - Design issue: #527861
- Rollout issue: #632851
Screenshots or screen recordings
| Before | After |
|---|---|
![]() |
![]() |
How to set up and validate locally
- Enable the feature flag in a Rails console:
Feature.enable(:security_inventory_projects_widget). - Visit a group's Secure > Security inventory page.
- Confirm a bordered Projects panel with a skeleton loader appears to the left of the Tool coverage widget.
- Disable the flag again (
Feature.disable(:security_inventory_projects_widget)), reload, and confirm the page looks exactly as it did before this MR (no Projects panel).
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

