ChangeRequest

A governed change to one domain: what it touches, how far it has got, and which domain version it settled at.

  • Resource type identifier

  • The parts of the domain this change holds while it runs. Another change touching any of the same parts is refused with 409 until this one settles.

  • The domain version this change settled at, which is the version GET /domains/{id} reports once it is visible. Null until the change lands; the highest when the change carried several mutations.

  • The domain version the change was composed against, or 0 when the requester asserted nothing about what they had read.

  • The requester's own note. Never interpreted.

  • Why the change could not be applied. Present only in state failed.

  • Why the change was retired. Present only in state cancelled. One of requested, expired, superseded, feasibility_lost, stale_base_version.

    values
    requestedexpiredsupersededfeasibility_loststale_base_version
  • What whoever retired the change said about doing so, in their own words. Present only when a person cancelled it and chose to explain themselves; the reason beside it says which of the five endings this was.

  • Who asked for the change. Polymorphic by method.

    Properties: 6
  • Who retired the change, in the same shape. Absent while the change is still open, and absent on one that ran to completion.

    Properties: 6
  • When the change stops waiting for a decision. Null when nothing gated it.

  • Change request typeid (prefix chr_)

  • When the change reached a terminal state. Null while it is still running. On a cancelled change this is when it was cancelled.

  • When the change was submitted

  • When the change last moved

  • How far the change has got through the gates its organization's rules demanded. Absent when nothing gated it, which is every change with outcome: allow.

    Properties: 10
  • What you may do with this change. Render the action bar from it rather than deriving one.

    Properties: 2
  • The domain this change acts on

  • The domain's name at the time of reading. Empty when the domain is no longer readable, which a change outliving its domain produces.

  • Fine-grained lifecycle state. One of draft, pending_approval, approved, executing, pending_registry, applied, failed, rejected, cancelled.

    values
    draftpending_approvalapprovedexecutingpending_registryappliedfailedrejectedcancelled
  • Coarse badge projected from state. One of draft, awaiting_review, applying, applied, auto_applied, overridden, rejected, expired, cancelled, failed. Branch on this to render; branch on state only when you need the detail.

    values
    draftawaiting_reviewapplyingappliedauto_appliedoverriddenrejectedexpiredcancelledfailed
  • What the policy check decided when the change was submitted. allow means nothing had to be reviewed.

  • Which judgement of this change the rest of the record belongs to, from 1. A change judged once and applied stays at 1. It climbs when the gate ran again before the change was applied and the world had moved: the signatures already given were given under an earlier pass, and GET /changes/{id}/issues says what the later one found.

  • The classes of mutation this change carries, in the order they are applied. A change touching several fields carries several.