docker's daemon file names the image seat's reach while its manifest stays, so the hold read from the manifest alone let an engine before the reading lose the file. The forge bridge reads each manifest's templates at the merge and carries the module's needs whole; the indexer takes them, keeps them past the judge, and holds any changed entry, not only a new manifest digest. A hold standing past 30 minutes is the finding manifest-held, its bound a key of the new state hold-bounds that expires; its expiry and the start weigh the holds again, so a restart loses no bound. A hold moved by hand names the nodes it strands, in its answer and its hand act. The hold test is a case of the manifests test, not a function of its own. Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
177 lines
4.8 KiB
JSON
177 lines
4.8 KiB
JSON
{
|
|
"module": "mesh-delivery-indexer",
|
|
"version": "1",
|
|
"slug": "indexer",
|
|
"runs-as": "mesh-delivery-indexer",
|
|
"claims": [
|
|
{
|
|
"name": "mesh-catalog",
|
|
"scope": "mesh",
|
|
"serves": [
|
|
"modules",
|
|
"module",
|
|
"provides",
|
|
"dependents"
|
|
]
|
|
}
|
|
],
|
|
"tools": [
|
|
"indexer_take_in",
|
|
"indexer_old_sections",
|
|
"indexer_verdicts",
|
|
"indexer_judge",
|
|
"manifests",
|
|
"modules",
|
|
"verdicts",
|
|
"graph",
|
|
"indexer_read_manifests",
|
|
"indexer_read_modules",
|
|
"indexer_read_predefined",
|
|
"indexer_read_config_candidates",
|
|
"indexer_read_candidates",
|
|
"indexer_read_packages",
|
|
"indexer_read_graph",
|
|
"indexer_read_heard",
|
|
"indexer_read_taken",
|
|
"indexer_read_findings",
|
|
"indexer_read_seat_definitions",
|
|
"indexer_first_views",
|
|
"indexer_first_view_again",
|
|
"indexer_config_readers",
|
|
"indexer_bus_state",
|
|
"indexer_requirements",
|
|
"indexer_package_users",
|
|
"indexer_say_accepted",
|
|
"indexer_seat_definition",
|
|
"indexer_seat_definitions_again",
|
|
"indexer_out_of_step",
|
|
"indexer_holds",
|
|
"indexer_engine_reads"
|
|
],
|
|
"consumes": [
|
|
"go-package-registry.published",
|
|
"mesh-build-go.toolchain.reported",
|
|
"mesh-build-node.toolchain.reported",
|
|
"mesh-delivery-assigner.views.placement",
|
|
"mesh-delivery-builder.version.numbered",
|
|
"mesh-delivery-checker.preview.written",
|
|
"mesh-delivery-checker.verdict",
|
|
"mesh-delivery-forge-bridge.forge.**",
|
|
"node-engine.manifest-reads-changed",
|
|
"npm-package-registry.published"
|
|
],
|
|
"state": [
|
|
{ "name": "candidates", "history": 10 },
|
|
{ "name": "heard", "history": 64 },
|
|
{ "name": "manifests", "history": 1 },
|
|
{ "name": "modules", "history": 20 },
|
|
{ "name": "predefined", "history": 5 },
|
|
{ "name": "config-candidates", "history": 5 },
|
|
{ "name": "taken", "history": 1 },
|
|
{ "name": "takeins", "history": 1 },
|
|
{ "name": "verdicts", "history": 5 },
|
|
{ "name": "oldsections", "history": 1 },
|
|
{ "name": "packages", "history": 5 },
|
|
{ "name": "graph", "history": 5 },
|
|
{ "name": "view-marks", "history": 1 },
|
|
{ "name": "findings", "history": 5 },
|
|
{ "name": "first-views", "history": 1 },
|
|
{ "name": "requirements", "history": 5 },
|
|
{ "name": "seat-definitions", "history": 5 },
|
|
{ "name": "holds", "history": 5 },
|
|
{ "name": "engine-reads", "history": 1 },
|
|
{ "name": "hold-bounds", "history": 1, "key-ttl": true }
|
|
],
|
|
"streams": [
|
|
{ "name": "indexer-views", "events": ["views.**"], "max-age-days": 7, "max-mib": 256 },
|
|
{ "name": "indexer-seat-definitions", "events": ["seat-definition-changed"], "max-age-days": 7 }
|
|
],
|
|
"emits": [
|
|
"manifest-refused",
|
|
"manifest-accepted"
|
|
],
|
|
"reads": [
|
|
"mesh-build-go.toolchains",
|
|
"mesh-build-node.toolchains",
|
|
"mesh-delivery-builder.build-log",
|
|
"mesh-delivery-checker.previews",
|
|
"mesh-delivery-gate.source"
|
|
],
|
|
"invokes": [
|
|
"mesh-delivery-assigner.placement",
|
|
"gitea.gitea_commit_trees",
|
|
"gitea.gitea_contains",
|
|
"gitea.gitea_get_file",
|
|
"gitea.gitea_open_pulls",
|
|
"seat:node-engine.composition",
|
|
"seat:node-engine.manifest-reads",
|
|
"seat:mesh-hand-acts.hand-act"
|
|
],
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "mesh-delivery-indexer",
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "mesh-delivery-indexer",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/mesh-delivery-indexer"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "mesh-delivery-indexer",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "indexer",
|
|
"type": "process",
|
|
"name": "mesh-delivery-indexer",
|
|
"artifact": "program",
|
|
"run": [
|
|
"./mesh-delivery-indexer"
|
|
],
|
|
"env": {
|
|
"MESH_BROKER_FILE": "${dir:state}/broker"
|
|
},
|
|
"user": "mesh-delivery-indexer",
|
|
"health": {
|
|
"kind": "unit"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "program",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-indexer",
|
|
"binary": "mesh-delivery-indexer"
|
|
},
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-indexer-tools",
|
|
"binary": "mesh-delivery-indexer-tools",
|
|
"loads": [
|
|
"mesh-delivery-indexer-tools"
|
|
],
|
|
"env": {
|
|
"MESH_VIEW_CALLERS_MANIFESTS": "mesh-grants,node-tools,mesh-delivery-assigner",
|
|
"MESH_VIEW_CALLERS_MODULES": "mesh-grants,node-tools,mesh-delivery-assigner",
|
|
"MESH_VIEW_CALLERS_VERDICTS": "mesh-grants",
|
|
"MESH_VIEW_CALLERS_GRAPH": "mesh-delivery-assigner"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|