happyDomain/tools
Pierre-Olivier Mercier 9c6398b1bb checkers: add storage for discovery entries and observation lineage
Introduce the two KV indexes that back the cross-checker discovery
mechanism described in docs/checker-discovery.md:

  dscent|{producer}|{target}|{type}|{ref}         primary record
  dscent-tgt|{target}|{producer}|{type}|{ref}     target lookup (auto-fill)
  dscobs|{producer}|{target}|{ref}|{consumer}|{k} observation lineage
  dscobs-snap|{snapshotId}|...                     cascade on snapshot delete

ReplaceDiscoveryEntries is the canonical publication path: the whole
set previously stored for (producer, target) is cleared, then the new
set is written. The observation-lineage side uses a single upsert per
(producer, target, ref, consumer, key) tuple, with a snapshot-scoped
reverse index so deleting a snapshot cascades cleanly. Putting a ref
under a new snapshot removes the previous snap-index so a later
cascade on the old snapshot does not wipe the refreshed primary.

Adds StoredDiscoveryEntry and DiscoveryObservationRef to the host-only
model, DiscoveryEntryStorage / DiscoveryObservationStorage to the
checker usecase storage surface, embeds both in storage.Storage, and
regenerates the instrumented wrapper. Unit tests cover round-trip,
atomic replace, multi-producer aggregation, upsert, and cascade
delete.

No pipeline wiring yet.
2026-04-25 21:52:05 +07:00
..
gen_dns_type_mapping.go Remove last generation date from generated files for build reproducibility 2026-02-14 19:13:09 +07:00
gen_icon.go chore: replace deprecated ioutil functions with io and os equivalents 2026-03-01 16:40:34 +07:00
gen_instrumented_storage.go checkers: add storage for discovery entries and observation lineage 2026-04-25 21:52:05 +07:00
gen_rr_typescript.go Enforce coding style in generated dns_rr.ts 2026-02-14 19:20:49 +07:00
gen_service_specs.go services: move service registry to internal/service package 2026-03-24 14:59:24 +07:00