feat(graph): introduce graph.inspect.v1 contract and schema for SBOM relationships
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Console CI / console-ci (push) Has been cancelled
Export Center CI / export-ci (push) Has been cancelled

- Added graph.inspect.v1 documentation outlining payload structure and determinism rules.
- Created JSON schema for graph.inspect.v1 to enforce payload validation.
- Defined mapping rules for graph relationships, advisories, and VEX statements.

feat(notifications): establish remediation blueprint for gaps NR1-NR10

- Documented requirements, evidence, and tests for Notifier runtime.
- Specified deliverables and next steps for addressing identified gaps.

docs(notifications): organize operations and schemas documentation

- Created README files for operations, schemas, and security notes to clarify deliverables and policies.

feat(advisory): implement PostgreSQL caching for Link-Not-Merge linksets

- Created database schema for advisory linkset cache.
- Developed repository for managing advisory linkset cache operations.
- Added tests to ensure correct functionality of the AdvisoryLinksetCacheRepository.
This commit is contained in:
StellaOps Bot
2025-12-04 09:36:59 +02:00
parent 4dc7cf834a
commit 600f3a7a3c
37 changed files with 1326 additions and 272 deletions

View File

@@ -0,0 +1,21 @@
-- Link-Not-Merge linkset cache (PostgreSQL)
-- Stores deterministic cache entries for advisory linksets per tenant/source/advisory.
CREATE TABLE IF NOT EXISTS vuln.lnm_linkset_cache (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id TEXT NOT NULL,
source TEXT NOT NULL,
advisory_id TEXT NOT NULL,
observations TEXT[] NOT NULL DEFAULT '{}',
normalized JSONB,
conflicts JSONB,
provenance JSONB,
confidence DOUBLE PRECISION,
built_by_job_id TEXT,
created_at TIMESTAMPTZ NOT NULL,
CONSTRAINT uq_lnm_linkset_cache UNIQUE (tenant_id, advisory_id, source)
);
CREATE INDEX IF NOT EXISTS idx_lnm_linkset_cache_order
ON vuln.lnm_linkset_cache (tenant_id, created_at DESC, advisory_id, source);