ReviewCampaignDefinition
Reusable campaign TEMPLATE (Track B). Mutable — no freeze; editing a definition affects only FUTURE runs. "Run" mints a fresh DRAFT ReviewCampaign instance copying name/description/scope/policy, with due_at = mint time + due_offset_days.
type ReviewCampaignDefinition {
created_at: DateTimeISO
description: String
due_offset_days: Int
id: ID!
instances(after: String, first: Int): ReviewCampaignConnection!
name: String!
next_run_at: DateTimeISO
owner_id: ID
policy: JSON
schedule: ReviewCampaignSchedule
scope: JSON
timing: JSON
updated_at: DateTimeISO
}
Fields
ReviewCampaignDefinition.created_at ● DateTimeISO scalar
ReviewCampaignDefinition.description ● String scalar
ReviewCampaignDefinition.due_offset_days ● Int scalar
Minted instances get due_at = mint time + this many days. Null = no due date.
ReviewCampaignDefinition.id ● ID! non-null scalar
ReviewCampaignDefinition.instances ● ReviewCampaignConnection! non-null object
Instances minted from this definition, newest first.
ReviewCampaignDefinition.instances.after ● String scalar
ReviewCampaignDefinition.instances.first ● Int scalar
ReviewCampaignDefinition.name ● String! non-null scalar
ReviewCampaignDefinition.next_run_at ● DateTimeISO scalar
READ-ONLY: the precomputed next occurrence (anchor + k·every strictly in the future). Recomputed on schedule save and after each scheduled mint; null when schedule is null.
ReviewCampaignDefinition.owner_id ● ID scalar
ReviewCampaignDefinition.policy ● JSON scalar
Inline partial governance policy template (PartialPolicyDefinition). Setting it requires review.policy.manage.
ReviewCampaignDefinition.schedule ● ReviewCampaignSchedule object
Recurrence (Phase 5 §4). Null = manual runs only. Written via setReviewCampaignDefinitionSchedule, never the plain update.
ReviewCampaignDefinition.scope ● JSON scalar
CampaignScope template (v2 — users/resources axes plus optional entitlements axis + grant_types).
ReviewCampaignDefinition.timing ● JSON scalar
Partial ReviewTimingConfig override template — copied onto minted instances like scope/policy. Operational (review.campaign.manage only).
ReviewCampaignDefinition.updated_at ● DateTimeISO scalar
Returned By
createReviewCampaignDefinition mutation ● reviewCampaignDefinition query ● setReviewCampaignDefinitionSchedule mutation ● updateReviewCampaignDefinition mutation