Files
mesh-catalog/modules/mesh-config/module.json
T
jschoubben 376a8b0fb5 CAT-C1..C8, C10: mesh-config moves a renamed config value, answers both names in the rename window, retires an unread value on the operator's Approve; the keeper reads its findings
A declaration's renamed-from moves the value with its trust and opens a window per node,
closed on delivered and, for a returning node-engine, on manifest-reads-changed (ADR 0618).
A value no manifest reads is marked retiring only once no node runs a build that reads it,
asked once, removed only on the Approve (a secret through the seat mesh-vault's retire).
New state in the old sections (ADR 0619), the stream config-events, the tools config_renames,
config_rename_again, config_rename_close, config_retiring and the seat verb renames.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 11:46:16 +01:00

119 lines
2.3 KiB
JSON

{
"module": "mesh-config",
"version": "1",
"runs-as": "mesh-config",
"claims": [
{
"name": "mesh-config",
"scope": "mesh",
"serves": [
"config",
"renames"
]
}
],
"emits": [
"config-changed",
"events.renamed",
"events.retiring",
"events.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"
],
"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"
],
"reads": [
"mesh-delivery-assigner.placement",
"mesh-delivery-assigner.wants",
"mesh-delivery-builder.builds",
"mesh-delivery-indexer.modules",
"mesh-delivery-indexer.manifests",
"mesh-delivery-indexer.predefined",
"mesh-delivery-indexer.config-candidates"
],
"tools": [
"config_declared",
"config_resync",
"config_renames",
"config_rename_again",
"config_rename_close",
"config_retiring"
],
"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": [
"events.**"
],
"max-age-days": 7
}
]
}