airdress.device_join.*
The events in the airdress.device_join family. How to read a section, and what
each audience means, is on the event reference page.
airdress.device_join.approved
Section titled “airdress.device_join.approved”An enrolled device approved a join request; the sealed root is in the slot. Does not tell the other devices which one approved.
Audience: owner. About the airdress as a whole. Only the owner receives it: the owner’s devices and the owner’s subscriptions.
Where it goes
- The operator’s journal, as one log line at this level, and the event log, where
airdress events tailreads it. - Subscriptions that name it, within its audience.
- The app’s event stream, as
device_join_approved: devices it concerns hear of it at once. - Functions bound to this operator’s events (
source: operator).
Versions
- Version 1: first carried by operator v0.1.133.
Data
| Field | Type | Required | Description |
|---|---|---|---|
airdress | string | yes | |
approved_by_enrollment | string (uuid) | yes | |
at | string | yes | |
request_id | string (uuid) | yes | |
slot_id | string (uuid) | yes |
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "description": "An enrolled device approved a join request; the sealed root is in the slot. Does not tell the other devices which one approved.", "properties": { "airdress": { "type": "string" }, "approved_by_enrollment": { "format": "uuid", "type": "string" }, "at": { "type": "string" }, "request_id": { "format": "uuid", "type": "string" }, "slot_id": { "format": "uuid", "type": "string" } }, "required": [ "airdress", "approved_by_enrollment", "at", "request_id", "slot_id" ], "title": "DeviceJoinApproved", "type": "object"}airdress.device_join.approved_by_delegation
Section titled “airdress.device_join.approved_by_delegation”A join request was approved with a root-signed delegation: nothing was sealed, so there is no slot. Clears the prompt on the other devices, as the sealed approval does.
Audience: owner. About the airdress as a whole. Only the owner receives it: the owner’s devices and the owner’s subscriptions.
Where it goes
- The operator’s journal, as one log line at this level, and the event log, where
airdress events tailreads it. - Subscriptions that name it, within its audience.
- The app’s event stream, as
device_join_approved: devices it concerns hear of it at once. - Functions bound to this operator’s events (
source: operator).
Versions
- Version 1: first carried by operator v0.1.133.
Data
| Field | Type | Required | Description |
|---|---|---|---|
airdress | string | yes | |
approved_by_enrollment | string (uuid) | yes | |
at | string | yes | |
device_kind | string | yes | |
request_id | string (uuid) | yes |
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "description": "A join request was approved with a root-signed delegation: nothing was sealed, so there is no slot. Clears the prompt on the other devices, as the sealed approval does.", "properties": { "airdress": { "type": "string" }, "approved_by_enrollment": { "format": "uuid", "type": "string" }, "at": { "type": "string" }, "device_kind": { "type": "string" }, "request_id": { "format": "uuid", "type": "string" } }, "required": [ "airdress", "approved_by_enrollment", "at", "device_kind", "request_id" ], "title": "DeviceJoinApprovedByDelegation", "type": "object"}airdress.device_join.cleared_by_reset
Section titled “airdress.device_join.cleared_by_reset”A root reset on the airdress expired an open join request.
Audience: owner. About the airdress as a whole. Only the owner receives it: the owner’s devices and the owner’s subscriptions.
Where it goes
- The operator’s journal, as one log line at this level, and the event log, where
airdress events tailreads it. - Subscriptions that name it, within its audience.
- The app’s event stream, as
device_join_declined: devices it concerns hear of it at once. - Functions bound to this operator’s events (
source: operator).
Versions
- Version 1: first carried by operator v0.1.133.
Data
| Field | Type | Required | Description |
|---|---|---|---|
airdress | string | yes | |
at | string | yes | |
reason | string | yes | Always reset. |
request_id | string (uuid) | yes |
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "description": "A root reset on the airdress expired an open join request.", "properties": { "airdress": { "type": "string" }, "at": { "type": "string" }, "reason": { "description": "Always `reset`.", "type": "string" }, "request_id": { "format": "uuid", "type": "string" } }, "required": [ "airdress", "at", "reason", "request_id" ], "title": "DeviceJoinClearedByReset", "type": "object"}airdress.device_join.declined
Section titled “airdress.device_join.declined”An enrolled device declined a join request.
Audience: owner. About the airdress as a whole. Only the owner receives it: the owner’s devices and the owner’s subscriptions.
Where it goes
- The operator’s journal, as one log line at this level, and the event log, where
airdress events tailreads it. - Subscriptions that name it, within its audience.
- The app’s event stream, as
device_join_declined: devices it concerns hear of it at once. - Functions bound to this operator’s events (
source: operator).
Versions
- Version 1: first carried by operator v0.1.133.
Data
| Field | Type | Required | Description |
|---|---|---|---|
airdress | string | yes | |
at | string | yes | |
declined_by_enrollment | string (uuid) | yes | |
reason | string | yes | Always declined. |
request_id | string (uuid) | yes |
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "description": "An enrolled device declined a join request.", "properties": { "airdress": { "type": "string" }, "at": { "type": "string" }, "declined_by_enrollment": { "format": "uuid", "type": "string" }, "reason": { "description": "Always `declined`.", "type": "string" }, "request_id": { "format": "uuid", "type": "string" } }, "required": [ "airdress", "at", "declined_by_enrollment", "reason", "request_id" ], "title": "DeviceJoinDeclined", "type": "object"}airdress.device_join.delegation_refused
Section titled “airdress.device_join.delegation_refused”An approval of a join request by delegation did not verify.
Audience: owner. About the airdress as a whole. Only the owner receives it: the owner’s devices and the owner’s subscriptions.
Where it goes
- The operator’s journal, as one log line at this level, and the event log, where
airdress events tailreads it. - Subscriptions that name it, within its audience.
- Functions bound to this operator’s events (
source: operator).
Versions
- Version 1: first carried by operator v0.1.138.
Data
| Field | Type | Required | Description |
|---|---|---|---|
approver | string (uuid) | yes | The approving device’s enrollment. |
reason | string | yes | |
request_id | string (uuid) | yes |
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "description": "An approval of a join request by delegation did not verify.", "properties": { "approver": { "description": "The approving device's enrollment.", "format": "uuid", "type": "string" }, "reason": { "type": "string" }, "request_id": { "format": "uuid", "type": "string" } }, "required": [ "approver", "reason", "request_id" ], "title": "DeviceJoinDelegationRefused", "type": "object"}airdress.device_join.expired
Section titled “airdress.device_join.expired”A join request expired unanswered.
Audience: owner. About the airdress as a whole. Only the owner receives it: the owner’s devices and the owner’s subscriptions.
Where it goes
- The operator’s journal, as one log line at this level, and the event log, where
airdress events tailreads it. - Subscriptions that name it, within its audience.
- The app’s event stream, as
device_join_declined: devices it concerns hear of it at once. - Functions bound to this operator’s events (
source: operator).
Versions
- Version 1: first carried by operator v0.1.133.
Data
| Field | Type | Required | Description |
|---|---|---|---|
airdress | string | yes | |
at | string | yes | |
reason | string | yes | Always expired. |
request_id | string (uuid) | yes |
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "description": "A join request expired unanswered.", "properties": { "airdress": { "type": "string" }, "at": { "type": "string" }, "reason": { "description": "Always `expired`.", "type": "string" }, "request_id": { "format": "uuid", "type": "string" } }, "required": [ "airdress", "at", "reason", "request_id" ], "title": "DeviceJoinExpired", "type": "object"}airdress.device_join.requested
Section titled “airdress.device_join.requested”A device with no credential here asked to join this airdress. A doorbell: the label and the id, never the key, the address or the account.
Audience: owner. About the airdress as a whole. Only the owner receives it: the owner’s devices and the owner’s subscriptions.
Where it goes
- The operator’s journal, as one log line at this level, and the event log, where
airdress events tailreads it. - Subscriptions that name it, within its audience.
- The app’s event stream, as
device_join_requested: devices it concerns hear of it at once. - Functions bound to this operator’s events (
source: operator).
Versions
- Version 1: first carried by operator v0.1.133.
Data
| Field | Type | Required | Description |
|---|---|---|---|
airdress | string | yes | |
delivered | integer (uint) | yes | Streams open when it was recorded. |
device_class | string or null | no | agent when an agent device asks; absent for a person’s device. |
device_label | string | yes | |
expires_at | string | yes | |
renews | string or null | no | The agent enrollment this request renews. |
request_id | string (uuid) | yes |
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "description": "A device with no credential here asked to join this airdress. A doorbell: the label and the id, never the key, the address or the account.", "properties": { "airdress": { "type": "string" }, "delivered": { "description": "Streams open when it was recorded.", "format": "uint", "minimum": 0, "type": "integer" }, "device_class": { "description": "`agent` when an agent device asks; absent for a person's device.", "type": [ "string", "null" ] }, "device_label": { "type": "string" }, "expires_at": { "type": "string" }, "renews": { "description": "The agent enrollment this request renews.", "format": "uuid", "type": [ "string", "null" ] }, "request_id": { "format": "uuid", "type": "string" } }, "required": [ "airdress", "delivered", "device_label", "expires_at", "request_id" ], "title": "DeviceJoinRequested", "type": "object"}airdress.device_join.withdrawn
Section titled “airdress.device_join.withdrawn”The device that asked took its join request back.
Audience: owner. About the airdress as a whole. Only the owner receives it: the owner’s devices and the owner’s subscriptions.
Where it goes
- The operator’s journal, as one log line at this level, and the event log, where
airdress events tailreads it. - Subscriptions that name it, within its audience.
- The app’s event stream, as
device_join_declined: devices it concerns hear of it at once. - Functions bound to this operator’s events (
source: operator).
Versions
- Version 1: first carried by operator v0.1.133.
Data
| Field | Type | Required | Description |
|---|---|---|---|
airdress | string | yes | |
at | string | yes | |
reason | string | yes | Always withdrawn. |
request_id | string (uuid) | yes |
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "description": "The device that asked took its join request back.", "properties": { "airdress": { "type": "string" }, "at": { "type": "string" }, "reason": { "description": "Always `withdrawn`.", "type": "string" }, "request_id": { "format": "uuid", "type": "string" } }, "required": [ "airdress", "at", "reason", "request_id" ], "title": "DeviceJoinWithdrawn", "type": "object"}