pub struct ConfiguredModule {Show 14 fields
pub module_id: String,
pub program: PathBuf,
pub args: Vec<String>,
pub env: Vec<(String, String)>,
pub log: Option<LoggingConfig>,
pub enabled: bool,
pub reserved: bool,
pub reserved_prefixes: Vec<String>,
pub protocol: ModuleProtocol,
pub overlap: ModuleOverlap,
pub health: HealthConfig,
pub drain_timeout_ms: Option<u64>,
pub route_bind_relay_timeout_ms: Option<u64>,
pub restart: RestartPolicy,
}Fields§
§module_id: String§program: PathBuf§args: Vec<String>§env: Vec<(String, String)>§log: Option<LoggingConfig>Effective module logging policy. An absent module block inherits the
daemon-wide logging block; when neither exists this stays absent so
CK_LOG is genuinely absent from the service-manager-minimal child env.
enabled: bool§reserved: boolWhen true, only the daemon-spawned process for this module_id may register
it: subc injects a one-time launch nonce on spawn and rejects any HELLO for
this id whose nonce does not match. Protects security-boundary modules (e.g.
the credential vault) from being impersonated by another key-holder while the
real process is down or restarting. Defaults to false.
reserved_prefixes: Vec<String>Namespace prefixes owned by this reserved, supervised module. A HELLO for a module id under one of these prefixes must echo this owner module’s current spawn nonce.
protocol: ModuleProtocolWhich wire protocol this module speaks, as declared. Absent in config
means Subc, which is what every module written before this key meant.
overlap: ModuleOverlapWhether a second process of this module may run beside the first, which a blue/green swap does. Absent in config means exclusive.
health: HealthConfig§drain_timeout_ms: Option<u64>Effective drain budget (ms) for this module’s teardown, already resolved
against the daemon-wide default at parse time. None = built-in default.
route_bind_relay_timeout_ms: Option<u64>Effective route.bind relay budget (ms) for this module, already resolved
against the daemon-wide default at parse time. None = built-in default
(12s). A 0 is refused at parse time at both layers — see
DaemonConfig::route_bind_relay_timeout_ms and ROUTE_BIND_RELAY_ZERO_MESSAGE.
restart: RestartPolicyThis module’s crash-restart budget, fully resolved at parse time: every
absent key of the optional restart block falls back to the supervisor
default (3 restarts per 600s, 100ms base backoff, 30s maximum backoff).
Stored resolved rather than as an Option so no later layer has to
re-derive the defaults and get them subtly different.
Read when a module STARTS being supervised (daemon start, or a rescan
that adds the module). Like drain_timeout_ms, an edit to this block for
an already-running module is not part of the rescan diff, so it takes
effect on the next daemon start rather than immediately.