Skip to content

app.person_push_devices

TableRow level security on

A person's own devices for push (A101, decision 69): a Compass device's Expo push token or a Gateway browser's Web Push endpoint. They carry the pushes of an org only when the person has no device registered with that org and works with it as an external party, or the push is a marketplace match about a listing open to them (invariant 3). Members keep their per-org devices in app.push_subscriptions.

Primary key: id

Columns of app.person_push_devices
ColumnTypeNullableDescription
iduuidNoPrimary key, UUID v7.
deleted_attimestamp with time zoneYesSoft delete time. A row with deleted_at set is ignored by every access helper.
person_iduuidNoOwner.References app.people.id
platformtextNoios, android or web; web exactly when the row is a browser.
expo_push_tokentextYesExpo push token of a Compass device; null for a browser.
web_endpointtextYesWeb Push endpoint of a browser (RFC 8030), an https URL of its push service; null for a Compass device.
web_p256dhtextYesThe browser's P-256 public key for message encryption (RFC 8291), base64url; null for a Compass device.
web_authtextYesThe browser's 16-byte authentication secret (RFC 8291), base64url; null for a Compass device.
web_apptextYesApp the browser subscribed in, always Gateway, whose service worker shows the push and opens its link; null for a Compass device.
last_seen_attimestamp with time zoneNoLast time the device registered again.
revoked_attimestamp with time zoneYesWhen the device was revoked: by a push service that no longer knows it (Expo DeviceNotRegistered, Web Push 404 or 410), by the person turning browser notifications off, or because another person registered the same device.
created_attimestamp with time zoneNoWhen the row was inserted. Set by the database.
created_byuuidYesPerson who inserted the row, or null for a platform process. Set by the database.References app.people.id
updated_attimestamp with time zoneNoWhen the row last changed. Set by the database.
updated_byuuidYesPerson who last changed the row, or null for a platform process. Set by the database.References app.people.id