pub struct ClusterJoinResponse {
pub node_id: String,
pub raft_node_id: u64,
pub overlay_ip: String,
pub slice_cidr: String,
pub peers: Vec<ClusterPeer>,
pub role: String,
pub node_jwt: Option<String>,
pub wrapped_dek: Option<Vec<u8>>,
pub dek_generation: Option<u64>,
}Expand description
Response body for POST /api/v1/cluster/join.
Fields§
§node_id: StringAssigned node UUID
raft_node_id: u64Assigned Raft node ID (monotonic u64)
overlay_ip: StringAssigned overlay IP for the new node
slice_cidr: StringPer-node slice CIDR assigned by the leader (e.g. “10.200.42.0/28”). Empty string if the leader is not slice-aware yet.
peers: Vec<ClusterPeer>Existing peers in the cluster
role: StringRole assigned to this node: “voter” or “learner”
node_jwt: Option<String>Node JWT minted by the leader for this joiner — roles: ["node"],
node_id set. Used to authenticate inter-node calls separately
from any user identity. None on legacy responses.
wrapped_dek: Option<Vec<u8>>Sealed-box-wrapped copy of the cluster DEK addressed to the
joiner’s secrets_pubkey. The joiner unwraps with its node X25519
private key and holds the DEK in zeroized memory. None on legacy
responses or when the joiner did not provide a secrets_pubkey.
dek_generation: Option<u64>Cluster DEK generation that wrapped_dek was sealed under. Lets
the joiner detect rotation drift if it re-joins after a revocation
rotated the cluster DEK. None when wrapped_dek is None.
Trait Implementations§
Source§impl Clone for ClusterJoinResponse
impl Clone for ClusterJoinResponse
Source§fn clone(&self) -> ClusterJoinResponse
fn clone(&self) -> ClusterJoinResponse
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more