Change
A Change is a proposed set of writes to definitions, previewed on its own branch, checked, approved, and merged as one unit.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
status | string | required | One of Open, Reviewing, Merged, or Closed. |
base | Version | required | The Version it was drafted against. |
tier | integer | Launch tier from the merged diff: 3 fixes, 2 adds a Verb or Entitlement, 1 adds a Product or Offer. |
Object
{
"$id": "https: //api.sb/ petpantry.shop/ changes/ change_1",
"$type": "Change",
"status": "Open",
"base": "version_1",
"tier": 1
}Relationships
- A Change implements decision one Decision: every merged Change traces back to the Decision that authorized it.
implementsDecision, inversechanges. - A Change resolves many Issues: a Change names the Issues it fixes; each resolves when the last open Change naming it reaches all traffic.
resolves, inverseresolvedBy.
Verbs
createCreates a Change.POST /{namespace}/changesgetReturns one Change by id.GET /{namespace}/changes/{id}listReturns Changes, newest first, one page at a time.GET /{namespace}/changesmergeMerge applies a Change to live data with a three-way, field-level merge against its base Version.POST /{namespace}/changes/{change}/mergerevertRevert undoes a merged Change with a new Change and a superseding Decision, deleting nothing.POST /{namespace}/changes/{change}/revertreviewReview runs every Evaluator on a Change’s preview and records each verdict on the Change.POST /{namespace}/changes/{change}/review
A Change is kept forever and never edited: it has no update or delete.
Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
Change.create | Yes | Yes | Yes | No |
Change.get | Yes | Yes | Yes | Yes |
Change.list | Yes | Yes | Yes | Yes |
Change.merge | Yes | Yes | Yes | No |
Change.revert | Yes | Yes | Yes | No |
Change.review | Yes | Yes | Yes | No |
Call it
Review the latest change.Example
A Change adds a languages field to the Supplier Noun of a translation marketplace. It previews on its own branch, passes its checks, and merges with one Approval.