Skip to content

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.

Text
POST /{namespace}/actions/{action}/cancel

Path: action. Body, as JSON: the other inputs. Emits Action.canceled.

Inputs

InputTypeRequiredDescription
actionActionrequiredThe pending Action.
reasontextWhy it stops.

Returns

OutputTypeRequiredDescription
actionActionrequiredThe canceled Action.

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

Terminal
curl -X POST https://api.sb/leaseline.app/actions/act_br07HsG8MG/cancel \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "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.

Text
POST /{namespace}/actions/{action}/evaluate

Path: action. Body, as JSON: the other inputs. Emits Action.evaluated.

Inputs

InputTypeRequiredDescription
actionActionrequiredThe Action whose output is graded.
evaluatorstringrequiredThe Evaluator to run.

Returns

OutputTypeRequiredDescription
verdictjsonrequiredThe score and the reasons for it.
actionActionrequiredThe Action graded, with the verdict attached.

Refuses when

CheckErrorFixThen call
The input does not match the schema of the operation.invalid-inputRead 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.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
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"}'
JSON
{
  "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.

Text
POST /{namespace}/actions/{action}/pause

Path: action. Body, as JSON: the other inputs. Emits Action.paused.

Inputs

InputTypeRequiredDescription
actionActionrequiredThe pending Action.
reasontextrequiredWhy it must wait.
untildatetimeWhen the pause escalates to the Role above if nobody resolves it; defaults to one business day.

Returns

OutputTypeRequiredDescription
actionActionrequiredThe paused Action, still pending.

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.

Example

Terminal
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"}'
JSON
{
  "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.

Text
POST /{namespace}/actions/{action}/redirect

Path: action. Body, as JSON: the other inputs. Emits Action.redirected.

Inputs

InputTypeRequiredDescription
actionActionrequiredThe pending Action.
changesjsonrequiredThe inputs to replace.

Returns

OutputTypeRequiredDescription
actionActionrequiredThe redirected Action.

Refuses when

CheckErrorFixThen call
The input does not match the schema of the operation.invalid-inputRead 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.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

Terminal
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":{}}'
JSON
{
  "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"
  }
}