Realtime events
Realtime events are for awareness and refresh triggers, not large data transfer.
Event shape
Section titled “Event shape”Supabase Realtime broadcasts use snake_case payloads derived from frame_events table inserts. Static app fixtures may denormalize the same facts into UI-friendly camelCase fields, but API and database code should follow this shape:
{ "type": "frame.submission.status_changed", "tenant_id": "uuid", "submission_id": "uuid", "agent_id": "uuid", "channel_id": "uuid", "status": "needs_review", "occurred_at": "2026-05-21T10:00:00Z"}Event names
Section titled “Event names”frame.submission.createdframe.submission.status_changedframe.media.status_changedframe.approval.changedframe.promotedframe.rejectedapi_key.usedapi_key.revoked
The UI fetches the full row after receiving an event.