Action routes: cancel, evaluate, pause, redirect
The Action Verbs cancel, evaluate, pause, redirect as api.sb routes, with inputs, result, refusals and an example.
Reference for Action, one group of Action routes.
Action.cancel
Cancel stops a pending Action, sets its status to canceled, and runs its compensation. Verb page.
POST /{namespace}/ actions/ {action}/ cancelPath: action. Body, as JSON: the other inputs. Emits Action.canceled.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
action | Action | required | The pending Action. |
reason | text | Why it stops. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
action | Action | required | The canceled Action. |
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 record is not in a state that allows this Verb, so the call is refused. | refused | Read the record, run the Verb that moves it to an allowed state, then retry. | None. |
Example
curl -X POST https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG/ cancel \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"{
"api": "https: //api.sb/ leaseline.app",
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"$type": "Action",
"status": "done",
"mode": "try",
"operation": "Action.cancel"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}Action.evaluate
Evaluate grades an Action’s output against a rubric and records the verdict as an Event. Verb page.
POST /{namespace}/ actions/ {action}/ evaluatePath: action. Body, as JSON: the other inputs. Emits Action.evaluated.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
action | Action | required | The Action whose output is graded. |
evaluator | string | required | The Evaluator to run. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
verdict | json | required | The score and the reasons for it. |
action | Action | required | The Action graded, with the verdict attached. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The input does not match the schema of the operation. | invalid-input | Read the schema of the operation, then send every required field with the right type. | None. |
| 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. |
Example
curl -X POST https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG/ evaluate \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"evaluator": "Example evaluator"}'{
"api": "https: //api.sb/ leaseline.app",
"verdict": {},
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"$type": "Action",
"status": "done",
"mode": "try",
"operation": "Action.evaluate"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}Action.pause
Pause holds a pending Action past the close of its delay window until a watcher resumes, redirects, or cancels it. Verb page.
POST /{namespace}/ actions/ {action}/ pausePath: action. Body, as JSON: the other inputs. Emits Action.paused.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
action | Action | required | The pending Action. |
reason | text | required | Why it must wait. |
until | datetime | When the pause escalates to the Role above if nobody resolves it; defaults to one business day. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
action | Action | required | The paused Action, still pending. |
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. |
Example
curl -X POST https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG/ pause \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"reason": "Example reason"}'{
"api": "https: //api.sb/ leaseline.app",
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"$type": "Action",
"status": "done",
"mode": "try",
"operation": "Action.pause"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}Action.redirect
Redirect changes a pending Action’s inputs or target inside its delay window, before it runs. Verb page.
POST /{namespace}/ actions/ {action}/ redirectPath: action. Body, as JSON: the other inputs. Emits Action.redirected.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
action | Action | required | The pending Action. |
changes | json | required | The inputs to replace. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
action | Action | required | The redirected Action. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The input does not match the schema of the operation. | invalid-input | Read the schema of the operation, then send every required field with the right type. | None. |
| 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 record is not in a state that allows this Verb, so the call is refused. | refused | Read the record, run the Verb that moves it to an allowed state, then retry. | None. |
Example
curl -X POST https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG/ redirect \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"changes": {}}'{
"api": "https: //api.sb/ leaseline.app",
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"$type": "Action",
"status": "done",
"mode": "try",
"operation": "Action.redirect"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}