Status and access
Look up statuses, perspectives, and public permission names.
Lifecycle, review, and preview are independent state families. Do not infer one from another.
State families
| Family | Product values | API values where different |
|---|---|---|
| Content | Draft, Published, Changed, Archived | As displayed |
| Release | Open, Scheduled, Running, Published, Failed, Rolled back, Archived | OPEN, SCHEDULED, RUNNING, PUBLISHED, FAILED, ROLLED_BACK, ARCHIVED |
| Environment | Provisioning, Active, Frozen, Archived, Failed, Deleting, Deleted | PROVISIONING, ACTIVE, FROZEN, ARCHIVED, FAILED, DELETING, DELETED |
| Promotion | Draft through candidate, approval, execution, success, failure, stale, or rollback | DRAFT, MATERIALIZING, READY, AWAITING_APPROVAL, APPROVED, EXECUTING, SUCCEEDED, FAILED, CANCELED, STALE, ROLLED_BACK |
| Taxonomy Term | Active, Archived | ACTIVE, ARCHIVED |
| Operation | Proposed, validated, awaiting Approval, queued, running, cancelling, terminal or recovering | PROPOSED, VALIDATED, AWAITING_APPROVAL, QUEUED, RUNNING, CANCELLING, SUCCEEDED, FAILED, CANCELLED, EXPIRED, SUPERSEDED, RECOVERING, RECOVERED |
| Viewing | Published, Draft, Release | PUBLISHED, DRAFT, RELEASE |
| Preview session | Draft, Release, Candidate | DRAFT, RELEASE, CANDIDATE |
Running can be transient. A Candidate is an immutable proposal with validation and expiry, not an editorial workflow stage. Approval is a human decision for an Operation; it never implies Published lifecycle. Console result states describe recorded steps, not a fresh read of every resource.
Organization permissions
| Resource | Fixed actions |
|---|---|
organization |
update, delete |
member |
create, update, delete |
invitation |
create, cancel |
ac |
create, read, update, delete |
apiKey |
create, read, update, delete |
These actions have Organization scope rather than Backend resource selectors.
Backend permissions
| Resource | Fixed actions |
|---|---|
backend |
create, read, update, archive, restore, delete |
environment |
read, create, update, branch, checkpoint, archive, restore, delete, protect |
promotion |
read, create, resolve, approve, execute, cancel, rollback |
environmentAlias |
read, create, update, delete, cutover, rollback |
locale |
read, create, update, delete, reorder |
content |
read, create, update, delete, publish, unpublish, schedule |
model |
read, create, update, delete |
vocabulary |
read, create, update, delete |
term |
read, create, update, delete, move |
release |
read, create, update, delete, execute, schedule, rollback |
previewTarget |
read, create, update, delete |
previewSession |
create, revoke |
webhook |
read, create, update, delete |
imagePreset |
read, create, update, delete |
portability |
read, export, import, createBackend, apply, delete |
delivery |
readPublished, readPreview |
operation |
read, execute, approve, cancel, retry, rollback |
audit |
read |
PermissionKeys combine the resource and action, for example content.publish.
Scope lookup
| Permission group | Required scope | Optional selector |
|---|---|---|
| Backend read, update, archive, restore, delete; Environment create | Backend | None |
| Other Environment, Promotion, and Alias actions | Backend + Environment | None |
| Locale actions | Backend + Environment | Locale for read, update, delete, reorder |
| Content actions | Backend + Environment + Data Type | Locale, Vocabulary, Resource, Field |
| Model actions | Backend + Environment | Data Type, Resource, Field |
| Vocabulary read, update, delete | Backend + Environment | Vocabulary, Resource, Field |
| Vocabulary create | Backend + Environment | None |
| Term actions | Backend + Environment + Vocabulary | Locale, Resource, Field |
| Release actions | Backend + Environment | Data Type, Resource, Field |
| Preview handoff/session create and revoke | Backend + Environment | Data Type |
| Preview target, webhook, image preset, portability, and audit actions | Backend + Environment | None |
| Delivery and canonical Operation actions | Backend + Environment | None |
backend.create and portability.createBackend are Organization-level creation actions. Organization bootstrap applies operation.read/operation.execute in its Organization authority without fake resource IDs. For normal human-backed Backend actions, authorization also requires matching backend.read; backend.read itself and the two Delivery permissions are exceptions. Read the live Operation Definition for its exact requester and approver permissions; possessing a permission does not add a missing public operation or screen.
Delivery keys never use Data Type, locale, or Vocabulary scopes. Preview handoffs and sessions instead recheck the delegated authority’s previewSession.create, content.read, release.read, and term.read scopes.
Access examples
| Action | Required access |
|---|---|
| Fetch published content | delivery.readPublished with matching Backend and Environment scope |
| Create and claim a Candidate Preview handoff | operation.execute, operation.read, previewTarget.read, previewSession.create, and content.read for applicable scopes; term.read for applicable Vocabularies |
| Propose a Content change | operation.execute plus the definition’s model/content permission and matching scope |
| Decide a waiting Candidate | Human principal, operation.approve, and the policy’s approver permission; distinctness also applies |
Effective access is the union of valid role grants. One role must contain both the PermissionKey and a scope matching the target. Missing scope never means all; there are no deny rules or direct user overrides.