Thing commands: restore, share, unrelate
The Thing Verbs restore, share, unrelate as CLI commands, with inputs, result, refusals and an example.
curl -X POST https: //api.sb/ leaseline.app/ things/ thing_8ds0r9vvRl/ share \
-H "Authorization: Bearer $SB_TOKEN" \
-H "Content-Type: application/ json" \
-d '{"to": "party_hmQWaPrAyZ", "verbs": ["Example verbs"]}'
API reference
Thing.sharenpx startup-builder do Thing.share --data '{"thing": "thing_8ds0r9vvRl", "to": "party_hmQWaPrAyZ", "verbs": ["Example verbs"]}'
CLI reference
Thing.share{
"name": "do",
"arguments": {
"code": "return await $.Thing.share({ thing: 'thing_8ds0r9vvRl', to: 'party_hmQWaPrAyZ', verbs: ['Example verbs'] })"
}
}
MCP reference
Thing.shareimport { $ } from 'startup-builder'
const { permission, thing } = await $.Thing.share({ thing: 'thing_8ds0r9vvRl', to: 'party_hmQWaPrAyZ', verbs: ['Example verbs'] })
SDK reference
Thing.shareReference for Thing, one group of Thing commands.
Thing.restore
Restore brings back a deleted Thing, or one an undone Action removed, with its history and Relationships intact. Verb page.
npx startup-builder do Thing.restore --data '<input>' [--try | --send | --do]Emits Thing.restored.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
thing | Thing | required | The deleted Thing. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
thing | Thing | required | The Thing, back in every list and query it left. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
| The Thing is not deleted | refused | Clear what the check names, then call it again. | None. |
thing is missing, or is not a thing | invalid-input | Send thing as a thing, then call it again. | None. |
The Idempotency-Key was sent before with another operation or other input | idempotency-mismatch | Send a new key for new input; reuse a key only to retry the same request. | None. |
Example
npx startup-builder do Thing.restore --data '{"thing": "thing_8ds0r9vvRl"}' \
--idempotency-key leaseline-thing-restore-1Thing.share
Share grants a person, a Role or a guest Verbs on one record and everything it contains. Verb page.
npx startup-builder do Thing.share --data '<input>' [--try | --send | --do]Emits Thing.shared.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
thing | Thing | required | The record to share. |
to | Party | required | Who receives the grant: a person, or a guest who fills only the guest Role. |
verbs | string[] | required | The Verbs granted, such as get and comment. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
permission | Permission | required | The grant, scoped to the record and its contents. |
thing | Thing | required | The Thing shared. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
thing is missing, or is not a thing | invalid-input | Send thing as a thing, then call it again. | None. |
to is missing, or is not a party | invalid-input | Send to as a party, then call it again. | None. |
verbs is missing, or is not a string list | invalid-input | Send verbs as a string list, then call it again. | None. |
The Idempotency-Key was sent before with another operation or other input | idempotency-mismatch | Send a new key for new input; reuse a key only to retry the same request. | None. |
Example
npx startup-builder do Thing.share --data '{"thing": "thing_8ds0r9vvRl", "to": "party_hmQWaPrAyZ", "verbs": ["Example verbs"]}' \
--idempotency-key leaseline-thing-share-1Thing.unrelate
Unrelate ends a Relationship between two Things; the link stays in history and reads back at any earlier moment. Verb page.
npx startup-builder do Thing.unrelate --data '<input>' [--try | --send | --do]Emits Thing.unrelated.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
thing | Thing | required | The source Thing. |
predicate | string | required | The Relationship as read from the source. |
to | Thing | required | The target Thing. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
relationship | Relationship | required | The ended Relationship. |
thing | Thing | required | The Thing the Relationship started from. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
thing is missing, or is not a thing | invalid-input | Send thing as a thing, then call it again. | None. |
predicate is missing, or is not a string | invalid-input | Send predicate as a string, then call it again. | None. |
to is missing, or is not a thing | invalid-input | Send to as a thing, then call it again. | None. |
The Idempotency-Key was sent before with another operation or other input | idempotency-mismatch | Send a new key for new input; reuse a key only to retry the same request. | None. |
Example
npx startup-builder do Thing.unrelate --data '{"thing": "thing_8ds0r9vvRl", "predicate": "Example predicate", "to": "thing_8ds0r9vvRl"}' \
--idempotency-key leaseline-thing-unrelate-1