Add unit tests for SBOM ingestion and transformation
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
- Implement `SbomIngestServiceCollectionExtensionsTests` to verify the SBOM ingestion pipeline exports snapshots correctly. - Create `SbomIngestTransformerTests` to ensure the transformation produces expected nodes and edges, including deduplication of license nodes and normalization of timestamps. - Add `SbomSnapshotExporterTests` to test the export functionality for manifest, adjacency, nodes, and edges. - Introduce `VexOverlayTransformerTests` to validate the transformation of VEX nodes and edges. - Set up project file for the test project with necessary dependencies and configurations. - Include JSON fixture files for testing purposes.
This commit is contained in:
13
docs/modules/evidence-locker/compliance-checklist.md
Normal file
13
docs/modules/evidence-locker/compliance-checklist.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Evidence Locker Compliance Checklist (Sprint 160)
|
||||
|
||||
- [x] Postgres schema created via deterministic SQL migrations (`evidence_locker.*` tables, schema version tracking).
|
||||
- [x] Row-level security enforced per tenant via `app.current_tenant` guard function.
|
||||
- [x] Evidence bundle storage keys are content-addressed (sha256) and unique per tenant/bundle.
|
||||
- [x] Object-store abstraction provides local filesystem and Amazon S3 drivers with optional WORM enforcement.
|
||||
- [x] Startup migrations wired via hosted service with opt-out flag (`ApplyMigrationsAtStartup`).
|
||||
- [x] Integration tests cover schema bootstrap, RLS behaviour, and storage drivers (filesystem, S3 fake client).
|
||||
- [x] Temporary artifacts cleaned deterministically; filesystem targets validated in tests.
|
||||
- [x] Timeline publisher emits bundle sealed and hold events with DSSE metadata when enabled; offline deployments fall back to null publisher.
|
||||
- [x] Bundle packaging outputs deterministic `bundle.tgz` (fixed gzip mtime, sorted checksums, timestamp-aware instructions) and `/evidence/{id}/download` streams the cached object with audit logging.
|
||||
- [x] Incident mode extends bundle retention, captures incident request snapshots, and emits activation/deactivation events to Timeline Indexer and Notifier stubs with unit + web integration coverage.
|
||||
- [x] Portable bundle flow (`/evidence/{id}/portable`) emits `portable-bundle-v1.tgz` with redacted metadata, deterministic offline script, and write-once storage tracking.
|
||||
Reference in New Issue
Block a user