Skip to content
SDKProductBuild and shipChange

Change methods: merge, revert, review

The Change Verbs merge, revert, review as typed SDK methods, with inputs, result, refusals and an example.

Reference for Change, one group of Change methods.

Change.merge

Merge applies a Change to live data with a three-way, field-level merge against its base Version. Verb page.

TypeScript
interface ChangeVerbs {
  merge(input: ChangeMergeInput, options?: SB.CallOptions): SB.Call<ChangeMergeOutput>
}

Emits Change.merged.

Inputs

InputTypeRequiredDescription
changeChangerequiredThe reviewed Change.

Returns

OutputTypeRequiredDescription
versionVersionrequiredThe new Version.
changeChangerequiredThe Change, now merged into live data.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.
The record changed since it was read, so the write would overwrite a newer version.conflictRead the record again, then retry the write against its current state.None.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

TypeScript
import { $ } from 'startup-builder'

const { version, change } = await $.Change.merge({ change: 'change_3Ex8uVSOyQ' })

Change.revert

Revert undoes a merged Change with a new Change and a superseding Decision, deleting nothing. Verb page.

TypeScript
interface ChangeVerbs {
  revert(input: ChangeRevertInput, options?: SB.CallOptions): SB.Call<Change>
}

Emits Change.reverted.

Inputs

InputTypeRequiredDescription
changeChangerequiredThe merged Change to undo.
reasontextrequiredWhy it is undone.

Returns

OutputTypeRequiredDescription
revertChangerequiredThe Change that undoes it.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

TypeScript
import { $ } from 'startup-builder'

const revert = await $.Change.revert({ change: 'change_3Ex8uVSOyQ', reason: 'Example reason' })

Change.review

Review runs every Evaluator on a Change’s preview and records each verdict on the Change. Verb page.

TypeScript
interface ChangeVerbs {
  review(input: ChangeReviewInput, options?: SB.CallOptions): SB.Call<Change>
}

Emits Change.reviewed.

Inputs

InputTypeRequiredDescription
changeChangerequiredThe open Change.

Returns

OutputTypeRequiredDescription
changeChangerequiredThe Change with its verdicts.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

TypeScript
import { $ } from 'startup-builder'

const change = await $.Change.review({ change: 'change_3Ex8uVSOyQ' })