Feature Revision V2
Stable revision id. Newer revisions carry opaque ids; older ones a derived frev_<version>_<featureId> form. Both work wherever revision ids are accepted.
The feature this revision belongs to
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.).
- Option 1
- Option 2
- Feature Experiment Rule
- Option 4
- Option 5
- Feature Safe Rollout Rule
The user (or automated actor) responsible for an action
The user (or automated actor) responsible for an action
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.
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.
Per-environment enabled state captured in this revision (only present when kill-switch gating is enabled)
Per-environment prerequisites captured in this revision (only present when prerequisite gating is enabled)
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 fields captured in this revision (only present when metadata gating is enabled)
Pending ramp schedule actions that will be applied when this draft is published
- Option 1
- Option 2
- Option 3
When true, the revision is armed to publish automatically once governance allows (immediately on approval, or on scheduledPublishAt if set).
Target date for a deferred (scheduled) publish. Null/absent means publish as soon as approved.
When true, content edits to this draft are frozen while the schedule is pending (rebasing is still allowed).
When true, publishing other drafts of this feature is blocked while the schedule is pending.
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.
Set when a due scheduled publish keeps failing (e.g. still awaiting approval, merge conflict). Indicates the schedule is stuck and retrying.
User the deferred publish will run as. Its authority is re-checked when the publish fires.
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.
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.
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.

