Skip to content

Promotion workflow

Promotion is a workbench workflow over Supabase rows. This page describes the submission lifecycle — every state a frame_submissions row moves through from API ingress to terminal disposition. For the frame entity’s gate states after review begins, see Promotion gate philosophy.

These match the submission_status enum in Supabase SQL plan.

StateMeaning
receivedThe API accepted the submission record.
waiting_for_uploadA large-video submission is awaiting the direct upload to Cloudflare Stream.
media_processingDerivatives or Stream playback are not ready yet.
needs_reviewMedia is ready; the frame awaits human review.
team_visibleThe reviewer made the frame visible to tenant members. A frames row now exists at the same status.
promotion_eligibleThe frame passed required gates.
promotedThe frame is in the channel timeline.
rejectedThe frame remains recorded but cannot be promoted.
failedIngest or processing failed.

team_visible and the three states beyond also exist on frame_status — once a submission reaches review, the canonical frame row tracks the same gate. See Promotion gate philosophy for the frame-side view.

Before promotion, the reviewer checks media, alt text, click zones, license posture, approval policy, and channel/date placement.

The system records reviewer, timestamp, prior state, next state, and reason on each transition.