Control
A Control is a rule the platform enforces on every write it covers, with a test that runs over the whole population.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
objective | text | required | What the Control prevents or detects, in one sentence. |
kind | string | required | One of preventive (stops the failure) or detective (finds it). |
inheritance | string | required | One of inherited, shared, or owned, resolved per namespace from the platform down. |
criteria | list of Criterion | required | The framework Criteria the Control satisfies. |
test | json | required | An Event selector and the assertion every selected Event must pass. |
wakes | text | The conditions that add the Control to a Startup’s own floor, such as a first Human Worker. |
Object
{
"$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, inverseproves. - A Control treats many Risks: the Controls that lower the Risk. Every Control cites the Risks it treats.
treats, inversetreatedBy.
Verbs
getReturns one Control by id.GET /{namespace}/controls/{id}listReturns Controls, newest first, one page at a time.GET /{namespace}/controls
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.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
Control.get | Yes | Yes | Yes | Yes |
Control.list | Yes | Yes | Yes | Yes |
Call it
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.