2.7 KiB
2.7 KiB
SBOM Graph Reachability Overlay with Time Slider
Module
Web
Status
IMPLEMENTED
Description
Reachability halo overlay on SBOM graph visualization with time slider for temporal reachability exploration and state legend. Uses deterministic stub data pending fixture bundle.
What's Implemented
- Existing components:
graph-canvas(src/Web/StellaOps.Web/src/app/features/graph/graph-canvas.component.ts)graph-explorer(src/Web/StellaOps.Web/src/app/features/graph/graph-explorer.component.ts)graph-filters(src/Web/StellaOps.Web/src/app/features/graph/graph-filters.component.ts)graph-hotkey-help(src/Web/StellaOps.Web/src/app/features/graph/graph-hotkey-help.component.ts)graph-overlays(src/Web/StellaOps.Web/src/app/features/graph/graph-overlays.component.ts)graph-side-panels(src/Web/StellaOps.Web/src/app/features/graph/graph-side-panels.component.ts)
- Existing services:
graph-accessibility(src/Web/StellaOps.Web/src/app/features/graph/graph-accessibility.service.ts)
What's Missing
- Reachability halo overlay: Graph overlay components exist but no dedicated reachability state halo (color-coded rings around nodes showing lattice state: SR/SU/RO/RU/CR/CU/X)
- Time slider for temporal reachability: No time slider component enabling temporal exploration of how reachability states evolved over scan/signal events
- Lattice state legend: No legend component mapping halo colors to reachability lattice states
- Backend API for temporal reachability: No API endpoint returning reachability state snapshots at different points in time
- Deterministic fixture bundle: Currently uses stub data; pending fixture bundle with real reachability overlay data
Implementation Plan
- Add reachability state halo overlay to graph-overlays component using lattice state colors
- Create time slider component for temporal reachability exploration
- Add lattice state legend component
- Build backend API for temporal reachability snapshots
- Wire overlay to live reachability data via graph service
E2E Test Plan
- Setup:
- Log in with a user that has appropriate permissions
- Navigate to
/graph - Ensure test data exists (scanned artifacts, SBOM data, or seed data as needed)
- Core verification:
- Verify the visualization renders correctly with sample data
- Verify interactive elements (hover tooltips, click-to-drill-down) work
- Verify the visualization handles empty/minimal data gracefully
- Edge cases:
- Verify graceful handling when backend API is unavailable (error state)
- Verify responsive layout at different viewport sizes
- Verify accessibility (keyboard navigation, screen reader labels, ARIA attributes)