Skip to content

feat: add plugin health and coverage dashboard#439

Open
upasana-2006 wants to merge 3 commits into
utksh1:mainfrom
upasana-2006:plugin-health-dashboard
Open

feat: add plugin health and coverage dashboard#439
upasana-2006 wants to merge 3 commits into
utksh1:mainfrom
upasana-2006:plugin-health-dashboard

Conversation

@upasana-2006
Copy link
Copy Markdown

Description

This PR introduces a Plugin Health & Coverage Dashboard for SecuScan.

The dashboard automatically discovers available plugins and generates comprehensive health reports, helping maintainers and contributors understand plugin coverage across the project. It provides visibility into parser availability, test coverage, category distribution, and overall plugin statistics.

Changes Made

  • Added scripts/plugin_health_dashboard.py to analyze plugin health and coverage.
  • Added JSON report generation for automation and future integrations.
  • Added Markdown report generation for easy human-readable summaries.
  • Added unit tests to validate report generation and summary statistics.
  • Added documentation explaining usage, outputs, and intended use cases.

Related Issues

Fixes #438

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

How Has This Been Tested?

Unit Tests

pytest -v

Manual Verification

  1. Executed the dashboard script locally.
  2. Verified plugin discovery functionality.
  3. Verified parser and test coverage statistics.
  4. Confirmed Markdown report generation.
  5. Confirmed JSON report generation.
  6. Validated report contents against repository structure.

Checklist

  • My code follows the code style of this project.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation.
  • My changes generate no new warnings.

@utksh1 utksh1 added level:advanced 55 pts difficulty label for advanced contributor PRs type:testing Testing work category bonus label type:feature Feature work category bonus label area:frontend Frontend React/UI work area:backend Backend API, database, or service work area:plugins Scanner plugin metadata, schemas, or plugin runtime work labels May 31, 2026
Copy link
Copy Markdown
Owner

@utksh1 utksh1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the plugin health utility. This needs changes before merge: the script scans Python files under plugins even though our plugin source of truth is metadata.json/parser.py directories, writes generated reports under reports/ by default, adds tests under tests/ instead of the repo testing/ layout, and the docs code fence is not closed. Please align it with the real plugin model and repo test structure before re-review.

@upasana-2006
Copy link
Copy Markdown
Author

Thanks for the review.

I've updated the implementation to align with the repository structure and plugin model:

  • Switched plugin discovery to use metadata.json as the source of truth.
  • Validated parser availability using each plugin's parser.py.
  • Removed automatic report generation; reports are now printed to stdout unless an explicit --output path is provided.
  • Moved tests to the testing/ directory.
  • Fixed the documentation formatting issue (unclosed code fence).

Verification:

pytest -v testing/test_plugin_health_dashboard.py

All tests are passing.

Ready for re-review. Thank you!

@upasana-2006 upasana-2006 requested a review from utksh1 May 31, 2026 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:backend Backend API, database, or service work area:frontend Frontend React/UI work area:plugins Scanner plugin metadata, schemas, or plugin runtime work level:advanced 55 pts difficulty label for advanced contributor PRs type:feature Feature work category bonus label type:testing Testing work category bonus label

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Plugin Health & Coverage Dashboard

2 participants