pub struct Enrollment {
pub base: Option<String>,
pub fleet: FleetSpec,
pub principal: Vec<PrincipalSpec>,
}Expand description
The enrollment file zenctl acl gen --enrollment reads (#392).
One [[principal]] per transport identity, each bound to a role and —
for a host — to the origin it may act as (RFC 03 §4 D6: without this
binding, D6 is a hygiene boundary, not a security one). Everything the
router needs beyond that is derived.
base = "zensight" # optional; default = --base / context / ""
[fleet]
catalog_adv = true # the catalog runs the advanced tier:
# spell @catalog/**/@adv/** explicitly
salt = "zensight-host-id-v1" # the app's RFC 06 §1 origin salt —
# needed only where a host gives machine_id
[[principal]]
cn = "h-3fa9c2d41b7e" # the mTLS certificate CN
role = "host" # host | catalog | console | desired-author | watch
origin = "h-3fa9c2d41b7e" # or machine_id = "<32 hex>" (+ fleet.salt);
# both given must agree, or the principal is refused
adv = true # uses the @adv sidecars (RFC 04 §3.3)
blob_seed = true # seeds the router @blob store (RFC 07 §2)
media = true # publishes @media streams (RFC 07 §1)
[[principal]]
cn = "zensight-catalog"
role = "catalog" # origin defaults to @catalog
[[principal]]
cn = "zensight-console"
role = "console"
adv = true
remote_actions = false # true drops the no-remote-actions deny
[[principal]]
cn = "zensight-desired"
role = "desired-author"
origin = "@desired" # its own service origin (RFC 07 §3)
[[principal]]
cn = "zensight-watch"
role = "watch" # read-only: data classes, catalog, RPC readsA zid = "…" in place of cn is accepted only under
--allow-zid-subjects: zenoh’s own config says a ZID “is not backed by
an authentication mechanism … can be useful for prototyping but should
not be used in production” (zenoh-1.10.0/DEFAULT_CONFIG.json5).
Fields§
§base: Option<String>The deployment base (RFC 03 §1.1). None = take the observer’s
resolved --base, the empty base being the bus-root deployment.
fleet: FleetSpec§principal: Vec<PrincipalSpec>Trait Implementations§
Source§impl Clone for Enrollment
impl Clone for Enrollment
Source§fn clone(&self) -> Enrollment
fn clone(&self) -> Enrollment
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Enrollment
impl Debug for Enrollment
Source§impl Default for Enrollment
impl Default for Enrollment
Source§fn default() -> Enrollment
fn default() -> Enrollment
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for Enrollment
impl<'de> Deserialize<'de> for Enrollment
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Enrollment
impl RefUnwindSafe for Enrollment
impl Send for Enrollment
impl Sync for Enrollment
impl Unpin for Enrollment
impl UnsafeUnpin for Enrollment
impl UnwindSafe for Enrollment
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> ⓘ
Converts
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> ⓘ
Converts
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