Files
jschoubben e64c8ad0ca
mesh/delivery merged: source.main moved to novox/mesh-host@14c22b4a4586
mesh/check checking e64c8ad0ca62 on 14c22b4a4586
The node's golden grant reads its own findings, as the grants part composes it (issue 1966)
mesh-grants gives the engine the owner's read of its state findings for its own node's keys (EngineFindingsGrants); the golden
grant held only the write, so the engine could not read the finding it clears at the first full read.

Builds: design 47 H-7, ADR 0636 §1 (the finding is cleared at the first full read), ADR 0596 §2 (the owner reads its state), issue 1966

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-11 02:23:10 +01:00

147 lines
7.3 KiB
JSON

{
"Publish": [
"$JS.ACK.NODES.NODE.>",
"$JS.API.CONSUMER.CREATE.KV_composed-NODE.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-config_resolved.*.$KV.mesh-config_resolved.NODE.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-delivery-assigner_candidates.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-delivery-assigner_assignments.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-delivery-assigner_wants.*.$KV.mesh-delivery-assigner_wants.want.NODE.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-delivery-builder_builds.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-delivery-indexer_candidates.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-delivery-indexer_manifests.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-delivery-indexer_modules.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-delivery-indexer_verdicts.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-host_acts.*.$KV.mesh-host_acts.NODE.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-host_data.*.$KV.mesh-host_data.NODE.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-host_findings.*.$KV.mesh-host_findings.machine.NODE.>",
"$JS.API.CONSUMER.CREATE.KV_mesh-host_health.*.$KV.mesh-host_health.NODE",
"$JS.API.CONSUMER.CREATE.KV_mesh-host_packages.*.$KV.mesh-host_packages.NODE",
"$JS.API.CONSUMER.CREATE.KV_mesh-provisioner_provisions.*.$KV.mesh-provisioner_provisions.NODE.>",
"$JS.API.CONSUMER.CREATE.KV_node-engine_have.*.$KV.node-engine_have.*.node",
"$JS.API.CONSUMER.CREATE.KV_node-engine_have.*.$KV.node-engine_have.NODE.>",
"$JS.API.CONSUMER.CREATE.OBJ_declaration-files-NODE.*.$O.declaration-files-NODE.C.*",
"$JS.API.CONSUMER.DELETE.KV_composed-NODE.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-config_resolved.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-delivery-assigner_candidates.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-delivery-assigner_assignments.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-delivery-assigner_wants.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-delivery-builder_builds.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-delivery-indexer_candidates.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-delivery-indexer_manifests.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-delivery-indexer_modules.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-delivery-indexer_verdicts.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-host_acts.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-host_data.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-host_findings.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-host_health.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-host_packages.>",
"$JS.API.CONSUMER.DELETE.KV_mesh-provisioner_provisions.>",
"$JS.API.CONSUMER.DELETE.KV_node-engine_have.>",
"$JS.API.CONSUMER.DELETE.OBJ_declaration-files-NODE.*",
"$JS.API.CONSUMER.INFO.NODES.NODE",
"$JS.API.DIRECT.GET.KV_composed-NODE.>",
"$JS.API.DIRECT.GET.KV_mesh-config_resolved.$KV.mesh-config_resolved.NODE.>",
"$JS.API.DIRECT.GET.KV_mesh-delivery-assigner_candidates.>",
"$JS.API.DIRECT.GET.KV_mesh-delivery-assigner_assignments.>",
"$JS.API.DIRECT.GET.KV_mesh-delivery-assigner_wants.$KV.mesh-delivery-assigner_wants.want.NODE.>",
"$JS.API.DIRECT.GET.KV_mesh-delivery-builder_builds.>",
"$JS.API.DIRECT.GET.KV_mesh-delivery-indexer_candidates.>",
"$JS.API.DIRECT.GET.KV_mesh-delivery-indexer_manifests.>",
"$JS.API.DIRECT.GET.KV_mesh-delivery-indexer_modules.>",
"$JS.API.DIRECT.GET.KV_mesh-delivery-indexer_verdicts.>",
"$JS.API.DIRECT.GET.KV_mesh-host_acts.$KV.mesh-host_acts.NODE.>",
"$JS.API.DIRECT.GET.KV_mesh-host_data.$KV.mesh-host_data.NODE.>",
"$JS.API.DIRECT.GET.KV_mesh-host_findings.$KV.mesh-host_findings.machine.NODE.>",
"$JS.API.DIRECT.GET.KV_mesh-host_health.$KV.mesh-host_health.NODE",
"$JS.API.DIRECT.GET.KV_mesh-host_packages.$KV.mesh-host_packages.NODE",
"$JS.API.DIRECT.GET.KV_mesh-provisioner_provisions.$KV.mesh-provisioner_provisions.NODE.>",
"$JS.API.DIRECT.GET.KV_node-engine_have.$KV.node-engine_have.*.node",
"$JS.API.DIRECT.GET.KV_node-engine_have.$KV.node-engine_have.NODE.>",
"$JS.API.DIRECT.GET.OBJ_declaration-files-NODE.$O.declaration-files-NODE.M.*",
"$JS.API.STREAM.INFO.KV_composed-NODE",
"$JS.API.STREAM.INFO.KV_mesh-config_resolved",
"$JS.API.STREAM.INFO.KV_mesh-delivery-assigner_candidates",
"$JS.API.STREAM.INFO.KV_mesh-delivery-assigner_assignments",
"$JS.API.STREAM.INFO.KV_mesh-delivery-assigner_wants",
"$JS.API.STREAM.INFO.KV_mesh-delivery-builder_builds",
"$JS.API.STREAM.INFO.KV_mesh-delivery-indexer_candidates",
"$JS.API.STREAM.INFO.KV_mesh-delivery-indexer_manifests",
"$JS.API.STREAM.INFO.KV_mesh-delivery-indexer_modules",
"$JS.API.STREAM.INFO.KV_mesh-delivery-indexer_verdicts",
"$JS.API.STREAM.INFO.KV_mesh-host_acts",
"$JS.API.STREAM.INFO.KV_mesh-host_data",
"$JS.API.STREAM.INFO.KV_mesh-host_findings",
"$JS.API.STREAM.INFO.KV_mesh-host_health",
"$JS.API.STREAM.INFO.KV_mesh-host_packages",
"$JS.API.STREAM.INFO.KV_mesh-provisioner_provisions",
"$JS.API.STREAM.INFO.KV_node-engine_have",
"$JS.FC.KV_composed-NODE.>",
"$JS.FC.KV_mesh-config_resolved.>",
"$JS.FC.KV_mesh-delivery-assigner_candidates.>",
"$JS.FC.KV_mesh-delivery-assigner_assignments.>",
"$JS.FC.KV_mesh-delivery-assigner_wants.>",
"$JS.FC.KV_mesh-delivery-builder_builds.>",
"$JS.FC.KV_mesh-delivery-indexer_candidates.>",
"$JS.FC.KV_mesh-delivery-indexer_manifests.>",
"$JS.FC.KV_mesh-delivery-indexer_modules.>",
"$JS.FC.KV_mesh-delivery-indexer_verdicts.>",
"$JS.FC.KV_mesh-host_acts.>",
"$JS.FC.KV_mesh-host_data.>",
"$JS.FC.KV_mesh-host_findings.>",
"$JS.FC.KV_mesh-host_health.>",
"$JS.FC.KV_mesh-host_packages.>",
"$JS.FC.KV_mesh-provisioner_provisions.>",
"$JS.FC.KV_node-engine_have.>",
"$JS.FC.OBJ_declaration-files-NODE.>",
"$KV.composed-NODE.>",
"$KV.mesh-host_acts.NODE.>",
"$KV.mesh-host_data.NODE.>",
"$KV.mesh-host_findings.machine.NODE.>",
"$KV.mesh-host_health.NODE",
"$KV.mesh-host_packages.NODE",
"$KV.node-engine_have.NODE.>",
"$SRV.INFO",
"$SRV.INFO.>",
"$SRV.PING",
"$SRV.PING.>",
"$SRV.PING.node-tools.NODE",
"mesh.control.NODE.>",
"mesh.seat.mesh-catalog.call.seat-definitions.node~NODE",
"mesh.seat.node-backup.call.backed-up.NODE.node~NODE",
"mesh.seat.node-backup.call.now.NODE.node~NODE",
"mesh.seat.node-backup.tool.backed-up.NODE",
"mesh.seat.node-backup.tool.now.NODE",
"mesh.seat.node-engine.event.*.NODE"
],
"PublishDeny": null,
"Subscribe": [
"$JS.EVENT.ADVISORY.STREAM.CREATED.KV_mesh-delivery-assigner_candidates",
"$JS.EVENT.ADVISORY.STREAM.CREATED.KV_mesh-delivery-assigner_assignments",
"$SRV.INFO",
"$SRV.INFO.node-engine",
"$SRV.INFO.node-engine.>",
"$SRV.PING",
"$SRV.PING.node-engine",
"$SRV.PING.node-engine.>",
"$SRV.STATS",
"$SRV.STATS.node-engine",
"$SRV.STATS.node-engine.>",
"_DELIVER.NODE",
"_DELIVER.NODE.>",
"_INBOX.node.NODE.>",
"mesh.mod.restic.event.backed-up",
"mesh.node.NODE.ask.access-act",
"mesh.node.NODE.ask.hand-over",
"mesh.node.NODE.ask.judge-directories",
"mesh.node.NODE.ask.move-secret",
"mesh.node.NODE.ask.report",
"mesh.node.NODE.ask.setuid-search",
"mesh.node.NODE.declare",
"mesh.seat.mesh-catalog.event.seat-definition-changed",
"mesh.seat.mesh-catalog.event.seat-definition-removed",
"mesh.seat.node-engine.call.*.NODE.*",
"mesh.seat.node-engine.tool.*.NODE"
],
"AllowResponses": true
}