api-tenant instance is bound to (via NTRO_TENANT_SLUG). Path params are entity UUIDs, never slugs — keeping client-identifying strings out of URLs (browser history, screenshots, logs).
List entities
EntitySummary[]:
List tasks for an entity
awaiting field (the current display_hint.component) so the UI can bucket by what each workflow is blocked on. Next-step is fetched per-task in parallel; a missing next-step (e.g. workflow already removed from Temporal) silently drops awaiting.
Path params
| Param | Type | Notes |
|---|---|---|
entityId | UUID | Must belong to this tenant — otherwise 404. |
TaskSummary[]:
COMPLETED / FAILED) skip the next-step lookup.
List available workflows
tenantId). Used by the kanban “Start workflow” dropdown.
Response
startParams is derived from each workflow’s runbook configSchema.global block. Each entry carries key, type (string / number / boolean / array / object), optional description / pattern / enum / default, and required (true when the schema field has no default). Workflow rows whose runbook lookup fails are still returned, just without startParams.
Create a task
api-workspace’s POST /workspace/tasks scoped to this tenant + entity.
Body
| Field | Required | Notes |
|---|---|---|
workflowId | Yes | Must be one of the IDs returned by GET /entities/:entityId/workflows. |
context | No | Free-form JSON forwarded into the workflow’s start payload. Match the runbook’s startParams. |
api-workspace. Drive it forward with the Tasks endpoints.
Errors
| Status | When |
|---|---|
404 Not Found | entityId doesn’t belong to this tenant. |
400 Bad Request | Missing / malformed body fields, validated by api-workspace. |