Files
mesh-delivery/modules/mesh-delivery-checker/module.json
T

215 lines
6.4 KiB
JSON

{
"module": "mesh-delivery-checker",
"version": "0.1",
"slug": "checker",
"claims": [
{
"name": "mesh-delivery-checker",
"scope": "mesh",
"serves": [
"try",
"try-read",
"try-end",
"input"
]
}
],
"consumes": [
"mesh-catalog.catalog-revision",
"mesh-catalog.registration-changed",
"mesh-delivery.source-moved",
"seat:mesh-module-assigner.views.seat-holders",
"mesh-catalog.seat-definition-changed",
"mesh-catalog.seat-definition-removed",
"mesh-delivery-indexer.views.candidates",
"mesh-delivery-indexer.views.manifests",
"mesh-delivery-indexer.views.modules",
"mesh-delivery-indexer.views.packages",
"mesh-delivery-indexer.views.predefined",
"mesh-delivery-indexer.views.seat-definitions",
"mesh-conditions.findings-asked",
"seat:mesh-module-assigner.views.assignments",
"node-build-go.toolchain-reported",
"node-build-node.toolchain-reported",
"node-engine.running"
],
"streams": [
{ "name": "checks", "events": ["preview.**", "owed.**", "try.**"] },
{ "name": "asks", "events": ["verdict"], "retention": "history" },
{ "name": "mesh-delivery-checker-findings", "events": ["finding-written.*", "finding-cleared.*", "findings-stated.*"], "max-age-days": 7, "max-mib": 16 }
],
"state": [
{ "name": "asks", "history": 1 },
{ "name": "hearing", "history": 1 },
{ "name": "inputs", "ttl-seconds": 86400 },
{ "name": "compositions", "ttl-seconds": 259200, "max-mib": 256 },
{ "name": "kept", "history": 1 },
{ "name": "owed", "history": 5 },
{ "name": "previews", "history": 5 },
{ "name": "tries", "history": 1 },
{ "name": "verdicts", "history": 5 },
{ "name": "first-views", "history": 1 },
{ "name": "findings", "history": 1 },
{ "name": "could-not-run", "history": 1 }
],
"reads": [
"mesh-delivery-builder.builds",
"mesh-delivery-watchman.presence",
"node-engine.have",
"seat:mesh-module-assigner.assignments",
"seat:node-build-go.steps",
"seat:node-build-go.toolchains",
"seat:node-build-node.steps",
"seat:node-build-node.toolchains"
],
"uses": [
"node-build-go",
"node-build-node"
],
"tools": [
"checker_ask_again",
"checker_composition_requests",
"checker_composition_requests_drop",
"checker_inputs",
"checker_kept",
"checker_previews",
"checker_pull",
"checker_status",
"checker_first_views",
"checker_first_view_again",
"checker_tries",
"checker_try",
"checker_try_end",
"checker_try_read",
"checker_verdicts"
],
"invokes": [
"mesh-delivery-indexer.indexer_read_candidates",
"mesh-delivery-indexer.indexer_read_manifests",
"mesh-delivery-indexer.indexer_read_modules",
"mesh-delivery-indexer.indexer_read_packages",
"mesh-delivery-indexer.indexer_read_predefined",
"mesh-delivery-indexer.indexer_read_seat_definitions",
"seat:git.file",
"seat:mesh-catalog.revision",
"seat:mesh-catalog.registrations",
"seat:mesh-delivery.source",
"seat:mesh-catalog.seat-definitions",
"seat:mesh-config.renames",
"mesh-delivery-view.build_usage",
"seat:mesh-hand-acts.hand-act",
"seat:mesh-module-assigner.assignments",
"seat:node-build-go.drop",
"seat:node-build-node.drop",
"seat:node-engine.compose-candidate",
"seat:node-build-image.drop",
"seat:node-build-go.output",
"seat:node-build-node.output",
"seat:node-build-image.output",
"seat:node-build-go.accept.check",
"seat:node-build-go.accept.recheck",
"seat:node-build-node.accept.check",
"seat:node-build-node.accept.recheck",
"seat:node-build-image.accept.check",
"seat:node-build-image.accept.recheck"
],
"own-secrets": {
"broker": "${dir:state}/broker"
},
"secrets-owner": "mesh-delivery-checker",
"config": {
"compose-answer-bound": {
"type": "number",
"description": "seconds a check waits for each placed node's engine to answer compose-candidate (novox/hq ADR 0593 §7, §9); a node that has not answered by then is named in the verdict as not composed on that node: no answer, and the check passes with that warning.",
"minimum": 1,
"maximum": 600,
"trusted": false,
"default": 60
},
"build-wait-bound": {
"type": "number",
"description": "seconds a check waits for the builder's builds of its candidate to end before it composes with them (novox/hq ADR 0603 §10); a build failed fails the check, naming it, and a build not ended by then is named in the verdict and the check composes without it.",
"minimum": 60,
"maximum": 7200,
"trusted": false,
"default": 1800
}
},
"resources": [
{
"id": "account",
"type": "user",
"name": "mesh-delivery-checker",
"shell": "/usr/bin/nologin",
"home": "/var/lib/mesh-delivery-checker"
},
{
"id": "state",
"type": "directory",
"mode": "0700",
"owner": "mesh-delivery-checker",
"place": ".",
"unknown": "program"
},
{
"id": "settings",
"type": "file",
"path": "${dir:state}/settings.json",
"mode": "0600",
"owner": "mesh-delivery-checker",
"takes-config": [
"compose-answer-bound",
"build-wait-bound"
],
"merge": "json",
"template": "files/settings.json"
},
{
"id": "checker",
"type": "process",
"name": "mesh-delivery-checker",
"artifact": "program",
"run": [
"./mesh-delivery-checker"
],
"env": {
"MESH_BROKER_FILE": "${dir:state}/broker",
"MESH_CHECKER_SETTINGS": "${dir:state}/settings.json"
},
"user": "mesh-delivery-checker",
"health": {
"kind": "unit"
}
}
],
"build": {
"artifacts": [
{
"name": "program",
"kind": "bundle",
"language": "go",
"system": "arch",
"from": "cmd/mesh-delivery-checker",
"binary": "mesh-delivery-checker"
},
{
"name": "tools",
"kind": "bundle",
"language": "go",
"system": "arch",
"from": "cmd/mesh-delivery-checker-tools",
"binary": "mesh-delivery-checker-tools",
"loads": [
"mesh-delivery-checker-tools"
]
},
{
"name": "files",
"kind": "archive",
"from": "files"
}
]
}
}