You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Retrying after a failed job creates a new content_publish_jobs row.
If the latest Publish Job for the variant is published, Rust rejects duplicate publishing with 409 Conflict and code already_published before creating a new job.
Packet detail returns publishJobsByVariantId with the latest job per variant using created_at DESC, id DESC ordering without mutating variant review status.
Parent
Parent: #593
What to build
Implement the Rust API behavior that publishes an approved Instagram Feed Variant through the single internal Instagram Publish Account.
This slice owns the publish domain rules: env-based account resolution, lazy account upsert, publishable asset validation, bounded synchronous Meta publishing, publish job persistence, and latest publish job data in packet detail responses.
Acceptance criteria
INSTAGRAM_PUBLISH_IG_USER_ID,INSTAGRAM_PUBLISH_ACCESS_TOKEN,INSTAGRAM_GRAPH_API_VERSION, and optionalINSTAGRAM_PUBLISH_ACCOUNT_LABEL.503 publish not configured.token_ref, never the raw token.instagram_feedvariants can publish.imageAssetUrlis allowlisted to the publiccontent-studio-assetsbucket, rejectsdata:and arbitrary external URLs, and preflights as public JPEG.graph.instagram.com.publishedorfailed, not stuckprocessing.error_json.content_publish_jobsrow.published, Rust rejects duplicate publishing with409 Conflictand codealready_publishedbefore creating a new job.publishJobsByVariantIdwith the latest job per variant usingcreated_at DESC, id DESCordering without mutating variant review status.Blocked by