# SBOM Lineage Graph Visualization ## Module SbomService ## Status IMPLEMENTED ## Description SBOM lineage graph with Git-like visualization. Architecture fully documented, UI components mostly built, but API endpoints not implemented and services use stubs. ## What's Implemented - **Backend lineage graph service**: `src/SbomService/StellaOps.SbomService/Services/SbomLineageGraphService.cs`, `ISbomLineageGraphService.cs` -- lineage graph query service - **Lineage controller**: `src/SbomService/StellaOps.SbomService/Controllers/LineageController.cs` -- REST API endpoints for lineage queries - **Compare service**: `src/SbomService/StellaOps.SbomService/Services/LineageCompareService.cs`, `ILineageCompareService.cs` -- diff computation between lineage nodes - **Export service**: `src/SbomService/StellaOps.SbomService/Services/LineageExportService.cs`, `ILineageExportService.cs` -- evidence pack export - **Hover cache**: `src/SbomService/StellaOps.SbomService/Services/LineageHoverCache.cs` -- Valkey-backed hover card caching - **Lineage library**: `src/SbomService/__Libraries/StellaOps.SbomService.Lineage/Services/LineageGraphService.cs`, `ILineageGraphService.cs` -- core lineage graph logic - **Frontend lineage feature** (extensive): `src/Web/StellaOps.Web/src/app/features/lineage/` -- 50+ components including: - Graph rendering: `lineage-graph/lineage-graph.component.ts`, `lineage-graph-container/lineage-graph-container.component.ts` - Node/edge rendering: `lineage-node/lineage-node.component.ts`, `lineage-edge/lineage-edge.component.ts` - Hover cards: `lineage-hover-card/lineage-hover-card.component.ts` - Timeline: `lineage-timeline-slider/lineage-timeline-slider.component.ts`, `timeline-slider/timeline-slider.component.ts` - Diff views: `lineage-sbom-diff/lineage-sbom-diff.component.ts`, `lineage-vex-diff/lineage-vex-diff.component.ts`, `lineage-component-diff/lineage-component-diff.component.ts` - Compare: `lineage-compare/lineage-compare.component.ts`, `lineage-compare-panel/lineage-compare-panel.component.ts`, `compare-panel/compare-panel.component.ts` - Detail panel: `lineage-detail-panel/lineage-detail-panel.component.ts` - Controls/minimap: `lineage-controls/lineage-controls.component.ts`, `lineage-minimap/lineage-minimap.component.ts` - Export: `lineage-export-buttons/lineage-export-buttons.component.ts`, `lineage-export-dialog/lineage-export-dialog.component.ts` - Why-safe panel: `why-safe-panel/why-safe-panel.component.ts`, `lineage-why-safe-panel/lineage-why-safe-panel.component.ts` - Provenance: `lineage-provenance-compare/lineage-provenance-compare.component.ts`, `lineage-provenance-chips/lineage-provenance-chips.component.ts` - Accessibility: `lineage-accessibility.scss`, directives for keyboard shortcuts and accessibility - Mobile support: `lineage-mobile-compare/lineage-mobile-compare.component.ts`, `lineage-mobile.styles.ts` - Services: `lineage-graph.service.ts`, `lineage-export.service.ts` - Routing: `lineage.routes.ts`, `lineage-compare-routing.guard.ts` - Integration docs: `INTEGRATION_GUIDE.md`, `LINEAGE_API_INTEGRATION.md` - Audit pack: `audit-pack-export/audit-pack-export.component.ts`, `export-options`, `merkle-display`, `signing-options` - Explainer: `explainer-timeline/explainer-timeline.component.ts`, `explainer-step/explainer-step.component.ts` - Badges: `cgs-badge/cgs-badge.component.ts`, `attestation-links/attestation-links.component.ts` - Diff table: `diff-table/diff-table.component.ts` - Services: `audit-pack.service.ts`, `explainer.service.ts` - **Tests**: `src/SbomService/__Tests/StellaOps.SbomService.Tests/Lineage/LineageDeterminismTests.cs`, `src/SbomService/__Tests/StellaOps.SbomService.Lineage.Tests/Domain/LineageModelsTests.cs` - Source: Feature matrix scan ## What's Missing - Backend API endpoints may still use stub/in-memory data for some queries (full PostgreSQL-backed graph traversal for all operations) - Real-time lineage update via WebSocket/SSE not confirmed - Performance optimization for large lineage graphs (hundreds of nodes) ## Implementation Plan - Verify all lineage API endpoints return live PostgreSQL data (not stubs) - Ensure graph traversal queries perform efficiently at scale - Add E2E tests covering full backend-frontend integration ## Related Documentation - Source: See feature catalog ## Merged From - `web/sbom-lineage-lane-view.md` (deleted -- frontend-only subset of this feature)