Issue 1585, S19: the strict parser, every manifest problem function and the judge's tables (192 declarations, about 5,200 lines) and their 244 tests leave; composition keeps its own refusals and the helpers it uses. The catalogue's tests decode the manifests they build. ParseManifest, ParseManifestWith, ParseManifestForInputs, CatalogueProblems and the rest are gone; mesh-delivery-indexer/judge holds them. Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
28 lines
1.9 KiB
Go
28 lines
1.9 KiB
Go
package catalogue
|
|
|
|
// A definition names no installation (novox/hq ADR 0112, ADR 0155, issues 122 and 134).
|
|
//
|
|
// A module definition holds what is true of the module everywhere; what is particular to one mesh —
|
|
// a public name, a forge's address, a node's public address — is resolved at assignment. The rule
|
|
// stood for a month with nothing checking it, and a sweep found thirty of seventy-one definitions
|
|
// naming the installation they were written in. This is the check.
|
|
//
|
|
// **What is judged is what the mesh acts on, not what a person reads.** A domain in a `why` or a
|
|
// `description` is documentation the mesh never reads; reporting it beside `KC_HOSTNAME` would teach
|
|
// people to ignore the report. What is judged is every other string value: a name under a public
|
|
// top-level domain, or a public address. Two families of name are the world's and not this mesh's,
|
|
// and are allowed where they can only mean the world: the public registries an `image` may be pulled
|
|
// from, and the public resolvers a machine may forward to. The container runtime's own alias for
|
|
// its host is the runtime's, true on every machine that runs it.
|
|
//
|
|
// **A name that is right where it stands is declared, one by one, with its reason.** A federated
|
|
// server's config names the federation's public directory; an application built outside the mesh
|
|
// is pulled from the registry that built it, until the mesh builds it. The resource carries
|
|
// `names-on-purpose`, a map from each such name to why — the shape `secrets-in-environment` has,
|
|
// per name — so a reader sees which names a definition means to carry and why, a name the map does
|
|
// not cover is still reported, and the catalogue-wide test is the list that shrinks as names move.
|
|
|
|
// NamesOnPurpose is the catalogue-level word a resource carries for the names it means to name:
|
|
// each name mapped to its reason. The host never sees it.
|
|
const NamesOnPurpose = "names-on-purpose"
|