Draft: Add dependency health dashboard (MVC implementation)

Summary

Implements the basic dependency health dashboard as requested in #194. This MVC version provides visibility into GitLab's 6 most critical dependencies with manual configuration for easy updates.

Changes

New Files

  • dashboards/general/dependency-health.dashboard.jsonnet - Main dashboard implementation
  • dashboards/general/dependency-versions.jsonnet - Separate policy/configuration file for easy version management

Features Implemented

  • Tracks 6 major dependencies (Ruby, Rails, PostgreSQL, Vue.js, Vue Apollo, Node.js)
  • Shows current vs expected versions
  • Basic health indicators (good/warning/critical)
  • Days since last update calculations
  • Summary statistics (total, up-to-date, outdated, security warnings)
  • Separate backend and frontend dependency sections
  • Action items and recommendations
  • Easy-to-update configuration separate from dashboard code

Dashboard Structure

  1. Overview Panel - Introduction and usage instructions
  2. Summary Stats - High-level metrics (total, current, outdated, warnings)
  3. Dependency Details - Detailed status table
  4. Backend Dependencies - Ruby, Rails, PostgreSQL status
  5. Frontend Dependencies - Vue.js, Vue Apollo, Node.js status
  6. Action Items - Priority recommendations and next steps

Configuration Design

The dependency-versions.jsonnet file allows contributors to easily update:

  • Current and expected versions
  • Last update dates
  • Security status (good/warning/critical)
  • Dependency descriptions

No need to modify dashboard code - just update the configuration file.

Testing

  • Dashboard follows project conventions (.jsonnet format, dashboards/general/ location)
  • Uses existing Grafana infrastructure patterns
  • Configuration is cleanly separated from presentation logic
  • Includes helper functions for calculations (days since update, version lag severity)

Future Enhancements

This MVC implementation sets the foundation for:

  • Automated data collection from package managers
  • Integration with security vulnerability databases
  • Prometheus metrics integration
  • Alerting for critical updates

Screenshots

The dashboard will display:

  • Summary statistics showing 6 total dependencies, 2 up-to-date, 4 outdated, 3 security warnings
  • Detailed breakdown of each dependency with version information
  • Clear action items for Vue.js migration and Node.js updates

Closes #194

Merge request reports

Loading