pub struct JoinRequest {
pub hostname: String,
pub auth: Option<AuthResponse>,
pub invite_token: Option<String>,
pub csr: Option<String>,
pub sans: Vec<String>,
}Expand description
Client request to join the mesh.
The joining machine must identify itself by hostname so the CA issues a certificate with the correct subject (not the CA’s own hostname).
Fields§
§hostname: StringHostname of the machine requesting to join.
auth: Option<AuthResponse>Auth response (TOTP code). Absent when enrolling with an invite token.
invite_token: Option<String>Single-use, hostname-bound enrollment invite token (ADR-015 F2).
Mutually exclusive with auth; when present it is the join credential.
csr: Option<String>PKCS#10 CSR (PEM) generated by the joining member (ADR-015 F1).
The member generates its own keypair and sends only this CSR — the CA signs it and never sees the private key. Required for remote enrollment; the CA refuses to generate member keys server-side.
sans: Vec<String>Optional extra SANs the joiner wants (IP addresses, aliases).
The server always includes [hostname, hostname.local].
Trait Implementations§
Source§impl ComposeSchema for JoinRequest
impl ComposeSchema for JoinRequest
Source§impl Debug for JoinRequest
impl Debug for JoinRequest
Source§impl<'de> Deserialize<'de> for JoinRequest
impl<'de> Deserialize<'de> for JoinRequest
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>,
Source§impl Serialize for JoinRequest
impl Serialize for JoinRequest
Auto Trait Implementations§
impl Freeze for JoinRequest
impl RefUnwindSafe for JoinRequest
impl Send for JoinRequest
impl Sync for JoinRequest
impl Unpin for JoinRequest
impl UnsafeUnpin for JoinRequest
impl UnwindSafe for JoinRequest
Blanket Implementations§
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
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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