Skip to main content

ReviewCampaignExport

Phase 8: one requested campaign evidence export (async NDJSON job in review-svc). PENDING while the job streams the file; COMPLETED carries the downloadable file id (GET /api/files/:file_id) + item_count; FAILED carries the reason and no file. One export may be in flight per campaign at a time; finished exports may be repeated (each is a new record + a new file). The requester is notified (review.campaign_export_ready) when the job finishes either way.

type ReviewCampaignExport {
completed_at: DateTimeISO
error: String
file_id: ID
id: ID!
item_count: Int
requested_at: DateTimeISO!
requested_by: ID!
status: ReviewCampaignExportStatus!
}

Fields

ReviewCampaignExport.completed_at ● DateTimeISO scalar

ReviewCampaignExport.error ● String scalar

Failure reason (FAILED only).

ReviewCampaignExport.file_id ● ID scalar

files row id of the completed NDJSON object — download via the files flow (GET /api/files/:id). Null while PENDING and for FAILED exports.

ReviewCampaignExport.id ● ID! non-null scalar

ReviewCampaignExport.item_count ● Int scalar

Number of per-item evidence packets in the file (excludes the manifest line).

ReviewCampaignExport.requested_at ● DateTimeISO! non-null scalar

ReviewCampaignExport.requested_by ● ID! non-null scalar

ReviewCampaignExport.status ● ReviewCampaignExportStatus! non-null enum

Returned By

exportCampaignEvidence mutation ● reviewCampaignExports query