feat: cross-node consumption edges over the mesh

Carry each deployment's `requires` (deployment refs, no secrets) from config →
registry → the mesh MQTT payload, and expose it on /mesh/deployments. The System
Map resolves a remote deployment's ref against the provider set across nodes
(same machine → local provider → other machine) and draws a dashed cross-node
edge. This is the multi-node payoff: e.g. primer's castle-api → civil's mqtt.
This commit is contained in:
2026-07-06 17:16:09 -07:00
parent bbd5590742
commit ebd23e42c1
6 changed files with 69 additions and 0 deletions

View File

@@ -86,6 +86,10 @@ class Deployment:
# Declared desired state (from the deployment's `enabled:`). `castle apply`
# activates enabled deployments and deactivates disabled ones. Default True.
enabled: bool = True
# Deployment `requires` (list of {kind, ref, bind}) — carried so the mesh can
# draw cross-node consumption. A remote consumer's ref resolves against the
# provider set across nodes.
requires: list[dict] = field(default_factory=list)
@dataclass