specs/device/set_wake/v0_1/payload
library
Classes
-
Payload
-
A device conveys to its VTA the opaque WakeHandle it obtained from a push gateway,
so the VTA can own the trigger allowlist and provision the gateway. Carries no
platform push token — only the handle. Present
wakeHandle sets/replaces the wake
channel; absent clears it (device becomes non-wakeable). Idempotent; re-issued on
token rotation. See the push wake-up binding
(https://trusttasks.org/binding/push/0.1).
-
Response
-
Device Set Wake — response payload
-
WakeHandle
-
An opaque, gateway-issued reference to a device's push channel (push wake-up
binding, https://trusttasks.org/binding/push/0.1). The push gateway returns it to
the device at registration; the device conveys it to its VTA (device/set-wake), and
the VTA provisions it to authorized triggers (its mediator and/or itself). The raw
platform push token (APNs/FCM/WebPush) is held ONLY by the gateway and is never
represented here — the handle abstracts the platform, so adding new push methods
(e.g. PWA Web Push) needs no change to triggers or VTA config. A handle is a bearer
capability to request a wake (subject to the gateway's allowlist), never to read
the channel.
-
WakeTriggerPolicy
-
VTA-owned allowlist of the DIDs permitted to trigger a wake for a given WakeHandle
(push wake-up binding, https://trusttasks.org/binding/push/0.1). The VTA is the
source of truth for this policy — all device config state resides at the VTA — and
provisions it to the gateway, which ENFORCES it: a wake request from a DID not on
the list is refused. Typically holds the device's mediator DID (queue-driven wake,
where the mediator alone knows the device is offline) and/or the VTA's own DID
(policy-driven wake, e.g. a step-up the VTA is delegating to this device).
Extension Types
-
PayloadPushPlatform
-
OPTIONAL, advisory. The abstract platform behind the handle, for device/list
visibility only. The VTA never sees the token; this is a non-authoritative hint.
Typedefs
-
Ext
= Map<String, dynamic>
-
Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a
reverse-DNS namespace; structure under each namespace is opaque to the framework.