pub struct ActorConfig {
pub id: Option<String>,
pub display_name: Option<String>,
pub visible_namespaces: Option<Vec<String>>,
pub allowed_outbound_namespaces: Vec<String>,
}Expand description
Actor configuration — the default namespace / identity for this khive instance.
Corresponds to the [actor] TOML section. id is used as the
default_namespace for gate/attribution policy input. OSS dispatch pins
writes to the shared local namespace regardless of this value (ADR-007
Rev 4 Rule 0); cloud deployments derive the namespace from an authenticated
NamespaceToken instead.
[actor]
id = "lambda:leo" # attribution identity (required)
display_name = "Leo global orchestrator" # human label (optional)
visible_namespaces = ["lambda:khive", "local"] # widens default read scope (ADR-007 Rev 4 Rule 3b)visible_namespaces is consumed by OSS dispatch to widen the DEFAULT
multi-record read scope to ['local'] ∪ visible_namespaces (ADR-007 Rev 4
Rule 3b). Writes remain pinned to 'local'. An explicit namespace= request
param is a precise single-namespace escape and is not widened. A cloud gate
may also consult this list as policy input at its own layer.
Fields§
§id: Option<String>Namespace identifier used as the default actor for all operations.
Must be a valid Namespace string (e.g. "local", "lambda:khive").
Defaults to "local" when absent — backward-compatible with pre-actor
deployments.
display_name: Option<String>Optional human-readable label for this actor. Not used by the runtime; surfaced in introspection and log output only.
visible_namespaces: Option<Vec<String>>Additional namespaces that widen the DEFAULT multi-record read scope
to ['local'] ∪ visible_namespaces (ADR-007 Rev 4 Rule 3b). Each string
must be a valid Namespace. Writes remain pinned to 'local'. An
explicit namespace= request param is a precise escape and is not widened
by this list. A cloud gate may also consult it as policy input.
allowed_outbound_namespaces: Vec<String>Namespaces this actor’s comm.send/reply may deliver messages INTO
(outbound, sender-side). Empty by default — cross-namespace delivery
denied unless explicitly declared. The comm handler uses an ordinary
NamespaceToken (minted via with_namespace) in an append-only manner;
the token itself is NOT type-enforced write-only. The recipient-side
allowed_inbound_namespaces (bilateral mutual opt-in) is reserved for
a future cloud-path authorization ADR (not yet written).
Each entry must be a valid Namespace string; validated at
config-load time. An empty list preserves the prior deny-all behavior
for any actor that does not add this field.
Trait Implementations§
Source§impl Clone for ActorConfig
impl Clone for ActorConfig
Source§fn clone(&self) -> ActorConfig
fn clone(&self) -> ActorConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more