pub struct DeviceBinding {
pub device_id: String,
pub display_name: String,
pub platform: Option<String>,
pub registered_at: String,
pub last_seen_at: Option<String>,
pub disabled_at: Option<String>,
pub wiped_at: Option<String>,
pub hpke_public_key: Option<String>,
pub wake: Option<WakeChannel>,
}Expand description
Metadata for a registered Companion/Service device. M1 stores the field
shape so the ACL row can carry it forward; the registration flow that
populates it lands in M4 (device/register/0.1).
Wire form mirrors the canonical Trust Task shared schema
device/_shared/0.1/device-binding#/$defs/DeviceBinding.
Fields§
§device_id: String§display_name: String§platform: Option<String>§registered_at: StringRFC 3339 — when the device claimed its binding via device/register/0.1.
last_seen_at: Option<String>RFC 3339 — refreshed on every heartbeat / successful auth.
disabled_at: Option<String>§wiped_at: Option<String>§hpke_public_key: Option<String>X25519 public key (did:key form) the maintainer HPKE-seals payloads to
(sealed secrets, session blobs, sync events). Supplied by the device at
device/register/0.1. None on legacy rows and pure ACL entries.
wake: Option<WakeChannel>Push wake channel (opaque gateway handle + VTA-owned trigger allowlist).
None until the device conveys a handle via device/set-wake/0.1;
absent on legacy rows. The push token is never stored here.
Implementations§
Source§impl DeviceBinding
impl DeviceBinding
Sourcepub fn push_capable(&self) -> bool
pub fn push_capable(&self) -> bool
The non-secret pushCapable visibility flag (push binding §2): the
device has a usable wake channel — a handle is set and the device is
neither disabled nor wiped.
Trait Implementations§
Source§impl Clone for DeviceBinding
impl Clone for DeviceBinding
Source§fn clone(&self) -> DeviceBinding
fn clone(&self) -> DeviceBinding
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 DeviceBinding
impl Debug for DeviceBinding
Source§impl<'de> Deserialize<'de> for DeviceBinding
impl<'de> Deserialize<'de> for DeviceBinding
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 PartialEq for DeviceBinding
impl PartialEq for DeviceBinding
Source§impl Serialize for DeviceBinding
impl Serialize for DeviceBinding
impl StructuralPartialEq for DeviceBinding
Auto Trait Implementations§
impl Freeze for DeviceBinding
impl RefUnwindSafe for DeviceBinding
impl Send for DeviceBinding
impl Sync for DeviceBinding
impl Unpin for DeviceBinding
impl UnsafeUnpin for DeviceBinding
impl UnwindSafe for DeviceBinding
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> BorrowUnordered for T
impl<T> BorrowUnordered for T
fn as_unordered(&self) -> &Unordered<T>
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<'de, T, C> DeserializeTyped<'de, C> for Twhere
T: Deserialize<'de>,
impl<'de, T, C> DeserializeTyped<'de, C> for Twhere
T: Deserialize<'de>,
fn deserialize_typed<S>(
_: &C,
deserializer: S,
) -> Result<T, <S as Deserializer<'de>>::Error>where
S: Deserializer<'de>,
impl<T, U> DeserializeTypedOwned<T> for Uwhere
U: for<'de> DeserializeTyped<'de, T>,
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, U, C> IntoWithContext<U, C> for Twhere
U: FromWithContext<T, C>,
impl<T, U, C> IntoWithContext<U, C> for Twhere
U: FromWithContext<T, C>,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ResourceProvider<()> for T
impl<T> ResourceProvider<()> for T
Source§fn get_resource(&self) -> &()
fn get_resource(&self) -> &()
T.