Updates a Collection Pipeline through its canonical owning Application.
Re-validates the source and sink the same way creation does, so an edit that breaks either is rejected with 400 rather than failing on the next run. In-flight runs are unaffected; the new definition applies from the next run onward. The lookup is scoped to the Application in the route, so a Pipeline owned by a different Application returns 404. Requires the Editor role.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
Id of the owning Application.
uuidId of the Collection Pipeline to update.
uuidThe tenant identifier
The fields to change. Omitted fields are left untouched.
Where 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 PUT "https://api.fruxon.com/v1/tenants/string/networks/497f6eca-6276-4993-bfeb-53cbbbba6f08/collectionPipelines/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -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
}