Skip to main content
id
string
required

Stable revision id. Newer revisions carry opaque ids; older ones a derived frev_<version>_<featureId> form. Both work wherever revision ids are accepted.

featureId
string
required

The feature this revision belongs to

baseVersion
integer
required
version
integer
required
comment
string
required
date
string<date-time>
required
status
string
required
rules
object · object · Feature Experiment Rule · object · object · object · Feature Safe Rollout Rule · object[]
required

Unified rules array. Each rule carries its own environment scope via allEnvironments / environments.

Common fields shared by all feature rule types. Specific rule types extend this base with their own required properties (value, coverage, etc.).

createdBy
object

The user (or automated actor) responsible for an action

publishedBy
object

The user (or automated actor) responsible for an action

defaultValue
string

The default value at the time this revision was created. When the feature is in Config mode, this is the JSON override patch merged on top of the config (its own keys win); otherwise it is the full value.

defaultValueConfig
string | null

Optional. A config within baseConfig's family that the default value resolves to instead of baseConfig itself. null or omitted means the default is baseConfig. The default is exactly this config and carries no overrides of its own.

definitions
object
environmentsEnabled
object

Per-environment enabled state captured in this revision (only present when kill-switch gating is enabled)

envPrerequisites
object

Per-environment prerequisites captured in this revision (only present when prerequisite gating is enabled)

prerequisites
object[]

Feature-level prerequisites captured in this revision. Each entry is a boolean flag ID that must evaluate to true for this flag to be active for a given user.

metadata
object

Metadata fields captured in this revision (only present when metadata gating is enabled)

rampActions
object[]

Pending ramp schedule actions that will be applied when this draft is published

autoPublishOnApproval
boolean

When true, the revision is armed to publish automatically once governance allows (immediately on approval, or on scheduledPublishAt if set).

scheduledPublishAt
string<date-time> | null

Target date for a deferred (scheduled) publish. Null/absent means publish as soon as approved.

scheduledPublishLockEdits
boolean

When true, content edits to this draft are frozen while the schedule is pending (rebasing is still allowed).

scheduledPublishLockOthers
boolean

When true, publishing other drafts of this feature is blocked while the schedule is pending.

scheduledPublishBypassApproval
boolean

Whether the schedule was created for an unapproved draft by a caller with Bypass draft approvals access. This kind of schedule cannot be edited; cancel it and create a new schedule instead. Anyone with Publish access can cancel it.

scheduledPublishLastError
string

Set when a due scheduled publish keeps failing (e.g. still awaiting approval, merge conflict). Indicates the schedule is stuck and retrying.

autoPublishEnabledBy
string

User the deferred publish will run as. Its authority is re-checked when the publish fires.

scheduledPublishAttempts
integer

How many times the poller has tried to publish this revision. Read with scheduledPublishGaveUpAt to tell a schedule that is still retrying from one that has been parked.

scheduledPublishGaveUpAt
string<date-time>

When the poller stopped retrying. Giving up CLEARS the schedule and disarms auto-publish, so nothing fires again until the revision is re-armed. The draft is left open, with scheduledPublishLastError preserved for context.

reviews
object[]

Reviewer verdicts for the current review cycle (one entry per reviewer). Verdicts flip to their -stale variants when draft content changes after submission; the list is cleared when a new review cycle starts. Absent on revisions that predate this field.