Files
git.stella-ops.org/samples/graph/fixtures-plan.md
StellaOps Bot 909d9b6220
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
up
2025-12-01 21:16:22 +02:00

2.7 KiB

Graph Fixtures Plan (SAMPLES-GRAPH-24-003)

Goals

  • Produce a deterministic large-scale SBOM graph fixture (~40k nodes) with policy overlay snapshot for perf/regression suites (UI/CLI/Graph API).
  • Align with current graph node/edge schema and overlay format used by StellaOps.Graph.Indexer and Vulnerability Explorer.
  • Ensure offline parity: fixtures packaged for Offline Kit consumption (NDJSON + manifest hashes).

Assumptions / Pending confirmations

  • Overlay format: waiting on Graph Guild decision (checkpoint 2025-11-22) regarding overlay fields and snapshot manifest layout.
  • SBOM bundle source: use scanner surface mock bundle v1 unless real caches land; confirm with Graph Guild.
  • Tenant: default to demo-tenant unless advised otherwise; all IDs and timestamps must be deterministic.

Proposed fixture contents

  • nodes.ndjson: ~40k nodes; sorted by id; includes artifact, package, relationship nodes.
  • edges.ndjson: matching edges; sorted by id.
  • overlays/policy.ndjson: policy overlay snapshot aligned with chosen overlay schema.
  • manifest.json: hashes (SHA-256) of all files plus counts; UTC timestamps rounded to seconds.
  • README.md: execution + verification steps, expected counts/hashes.

Generation sketch

  1. Start from existing mock SBOM bundle (scanner surface v1); sample driver script will:
    • deterministically seed random generators;
    • produce nodes/edges via Graph Indexer schema helpers;
    • emit overlays using placeholder policy verdicts (allow/deny/defer) until final schema confirmed.
  2. Write NDJSON with stable ordering; compute SHA-256 for each file; write manifest.
  3. Run validation script to assert counts, schema shape, and hash reproducibility.

Interim fixtures (delivered 2025-12-01)

  • Synthetic deterministic graphs generated under samples/graph/interim/:
    • graph-50k (50k nodes, ~200k edges)
    • graph-100k (100k nodes, ~400k edges)
  • Minimal schema (id, kind, name, version, tenant), seeded RNG, stable ordering, manifests with hashes.
  • Purpose: unblock BENCH-GRAPH-21-001/002 while overlay format is finalized. Overlays not included yet.

Open items (to resolve before canonical data generation)

  • Confirm overlay field set and file naming (Graph Guild, due 2025-11-22).
  • Confirm allowed mock SBOM source list and artifact naming (Graph Guild / SBOM Service Guild).
  • Provide expected node/edge cardinality breakdown (packages vs files vs relationships) to guide generation.

Next steps

  • Keep SAMPLES-GRAPH-24-003 blocked until overlay/schema confirmation, but interim fixtures are available for benches.
  • Once overlay schema final, extend generator to emit overlays + CAS manifests and promote to official fixture.