Skip to content

Compliance Dashboard UI#186

Merged
gusfcarvalho merged 5 commits intomainfrom
feature/catalog-compliance-dashboard-ui
Feb 25, 2026
Merged

Compliance Dashboard UI#186
gusfcarvalho merged 5 commits intomainfrom
feature/catalog-compliance-dashboard-ui

Conversation

@onselakin
Copy link
Contributor

This PR adds the first version of compliance posture in places people naturally look first: the SSP page and the dashboard.

What changed

  • Added a new Compliance tab inside SSP editor pages.
  • SSP compliance page now:
    • resolves the profile attached to the SSP,
    • loads compliance progress for that profile,
    • shows summary cards, progress bars, group breakdown, and controls table,
    • shows a friendly empty state when no profile is attached.
  • Added a Compliance Posture widget on /dashboards.
  • Widget shows one card per SSP with attached profile and links straight to SSP Compliance.
  • Widget loading is sequential for now (simple and stable).

API behavior used by UI

  • Find attached profile:
    • GET /api/oscal/system-security-plans/{sspId}/profile
  • Load SSP-scoped compliance:
    • GET /api/oscal/profiles/{profileId}/compliance-progress?includeControls=true&sspId={sspId}
  • Dashboard summary cards:
    • GET /api/oscal/profiles/{profileId}/compliance-progress?includeControls=false

Compliance model in this PR

Current statuses are intentionally simple:

  • satisfied
  • not-satisfied
  • unknown

Percentages:

  • Compliance % = satisfied / total controls
  • Assessed % = (satisfied + not-satisfied) / total controls

Screenshots

Dashboard posture widget

Quick posture cards on /dashboards for SSPs that already have a profile attached.

07-dashboard-compliance-posture-image2-style

SSP overview with profile selected

Profile is attached on SSP Overview, and the new Compliance tab is available.
02-ssp-overview-profile-selected

SSP compliance empty state

If no profile is attached, user gets clear guidance instead of a broken/blank page.

03-ssp-compliance-empty-state

SSP compliance summary

Top-level metrics and bars for satisfied/not-satisfied/unknown plus implementation coverage.

04-ssp-compliance-summary

SSP controls and group breakdown

Detailed drill-down with per-group and per-control status/evidence info.

05-ssp-compliance-controls-table

Add profile compliance route/tab, composable, typed models, and unit tests to render summary cards, progress bars, group breakdown, and control status details.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR implements a Compliance Dashboard UI that displays compliance posture metrics across the application. It integrates compliance data into existing SSP and Profile views, and adds a new dashboard widget for quick visibility into compliance status.

Changes:

  • Added Compliance tabs to both SSP editor and Profile pages with detailed compliance metrics visualization including summary cards, progress bars, and control-level breakdowns
  • Created a reusable useProfileCompliance composable for fetching and managing compliance data from the API
  • Added CompliancePostureWidget to the main dashboard showing compliance cards for all SSPs with attached profiles

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/views/system-security-plans/SystemSecurityPlanEditorView.vue Refactored SSP ID handling from ref to computed, added Compliance tab to navigation
src/views/system-security-plans/SystemSecurityPlanComplianceView.vue New view displaying SSP-scoped compliance with profile resolution, summary metrics, implementation coverage, group breakdown, and controls table
src/views/profile/ProfileView.vue Added Compliance tab to profile navigation
src/views/profile/ProfileComplianceView.vue New view displaying profile-level compliance with summary metrics, group breakdown, and controls table
src/views/dashboard/IndexView.vue Integrated CompliancePostureWidget into dashboard
src/views/dashboard/CompliancePostureWidget.vue New widget component loading SSP/profile pairs sequentially and displaying compliance cards with keyboard navigation support
src/types/compliance.ts Type definitions for compliance data structures including controls, groups, summaries, and progress
src/router/index.ts Added routes for profile and SSP compliance views
src/composables/useProfileCompliance.ts Composable for loading compliance data with flexible query parameter support
src/views/tests/ProfileComplianceView.spec.ts Unit tests for ProfileComplianceView component
src/composables/tests/useProfileCompliance.spec.ts Comprehensive unit tests for useProfileCompliance composable

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

…es for better modularity and readability

- Introduced ComplianceProgressPanel component to encapsulate compliance progress display logic.
- Replaced inline progress calculations with computeComplianceWidths utility for cleaner code.
- Updated ProfileComplianceView and SystemSecurityPlanComplianceView to utilize the new ComplianceProgressPanel.
- Added unit tests for compliance utilities to ensure correct width calculations and status handling.
@gusfcarvalho gusfcarvalho merged commit 28af00f into main Feb 25, 2026
3 checks passed
@gusfcarvalho gusfcarvalho deleted the feature/catalog-compliance-dashboard-ui branch February 25, 2026 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants