Files
mesh-sdk/go/seatlist/bootstrap/mesh-catalog.json
T
jschoubben 5908076f33 Area 1 (join 11): the bootstrapped seat definitions and their copies follow the contracts' files
Builds: design 47 G A-234 (the step comment and input chunks of the node-engine seat), ADR 0635 §3

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
2026-11-12 10:57:48 +01:00

3031 lines
87 KiB
JSON

{
"format": 1,
"seat": "mesh-catalog",
"scope": "mesh",
"grain": "whole",
"domain": "Delivery",
"decision": "novox/hq ADR 0604",
"acts": [
{
"step": "take-in",
"on": "every"
},
{
"step": "validate",
"on": "every"
}
],
"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.",
"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.",
"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.",
"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.",
"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.",
"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"
]
}
}
}
},
{
"name": "revision",
"description": "The catalog half of the revision view (ADR 0656 §6): one catalog graph revision with its entries whole, the trunk heads, the seat definitions by digest, and each manifest's verdict and fingerprint; the trunk's newest when no revision and no candidate is named, or a candidate's for its group and heads. Answered by the holder from what it holds, in its own runtime (ADR 0663), in pages of entries. Reads only. A watched branch with no revision yet answers {none-yet: true} alone (design 47 G section 530).",
"input": {
"type": "object",
"properties": {
"revision": {
"type": "integer",
"description": "a kept revision; absent: the newest of trunk, or of the candidate named"
},
"group": {
"type": "string",
"description": "a candidate's group"
},
"heads": {
"type": "string",
"description": "a candidate's heads"
},
"source": {
"type": "integer",
"description": "a candidate's source revision: the revision of the branch's series taken in from it, with its entries (design 47 G section 441)"
},
"after": {
"type": "string",
"description": "the last module of the page before; absent: the first page"
},
"branch": {
"type": "string",
"description": "the watched branch whose series is read, escaped as a key name is; absent: the branch the reader's placement names (design 47 *Watched branches and the catalog graph per branch*)"
}
}
},
"answer": {
"type": "object",
"properties": {
"revision": {
"$ref": "#/defs/CatalogRevision"
},
"entries": {
"type": "array",
"items": {
"$ref": "#/defs/CatalogEntry"
},
"description": "this page's entries whole, by module name"
},
"next": {
"type": "string",
"description": "the module to ask after for the next page; absent on the last"
},
"none-yet": {
"type": "boolean",
"description": "true for a watched branch with no revision yet: no revision, no entries and no error follow, and a reader holds the branch's view ready and empty (design 47 G section 530)"
}
}
},
"class": "read"
},
{
"name": "registrations",
"description": "Every module's registration, or one with every version and who changed it on whose warrant (design 47 *A module's registration*). Its readers take a first view here, then hear registration-changed.",
"input": {
"type": "object",
"properties": {
"module": {
"type": "string",
"description": "one module; absent, every registration"
},
"history": {
"type": "boolean",
"description": "with every version of the one module"
}
}
},
"answer": {
"type": "object",
"properties": {
"registrations": {
"type": "array",
"items": {
"$ref": "#/defs/Registration"
}
},
"history": {
"type": "array",
"items": {
"$ref": "#/defs/Registration"
},
"description": "every version of the one module asked, oldest first"
},
"fill": {
"$ref": "#/defs/Fill"
}
},
"required": [
"registrations"
]
},
"class": "read"
},
{
"name": "register",
"description": "Register a module whole, as an authorising ask of tier approve naming every value; written only on its warrant, a Decline or an expiry writes nothing. Refuses a watched branch the forge does not protect, read through the seat git's branch, and code review as a required step until forge accounts are bound to bus identities (ADR 0666 sections 2, 3, 22).",
"callers": [
"operator",
"sessions"
],
"input": {
"type": "object",
"properties": {
"registration": {
"$ref": "#/defs/Registration"
},
"why": {
"type": "string"
}
},
"required": [
"registration"
]
},
"answer": {
"$ref": "#/defs/RegistrationAsked"
},
"class": "act"
},
{
"name": "policy",
"description": "Change one module's step statuses, or one artifact's, as an authorising ask naming each moved status on its own line; refuses code review as required (ADR 0666 sections 2, 22).",
"callers": [
"operator",
"sessions"
],
"input": {
"type": "object",
"properties": {
"module": {
"type": "string"
},
"artifact": {
"type": "string",
"description": "one artifact; absent, the module's statuses"
},
"steps": {
"$ref": "#/defs/StepStatuses"
},
"why": {
"type": "string"
}
},
"required": [
"module",
"steps"
]
},
"answer": {
"$ref": "#/defs/RegistrationAsked"
},
"class": "act"
},
{
"name": "watch",
"description": "Add a watched branch to a module's registration, as an authorising ask; refuses a branch the forge does not protect, naming it (ADR 0666 sections 2, 3).",
"callers": [
"operator",
"sessions"
],
"input": {
"type": "object",
"properties": {
"module": {
"type": "string"
},
"branch": {
"type": "string"
},
"why": {
"type": "string"
}
},
"required": [
"module",
"branch"
]
},
"answer": {
"$ref": "#/defs/RegistrationAsked"
},
"class": "act"
},
{
"name": "unwatch",
"description": "Remove a watched branch from a module's registration, as an authorising ask (ADR 0666 section 2).",
"callers": [
"operator",
"sessions"
],
"input": {
"type": "object",
"properties": {
"module": {
"type": "string"
},
"branch": {
"type": "string"
},
"why": {
"type": "string"
}
},
"required": [
"module",
"branch"
]
},
"answer": {
"$ref": "#/defs/RegistrationAsked"
},
"class": "act"
},
{
"name": "versions",
"class": "read",
"callers": [
"seat:mesh-builds",
"seat:go-package-registry",
"seat:npm-package-registry",
"seat:container-image-registry",
"seat:oci-artifact-registry",
"persons",
"sessions"
],
"description": "A module's released versions, each artifact's digest, the source revision built and its edge entries; a reserved version is not in it (design 47 G section 349).",
"input": {
"type": "object",
"properties": {
"module": {
"type": "string",
"description": "the module"
}
},
"required": [
"module"
]
},
"answer": {
"type": "object",
"properties": {
"module": {
"type": "string",
"description": "the module"
},
"versions": {
"type": "array",
"items": {
"$ref": "#/defs/VersionEntry"
}
}
},
"required": [
"module",
"versions"
]
}
},
{
"name": "outdated",
"class": "read",
"callers": [
"persons",
"sessions",
"healers",
"seat:mesh-pipeline-runner"
],
"description": "Every entry behind, by the part's digest: its module and version or build, the kind, the dependency with its watched branch and source revision, what was recorded and what is newest, and the act; may be asked for one dependency (design 47 G section 375).",
"input": {
"type": "object",
"properties": {
"dependency": {
"$ref": "#/defs/ArtifactRef",
"description": "one dependency, to answer for it alone"
},
"branch": {
"type": "string",
"description": "a watched branch, to answer for it alone"
}
}
},
"answer": {
"type": "object",
"properties": {
"behind": {
"type": "array",
"items": {
"$ref": "#/defs/Outdated"
}
}
},
"required": [
"behind"
]
}
},
{
"name": "input",
"class": "read",
"callers": [
"seat:node-build-go",
"seat:node-build-node",
"seat:node-build-image"
],
"description": "A step's input by its digest, as the indexer keeps it for a validation step it asked a build seat to run (design 47 G section 354): its fields, then the bytes in chunks of at most 512 KiB on the chunk subject of the call, each acknowledged by the caller on the ack subject within 30 seconds; the input is of any size.",
"input": {
"type": "object",
"properties": {
"digest": {
"type": "string",
"description": "the input's sha256"
},
"call": {
"type": "string",
"description": "128 random bits the caller chooses: the subject token of this send's chunks and acknowledgements",
"minLength": 1
}
},
"required": [
"digest",
"call"
]
},
"answer": {
"type": "object",
"properties": {
"digest": {
"type": "string",
"description": "the input's sha256"
},
"chunks": {
"type": "integer",
"minimum": 0,
"description": "how many chunks are sent; 0 when there is no input of that digest"
}
},
"required": [
"digest",
"chunks"
]
},
"chunks": true
},
{
"name": "entry",
"class": "read",
"description": "One catalog graph entry by its fingerprint, so a build older than the newest is read by the fingerprint its want names (design 47 G section 443).",
"input": {
"type": "object",
"properties": {
"fingerprint": {
"type": "string",
"description": "the entry's fingerprint"
}
},
"required": [
"fingerprint"
]
},
"answer": {
"type": "object",
"properties": {
"entry": {
"$ref": "#/defs/CatalogEntry"
}
},
"required": [
"entry"
]
}
}
],
"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"
},
"problems": {
"type": "array",
"items": {
"type": "string"
},
"description": "each problem the indexer's re-judgement finds in a manifest it keeps accepted because its digest is unchanged: the manifest validator's strings, the same items its verdict writes as warnings, in the same order; an empty list when none (design 47 G section 668, 692)"
},
"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",
"problems"
]
}
},
{
"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"
]
}
},
{
"name": "catalog-revision",
"body": {
"type": "object",
"description": "a catalog graph revision kept, of one watched branch or a candidate's; its subject names the branch",
"properties": {
"v": {
"type": "integer"
},
"revision": {
"type": "integer"
},
"kind": {
"type": "string",
"description": "trunk or candidate: a candidate's moves no running part"
},
"source": {
"type": "integer"
},
"group": {
"type": "string"
},
"heads": {
"type": "string"
},
"entries": {
"type": "integer",
"description": "how many entries it lists"
},
"changed": {
"type": "array",
"items": {
"type": "string"
},
"description": "the modules whose entries differ from the revision before it of the same kind"
},
"at": {
"type": "string",
"format": "date-time"
},
"branch": {
"type": "string",
"description": "the watched branch the revision is of, escaped as a key name is"
}
},
"required": [
"v",
"revision",
"kind",
"source"
]
},
"subject": "catalog-revision.<branch>"
},
{
"name": "filling",
"body": {
"$ref": "#/defs/Fill"
}
},
{
"name": "full",
"body": {
"$ref": "#/defs/Fill"
}
},
{
"name": "room",
"body": {
"$ref": "#/defs/Fill"
}
},
{
"name": "registration-changed",
"body": {
"type": "object",
"description": "a registration's written version (design 47 *A module's registration*): what moved, who asked and the warrant",
"properties": {
"v": {
"type": "integer"
},
"module": {
"type": "string"
},
"version": {
"type": "integer"
},
"moved": {
"type": "array",
"items": {
"type": "string"
},
"description": "every value it moved, one line each"
},
"by": {
"type": "string"
},
"warrant": {
"type": "string"
},
"at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"module",
"version",
"moved",
"warrant"
]
},
"keep": {
"max-age-days": 90,
"max-mib": 16
}
},
{
"name": "version-released",
"keep": {
"max-age-days": 90,
"max-mib": 128
},
"body": {
"type": "object",
"properties": {
"v": {
"type": "integer"
},
"module": {
"type": "string",
"description": "the module"
},
"version": {
"type": "string",
"description": "MAJOR.MINOR.PATCH"
},
"artifacts": {
"type": "array",
"items": {
"$ref": "#/defs/VersionArtifact"
},
"description": "each artifact's digest"
},
"source": {
"type": "integer",
"description": "the source revision built"
},
"at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"v",
"module",
"version",
"artifacts",
"source"
],
"description": "a version released: every artifact of the module is published at it (design 47 G section 349)"
}
},
{
"name": "versions-filled",
"keep": {
"max-age-days": 0,
"max-mib": 1
},
"body": {
"type": "object",
"properties": {
"v": {
"type": "integer"
},
"at": {
"type": "string",
"format": "date-time"
},
"modules": {
"type": "integer",
"description": "how many modules were filled"
}
},
"required": [
"v",
"at"
],
"description": "the catalog's versions were filled once from what is published (design 47 G section 372)"
}
}
],
"states": [
{
"name": "manifests",
"template": "state",
"key-forms": [
{
"key": "<digest>",
"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": "<module>",
"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": "<group>",
"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": "<digest>",
"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": "<pull>",
"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": "<module>",
"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": "<package>.<series>",
"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
},
{
"name": "catalog-revisions",
"template": "objects",
"description": "the catalog graph revisions, each a list of its entries' digests, and each entry once by its digest; a revision is kept while a delivery record pins it or it is current (design 47)",
"key-forms": [
{
"key": "<branch>.<revision>",
"value": {
"$ref": "#/defs/CatalogRevision"
},
"description": "a watched branch's revision, one series per branch"
},
{
"key": "candidate.<group>.<heads>",
"value": {
"$ref": "#/defs/CatalogRevision"
},
"description": "a candidate's newest revision, dropped on heads-replaced"
},
{
"key": "entry.<digest>",
"value": {
"$ref": "#/defs/CatalogEntry"
},
"description": "an entry, written once, removed when no kept revision lists it"
}
]
},
{
"name": "registrations",
"template": "state",
"history": 1,
"description": "one key per module, its newest registration; the indexer keeps it in its old state section (ADR 0666 section 4)",
"key-forms": [
{
"key": "<module>",
"value": {
"$ref": "#/defs/Registration"
},
"description": "a module's registration"
}
]
},
{
"name": "registration-history",
"template": "log",
"description": "every version of every registration, kept for the life of the mesh, 64 MiB; the indexer keeps it in its old streams section",
"key-forms": [
{
"key": "<module>.<version>",
"value": {
"$ref": "#/defs/Registration"
},
"description": "one version of a module's registration"
}
]
},
{
"name": "versions",
"template": "state",
"history": 1,
"description": "one key per module and version, the newest 100 of a module (design 47 G section 349)",
"key-forms": [
{
"key": "<module>.<version>",
"value": {
"$ref": "#/defs/VersionEntry"
},
"description": "a released version"
}
]
},
{
"name": "build-edges",
"template": "state",
"history": 1,
"description": "the newest build's edges of a module on a watched branch other than the first (design 47 G section 374)",
"key-forms": [
{
"key": "<module>.<branch>",
"value": {
"$ref": "#/defs/BuildEdges"
},
"description": "a build's edges"
}
]
},
{
"name": "inputs",
"template": "state",
"history": 1,
"description": "a step's input, named by its write time and its sha256; a value over one chunk is held in the state's objects store (design 47 G sections 354, 712)",
"key-forms": [
{
"key": "<time>.<digest>",
"value": {
"type": "string",
"description": "the input's bytes, base64"
},
"description": "one input"
}
]
}
],
"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"
]
},
"ActingRule": {
"type": "object",
"description": "a rule a seat the module claims declares in its acts: the step the module acts in, on which entries, and how long a new version of it may take before it acts (design 47, An acting part's new version acts first)",
"properties": {
"seat": {
"type": "string"
},
"step": {
"type": "string",
"description": "take-in, validate, check, build, compose, grant, place or pipeline"
},
"on": {
"type": "string",
"description": "which entries it acts on: every, or a language"
},
"bound": {
"type": "string",
"description": "a duration such as 30m"
}
},
"required": [
"seat",
"step"
]
},
"CatalogEntry": {
"type": "object",
"description": "one module of a catalog graph revision as its manifest declares it, stored once by its digest (ADR 0656, design 47 Two graphs)",
"properties": {
"v": {
"type": "integer",
"description": "the layout version"
},
"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"
},
"manifest": {
"type": "object",
"description": "the validated manifest whole, kept as an object by the entry's digest, so no size limit applies; read by anyone but the indexer through the entry, never as a manifest (design 47 G section 443, section 442)"
},
"manifest-digest": {
"type": "string",
"description": "the sha256: digest of the manifest's bytes as the forge answered them, set by the indexer at take-in and never computed again from the manifest whole; the module's value and the manifests key are this digest (design 47 G section 506)"
},
"verdict": {
"type": "string",
"description": "its manifest's verdict: accepted, refused or held"
},
"fp": {
"type": "string",
"description": "its fingerprint (src2: and 64 hex digits); absent when it has none"
},
"none": {
"type": "string",
"description": "why it has none"
},
"inputs": {
"$ref": "#/defs/EntryInputs"
},
"bases": {
"type": "array",
"items": {
"type": "string"
},
"description": "the images and modules it is built on"
},
"packages": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "the mesh packages it builds against, by name, each with the version it builds against (design 47: its packages)"
},
"toolchains": {
"type": "object",
"additionalProperties": {
"$ref": "#/defs/BuildEdge"
},
"description": "its build edges, by language (ADR 0603 §2)"
},
"provides": {
"type": "array",
"items": {
"type": "string"
}
},
"requires": {
"type": "array",
"items": {
"type": "string"
}
},
"contributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "the requirements the manifest's contributes object names as keys, sorted, its local names not carried; each is also in requires (design 47 G section 709)"
},
"awaits": {
"type": "array",
"items": {
"type": "string"
},
"description": "the provisions it requires that no module offers yet"
},
"invokes": {
"type": "array",
"items": {
"type": "string"
},
"description": "each a seat verb or a module tool it calls"
},
"serves": {
"type": "array",
"items": {
"type": "string"
},
"description": "each seat it claims and the verbs it serves of it, as seat.verb"
},
"left-out": {
"type": "array",
"items": {
"type": "string"
},
"description": "its verb edges left out because they lie on a cycle (ADR 0614 §3)"
},
"needs": {
"type": "array",
"items": {
"type": "string"
},
"description": "the manifest reads a node-engine must state to compose it, its templates' forms included, as the forge bridge read them at the merge (ADR 0614 §4, ADR 0632 §2)"
},
"main": {
"type": "string",
"description": "the Go main package the check's first tier builds when this module acts: the from of the Go artifact its process runs, as its manifest names it beside path; absent when it runs no Go program (design 47, The check on the change's own acting parts)"
},
"acts": {
"type": "array",
"items": {
"$ref": "#/defs/ActingRule"
},
"description": "the acting rules of the seats it claims"
},
"artifacts": {
"type": "array",
"items": {
"$ref": "#/defs/Artifact"
},
"description": "the module's artifacts by reference, each with its language and kind (design 47 G section 47, section 323)"
},
"edges": {
"type": "array",
"items": {
"$ref": "#/defs/Edge"
},
"description": "the edges into this module's artifacts, each from the artifact that comes first; the build and the delivery order by these alone"
},
"streams": {
"type": "array",
"items": {
"type": "string"
},
"description": "the events the manifest declares in its streams, by key (design 47 G section 365)"
}
},
"required": [
"module",
"repository",
"commit",
"manifest"
]
},
"EntryInputs": {
"type": "object",
"description": "what the indexer computes its next revision from (the lead's ruling on milestone 47/G finding 1): what its fingerprint is computed from, the toolchains it was computed with, its manifest's problems and warnings, its artifacts' named paths and the source revisions it was taken in and its fingerprint moved at",
"properties": {
"from": {
"$ref": "#/defs/FingerprintInputs"
},
"toolchains": {
"type": "object",
"additionalProperties": {
"$ref": "#/defs/ToolchainUsed"
},
"description": "by language: the toolchain its fingerprint was computed with"
},
"paths": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "by artifact: the named paths it is built from"
},
"problems": {
"type": "array",
"items": {
"type": "string"
},
"description": "its manifest's problems, when refused or held"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"unknown": {
"type": "array",
"items": {
"type": "string"
},
"description": "the manifest fields the judge does not know, when held"
},
"src": {
"type": "integer",
"description": "the source revision it was taken in at; 0 before the indexer heard it"
},
"fp-src": {
"type": "integer",
"description": "the source revision its fingerprint moved at"
}
}
},
"FingerprintInputs": {
"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"
],
"description": "what its fingerprint is computed from: its tree, bases, builder, build contexts, lock files, named paths' objects, the mesh packages and imports it builds against"
},
"EntryRef": {
"type": "object",
"properties": {
"module": {
"type": "string"
},
"digest": {
"type": "string",
"description": "the entry's digest, its object's name"
}
},
"required": [
"module",
"digest"
]
},
"Head": {
"type": "object",
"properties": {
"repository": {
"type": "string"
},
"commit": {
"type": "string"
}
},
"required": [
"repository",
"commit"
]
},
"CatalogRevision": {
"type": "object",
"description": "a catalog graph revision: the list of its entries' digests, with what it was read from",
"properties": {
"v": {
"type": "integer",
"description": "the layout version"
},
"revision": {
"type": "integer",
"description": "the catalog graph revision's number, counted by its holder"
},
"kind": {
"type": "string",
"description": "trunk or candidate"
},
"source": {
"type": "integer",
"description": "the source revision it was taken in from; for a candidate, the source revision its heads are merged onto"
},
"group": {
"type": "string",
"description": "a candidate's group"
},
"heads": {
"type": "string",
"description": "a candidate's heads"
},
"trunk": {
"type": "array",
"items": {
"$ref": "#/defs/Head"
},
"description": "the trunk head of every repository it was read at"
},
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"seat": {
"type": "string"
},
"digest": {
"type": "string"
}
},
"required": [
"seat",
"digest"
]
},
"description": "the seat definitions it was judged with, each by its digest, read whole through seat-definitions"
},
"at": {
"type": "string",
"description": "when (RFC 3339 time)",
"format": "date-time"
},
"entries": {
"type": "array",
"items": {
"$ref": "#/defs/EntryRef"
},
"description": "one per module, by name"
},
"branch": {
"type": "string",
"description": "the watched branch the revision is of"
}
},
"required": [
"revision",
"kind",
"source",
"entries"
]
},
"Fill": {
"type": "object",
"description": "a store's fill against its cap",
"properties": {
"store": {
"type": "string",
"description": "the kept data, by its name in the holder's manifest"
},
"bytes": {
"type": "integer"
},
"cap": {
"type": "integer",
"description": "bytes"
},
"refused": {
"type": "string",
"description": "what full refuses, such as the next revision and the pending merge it would take in"
},
"at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"store",
"bytes",
"cap"
]
},
"BuildEdge": {
"type": "object",
"description": "the build edge of one language: the build module that builds the module, and the toolchain and recipe version its fingerprint names (ADR 0603 §2)",
"properties": {
"module": {
"type": "string",
"description": "the build module"
},
"version": {
"type": "string",
"description": "the installed toolchain's version"
},
"recipe": {
"type": "string",
"description": "the build module's recipe version"
}
},
"required": [
"version",
"recipe"
]
},
"StepStatuses": {
"type": "object",
"description": "the status of each pipeline step (design 47 *Pipeline steps and the policy*); a step left out keeps the module's",
"properties": {
"lint": {
"type": "string",
"enum": [
"required",
"optional",
"bypass"
],
"description": "required runs and holds the delivery until it passes; optional runs, a failure is shown and may be accepted; bypass runs nothing and is said as bypassed"
},
"unit": {
"type": "string",
"enum": [
"required",
"optional",
"bypass"
],
"description": "required runs and holds the delivery until it passes; optional runs, a failure is shown and may be accepted; bypass runs nothing and is said as bypassed"
},
"integration": {
"type": "string",
"enum": [
"required",
"optional",
"bypass"
],
"description": "required runs and holds the delivery until it passes; optional runs, a failure is shown and may be accepted; bypass runs nothing and is said as bypassed"
},
"composition": {
"type": "string",
"enum": [
"required",
"optional",
"bypass"
],
"description": "required runs and holds the delivery until it passes; optional runs, a failure is shown and may be accepted; bypass runs nothing and is said as bypassed"
},
"review": {
"type": "string",
"enum": [
"required",
"optional",
"bypass"
],
"description": "required runs and holds the delivery until it passes; optional runs, a failure is shown and may be accepted; bypass runs nothing and is said as bypassed"
},
"approval": {
"type": "string",
"enum": [
"required",
"optional",
"bypass"
],
"description": "required runs and holds the delivery until it passes; optional runs, a failure is shown and may be accepted; bypass runs nothing and is said as bypassed"
}
}
},
"Policy": {
"type": "object",
"description": "a module's policy: its steps' statuses, and per artifact what differs (ADR 0666 section 7)",
"properties": {
"steps": {
"$ref": "#/defs/StepStatuses"
},
"artifacts": {
"type": "object",
"additionalProperties": {
"$ref": "#/defs/StepStatuses"
},
"description": "by artifact name, the statuses that differ from the module's"
}
},
"required": [
"steps"
]
},
"Registration": {
"type": "object",
"description": "a module's registration (ADR 0666 section 2; design 47 *A module's registration*): its git origin, its manifest's path, its watched branches and its policy, every version with who changed it and the warrant of the operator's Approve",
"properties": {
"v": {
"type": "integer",
"description": "the layout version"
},
"module": {
"type": "string"
},
"origin": {
"type": "string",
"description": "its git origin, the repository as <owner>/<name>"
},
"path": {
"type": "string",
"description": "the path of its manifest in the repository"
},
"branches": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "its watched branches, the first the default a placement runs"
},
"policy": {
"$ref": "#/defs/Policy"
},
"version": {
"type": "integer",
"description": "this registration's version, counted from 1"
},
"by": {
"type": "string",
"description": "who asked the change"
},
"warrant": {
"type": "string",
"description": "the operator's Approve the version was written on: the ask's id"
},
"at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"module",
"origin",
"path",
"branches",
"policy"
]
},
"RegistrationAsked": {
"type": "object",
"description": "what a registration change asked: the authorising ask raised through the seat operator-channel, naming every value it moves, one line each; nothing is written before its warrant (ADR 0666 section 2)",
"properties": {
"module": {
"type": "string"
},
"ask": {
"type": "string",
"description": "the ask's id"
},
"lines": {
"type": "array",
"items": {
"type": "string"
},
"description": "every value the change moves, as the ask names it (\"nats:program unit: required -> bypass\")"
},
"refused": {
"type": "string",
"enum": [
"unprotected branch",
"reserved branch name",
"placed",
"review required",
"unknown module",
"nothing moves"
],
"description": "why no ask was raised"
},
"words": {
"type": "string",
"description": "the refusal in words, naming the branch, the step or the module"
}
},
"required": [
"module"
]
},
"ArtifactRef": {
"type": "string",
"description": "an artifact reference, <module>:<artifact>, such as mesh-grants:program (design 47 *Dependencies between artifacts*)"
},
"Edge": {
"type": "object",
"description": "one edge of the catalog graph between artifact references, B before A (ADR 0666 section 14): kind 1 B published before A builds (a package A imports), 2 B published before A delivers (fetched by reference at its start), 3 B delivered before A builds (its build module and toolchain), 4 B delivered before A delivers (a provision, bus state, a format's reader), 5 B has acted for A's new version (an acting rule), 6 B runs a version that serves A (a verb or a manifest word A uses)",
"properties": {
"from": {
"$ref": "#/defs/ArtifactRef",
"description": "B, the artifact that comes first"
},
"to": {
"$ref": "#/defs/ArtifactRef",
"description": "A, the artifact that waits for it"
},
"kind": {
"type": "integer",
"enum": [
1,
2,
3,
4,
5,
6
]
},
"declared": {
"type": "boolean",
"description": "declared in the artifact entry's needs of A's manifest, where nothing else says it"
},
"why": {
"type": "string",
"description": "what it was derived from: the package, the provision, the verb or the rule"
},
"stale": {
"type": "boolean",
"description": "the edge makes the dependent stale (kinds 1, 3) or only orders it (kinds 2, 4, 5, 6) (design 47 G section 378)"
},
"word": {
"type": "string",
"description": "the manifest word the edge came from"
},
"part": {
"$ref": "#/defs/ArtifactRef",
"description": "the part pointed to"
}
},
"required": [
"from",
"to",
"kind"
]
},
"VersionArtifact": {
"type": "object",
"properties": {
"artifact": {
"$ref": "#/defs/ArtifactRef"
},
"digest": {
"type": "string",
"description": "the published artifact's digest"
}
},
"required": [
"artifact",
"digest"
]
},
"VersionEdge": {
"type": "object",
"description": "one catalog-graph edge of a released version's artifacts, as the release recorded it (design 47 G section 374)",
"properties": {
"kind": {
"type": "integer",
"enum": [
1,
2,
3,
4,
5,
6
]
},
"stale": {
"type": "boolean",
"description": "the edge makes the dependent stale (kinds 1, 3) or only orders it (kinds 2, 4, 5, 6) (section 378)"
},
"word": {
"type": "string",
"description": "the manifest word the edge came from"
},
"part": {
"$ref": "#/defs/ArtifactRef"
},
"version": {
"type": "string",
"description": "the dependency's version, kinds 1-4; \"not yet delivered\" until the first delivery for 2, 4 and 6"
},
"digest": {
"type": "string",
"description": "the digest of the part pointed to, kinds 1-4"
},
"fact": {
"type": "string",
"description": "kinds 5 and 6: the acting part, its step and the build that acted, or the verb or word used and the delivered version that serves it"
},
"filled": {
"type": "boolean",
"description": "the entry was derived at the first fill (design 47 G section 377), not recorded at a release or a delivery"
}
},
"required": [
"kind",
"stale",
"part"
]
},
"VersionEntry": {
"type": "object",
"description": "one released version of a module: each artifact's digest, the source revision built and its edge entries (design 47 G section 349, section 374)",
"properties": {
"v": {
"type": "integer"
},
"module": {
"type": "string",
"description": "the module"
},
"version": {
"type": "string",
"description": "MAJOR.MINOR.PATCH"
},
"source": {
"type": "integer",
"description": "the source revision built"
},
"artifacts": {
"type": "array",
"items": {
"$ref": "#/defs/VersionArtifact"
}
},
"late": {
"type": "boolean",
"description": "released late: lower than the module's highest, recorded and not said"
},
"edges": {
"type": "array",
"items": {
"$ref": "#/defs/VersionEdge"
}
},
"at": {
"type": "string",
"format": "date-time"
}
},
"required": [
"v",
"module",
"version",
"artifacts"
]
},
"BuildEdges": {
"type": "object",
"description": "the newest build's edge entries of a module on a watched branch other than the first, keyed by its fingerprint, which releases no version (design 47 G section 374)",
"properties": {
"v": {
"type": "integer"
},
"fp": {
"type": "string",
"description": "the build's fingerprint"
},
"source": {
"type": "integer"
},
"edges": {
"type": "array",
"items": {
"$ref": "#/defs/VersionEdge"
}
}
},
"required": [
"v",
"fp",
"edges"
]
},
"Outdated": {
"type": "object",
"description": "one entry behind, by the part's digest (design 47 G section 375)",
"properties": {
"module": {
"type": "string",
"description": "the dependent module"
},
"version": {
"type": "string",
"description": "its version, or empty for a build of another branch"
},
"build": {
"type": "string",
"description": "its build's fingerprint, for a build of another branch"
},
"kind": {
"type": "integer",
"enum": [
1,
2,
3,
4,
5,
6
]
},
"dependency": {
"type": "object",
"properties": {
"artifact": {
"$ref": "#/defs/ArtifactRef"
},
"branch": {
"type": "string",
"description": "the dependency's watched branch"
},
"source": {
"type": "integer",
"description": "the dependency's source revision"
}
},
"required": [
"artifact",
"branch",
"source"
]
},
"recorded": {
"type": "string",
"description": "what the dependent recorded: version and digest, or the fact"
},
"newest": {
"type": "string",
"description": "what is newest: version and digest, or the fact"
},
"act": {
"type": "string",
"description": "the act: a rebuild for a stale edge (kinds 1, 3), none for an ordering edge, which is shown only"
}
},
"required": [
"module",
"kind",
"dependency",
"recorded",
"newest"
]
},
"Artifact": {
"type": "object",
"description": "one artifact of a module in the catalog graph entry",
"properties": {
"ref": {
"$ref": "#/defs/ArtifactRef"
},
"language": {
"type": "string",
"description": "the artifact's language as its manifest says it (go, typescript, ...); a step's build seat is read from it (design 47 G section 323)"
},
"kind": {
"type": "string",
"description": "the artifact's kind"
},
"package": {
"type": "object",
"description": "the package's name read from the revision's own files at the artifact's path (the module of its go.mod, the name of its package.json, the manifest's image name), written at take-in (design 47 G section 676)",
"properties": {
"ecosystem": {
"type": "string",
"description": "go, npm or image"
},
"name": {
"type": "string"
}
},
"required": [
"ecosystem",
"name"
]
}
},
"required": [
"ref",
"language"
]
}
},
"bodies": {
"TakeInMerge": {
"type": "object",
"description": "one merge a take-in event holds: the repository, its pull request and the merge commit the forge made of it",
"properties": {
"repository": {
"type": "string"
},
"number": {
"type": "integer"
},
"merge": {
"type": "string"
}
},
"required": [
"repository",
"number",
"merge"
]
},
"TakeInMember": {
"type": "object",
"description": "one pull request at one commit",
"properties": {
"repository": {
"type": "string"
},
"number": {
"type": "integer"
},
"head": {
"type": "string"
}
},
"required": [
"repository",
"number",
"head"
]
},
"TakeInEntry": {
"type": "object",
"description": "one module of a taken-in revision (design 47 G section 476, section 648)",
"properties": {
"module": {
"type": "string"
},
"commit": {
"type": "string"
},
"fingerprint": {
"type": "string",
"description": "the module's build-input fingerprint at the commit"
},
"repository": {
"type": "string",
"description": "from a merged message; absent for a pushed one (design 47 G section 648)"
},
"pull": {
"type": "integer",
"description": "from a merged message; absent for a pushed one (design 47 G section 648)"
}
},
"required": [
"module",
"commit",
"fingerprint"
]
},
"TakeInPending": {
"type": "object",
"description": "the body of the indexer's take-in.pending: a wait for a revision or a group, with the watched branch (design 47 G section 493)",
"properties": {
"v": {
"type": "integer",
"description": "the layout version"
},
"kind": {
"type": "string",
"description": "the event's kind, pending or taken"
},
"key": {
"type": "string",
"description": "the wait's key: m.<sequence> of its oldest merge, or g.<group> for a group being gathered"
},
"what": {
"type": "string",
"description": "what waits: a revision or a group"
},
"merges": {
"type": "array",
"items": {
"$ref": "#/bodies/TakeInMerge"
},
"description": "the merges it holds, oldest first"
},
"group": {
"type": "string",
"description": "the delivery group, for a group being gathered"
},
"members": {
"type": "array",
"items": {
"$ref": "#/bodies/TakeInMember"
},
"description": "every approved member of a group with its head"
},
"waits-for": {
"type": "string",
"description": "the indexer build a revision waits for"
},
"since": {
"type": "string",
"description": "when the wait began",
"format": "date-time"
},
"by": {
"type": "string",
"description": "who acted by hand, on a taken event"
},
"why": {
"type": "string",
"description": "why they acted by hand, on a taken event"
},
"dropped": {
"type": "boolean",
"description": "a hand drop: the merges are not taken in"
},
"lost": {
"type": "array",
"items": {
"type": "string"
},
"description": "the keys of merges whose message the forge bridge's stream no longer holds"
},
"refused": {
"type": "string",
"description": "why the manifest of the indexer the revision names was refused"
},
"own-build-unknown": {
"type": "string",
"description": "why the indexer holds a merge it does not take in although no indexer build is named"
},
"branch": {
"type": "string",
"description": "the watched branch the revision is of (design 47 G section 476, section 493)"
}
},
"required": [
"v",
"kind",
"key",
"what",
"merges",
"since"
]
},
"TakeInTaken": {
"type": "object",
"description": "the body of the indexer's take-in.taken: a wait ended, with the branch, the source revision and the entries (design 47 G section 476, section 493)",
"properties": {
"v": {
"type": "integer",
"description": "the layout version"
},
"kind": {
"type": "string",
"description": "the event's kind, pending or taken"
},
"key": {
"type": "string",
"description": "the wait's key: m.<sequence> of its oldest merge, or g.<group> for a group being gathered"
},
"what": {
"type": "string",
"description": "what waits: a revision or a group"
},
"merges": {
"type": "array",
"items": {
"$ref": "#/bodies/TakeInMerge"
},
"description": "the merges it holds, oldest first"
},
"group": {
"type": "string",
"description": "the delivery group, for a group being gathered"
},
"members": {
"type": "array",
"items": {
"$ref": "#/bodies/TakeInMember"
},
"description": "every approved member of a group with its head"
},
"waits-for": {
"type": "string",
"description": "the indexer build a revision waits for"
},
"since": {
"type": "string",
"description": "when the wait began",
"format": "date-time"
},
"by": {
"type": "string",
"description": "who acted by hand, on a taken event"
},
"why": {
"type": "string",
"description": "why they acted by hand, on a taken event"
},
"dropped": {
"type": "boolean",
"description": "a hand drop: the merges are not taken in"
},
"lost": {
"type": "array",
"items": {
"type": "string"
},
"description": "the keys of merges whose message the forge bridge's stream no longer holds"
},
"refused": {
"type": "string",
"description": "why the manifest of the indexer the revision names was refused"
},
"own-build-unknown": {
"type": "string",
"description": "why the indexer holds a merge it does not take in although no indexer build is named"
},
"branch": {
"type": "string",
"description": "the watched branch the revision is of (design 47 G section 476, section 493)"
},
"source": {
"type": "integer",
"description": "the source revision taken in (design 47 G section 476)"
},
"entries": {
"type": "array",
"items": {
"$ref": "#/bodies/TakeInEntry"
},
"description": "one entry per module of that revision; none for a hand drop (design 47 G section 476, section 493)"
}
},
"required": [
"v",
"kind",
"key",
"what",
"merges",
"since"
]
}
}
}