The list itself, read strictly (catalogue/predefined.go); the controller keeps a catalogue trunk build's list in its store when its commit's generation is larger than the one kept (migration 0098), so an older build's list heard later never replaces a newer one, and loads it with its store (hq ADR 0348 clause 7, issue 661). Part 2 of 2: the new files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
1.2 KiB
SQL
21 lines
1.2 KiB
SQL
-- The list of predefined keys (novox/hq ADR 0348 clause 7, design 57 package K2, issue 661).
|
|
--
|
|
-- Mesh config and node config hold values only for the keys in the catalogue's `predefined.json`. A build of
|
|
-- the catalogue reads the file at the commit it builds and carries it; the controller keeps the newest trunk
|
|
-- build's, which every manifest it reads again is judged against, and which mesh-config publishes from here
|
|
-- (design 57 package K3). One list for the mesh: one row.
|
|
--
|
|
-- **The newest trunk build wins**, by the generation of the commit built — how many commits it stands on, which
|
|
-- of two commits on one trunk is larger for the later — so a list heard late from an older build never replaces
|
|
-- a newer one. Not a config value: a key, its type, description, validation and whether it is trusted, all of it
|
|
-- public in the catalogue's repository.
|
|
create table predefined_list (
|
|
one boolean primary key default true check (one),
|
|
keys jsonb not null,
|
|
repository text not null,
|
|
commit text not null,
|
|
generation bigint not null check (generation > 0),
|
|
build text not null,
|
|
kept_at timestamptz not null default now()
|
|
);
|