The machine-boundary trust layer of the cross-machine mesh epic.
The gateway advertises local agents to, and accepts forwarded traffic from, only allowlisted remote gateways, keyed by remote gateway device-id. This is the successor to v1's fedTrust/fedTrustedFingerprints (retired with federation.ts): the same pre-declared trust of remote endpoints, moved to the machine boundary, which is where cross-machine traffic actually enters.
Deliberately out of scope: gating the hub itself. mesh.exadev.io stays open; requiring relay:use tokens before the hub pairs a connection (wire-mesh's createGatedRelayFrameHandler already provides the mechanism) is a recorded option for if the hub ever carries untrusted machines.
The default posture before any remote gateway is allowlisted (deny-all, vs allow-all with a denylist) is settled while implementing, against the two-machines-one-owner deployment this is being built for.
Per-agent cryptographic gating, recorded as the follow-on direction for finer control beyond visibility: DM delivery today is gated only by recipient visibility (no blocklist, allowlist, or pairwise rule exists anywhere in the shipped code; control is exercised entirely receiver-side or at room admission, never outbound). A dm:send-style capability checked receiver-side needs no new wire mechanism, since receiver refusal via manage-error already works, and peers can advertise accept/refuse policies through the peer-advert gossip extension so a sender can check before attempting. Neither is wired; both compose with the gateway boundary rather than compete with it, and both are deliberately outside this epic.
The user-principal form of this gating (a user principal as the issuer of communication capabilities, with delegation policy and bubble-up along the issuer chain) is the sibling epic #159.
Long-term upgrade path: once the user-principal layer exists (#159), the allowlist keys on remote principals (user/group device-ids) rather than bare gateway device-ids, turning the machine trust boundary into a principal trust boundary.
The machine-boundary trust layer of the cross-machine mesh epic.
The gateway advertises local agents to, and accepts forwarded traffic from, only allowlisted remote gateways, keyed by remote gateway device-id. This is the successor to v1's
fedTrust/fedTrustedFingerprints(retired withfederation.ts): the same pre-declared trust of remote endpoints, moved to the machine boundary, which is where cross-machine traffic actually enters.Deliberately out of scope: gating the hub itself. mesh.exadev.io stays open; requiring
relay:usetokens before the hub pairs a connection (wire-mesh'screateGatedRelayFrameHandleralready provides the mechanism) is a recorded option for if the hub ever carries untrusted machines.The default posture before any remote gateway is allowlisted (deny-all, vs allow-all with a denylist) is settled while implementing, against the two-machines-one-owner deployment this is being built for.
Per-agent cryptographic gating, recorded as the follow-on direction for finer control beyond visibility: DM delivery today is gated only by recipient visibility (no blocklist, allowlist, or pairwise rule exists anywhere in the shipped code; control is exercised entirely receiver-side or at room admission, never outbound). A
dm:send-style capability checked receiver-side needs no new wire mechanism, since receiver refusal via manage-error already works, and peers can advertise accept/refuse policies through the peer-advert gossip extension so a sender can check before attempting. Neither is wired; both compose with the gateway boundary rather than compete with it, and both are deliberately outside this epic.The user-principal form of this gating (a user principal as the issuer of communication capabilities, with delegation policy and bubble-up along the issuer chain) is the sibling epic #159.
Long-term upgrade path: once the user-principal layer exists (#159), the allowlist keys on remote principals (user/group device-ids) rather than bare gateway device-ids, turning the machine trust boundary into a principal trust boundary.