{ "format": 1, "seat": "mesh-catalog", "scope": "mesh", "grain": "whole", "domain": "Delivery", "decision": "novox/hq ADR 0604", "verbs": [ { "name": "modules", "description": "Every module the trunk holds, each with its repository, its directory there, the merge commit it was last changed at and its fingerprint (or why it has none): the catalog of the mesh, read from its holder's state. Reads only.", "optional": true, "input": { "properties": {}, "type": "object" }, "answer": { "type": "object", "description": "every module the trunk holds, by name", "properties": { "modules": { "type": "array", "items": { "type": "object", "properties": { "module": { "type": "string" }, "repository": { "type": "string" }, "path": { "type": "string", "description": "the module's directory in its repository, '.' for a root" }, "commit": { "type": "string", "description": "the merge commit it was last changed at" }, "fp": { "type": "string", "description": "its fingerprint (src2: and 64 hex digits); absent when it has none" }, "none": { "type": "string", "description": "why it has none" } }, "required": [ "module", "repository", "commit" ] } } }, "required": [ "modules" ] } }, { "name": "module", "description": "One module whole: its repository, directory, commit and fingerprint, and its manifest as the trunk holds it. Older versions are in its repository's history. Reads only.", "optional": true, "input": { "properties": { "module": { "description": "the module's name", "type": "string" } }, "required": [ "module" ], "type": "object" }, "answer": { "type": "object", "description": "the module whole", "properties": { "module": { "type": "object", "properties": { "module": { "type": "string" }, "repository": { "type": "string" }, "path": { "type": "string", "description": "the module's directory in its repository, '.' for a root" }, "commit": { "type": "string", "description": "the merge commit it was last changed at" }, "fp": { "type": "string", "description": "its fingerprint (src2: and 64 hex digits); absent when it has none" }, "none": { "type": "string", "description": "why it has none" }, "manifest": { "type": "object", "description": "the module's manifest as the trunk holds it" } }, "required": [ "module", "repository", "commit" ] } }, "required": [ "module" ] } }, { "name": "provides", "description": "Which modules provide a provision (a module provides its own name too) and which require it, from the module graph's provision edges. Reads only.", "optional": true, "input": { "properties": { "provision": { "description": "the provision, such as postgres-database", "type": "string" } }, "required": [ "provision" ], "type": "object" }, "answer": { "type": "object", "description": "what provides answers, as its description says" } }, { "name": "dependents", "description": "The modules whose build edges reach a module, directly or through others (a base, a mesh package it publishes, the build module that builds them): what a change of it builds again, from the module graph. Reads only.", "optional": true, "input": { "properties": { "module": { "description": "the module's name", "type": "string" } }, "required": [ "module" ], "type": "object" }, "answer": { "type": "object", "description": "what dependents answers, as its description says" } }, { "name": "seat-definitions", "description": "The seat list (ADR 0636 §4): with no seat, every trunk seat with its digest and the revision of the list; with a seat, that trunk definition resolved with the parts it includes. Reads only.", "optional": true, "input": { "properties": { "seat": { "description": "the seat's name; none lists every trunk seat", "type": "string" } }, "type": "object" }, "answer": { "type": "object", "description": "with no seat: the revision of the list and every trunk seat with its digest; with a seat: whether it was found and its entry, the definition resolved", "properties": { "revision": { "type": "integer" }, "seats": { "type": "array", "items": { "type": "object", "properties": { "seat": { "type": "string" }, "source": { "type": "string", "description": "trunk" }, "digest": { "type": "string" } }, "required": [ "seat", "source", "digest" ] } }, "seat": { "type": "string" }, "found": { "type": "boolean" }, "entry": { "type": "object", "properties": { "seat": { "type": "string" }, "source": { "type": "string", "description": "trunk" }, "digest": { "type": "string" }, "definition": { "type": "object", "description": "the definition, resolved with the parts it includes" }, "unparsed": { "type": "string", "description": "why the definition could not be read, when it could not" } }, "required": [ "seat", "source", "digest" ] } } } } ], "description": "The catalog of the mesh: every module the trunk holds with its manifest, fingerprint and verdict, the packages published, and the seat list (ADR 0636 §1, §4).", "family": { "name": "mesh-catalog.events", "max-age-days": 7 }, "events": [ { "name": "seat-definition-changed", "body": { "type": "object", "properties": { "seat": { "type": "string" }, "source": { "type": "string", "description": "trunk" }, "digest": { "type": "string" } }, "required": [ "seat", "source", "digest" ] } }, { "name": "seat-definition-removed", "body": { "type": "object", "properties": { "seat": { "type": "string" } }, "required": [ "seat" ] } }, { "name": "manifest-accepted", "body": { "type": "object", "properties": { "v": { "type": "integer" }, "module": { "type": "string" }, "digest": { "type": "string" }, "judge": { "type": "string" }, "revision": { "type": "integer", "description": "the indexer's revision of the verdict it says; a reader asks its first view again on a gap in it; zero from an indexer that does not say it" }, "bus-state": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "storage": { "type": "string" }, "template": { "type": "string" }, "options": { "type": "object" }, "configuration": { "type": "object" }, "types": { "type": "array", "items": { "type": "object" } } }, "required": [ "name", "storage" ] } } }, "required": [ "v", "module", "digest", "judge", "bus-state" ] } }, { "name": "manifest-refused", "body": { "type": "object", "properties": { "v": { "type": "integer" }, "module": { "type": "string" }, "digest": { "type": "string" }, "judge": { "type": "string" }, "revision": { "type": "integer", "description": "the indexer's revision of the verdict it says; a reader asks its first view again on a gap in it; zero from an indexer that does not say it" }, "problems": { "type": "array", "items": { "type": "string" } } }, "required": [ "v", "module", "digest", "judge", "problems" ] } } ], "states": [ { "name": "manifests", "template": "state", "key-forms": [ { "key": "", "value": { "type": "object", "properties": { "v": { "type": "integer", "description": "the layout version" }, "module": { "type": "string" }, "manifest": { "type": "string", "description": "the manifest, UTF-8 JSON text" } }, "required": [ "module", "manifest" ] }, "description": "a manifest by its digest, written once" } ], "description": "every manifest the indexer judged", "history": 1 }, { "name": "modules", "template": "state", "key-forms": [ { "key": "", "value": { "type": "object", "properties": { "v": { "type": "integer", "description": "the layout version" }, "fp": { "type": "string", "description": "the old-form fingerprint" }, "none": { "type": "string" }, "fp2": { "type": "string", "description": "src2: fingerprint" }, "none2": { "type": "string", "description": "why it has none" }, "manifest": { "type": "string", "description": "manifest digest" }, "inputs2": { "type": "object", "properties": { "tree": { "type": "string" }, "bases": { "type": "array", "items": { "type": "string" } }, "builder": { "type": "string" }, "contexts": { "type": "object", "additionalProperties": { "type": "string" } }, "locks": { "type": "object", "additionalProperties": { "type": "string" } }, "paths": { "type": "object", "additionalProperties": { "type": "string" } }, "packages": { "type": "array", "items": { "type": "string" } }, "imports": { "type": "array", "items": { "type": "string" } }, "import-form": { "type": "string" } }, "required": [ "tree" ] }, "src": { "type": "integer", "description": "the source revision" }, "fp-src": { "type": "integer" }, "repository": { "type": "string" }, "commit": { "type": "string" }, "path": { "type": "string" }, "toolchains": { "type": "object", "additionalProperties": { "$ref": "#/defs/ToolchainUsed" }, "description": "by language: the toolchain FP2 was computed with" }, "paths": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } }, "packages": { "type": "object", "additionalProperties": { "type": "string" } }, "verdict": { "type": "string" }, "problems": { "type": "array", "items": { "type": "string" } }, "unknown": { "type": "array", "items": { "type": "string" } }, "warnings": { "type": "array", "items": { "type": "string" } }, "needs": { "type": "array", "items": { "type": "string" } } }, "required": [ "repository", "commit" ], "description": "one module as the trunk holds it" }, "description": "a module the trunk holds" } ], "description": "the module catalog", "history": 20 }, { "name": "candidates", "template": "state", "key-forms": [ { "key": "", "value": { "type": "object", "properties": { "v": { "type": "integer", "description": "the layout version" }, "group": { "type": "string" }, "base": { "type": "integer", "description": "the source revision it is read on" }, "heads": { "type": "string" }, "pulls": { "type": "array", "items": { "type": "object", "properties": { "repository": { "type": "string" }, "number": { "type": "integer" }, "head": { "type": "string" }, "modules": { "type": "array", "items": { "type": "string" } }, "fps": { "type": "object", "additionalProperties": { "type": "object", "properties": { "fp2": { "type": "string" }, "none2": { "type": "string" }, "manifest": { "type": "string" }, "paths": { "type": "object", "additionalProperties": { "type": "string" } }, "packages": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "required": [ "repository", "number", "head", "modules" ] } }, "fpset": { "type": "string" } }, "required": [ "group", "base", "heads", "pulls" ], "description": "the modules a group of open pull requests would change" }, "description": "a group's candidate" } ], "description": "the candidates of open groups", "history": 10 }, { "name": "verdicts", "template": "state", "key-forms": [ { "key": "", "value": { "type": "object", "properties": { "v": { "type": "integer", "description": "the layout version" }, "module": { "type": "string" }, "state": { "type": "string" }, "problems": { "type": "array", "items": { "type": "string" } }, "unknown": { "type": "array", "items": { "type": "string" } }, "warnings": { "type": "array", "items": { "type": "string" } }, "judge": { "type": "string" }, "at": { "type": "string", "description": "when (RFC 3339 time)", "format": "date-time" } }, "required": [ "module", "state" ], "description": "a manifest's verdict, by the judge named" }, "description": "a manifest's verdict by its digest" } ], "description": "the manifest verdicts", "history": 5 }, { "name": "predefined", "template": "state", "key-forms": [ { "key": "list", "value": { "type": "object", "properties": { "v": { "type": "integer", "description": "the layout version" }, "commit": { "type": "string" }, "at": { "type": "string", "description": "when (RFC 3339 time)", "format": "date-time" }, "list": { "description": "the foundation's predefined list as kept" } }, "required": [ "commit", "list" ] }, "description": "the one key" } ], "description": "the kept predefined list", "history": 5 }, { "name": "config-candidates", "template": "state", "key-forms": [ { "key": "", "value": { "type": "object", "properties": { "v": { "type": "integer", "description": "the layout version" }, "pull": { "type": "string" }, "head": { "type": "string" }, "declares": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "object", "properties": { "kind": { "type": "string" }, "default": { "description": "the default" }, "why": { "type": "string" }, "type": { "type": "string" }, "description": { "type": "string" }, "enum": { "description": "the allowed values" }, "minimum": { "type": [ "number", "null" ], "description": "a declared bound; 0 is a bound, absent is none" }, "maximum": { "type": [ "number", "null" ], "description": "a declared bound; 0 is a bound, absent is none" }, "pattern": { "type": "string" }, "trusted": { "type": "boolean" }, "predefined": { "type": "string" }, "required": { "type": "boolean" }, "runtime": { "type": "boolean" } }, "required": [ "kind", "default", "why" ] } }, "description": "module to key to declaration" }, "at": { "type": "string", "description": "when (RFC 3339 time)", "format": "date-time" } }, "required": [ "pull", "head", "declares" ] }, "description": "the configuration a pull request declares" } ], "description": "the configuration declared by open pull requests", "history": 5 }, { "name": "packages", "template": "state", "key-forms": [ { "key": "", "value": { "type": "object", "properties": { "v": { "type": "integer", "description": "the layout version" }, "module": { "type": "string", "description": "the Go module path" }, "repository": { "type": "string" }, "dir": { "type": "string" }, "commit": { "type": "string" }, "requires": { "type": "string", "description": "digest of go.mod and go.sum" }, "packages": { "type": "array", "items": { "type": "object", "properties": { "package": { "type": "string" }, "digest": { "type": "string" } }, "required": [ "package", "digest" ] } }, "at": { "type": "string", "description": "when (RFC 3339 time)", "format": "date-time" } }, "required": [ "module", "repository", "commit", "packages" ] }, "description": "a mesh Go module as its latest trunk merge published it" }, { "key": ".", "value": { "type": "object", "properties": { "v": { "type": "integer", "description": "the layout version" }, "name": { "type": "string" }, "package": { "type": "string" }, "series": { "type": "string" }, "seat": { "type": "string" }, "go-module": { "type": "string" }, "newest": { "type": "object", "properties": { "version": { "type": "string" }, "commit": { "type": "string" }, "digest": { "type": "string" }, "fingerprint": { "type": "string" }, "contents": { "type": "object", "properties": { "v": { "type": "integer", "description": "the layout version" }, "module": { "type": "string", "description": "the Go module path" }, "repository": { "type": "string" }, "dir": { "type": "string" }, "commit": { "type": "string" }, "requires": { "type": "string", "description": "digest of go.mod and go.sum" }, "packages": { "type": "array", "items": { "type": "object", "properties": { "package": { "type": "string" }, "digest": { "type": "string" } }, "required": [ "package", "digest" ] } }, "at": { "type": "string", "description": "when (RFC 3339 time)", "format": "date-time" } }, "required": [ "module", "repository", "commit", "packages" ] } }, "required": [ "version" ] }, "numbered": { "type": "object", "properties": { "version": { "type": "string" }, "commit": { "type": "string" }, "digest": { "type": "string" }, "fingerprint": { "type": "string" }, "contents": { "type": "object", "properties": { "v": { "type": "integer", "description": "the layout version" }, "module": { "type": "string", "description": "the Go module path" }, "repository": { "type": "string" }, "dir": { "type": "string" }, "commit": { "type": "string" }, "requires": { "type": "string", "description": "digest of go.mod and go.sum" }, "packages": { "type": "array", "items": { "type": "object", "properties": { "package": { "type": "string" }, "digest": { "type": "string" } }, "required": [ "package", "digest" ] } }, "at": { "type": "string", "description": "when (RFC 3339 time)", "format": "date-time" } }, "required": [ "module", "repository", "commit", "packages" ] } }, "required": [ "version" ] }, "at": { "type": "string", "description": "when (RFC 3339 time)", "format": "date-time" } }, "required": [ "name", "series" ] }, "description": "a published package series, numbered and newest" } ], "description": "the published packages", "history": 5 } ], "defs": { "ToolchainUsed": { "type": "object", "description": "a toolchain a fingerprint was computed with (ADR 0405 clause 7)", "properties": { "language": { "type": "string" }, "version": { "type": "string", "description": "the installed toolchain's version" }, "recipe": { "type": "string", "description": "the build module's recipe version" } }, "required": [ "language", "version", "recipe" ] } } }