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

Screenshots or screen recordings

Before After
Screenshot 2026-10-08 at 13.10.16.png Screenshot 2026-10-08 at 13.10.28.png

How to set up and validate locally

  1. Enable the feature flag in a Rails console: Feature.enable(:security_inventory_projects_widget).
  2. Visit a group's Secure > Security inventory page.
  3. Confirm a bordered Projects panel with a skeleton loader appears to the left of the Tool coverage widget.
  4. 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.

Edited by Chen Charnolevsky

Merge request reports

Loading
Loading