FruxonDocs
ApiCollection pipelines

Creates a collection pipeline.

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`.

POST
/v1/tenants/{tenant}/collectionPipelines
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

tenant*string

The tenant identifier

The pipeline definition.

displayName?string|null
active?boolean
source?

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.

sourceRefs?|null
defaultSourceId?string|null
Formatuuid
runnableId?string|null

The Agent or Workflow run once per item.

agentId?string|null

Compatibility alias accepted from legacy clients.

runnableRevision?string|null

Optional pinned runnable revision.

agentRevision?string|null

Compatibility alias accepted from legacy clients.

inputMapping?

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.

sink?

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.

runPolicy?

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.

[key: string]?never

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/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
}
Empty
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}