Creates a Collection Pipeline canonically owned by the Application in the route.
Validates the source (integration config, list tool, item-id path) and, for an index sink, its target asset. The Pipeline is created independent of any schedule — start it with `:run`. Ownership comes from the route, so the Pipeline always lands in the Application the caller was authorized against. Requires the Editor role. Responds 201 with a `Location` header.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
Id of the Application that will own the Pipeline.
uuidThe tenant identifier
The Pipeline definition.
Compatibility owner hint for the top-level create route. Application-nested routes derive ownership from the parent URL and ignore this value. When omitted, the selected Agent or Workflow supplies the owner.
uuidWhere a pipeline's items come from: an existing paged integration "list" tool, driven headlessly
(no LLM). Mirrors the source half of ToolSourceAssetConfig; the two converge onto this
shared block when the P0 extraction lands (see docs/design/collection-pipelines-plan.md §P0).
Stored as JSONB on Fruxon.Model.CollectionPipelines.CollectionPipeline.
uuidThe Agent or Workflow run once per item.
Compatibility alias accepted from legacy clients.
Optional pinned runnable revision.
Compatibility alias accepted from legacy clients.
How each source item is mapped into the per-item agent run's inputs. Values are dotted paths into
the item (e.g. fields.summary) or {{template}} interpolations over it — the same
resolution the tool-source mapper uses. Stored as JSONB on Fruxon.Model.CollectionPipelines.CollectionPipeline.
What a completed run does with its results: a list of Fruxon.Model.CollectionPipelines.CollectionSinks, each applied
independently (and fail-soft) at run completion — so a single run can, e.g., write a sheet and
index to RAG (design collection-pipelines-sink-redesign.md §6.2). Stored as JSONB on
Fruxon.Model.CollectionPipelines.CollectionPipeline. An empty list applies no external sink; the per-item results are
still readable via the collect results endpoint. v1 expects at most one sink per kind.
Safety + execution limits for a pipeline run. These are correctness controls, not polish — they
ship with the engine, not after it (see docs/design/collection-pipelines.md §8). Stored as
JSONB on Fruxon.Model.CollectionPipelines.CollectionPipeline.
Response Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/networks/497f6eca-6276-4993-bfeb-53cbbbba6f08/collectionPipelines" \ -H "Content-Type: application/json" \ -d '{}'{
"id": "00000000-0000-0000-0000-000000000000",
"tenantId": "00000000-0000-0000-0000-000000000000",
"createdAt": 0,
"modifiedAt": 0,
"displayName": "string",
"active": false,
"source": {
"kind": "TOOL",
"ragAssetId": "string",
"ragReadMode": "DOCUMENTS",
"ragSearch": "string",
"pageSize": 0,
"integrationConfigId": "string",
"listToolId": "string",
"getToolId": "string",
"recordsPath": "string",
"cursorParamName": "string",
"parameters": {},
"itemIdPath": "string",
"sinkTargetPath": "string",
"skipWhen": {
"match": "ALL",
"conditions": []
},
"sourceUrlPath": "string",
"flattenSheetRows": false
},
"sourceRefs": [
{
"sourceId": "00000000-0000-0000-0000-000000000000",
"alias": "string"
}
],
"defaultSourceId": "00000000-0000-0000-0000-000000000000",
"agentId": "string",
"runnableId": "string",
"runnableType": "AGENT",
"networkId": "00000000-0000-0000-0000-000000000000",
"agentRevision": "string",
"runnableRevision": "string",
"inputMapping": {
"userQuery": "string",
"parameters": {},
"attachmentUrlPath": "string"
},
"outputSchema": [
{
"name": "string",
"description": "string"
}
],
"sink": {
"sinks": [
{
"kind": "UNSPECIFIED",
"indexAssetId": "string",
"tabular": null
}
]
},
"runPolicy": {
"maxItems": 0,
"maxConcurrency": 0,
"perRunBudgetCap": 0,
"dedupKeyPath": "string",
"onItemError": "CONTINUE",
"actionTypeCeiling": "READ_ONLY"
},
"publishedRevisionId": "00000000-0000-0000-0000-000000000000",
"hidden": false
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}