Processors
Endpoints for managing template processors. Processors provide dynamic data to templates during rendering from sources like datasets, queries, and AI assistants.
Processor Overview
Processors run in phases during template rendering:
- data - Fetch data before rendering (most common)
- pre - Pre-process data before template execution
- post - Post-process output after template execution
Common processor types:
- dataset - Query a dataset
- datasource - Execute datasource query
- assistant - Generate AI content
- query - Execute saved query
GET /api/processor-drivers
Get available processor drivers and their configuration schemas.
Authentication: Required (session)
Response:
Returns array of processor driver definitions with validation schemas.
GET /api/processor-templates
Get processor templates (pre-configured processor configurations).
Authentication: Required (session)
Response:
Returns array of processor template definitions for common use cases.
GET /api/templates/{id}/processors
Get all processors for a template, ordered by index.
Authentication: Required (session)
Pre-blocks: template.lookup(params.id)
Response:
{
"_links": {
"self": { "href": "/api/templates/{id}/processors" }
},
"_embedded": {
"inf:template-processor": [
{
"id": "proc-123",
"templateId": "abc123",
"type": "dataset",
"name": "sales_data",
"datasetId": "ds-456",
"index": 0,
"phase": "data",
"data": {
"limit": 100
},
"_embedded": {
"inf:dataset": {
"id": "ds-456",
"name": "Sales Dataset"
}
}
},
{
"id": "proc-789",
"templateId": "abc123",
"type": "assistant",
"name": "summary",
"assistantId": "asst-012",
"index": 1,
"phase": "data",
"data": {
"prompt": "Summarize the sales data"
}
}
]
},
"start": 0,
"count": 2,
"total": 2
}
POST /api/templates/{id}/processors
Add a processor to a template.
Authentication: Required (session)
Pre-blocks: template.lookup(params.id), permission.template.write(pre.template)
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Processor driver type |
name | string | No | Variable name for template context |
datasetId | string | No | Dataset ID (for dataset processor) |
datasourceId | string | No | Datasource ID (for datasource processor) |
assistantId | string | No | Assistant ID (for assistant processor) |
reportId | string | No | Report ID (for report processor) |
queryId | string | No | Query ID (for query processor) |
data | object | No | Processor-specific configuration |
Example Request:
{
"type": "dataset",
"name": "sales",
"datasetId": "ds-456",
"data": {
"limit": 100,
"sort": "-date"
}
}
Response:
Returns the created processor object with 201 Created status and Location header.
GET /api/templates/{id}/processors/{processor}
Get a specific processor.
Authentication: Required (session)
Pre-blocks: template.lookup(params.id)
Response:
{
"id": "proc-123",
"templateId": "abc123",
"type": "dataset",
"name": "sales_data",
"datasetId": "ds-456",
"index": 0,
"phase": "data",
"data": {
"limit": 100
},
"_embedded": {
"inf:dataset": {
"id": "ds-456",
"name": "Sales Dataset",
"_links": {
"self": { "href": "/api/datasets/ds-456" }
}
}
}
}
PUT /api/templates/{id}/processors/{processor}
Update a processor configuration.
Authentication: Required (session)
Pre-blocks: template.lookup(params.id), permission.template.write(pre.template)
Request Body:
| Field | Type | Description |
|---|---|---|
name | string | null | Variable name for template context |
data | object | null | Processor-specific configuration |
type | string | null | Processor driver type |
datasetId | string | null | Dataset ID |
queryId | string | null | Query ID |
datasourceId | string | null | Datasource ID |
assistantId | string | null | Assistant ID |
index | number | null | Execution order |
phase | string | null | Execution phase: data, pre, post |
Example Request:
{
"data": {
"limit": 200,
"sort": "-date",
"filter": "status:active"
},
"phase": "data"
}
Response:
Returns the updated processor object.
DELETE /api/templates/{id}/processors/{processor}
Remove a processor from a template.
Authentication: Required (session)
Pre-blocks: template.lookup(params.id), permission.template.edit(pre.template)
Response:
Returns 204 No Content on successful deletion.
POST /api/templates/{id}/_processor-order
Reorder processors by updating their index values.
Authentication: Required (session)
Pre-blocks: template.lookup(params.id), permission.template.write(pre.template)
Request Body:
Array of processor IDs in desired order.
Example Request:
["proc-789", "proc-123", "proc-456"]
Response:
Returns success confirmation after reordering processors.