Skip to main content

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:

FieldTypeRequiredDescription
typestringYesProcessor driver type
namestringNoVariable name for template context
datasetIdstringNoDataset ID (for dataset processor)
datasourceIdstringNoDatasource ID (for datasource processor)
assistantIdstringNoAssistant ID (for assistant processor)
reportIdstringNoReport ID (for report processor)
queryIdstringNoQuery ID (for query processor)
dataobjectNoProcessor-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:

FieldTypeDescription
namestring | nullVariable name for template context
dataobject | nullProcessor-specific configuration
typestring | nullProcessor driver type
datasetIdstring | nullDataset ID
queryIdstring | nullQuery ID
datasourceIdstring | nullDatasource ID
assistantIdstring | nullAssistant ID
indexnumber | nullExecution order
phasestring | nullExecution 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.