Skip to content

Control

A Control is a rule the platform enforces on every write it covers, with a test that runs over the whole population.

Properties

PropertyTypeRequiredDescription
objectivetextrequiredWhat the Control prevents or detects, in one sentence.
kindstringrequiredOne of preventive (stops the failure) or detective (finds it).
inheritancestringrequiredOne of inherited, shared, or owned, resolved per namespace from the platform down.
criterialist of CriterionrequiredThe framework Criteria the Control satisfies.
testjsonrequiredAn Event selector and the assertion every selected Event must pass.
wakestextThe conditions that add the Control to a Startup’s own floor, such as a first Human Worker.

Object

JSON
{
  "$id": "https://api.sb/shiftnote.app/controls/control_1",
  "$type": "Control",
  "objective": "Example objective",
  "kind": "Example kind",
  "inheritance": "inherited",
  "criteria": [
    "criterion_1"
  ],
  "test": {},
  "wakes": "Example wakes"
}

Relationships

  • A Control proven by many Proofs: the Control whose test the Proof records running over a range of Events. provenBy, inverse proves.
  • A Control treats many Risks: the Controls that lower the Risk. Every Control cites the Risks it treats. treats, inverse treatedBy.

Verbs

  1. getReturns one Control by id.
    GET /{namespace}/controls/{id}readNo Event
  2. listReturns Controls, newest first, one page at a time.
    GET /{namespace}/controlsreadNo Event

A Control 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.

Operationowneradminmemberviewer
Control.getYesYesYesYes
Control.listYesYesYesYes

Call it

Text
Show me the latest control.

Example

Change approval selects every merged Change to a definition and asserts that a Decision approved it, by an approver other than the author. It is inherited: no Startup can loosen it.