diff --git a/00-META/glossary.md b/00-META/glossary.md index b45112ac..4d403bfd 100644 --- a/00-META/glossary.md +++ b/00-META/glossary.md @@ -108,7 +108,7 @@ and repair). **Purpose.** To hold, check and resolve every value a module reads that someone may change, and to say where each resolved value came from. **Recorded by** the `mesh-config` module, in its buckets on the bus, with its store as the history behind them. **Upstream of** Provisioning, which places the values; -downstream of Module and Placement. **Decided by** ADR 0348. +downstream of Module and Placement. **Decided by** ADR 0262, 0277, 0348. **Uses:** module, node, manifest (Module), assignment (Placement), provision (Provisioning), proposal (Operator and conversation). @@ -120,10 +120,15 @@ downstream of Module and Placement. **Decided by** ADR 0348. the value of the predefined key it falls back to for the whole mesh; **node config**, that key's value on one node; and **module-assignment config**, the module's own value on one node. There is no module value for the whole mesh. *Config* is the concept, the verb (`config`) and the manifest field - (ADR 0348). - Older records and documents say *setting* for a config value and *settings* for the concept; new writing - says config value and config. The word is not yet on a *Not:* line, because documents in force still use - it in running prose; until they are reworded it is checked by review. + (ADR 0348). Mesh config is a source level, the value set for the whole mesh; `mesh-config` is the module + that keeps every level. The controller holds, mirrors and resolves no config value (ADR 0348 §9). + Older records and documents say "setting" for a config value and "settings" for the concept; new writing + says config value and config. The word goes on this entry's *Not:* line once the documents in force that + still use it in running prose are reworded, which is issue 683; until then it is checked by review. The + manifest field and the verb "settings" are kept as aliases until every module has moved (ADR 0348 §1, + issue 630), and are named on the line below with the rest once issue 683 is done. + *Identifier until renamed:* `takes-settings`, `${setting:}` — manifest forms kept as aliases until every + module has moved to their config names (ADR 0348 §1, issue 630). What a "flavor" once varied is a config value or a separate module. *Not:* ~~flavor~~ - **predefined key** — a key of the catalogue's `predefined.json`, the fixed list of keys for which mesh @@ -132,15 +137,20 @@ downstream of Module and Placement. **Decided by** ADR 0348. type; one that names none resolves from its default and the module's own value only. The list is the catalogue build's: a change to it is validated with every manifest naming a key, and removing a key still named or still holding a value is refused (ADR 0348). +- **trusted** — said of a config value that decides what runs or who can reach what. At every level it is + set only at the controller's terminal or through `config` with propose, on the operator's Approve; a + module value that falls back to a trusted predefined key is itself trusted (ADR 0277, ADR 0348 §8). Not + the trusted sender of an operator message (see [Homonyms](#homonyms)). - **preference** — a config value whose manifest gives it a default, because its value is true of the software and only tuned per node: a font size, a width (ADR 0262). A config value with no default is `required`: the operator's own value, such as a domain or an identity, and while nothing sets it the module's files are not written (ADR 0348). *Not:* ~~tunable~~ (hq) -- **mesh-config** — the module that owns every config value: it holds the seat `mesh-config` once for the - mesh, validates, takes a trusted value only from the controller's terminal or the operator's Approve, - keeps the history with who set it and why, and resolves the four sources (ADR 0348). +- **`mesh-config`** — the module that owns every config value, and not the source level mesh config: it + holds the seat `mesh-config` once for the mesh, validates, takes a trusted value only from the + controller's terminal or the operator's Approve, keeps the history with who set it and why, and resolves + the four sources (ADR 0348). ## Core — the mesh's own machinery @@ -209,7 +219,7 @@ every other domain has something to run on. **Recorded by** the controller and t (ADR 0229). - **record mirror** — a key-value bucket on the bus that the controller writes from one kind of its - records (nodes, assignments, walks, builds, config values), after each change commits in its store and only + records (nodes, assignments, walks, builds), after each change commits in its store and only when the value differs, with one event per write. The store stays the record; the self-check compares the two and raises `mirror-drifted` on any difference (ADR 0289). Shortened to *mirror* where the @@ -223,8 +233,8 @@ every other domain has something to run on. **Recorded by** the controller and t and Health and repair. **Decided by** ADR 0100, 0126, 0176, 0181, 0207, 0221, 0252, 0261. **Uses:** node, machine, module, seat, manifest (Module), config value (Config). -- **assignment** — a module put on a node, with the config values it is given there (module-assignment - config, Config). +- **assignment** — a module put on a node. Its config values on that node (module-assignment config, + Config) are `mesh-config`'s, never part of what the controller records (ADR 0348 §9). - **pending assignment** — an assignment of a module whose build is still running, kept, and made by the controller when that build registers the module, or ended with why when it does not (ADR 0261). @@ -282,7 +292,7 @@ and vault (Identity and access). role you occupy, and the two meet where a seat delivers a provision: occupying the seat is what makes a module *the* provider of it. Every value a module needs is a provision from the domain that owns it: placement from the controller, - config values from mesh-config, shared secrets from the vault, a consumer's values from the module + config values from `mesh-config`, shared secrets from the vault, a consumer's values from the module providing it, an item of a collection from its contributor. A module says only what it needs and where it lands (ADR 0349). - **provider** and **consumer** — the module that provides a provision, and the module that requires @@ -772,6 +782,10 @@ renaming one sense, the old sense moves to a *Not:* line and becomes mechanical. | | a question someone must answer | **issue** | The record | | deploy | the per-node part of a delivery plan | **deploy plan** | Change and delivery | | | a wrapped program's own deploy | its own word | — | +| managed | a placed file of which only named keys or a marked block are the mesh's | **managed** (`owner-at-runtime`) | Provisioning | +| | a file the mesh writes, such as the agent's instruction file or `managed_settings` | the file's own name, or *a file the mesh places* | — | +| trusted | a config value that decides what runs or who can reach what | **trusted** config value | Config | +| | a sender on the operator's own list | **trusted** sender, its message an **operator message** | Operator and conversation | ## How this page is kept