59 lines
4.4 KiB
Markdown
59 lines
4.4 KiB
Markdown
# 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)
|