save checkpoint
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# SBOM Lineage Hover Cache with Valkey
|
||||
|
||||
## Module
|
||||
SbomService
|
||||
|
||||
## Status
|
||||
IMPLEMENTED
|
||||
|
||||
## Description
|
||||
Valkey-backed (Redis-compatible) caching layer for SBOM lineage graph hover card data. Pre-computes and caches component diff summaries, VEX delta counts, and provenance metadata for instant hover card rendering without round-trips to PostgreSQL.
|
||||
|
||||
## Implementation Details
|
||||
- **Hover cache interface and implementation**: `src/SbomService/StellaOps.SbomService/Services/LineageHoverCache.cs` -- `ILineageHoverCache` with `GetAsync`, `SetAsync`, `InvalidateAsync` for hover card data; 5-minute TTL targeting <150ms response times
|
||||
- **Valkey compare cache**: `src/SbomService/StellaOps.SbomService/Services/ValkeyLineageCompareCache.cs` -- `ILineageCompareCache` implementation using `IDistributedCache` (Valkey/Redis) with 10-minute TTL, cache hit/miss/invalidation counters, and `ActivitySource` tracing
|
||||
- **In-memory fallback**: `src/SbomService/StellaOps.SbomService/Services/InMemoryLineageCompareCache.cs` -- in-memory `ILineageCompareCache` for testing and non-Valkey deployments
|
||||
- **Cache interface**: `src/SbomService/StellaOps.SbomService/Services/ILineageCompareCache.cs` -- compare cache contract
|
||||
- **Hover card model**: `src/SbomService/StellaOps.SbomService/Models/SbomProjectionModels.cs` -- `SbomLineageHoverCard` used as cached entity
|
||||
- **Frontend hover card**: `src/Web/StellaOps.Web/src/app/features/lineage/components/lineage-hover-card/lineage-hover-card.component.ts` -- Angular hover card component
|
||||
- **DI registration**: `src/SbomService/StellaOps.SbomService/Program.cs` -- Valkey cache services registered in DI
|
||||
- **Source**: SPRINT_20251228_005_BE_sbom_lineage_graph_i.md
|
||||
|
||||
## E2E Test Plan
|
||||
- [ ] Verify hover card data is cached with 5-minute TTL
|
||||
- [ ] Test cache invalidation when artifact digest changes
|
||||
- [ ] Verify <150ms response time for cached hover card requests
|
||||
- [ ] Test Valkey compare cache hit/miss tracking metrics
|
||||
- [ ] Verify in-memory fallback works when Valkey is unavailable
|
||||
Reference in New Issue
Block a user