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 = "example actor" # 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 moreSource§impl Debug for ActorConfig
impl Debug for ActorConfig
Source§impl Default for ActorConfig
impl Default for ActorConfig
Source§fn default() -> ActorConfig
fn default() -> ActorConfig
Source§impl<'de> Deserialize<'de> for ActorConfig
impl<'de> Deserialize<'de> for ActorConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ActorConfig
impl RefUnwindSafe for ActorConfig
impl Send for ActorConfig
impl Sync for ActorConfig
impl Unpin for ActorConfig
impl UnsafeUnpin for ActorConfig
impl UnwindSafe for ActorConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more