Files
mesh-catalog/modules/mesh-config/module.json
T
jschoubben 692f18ef3b CAT-C11: mesh-config reads the indexer's and the assigner's state through their tools and views events
Six states (modules, manifests, predefined, config-candidates, placement, wants) are asked of the owners' read
tools at start and kept from their views.<state> events, a gap asks again; a reader started while an owner is
down keeps asking and writes a finding past two minutes. The builder's builds has no owner tool and stays a
read. The returning node-engine's event is read by its node token (ADR 0618 as built). Tools
config_first_views and config_first_view_again.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 12:08:56 +01:00

129 lines
2.8 KiB
JSON

{
"module": "mesh-config",
"version": "1",
"runs-as": "mesh-config",
"claims": [
{
"name": "mesh-config",
"scope": "mesh",
"serves": [
"config",
"renames"
]
}
],
"emits": [
"config-changed",
"renamed",
"retiring",
"retired"
],
"uses": [
"operator-channel"
],
"consumes": [
"gitea.pull.merged",
"gitea.pull.closed",
"gitea.forge.pull-request.closed",
"mesh-delivery-view.delivered",
"node-engine.manifest-reads-changed",
"mesh-delivery-indexer.manifest-accepted",
"mesh-delivery-indexer.views.modules",
"mesh-delivery-indexer.views.manifests",
"mesh-delivery-indexer.views.predefined",
"mesh-delivery-indexer.views.config-candidates",
"mesh-delivery-assigner.views.placement",
"mesh-delivery-assigner.views.wants"
],
"invokes": [
"seat:mesh-hand-acts.hand-act",
"seat:mesh-hand-acts.warranted",
"gitea.gitea_get_pull_request",
"mesh-delivery-view.node_haves",
"seat:node-engine.manifest-reads",
"mesh-delivery-indexer.indexer_config_readers",
"seat:mesh-vault.retire",
"mesh-delivery-indexer.indexer_read_modules",
"mesh-delivery-indexer.indexer_read_manifests",
"mesh-delivery-indexer.indexer_read_predefined",
"mesh-delivery-indexer.indexer_read_config_candidates",
"mesh-delivery-assigner.assigner_read_placement",
"mesh-delivery-assigner.assigner_read_wants"
],
"reads": [
"mesh-delivery-builder.builds"
],
"tools": [
"config_declared",
"config_resync",
"config_renames",
"config_rename_again",
"config_rename_close",
"config_retiring",
"config_first_views",
"config_first_view_again"
],
"state": [
"values",
"resolved",
"predefined",
"proposals",
"pulls",
"kept",
"declared",
"renames",
"retiring",
"findings"
],
"logs": [
"history"
],
"own-secrets": {
"broker": "${dir:state}/broker"
},
"secrets-owner": "mesh-config",
"resources": [
{
"id": "account",
"type": "user",
"name": "mesh-config",
"shell": "/usr/bin/nologin",
"home": "/var/lib/mesh-config"
},
{
"id": "state",
"type": "directory",
"mode": "0700",
"owner": "mesh-config",
"place": ".",
"unknown": "program"
}
],
"build": {
"artifacts": [
{
"name": "tools",
"kind": "bundle",
"language": "go",
"system": "arch",
"from": "cmd/mesh-config",
"binary": "mesh-config",
"loads": [
"mesh-config"
]
}
]
},
"streams": [
{
"name": "config-events",
"events": [
"renamed",
"retiring",
"retired"
],
"max-age-days": 7
}
]
}