pub enum ModuleControlRequest {
RouteBind {
route_channel: u16,
epoch: u32,
target: RouteTarget,
identity: BindIdentity,
principal: Option<Principal>,
consumer_capabilities: Option<Vec<String>>,
admission_facts: Option<Value>,
scope: Option<ScopeStamp>,
},
HealthCheck {},
}Expand description
subc-to-module channel-0 control RPC body.
Variants§
RouteBind
Fields
target: RouteTargetidentity: BindIdentityprincipal: Option<Principal>The daemon’s attestation of the consumer, and the only field here a provider may grant privilege on.
Reserved is minted at exactly one place in the daemon, on the branch
where the consumer’s launch nonce matched a supervised spawn — the
function that checks is the function that mints, so the value cannot
exist without the check having run. That property is what a provider is
relying on, and it is the reason to key authority on this rather than on
identity, which is client-supplied and unattested (see BindIdentity).
Absent means the daemon made no attestation, which is not the same as a denial: it is the shape a pre-attestation peer sends. Treat it as unattested rather than as trusted-by-default.
consumer_capabilities: Option<Vec<String>>Consumer-declared reverse-request capabilities for the route. This is an unverified declaration, not a privilege grant; if a consumer over-declares, providers may still send reverse requests that later time out or deny. Providers must treat an absent field as no reverse-request capability. The vocabulary is open strings; known MCP method-family values today are “elicitation”, “sampling”, and “roots”.
scope: Option<ScopeStamp>The daemon’s stamp of the scope the route was admitted under, taken
from the owner’s synced record at admission. Like principal, it is
the daemon’s, never the opener’s: a provider may act on it (on
owner_authorized, delegates and agent_id together), and must
treat it as fixed for the route’s life, because a change that
revokes authority closes the route.
Absent means the route was opened without a scope, or by a daemon that predates scopes. A provider that needs a scope refuses the bind.