Add metric sub-team intermediate drill-down view

Clicking a metric now shows a sub-team breakdown page with totals per team
(compliant, non-compliant, total, %) instead of jumping directly to a flat
device list. Clicking a sub-team then shows the device list filtered to
that team only.

Navigation flow: Overview → Vertical → Metric (sub-team totals) → Team (devices)

Backend: added optional ?team= query param to the device list endpoint for
filtered queries.

Frontend: added MetricSubTeamView component with metric-level stats bar and
clickable sub-team table. Updated navigation state to include selectedTeam.

Also updated design brief to reflect the new drill-down hierarchy.
This commit is contained in:
Jordan Ramos
2026-05-14 14:53:41 -06:00
parent 682ee9417f
commit a2bc1ff564
3 changed files with 185 additions and 29 deletions

View File

@@ -110,8 +110,15 @@ Executive Overview (all verticals aggregated)
│ │ │ ├── └ INTELDEV: 233 compliant, 11 NC, 244 total — 95.0%
│ │ │ └── └ STEAM: 123 compliant, 4 NC, 127 total — 97.0%
│ │ │
│ │ ├── ▸ 7.1.1 (Logging & Monitoring) — 72.0% — 149 NC → click metric
│ │ │ ── Device list: hostname, IP, type, team, seen_count, resolution_date
│ │ ├── Click metric ID → Metric Sub-Team View
│ │ │ ── Stats: total 66,176 | compliant 64,414 | NC 1,762 | 97% | target 80%
│ │ │ └── Sub-Team Table:
│ │ │ ├── ACCESS-ENG — 8 total — 88.0% → click
│ │ │ │ └── Device list (filtered to ACCESS-ENG)
│ │ │ ├── ACCESS-OPS — 65,797 total — 97.0% → click
│ │ │ │ └── Device list (filtered to ACCESS-OPS)
│ │ │ ├── INTELDEV — 244 total — 95.0% → click
│ │ │ └── STEAM — 127 total — 97.0% → click
│ │ └── ...
│ │
│ └── Burndown: blockers, with dates, projected clear date
@@ -197,7 +204,7 @@ Some metrics have a team value of `(Other)` in the Summary sheet. This represent
### Device-Level Drill-Down
Clicking a metric ID navigates to the device list — individual non-compliant hostnames for that vertical + metric combination. This data comes from the detail sheets (not the Summary sheet) and shows:
Clicking a sub-team row in the metric sub-team view navigates to the device list — individual non-compliant hostnames for that vertical + metric + team combination. The device list is filtered to only show devices belonging to the selected team. This data comes from the detail sheets (not the Summary sheet) and shows:
- Hostname, IP address, device type, team
- Seen count (how many consecutive uploads this device has been non-compliant)
@@ -205,6 +212,14 @@ Clicking a metric ID navigates to the device list — individual non-compliant h
- Resolution date (if set)
- Remediation plan (if documented)
If a metric has no sub-team breakdown (e.g., only an "(Other)" team), a "View All Devices" button is shown instead, which loads the full unfiltered device list for that metric.
The full navigation path is:
```
Overview → Vertical → Metric (sub-team totals) → Team (device list)
```
---
## Burndown Forecast