@celigo/api-specs 0.2.214 → 0.2.216
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-agent.yml +171 -55
- package/dist/api.yml +39 -18
- package/dist/asynchelper.yml +39 -18
- package/dist/export.yml +72 -21
- package/dist/flow.yml +37 -15
- package/dist/guardrail.yml +55 -17
- package/dist/import.yml +202 -57
- package/dist/processor.yml +31 -3
- package/dist/subscription.yml +13 -7
- package/dist/tool.yml +235 -60
- package/package.json +1 -1
- package/schemas.json +353 -339
package/dist/ai-agent.yml
CHANGED
|
@@ -23,9 +23,11 @@ tags:
|
|
|
23
23
|
|
|
24
24
|
Three built-in providers — OpenAI (via the Responses API), Google Gemini (via
|
|
25
25
|
LiteLLM), and Anthropic Claude (via LiteLLM) — run on platform-managed
|
|
26
|
-
credentials or, with a `_connectionId`, on your own key (BYOK).
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
credentials or, with a `_connectionId`, on your own key (BYOK). Every other
|
|
27
|
+
provider is a catalog provider — Mistral, xAI, Hugging Face, DeepSeek, Cohere, Groq,
|
|
28
|
+
Together AI, Azure OpenAI, Fireworks AI, AWS Bedrock, NVIDIA NIM, Ollama Cloud and
|
|
29
|
+
Google Vertex AI today, with new rows seeded without a platform release — and uses
|
|
30
|
+
one generic flat configuration format and always runs on a BYOK connection.
|
|
29
31
|
|
|
30
32
|
Every model carries a lifecycle in the platform's model catalog (`active`,
|
|
31
33
|
`deprecated`, `retired`, plus an availability switch). The save and every run
|
|
@@ -133,12 +135,16 @@ paths:
|
|
|
133
135
|
Creates a new AI agent import. The provider decides the configuration
|
|
134
136
|
format: `aiAgent.openai` for OpenAI, `aiAgent.litellm` for Gemini and
|
|
135
137
|
Anthropic Claude, or the generic flat format (`aiAgent.model`,
|
|
136
|
-
`aiAgent.modelOptions`, …) for
|
|
137
|
-
Hugging Face, DeepSeek, Cohere,
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
`aiAgent.modelOptions`, …) for every other provider (the catalog
|
|
139
|
+
providers — Mistral, xAI, Hugging Face, DeepSeek, Cohere, Groq, Together
|
|
140
|
+
AI, Azure OpenAI, Fireworks AI, AWS Bedrock, NVIDIA NIM, Ollama Cloud and
|
|
141
|
+
Google Vertex AI today) — a block that does not match the provider is
|
|
142
|
+
rejected. For a built-in provider, omit `_connectionId` to use
|
|
143
|
+
platform-managed credentials or include it for BYOK; a catalog provider
|
|
144
|
+
needs a BYOK connection to save — without one the request fails with 422
|
|
145
|
+
on `aiAgent.model`: `ai_model_not_available` for a catalog-listed model,
|
|
146
|
+
`ai_model_not_in_catalog` for an id the catalog does not list (the model
|
|
147
|
+
catalog check answers before any `connection_required`).
|
|
142
148
|
operationId: createAiAgent
|
|
143
149
|
tags:
|
|
144
150
|
- AI Agents
|
|
@@ -1047,8 +1053,10 @@ components:
|
|
|
1047
1053
|
- **openai**: OpenAI models (GPT-4.1, GPT-5, etc.). Configure via the `openai` object.
|
|
1048
1054
|
- **gemini**: Google Gemini models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.gemini`.
|
|
1049
1055
|
- **anthropic**: Anthropic Claude models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.anthropic`.
|
|
1050
|
-
- **Catalog providers** —
|
|
1051
|
-
|
|
1056
|
+
- **Catalog providers** — every other value of `provider` (Mistral, xAI, Hugging Face,
|
|
1057
|
+
DeepSeek, Cohere, Groq, Together AI, Azure OpenAI, Fireworks AI, AWS Bedrock, NVIDIA NIM,
|
|
1058
|
+
Ollama Cloud and Google Vertex AI today; the catalog grows without a platform release).
|
|
1059
|
+
Added as catalog data rather than platform code, they share one generic flat format:
|
|
1052
1060
|
`model`, `modelOptions`, `instructions`, `output`, and the `tools` / `prompts` /
|
|
1053
1061
|
`resources` arrays directly on this object.
|
|
1054
1062
|
|
|
@@ -1094,26 +1102,45 @@ components:
|
|
|
1094
1102
|
- deepseek
|
|
1095
1103
|
- cohere
|
|
1096
1104
|
- groq
|
|
1105
|
+
- together_ai
|
|
1106
|
+
- azure_ai
|
|
1107
|
+
- fireworks_ai
|
|
1108
|
+
- bedrock
|
|
1109
|
+
- nvidia_nim
|
|
1110
|
+
- ollama_chat
|
|
1111
|
+
- vertex_ai
|
|
1097
1112
|
x-enumDescriptions:
|
|
1098
|
-
openai: Use OpenAI models via the OpenAI Responses API (built-in; `openai` block)
|
|
1099
|
-
gemini: Use Google Gemini models via the LiteLLM proxy (built-in; `litellm` block)
|
|
1100
|
-
anthropic: Use Anthropic Claude models via the LiteLLM proxy (built-in; `litellm` block)
|
|
1101
|
-
mistral: Use Mistral models (catalog provider; generic flat format, BYOK)
|
|
1102
|
-
xai: Use xAI Grok models (catalog provider; generic flat format, BYOK)
|
|
1103
|
-
huggingface: Use Hugging Face inference endpoint models (catalog provider; generic flat format, BYOK)
|
|
1104
|
-
deepseek: Use DeepSeek models (catalog provider; generic flat format, BYOK)
|
|
1105
|
-
cohere: Use Cohere models (catalog provider; generic flat format, BYOK)
|
|
1106
|
-
groq: Use Groq-hosted models (catalog provider; generic flat format, BYOK)
|
|
1107
|
-
|
|
1113
|
+
openai: Use OpenAI models via the OpenAI Responses API (built-in; `openai` block; Celigo AI or BYOK)
|
|
1114
|
+
gemini: Use Google Gemini models via the LiteLLM proxy (built-in; `litellm` block; Celigo AI or BYOK)
|
|
1115
|
+
anthropic: Use Anthropic Claude models via the LiteLLM proxy (built-in; `litellm` block; Celigo AI or BYOK)
|
|
1116
|
+
mistral: Use Mistral models (catalog provider; generic flat format, BYOK)
|
|
1117
|
+
xai: Use xAI Grok models (catalog provider; generic flat format, BYOK)
|
|
1118
|
+
huggingface: Use Hugging Face inference endpoint models (catalog provider; generic flat format, BYOK)
|
|
1119
|
+
deepseek: Use DeepSeek models (catalog provider; generic flat format, BYOK)
|
|
1120
|
+
cohere: Use Cohere models (catalog provider; generic flat format, BYOK)
|
|
1121
|
+
groq: Use Groq-hosted models (catalog provider; generic flat format, BYOK)
|
|
1122
|
+
together_ai: Use models served by Together AI (catalog provider; generic flat format, BYOK)
|
|
1123
|
+
azure_ai: Use deployments on an Azure AI Foundry / Azure OpenAI resource — `model` is the deployment name (catalog provider; generic flat format, BYOK)
|
|
1124
|
+
fireworks_ai: Use models served by Fireworks AI (catalog provider; generic flat format, BYOK)
|
|
1125
|
+
bedrock: Use AWS Bedrock models through cross-region inference profile ids such as `global.anthropic.claude-sonnet-4-6` (catalog provider; generic flat format, BYOK)
|
|
1126
|
+
nvidia_nim: Use models served by NVIDIA NIM (catalog provider; generic flat format, BYOK)
|
|
1127
|
+
ollama_chat: Use models served by Ollama Cloud (catalog provider; generic flat format, BYOK)
|
|
1128
|
+
vertex_ai: Use Gemini models on Google Vertex AI with the customer's own GCP project (catalog provider; generic flat format, BYOK)
|
|
1129
|
+
description: |-
|
|
1130
|
+
AI provider to use. Built-in providers run on Celigo AI credentials or on a
|
|
1131
|
+
BYOK connection; every other provider is a catalog row that runs only on a BYOK
|
|
1132
|
+
connection. The catalog is data — a provider can be added without a platform
|
|
1133
|
+
release, and `GET /api/aiproviders` lists the rows currently offered.
|
|
1108
1134
|
x-celigo-ai-guidance:
|
|
1109
1135
|
- |-
|
|
1110
1136
|
The provider decides the configuration format, and the server rejects a
|
|
1111
1137
|
mismatch with 422 `invalid_provider_config_format`: `openai` needs the
|
|
1112
1138
|
`openai` block, `gemini` and `anthropic` need the `litellm` block (Gemini- or
|
|
1113
|
-
Claude-specific settings under `litellm._overrides`), and
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1139
|
+
Claude-specific settings under `litellm._overrides`), and every other
|
|
1140
|
+
provider (the catalog providers) needs the generic flat format — `model` and
|
|
1141
|
+
`modelOptions` directly on this object, never an `openai` or `litellm` block.
|
|
1142
|
+
Switching across that boundary replaces the whole configuration in the target
|
|
1143
|
+
format; nothing is translated field by field.
|
|
1117
1144
|
- |-
|
|
1118
1145
|
Catalog providers are BYOK-only, and the save enforces it through the model
|
|
1119
1146
|
catalog: without a `_connectionId` the agent fails to save with 422
|
|
@@ -1122,6 +1149,18 @@ components:
|
|
|
1122
1149
|
configuration.") — the model is a catalog row that is not offered on
|
|
1123
1150
|
platform-managed credentials. Attach an HTTP connection to the vendor's API
|
|
1124
1151
|
(token auth) before saving a catalog-provider agent.
|
|
1152
|
+
- |-
|
|
1153
|
+
Without a connection, a provider the catalog does not list is refused at the
|
|
1154
|
+
model check — 422 `ai_model_not_in_catalog` on `aiAgent.model` — so the
|
|
1155
|
+
message names the model, not the provider. Check the provider against the
|
|
1156
|
+
catalog before blaming the model.
|
|
1157
|
+
- |-
|
|
1158
|
+
For `azure_ai` and `bedrock` the vendor-specific settings ride the BYOK
|
|
1159
|
+
connection, not this object: an optional connection `baseURI` (the vendor
|
|
1160
|
+
endpoint the connector asks for), and connection settings forwarded to the
|
|
1161
|
+
vendor — Azure's `apiVersion`, Bedrock's `awsRegionName`. `bedrock`
|
|
1162
|
+
authenticates with a Bedrock API key (no IAM role); for `azure_ai`, `model` is
|
|
1163
|
+
the deployment name.
|
|
1125
1164
|
model:
|
|
1126
1165
|
type: string
|
|
1127
1166
|
description: |-
|
|
@@ -1594,13 +1633,27 @@ components:
|
|
|
1594
1633
|
web_search: Search the web for real-time information.
|
|
1595
1634
|
mcp: Connect to an MCP server for additional external tools.
|
|
1596
1635
|
image_generation: Generate images using an AI image model.
|
|
1597
|
-
code_execution: '
|
|
1636
|
+
code_execution: 'Let the model write and run code in OpenAI''s sandbox on a BYOK agent; carries no configuration block, send `{type: code_execution}` only'
|
|
1598
1637
|
tool: Reference a reusable Celigo Tool resource.
|
|
1599
1638
|
description: |-
|
|
1600
1639
|
Type of tool. Every type except `code_execution` is configured through the
|
|
1601
1640
|
sibling object of the same name; OpenAI spells this one `code_execution`, while
|
|
1602
1641
|
the Gemini and Anthropic overrides spell theirs `codeExecution` — the other spelling
|
|
1603
|
-
fails with 422 `enum`.
|
|
1642
|
+
fails with 422 `enum`. Code execution runs only on a BYOK agent and only on
|
|
1643
|
+
models that support it: the code runs in OpenAI's sandbox with no outbound
|
|
1644
|
+
network access, the session lasts one hour, and each execution is billed as an
|
|
1645
|
+
AI Action to the connection's OpenAI account rather than as Celigo AI credits.
|
|
1646
|
+
x-celigo-ai-guidance:
|
|
1647
|
+
- |-
|
|
1648
|
+
Add `code_execution` only when the agent has a `_connectionId`. The save does
|
|
1649
|
+
not check the credential type, but every run and preview of an agent on
|
|
1650
|
+
Celigo-managed credentials is refused with `Code Execution requires a BYOK
|
|
1651
|
+
connection.` — switch the agent to a BYOK connection or leave the tool out.
|
|
1652
|
+
- |-
|
|
1653
|
+
Send the tool as `{type: code_execution}` with no other key — a sandbox or
|
|
1654
|
+
options object on it is rejected. Check that the chosen model supports code
|
|
1655
|
+
execution before adding it; the platform does not verify that at save and
|
|
1656
|
+
the UI hides the tool for models that lack it.
|
|
1604
1657
|
webSearch:
|
|
1605
1658
|
type: object
|
|
1606
1659
|
description: Web search configuration (empty object to enable)
|
|
@@ -1954,12 +2007,28 @@ components:
|
|
|
1954
2007
|
googleSearch: Use Google Search for real-time information grounding.
|
|
1955
2008
|
urlContext: Retrieve and use content from specified URLs.
|
|
1956
2009
|
fileSearch: Search through previously uploaded files.
|
|
1957
|
-
codeExecution: '
|
|
2010
|
+
codeExecution: 'Let the model write and run code in Gemini''s sandbox on a BYOK agent; carries no configuration block, send `{type: codeExecution}` only'
|
|
1958
2011
|
mcp: Connect to an MCP server for additional external tools.
|
|
1959
2012
|
tool: Reference a reusable Celigo Tool resource.
|
|
1960
2013
|
description: |-
|
|
1961
2014
|
Type of Gemini tool. `codeExecution` is the Gemini spelling — `code_execution`
|
|
1962
|
-
fails with 422 `enum`.
|
|
2015
|
+
fails with 422 `enum`. Code execution runs only on a BYOK agent and only on
|
|
2016
|
+
models that support it (not on `gemini-2.5-flash-image`): the code runs in
|
|
2017
|
+
Gemini's sandbox with no outbound network access for up to 30 seconds per
|
|
2018
|
+
execution and at most 5 executions per API call (the limit resets each turn),
|
|
2019
|
+
and each execution is billed as an AI Action to the connection's Google
|
|
2020
|
+
account rather than as Celigo AI credits.
|
|
2021
|
+
x-celigo-ai-guidance:
|
|
2022
|
+
- |-
|
|
2023
|
+
Add `codeExecution` only when the agent has a `_connectionId`. The save does
|
|
2024
|
+
not check the credential type, but every run and preview of an agent on
|
|
2025
|
+
Celigo-managed credentials is refused with `Code Execution requires a BYOK
|
|
2026
|
+
connection.` — switch the agent to a BYOK connection or leave the tool out.
|
|
2027
|
+
- |-
|
|
2028
|
+
Send the tool as `{type: codeExecution}` with no other key — any other key on
|
|
2029
|
+
it is rejected. Check that the chosen model supports code execution before
|
|
2030
|
+
adding it; the platform does not verify that at save and the UI hides the
|
|
2031
|
+
tool for models that lack it.
|
|
1963
2032
|
googleSearch:
|
|
1964
2033
|
type: object
|
|
1965
2034
|
description: Google Search configuration (empty object to enable)
|
|
@@ -2291,10 +2360,26 @@ components:
|
|
|
2291
2360
|
tool: Reference a reusable Celigo Tool resource.
|
|
2292
2361
|
mcp: Connect to an MCP server for additional external tools.
|
|
2293
2362
|
webSearch: Search the web for real-time information.
|
|
2294
|
-
codeExecution: '
|
|
2363
|
+
codeExecution: 'Let the model write and run code in Anthropic''s sandbox on a BYOK agent (beta); carries no configuration block, send `{type: codeExecution}` only'
|
|
2295
2364
|
description: |-
|
|
2296
2365
|
Type of Claude tool. `codeExecution` is the Anthropic spelling — `code_execution`
|
|
2297
|
-
fails with 422 `enum`.
|
|
2366
|
+
fails with 422 `enum`. Code execution (beta on Anthropic) runs only on a BYOK
|
|
2367
|
+
agent and only on models that support it: the code runs per API call in
|
|
2368
|
+
Anthropic's sandbox (Python 3.11 with pandas, numpy and matplotlib) with no
|
|
2369
|
+
outbound network access and no state kept between turns, and each execution is
|
|
2370
|
+
billed as an AI Action to the connection's Anthropic account rather than as
|
|
2371
|
+
Celigo AI credits.
|
|
2372
|
+
x-celigo-ai-guidance:
|
|
2373
|
+
- |-
|
|
2374
|
+
Add `codeExecution` only when the agent has a `_connectionId`. The save does
|
|
2375
|
+
not check the credential type, but every run and preview of an agent on
|
|
2376
|
+
Celigo-managed credentials is refused with `Code Execution requires a BYOK
|
|
2377
|
+
connection.` — switch the agent to a BYOK connection or leave the tool out.
|
|
2378
|
+
- |-
|
|
2379
|
+
Send the tool as `{type: codeExecution}` with no other key — any other key on
|
|
2380
|
+
it is rejected. Check that the chosen model supports code execution before
|
|
2381
|
+
adding it; the platform does not verify that at save and the UI hides the
|
|
2382
|
+
tool for models that lack it.
|
|
2298
2383
|
tool:
|
|
2299
2384
|
type: object
|
|
2300
2385
|
description: Reference to a Celigo Tool resource, used when type is "tool".
|
|
@@ -2511,6 +2596,13 @@ components:
|
|
|
2511
2596
|
- deepseek
|
|
2512
2597
|
- cohere
|
|
2513
2598
|
- groq
|
|
2599
|
+
- together_ai
|
|
2600
|
+
- azure_ai
|
|
2601
|
+
- fireworks_ai
|
|
2602
|
+
- bedrock
|
|
2603
|
+
- nvidia_nim
|
|
2604
|
+
- ollama_chat
|
|
2605
|
+
- vertex_ai
|
|
2514
2606
|
required:
|
|
2515
2607
|
- provider
|
|
2516
2608
|
then:
|
|
@@ -5679,12 +5771,16 @@ components:
|
|
|
5679
5771
|
- |-
|
|
5680
5772
|
On a grouped record (the export groups rows, so the record is an
|
|
5681
5773
|
array) only `create` can author output — build it from the rows with
|
|
5682
|
-
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]
|
|
5774
|
+
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`
|
|
5775
|
+
(`$.rows[0].field` and `$.rows[*]` with `inputContext: envelope`).
|
|
5683
5776
|
`modify` has no object to overlay onto an array: the record passes
|
|
5684
|
-
through untouched and the processor reports success.
|
|
5685
|
-
|
|
5686
|
-
|
|
5687
|
-
|
|
5777
|
+
through untouched and the processor reports success. Paths written
|
|
5778
|
+
for one object record (`$.field`, an entry `$.lines[*]`) resolve
|
|
5779
|
+
nothing there, so `create` returns `{}` for each record, also with
|
|
5780
|
+
no error (live, 2026-10-30). Either mode reshapes the inside of one
|
|
5781
|
+
record; neither changes how many records the page carries (that is
|
|
5782
|
+
the export's `preSavePage` hook) or whether the export groups at all
|
|
5783
|
+
(that is its grouping setting).
|
|
5688
5784
|
examples:
|
|
5689
5785
|
- create
|
|
5690
5786
|
- modify
|
|
@@ -5749,8 +5845,8 @@ components:
|
|
|
5749
5845
|
- record
|
|
5750
5846
|
- envelope
|
|
5751
5847
|
x-enumDescriptions:
|
|
5752
|
-
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment) — the default when absent.
|
|
5753
|
-
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
5848
|
+
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment; a grouped record is the array of rows, `$[0].field`) — the default when absent.
|
|
5849
|
+
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), and a grouped record sits under `rows` instead (`$.rows[0].field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
5754
5850
|
description: |
|
|
5755
5851
|
Controls the JSON shape the transformTwoDotZero processor
|
|
5756
5852
|
evaluates `mappings[].extract` JSONPath values against at
|
|
@@ -5766,24 +5862,38 @@ components:
|
|
|
5766
5862
|
processor sees the FLAT record as its evaluation root.
|
|
5767
5863
|
`mappings[].extract` JSONPath MUST anchor directly at
|
|
5768
5864
|
`$` with NO `record.` segment — e.g. `"$.orderId"`,
|
|
5769
|
-
`"$.customer.email"
|
|
5865
|
+
`"$.customer.email"` on an object record, `"$[0].orderId"`
|
|
5866
|
+
on a grouped one; PLACEHOLDER extracts use
|
|
5770
5867
|
`"$.PLACEHOLDER_<field>"`.
|
|
5771
5868
|
This is the dominant Celigo idiom and the right choice for new transforms.
|
|
5772
5869
|
- `envelope`: the processor sees a wrapped object
|
|
5773
5870
|
`{record: {...}, job, testMode, settings, headers,
|
|
5774
5871
|
queryParams}` (plus `fileMeta` on file-provider steps).
|
|
5775
5872
|
`mappings[].extract` JSONPath MUST include the
|
|
5776
|
-
`record.` segment for record fields — e.g.
|
|
5777
|
-
`"$.record.orderId"
|
|
5873
|
+
`record.` segment for an object record's fields — e.g.
|
|
5874
|
+
`"$.record.orderId"`; a grouped record sits under `rows`
|
|
5875
|
+
instead (`"$.rows[0].orderId"`) — and reads `headers` and
|
|
5778
5876
|
`queryParams` beside it (`$.headers['X-Id']`);
|
|
5779
5877
|
PLACEHOLDER extracts use `"$.record.PLACEHOLDER_<field>"`.
|
|
5780
5878
|
Pick this only when the transform was authored against
|
|
5781
5879
|
the envelope shape on purpose.
|
|
5782
5880
|
- |-
|
|
5783
|
-
Handlebars expressions inside `extract`
|
|
5784
|
-
|
|
5785
|
-
|
|
5881
|
+
Handlebars expressions inside `extract` reference the
|
|
5882
|
+
`record` root on an object record (`{{record.field}}`,
|
|
5883
|
+
`{{dateFormat ... record.field}}`) and `rows` on a
|
|
5884
|
+
grouped one (`{{rows.0.field}}`), regardless of
|
|
5786
5885
|
`inputContext` — only JSONPath anchoring flips.
|
|
5886
|
+
- |-
|
|
5887
|
+
## Grouped records
|
|
5888
|
+
|
|
5889
|
+
When the export groups rows, each record is an array of
|
|
5890
|
+
rows. In `record` mode JSONPath roots at that array
|
|
5891
|
+
(`$[0].field`, `$[*]`); `envelope` binds it as `rows`,
|
|
5892
|
+
not `record` — `$.rows[0].field`, and an entry
|
|
5893
|
+
`$.rows[*]` whose children read `$.rows.field` — while
|
|
5894
|
+
`$.record[0].field` and `$.record[*]` resolve nothing,
|
|
5895
|
+
with no error (live, 2026-10-30). Handlebars extracts
|
|
5896
|
+
read it as `rows` in both modes (`{{rows.0.field}}`).
|
|
5787
5897
|
- |-
|
|
5788
5898
|
In `envelope` mode the output is still a bare record: a
|
|
5789
5899
|
`modify` transform returns the record with its mapped
|
|
@@ -5804,7 +5914,8 @@ components:
|
|
|
5804
5914
|
``mappings[].extract`` JSONPath values MUST anchor
|
|
5805
5915
|
directly at ``$`` with NO ``record.`` segment — for
|
|
5806
5916
|
example ``"$.orderId"`` or
|
|
5807
|
-
``"$.customer.email"
|
|
5917
|
+
``"$.customer.email"`` on an object record, and
|
|
5918
|
+
``"$[0].orderId"`` on a grouped one. PLACEHOLDER extracts use
|
|
5808
5919
|
``"$.PLACEHOLDER_<field>"``. This is the dominant
|
|
5809
5920
|
Celigo idiom and the right choice for new transforms.
|
|
5810
5921
|
|
|
@@ -5816,9 +5927,10 @@ components:
|
|
|
5816
5927
|
``record``) — the
|
|
5817
5928
|
same runtime-context envelope Handlebars / SQL /
|
|
5818
5929
|
GraphQL templates render against. ``mappings[].extract``
|
|
5819
|
-
JSONPath values for record fields MUST include the
|
|
5930
|
+
JSONPath values for an object record's fields MUST include the
|
|
5820
5931
|
``record.`` segment — for example ``"$.record.orderId"``
|
|
5821
|
-
or ``"$.record.customer.email"
|
|
5932
|
+
or ``"$.record.customer.email"``; a grouped record's rows
|
|
5933
|
+
sit under ``rows`` instead (``"$.rows[0].orderId"``) — while ``headers`` and
|
|
5822
5934
|
``queryParams`` are read beside it
|
|
5823
5935
|
(``"$.headers['X-Id']"``). PLACEHOLDER extracts
|
|
5824
5936
|
use ``"$.record.PLACEHOLDER_<field>"``. Pick this
|
|
@@ -5831,8 +5943,9 @@ components:
|
|
|
5831
5943
|
|
|
5832
5944
|
Handlebars expressions inside ``extract``
|
|
5833
5945
|
(``{{record.field}}``,
|
|
5834
|
-
``{{dateFormat ... record.field}}``, etc.)
|
|
5835
|
-
|
|
5946
|
+
``{{dateFormat ... record.field}}``, etc.) reference the
|
|
5947
|
+
runtime context's ``record`` root on an object record,
|
|
5948
|
+
and ``rows`` (``{{rows.0.field}}``) on a grouped one,
|
|
5836
5949
|
regardless of ``inputContext`` — the Handlebars runtime
|
|
5837
5950
|
always sees the wrapped envelope. Only JSONPath
|
|
5838
5951
|
behavior flips with this field.
|
|
@@ -6056,8 +6169,10 @@ components:
|
|
|
6056
6169
|
`aiAgent.provider` to choose the LLM backend, then configure the matching format:
|
|
6057
6170
|
`aiAgent.openai` for OpenAI, `aiAgent.litellm` for Gemini and Anthropic Claude
|
|
6058
6171
|
(with provider-specific settings under `aiAgent.litellm._overrides`), or the
|
|
6059
|
-
generic flat format (`aiAgent.model`, `aiAgent.modelOptions`, …) for
|
|
6060
|
-
providers Mistral, xAI, Hugging Face, DeepSeek, Cohere,
|
|
6172
|
+
generic flat format (`aiAgent.model`, `aiAgent.modelOptions`, …) for every other
|
|
6173
|
+
provider — the catalog providers (Mistral, xAI, Hugging Face, DeepSeek, Cohere, Groq,
|
|
6174
|
+
Together AI, Azure OpenAI, Fireworks AI, AWS Bedrock, NVIDIA NIM, Ollama Cloud and
|
|
6175
|
+
Google Vertex AI today; the catalog grows without a platform release).
|
|
6061
6176
|
properties:
|
|
6062
6177
|
name:
|
|
6063
6178
|
type: string
|
|
@@ -6079,10 +6194,11 @@ components:
|
|
|
6079
6194
|
description: |-
|
|
6080
6195
|
Connection for BYOK (bring your own key) — an HTTP connection to the vendor's API.
|
|
6081
6196
|
Optional for the built-in providers (`openai`, `gemini`, `anthropic`), which run on
|
|
6082
|
-
platform-managed credentials when it is omitted. Catalog providers (
|
|
6083
|
-
|
|
6084
|
-
|
|
6085
|
-
`
|
|
6197
|
+
platform-managed credentials when it is omitted. Catalog providers (every other value
|
|
6198
|
+
of `provider`) have no platform-managed credentials: the save requires it — without
|
|
6199
|
+
one the agent fails to save with 422 on `aiAgent.model` (`ai_model_not_available` for
|
|
6200
|
+
a catalog-listed model, `ai_model_not_in_catalog` for an id the catalog does not
|
|
6201
|
+
list; the model catalog check answers before any `connection_required`).
|
|
6086
6202
|
examples:
|
|
6087
6203
|
- 662aaa6576bf4040548dbbe4
|
|
6088
6204
|
_integrationId:
|
package/dist/api.yml
CHANGED
|
@@ -5263,12 +5263,16 @@ components:
|
|
|
5263
5263
|
- |-
|
|
5264
5264
|
On a grouped record (the export groups rows, so the record is an
|
|
5265
5265
|
array) only `create` can author output — build it from the rows with
|
|
5266
|
-
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]
|
|
5266
|
+
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`
|
|
5267
|
+
(`$.rows[0].field` and `$.rows[*]` with `inputContext: envelope`).
|
|
5267
5268
|
`modify` has no object to overlay onto an array: the record passes
|
|
5268
|
-
through untouched and the processor reports success.
|
|
5269
|
-
|
|
5270
|
-
|
|
5271
|
-
|
|
5269
|
+
through untouched and the processor reports success. Paths written
|
|
5270
|
+
for one object record (`$.field`, an entry `$.lines[*]`) resolve
|
|
5271
|
+
nothing there, so `create` returns `{}` for each record, also with
|
|
5272
|
+
no error (live, 2026-10-30). Either mode reshapes the inside of one
|
|
5273
|
+
record; neither changes how many records the page carries (that is
|
|
5274
|
+
the export's `preSavePage` hook) or whether the export groups at all
|
|
5275
|
+
(that is its grouping setting).
|
|
5272
5276
|
examples:
|
|
5273
5277
|
- create
|
|
5274
5278
|
- modify
|
|
@@ -5333,8 +5337,8 @@ components:
|
|
|
5333
5337
|
- record
|
|
5334
5338
|
- envelope
|
|
5335
5339
|
x-enumDescriptions:
|
|
5336
|
-
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment) — the default when absent.
|
|
5337
|
-
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
5340
|
+
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment; a grouped record is the array of rows, `$[0].field`) — the default when absent.
|
|
5341
|
+
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), and a grouped record sits under `rows` instead (`$.rows[0].field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
5338
5342
|
description: |
|
|
5339
5343
|
Controls the JSON shape the transformTwoDotZero processor
|
|
5340
5344
|
evaluates `mappings[].extract` JSONPath values against at
|
|
@@ -5350,24 +5354,38 @@ components:
|
|
|
5350
5354
|
processor sees the FLAT record as its evaluation root.
|
|
5351
5355
|
`mappings[].extract` JSONPath MUST anchor directly at
|
|
5352
5356
|
`$` with NO `record.` segment — e.g. `"$.orderId"`,
|
|
5353
|
-
`"$.customer.email"
|
|
5357
|
+
`"$.customer.email"` on an object record, `"$[0].orderId"`
|
|
5358
|
+
on a grouped one; PLACEHOLDER extracts use
|
|
5354
5359
|
`"$.PLACEHOLDER_<field>"`.
|
|
5355
5360
|
This is the dominant Celigo idiom and the right choice for new transforms.
|
|
5356
5361
|
- `envelope`: the processor sees a wrapped object
|
|
5357
5362
|
`{record: {...}, job, testMode, settings, headers,
|
|
5358
5363
|
queryParams}` (plus `fileMeta` on file-provider steps).
|
|
5359
5364
|
`mappings[].extract` JSONPath MUST include the
|
|
5360
|
-
`record.` segment for record fields — e.g.
|
|
5361
|
-
`"$.record.orderId"
|
|
5365
|
+
`record.` segment for an object record's fields — e.g.
|
|
5366
|
+
`"$.record.orderId"`; a grouped record sits under `rows`
|
|
5367
|
+
instead (`"$.rows[0].orderId"`) — and reads `headers` and
|
|
5362
5368
|
`queryParams` beside it (`$.headers['X-Id']`);
|
|
5363
5369
|
PLACEHOLDER extracts use `"$.record.PLACEHOLDER_<field>"`.
|
|
5364
5370
|
Pick this only when the transform was authored against
|
|
5365
5371
|
the envelope shape on purpose.
|
|
5366
5372
|
- |-
|
|
5367
|
-
Handlebars expressions inside `extract`
|
|
5368
|
-
|
|
5369
|
-
|
|
5373
|
+
Handlebars expressions inside `extract` reference the
|
|
5374
|
+
`record` root on an object record (`{{record.field}}`,
|
|
5375
|
+
`{{dateFormat ... record.field}}`) and `rows` on a
|
|
5376
|
+
grouped one (`{{rows.0.field}}`), regardless of
|
|
5370
5377
|
`inputContext` — only JSONPath anchoring flips.
|
|
5378
|
+
- |-
|
|
5379
|
+
## Grouped records
|
|
5380
|
+
|
|
5381
|
+
When the export groups rows, each record is an array of
|
|
5382
|
+
rows. In `record` mode JSONPath roots at that array
|
|
5383
|
+
(`$[0].field`, `$[*]`); `envelope` binds it as `rows`,
|
|
5384
|
+
not `record` — `$.rows[0].field`, and an entry
|
|
5385
|
+
`$.rows[*]` whose children read `$.rows.field` — while
|
|
5386
|
+
`$.record[0].field` and `$.record[*]` resolve nothing,
|
|
5387
|
+
with no error (live, 2026-10-30). Handlebars extracts
|
|
5388
|
+
read it as `rows` in both modes (`{{rows.0.field}}`).
|
|
5371
5389
|
- |-
|
|
5372
5390
|
In `envelope` mode the output is still a bare record: a
|
|
5373
5391
|
`modify` transform returns the record with its mapped
|
|
@@ -5388,7 +5406,8 @@ components:
|
|
|
5388
5406
|
``mappings[].extract`` JSONPath values MUST anchor
|
|
5389
5407
|
directly at ``$`` with NO ``record.`` segment — for
|
|
5390
5408
|
example ``"$.orderId"`` or
|
|
5391
|
-
``"$.customer.email"
|
|
5409
|
+
``"$.customer.email"`` on an object record, and
|
|
5410
|
+
``"$[0].orderId"`` on a grouped one. PLACEHOLDER extracts use
|
|
5392
5411
|
``"$.PLACEHOLDER_<field>"``. This is the dominant
|
|
5393
5412
|
Celigo idiom and the right choice for new transforms.
|
|
5394
5413
|
|
|
@@ -5400,9 +5419,10 @@ components:
|
|
|
5400
5419
|
``record``) — the
|
|
5401
5420
|
same runtime-context envelope Handlebars / SQL /
|
|
5402
5421
|
GraphQL templates render against. ``mappings[].extract``
|
|
5403
|
-
JSONPath values for record fields MUST include the
|
|
5422
|
+
JSONPath values for an object record's fields MUST include the
|
|
5404
5423
|
``record.`` segment — for example ``"$.record.orderId"``
|
|
5405
|
-
or ``"$.record.customer.email"
|
|
5424
|
+
or ``"$.record.customer.email"``; a grouped record's rows
|
|
5425
|
+
sit under ``rows`` instead (``"$.rows[0].orderId"``) — while ``headers`` and
|
|
5406
5426
|
``queryParams`` are read beside it
|
|
5407
5427
|
(``"$.headers['X-Id']"``). PLACEHOLDER extracts
|
|
5408
5428
|
use ``"$.record.PLACEHOLDER_<field>"``. Pick this
|
|
@@ -5415,8 +5435,9 @@ components:
|
|
|
5415
5435
|
|
|
5416
5436
|
Handlebars expressions inside ``extract``
|
|
5417
5437
|
(``{{record.field}}``,
|
|
5418
|
-
``{{dateFormat ... record.field}}``, etc.)
|
|
5419
|
-
|
|
5438
|
+
``{{dateFormat ... record.field}}``, etc.) reference the
|
|
5439
|
+
runtime context's ``record`` root on an object record,
|
|
5440
|
+
and ``rows`` (``{{rows.0.field}}``) on a grouped one,
|
|
5420
5441
|
regardless of ``inputContext`` — the Handlebars runtime
|
|
5421
5442
|
always sees the wrapped envelope. Only JSONPath
|
|
5422
5443
|
behavior flips with this field.
|
package/dist/asynchelper.yml
CHANGED
|
@@ -3158,12 +3158,16 @@ components:
|
|
|
3158
3158
|
- |-
|
|
3159
3159
|
On a grouped record (the export groups rows, so the record is an
|
|
3160
3160
|
array) only `create` can author output — build it from the rows with
|
|
3161
|
-
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]
|
|
3161
|
+
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`
|
|
3162
|
+
(`$.rows[0].field` and `$.rows[*]` with `inputContext: envelope`).
|
|
3162
3163
|
`modify` has no object to overlay onto an array: the record passes
|
|
3163
|
-
through untouched and the processor reports success.
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3164
|
+
through untouched and the processor reports success. Paths written
|
|
3165
|
+
for one object record (`$.field`, an entry `$.lines[*]`) resolve
|
|
3166
|
+
nothing there, so `create` returns `{}` for each record, also with
|
|
3167
|
+
no error (live, 2026-10-30). Either mode reshapes the inside of one
|
|
3168
|
+
record; neither changes how many records the page carries (that is
|
|
3169
|
+
the export's `preSavePage` hook) or whether the export groups at all
|
|
3170
|
+
(that is its grouping setting).
|
|
3167
3171
|
examples:
|
|
3168
3172
|
- create
|
|
3169
3173
|
- modify
|
|
@@ -3228,8 +3232,8 @@ components:
|
|
|
3228
3232
|
- record
|
|
3229
3233
|
- envelope
|
|
3230
3234
|
x-enumDescriptions:
|
|
3231
|
-
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment) — the default when absent.
|
|
3232
|
-
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
3235
|
+
record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment; a grouped record is the array of rows, `$[0].field`) — the default when absent.
|
|
3236
|
+
envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), and a grouped record sits under `rows` instead (`$.rows[0].field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
|
|
3233
3237
|
description: |
|
|
3234
3238
|
Controls the JSON shape the transformTwoDotZero processor
|
|
3235
3239
|
evaluates `mappings[].extract` JSONPath values against at
|
|
@@ -3245,24 +3249,38 @@ components:
|
|
|
3245
3249
|
processor sees the FLAT record as its evaluation root.
|
|
3246
3250
|
`mappings[].extract` JSONPath MUST anchor directly at
|
|
3247
3251
|
`$` with NO `record.` segment — e.g. `"$.orderId"`,
|
|
3248
|
-
`"$.customer.email"
|
|
3252
|
+
`"$.customer.email"` on an object record, `"$[0].orderId"`
|
|
3253
|
+
on a grouped one; PLACEHOLDER extracts use
|
|
3249
3254
|
`"$.PLACEHOLDER_<field>"`.
|
|
3250
3255
|
This is the dominant Celigo idiom and the right choice for new transforms.
|
|
3251
3256
|
- `envelope`: the processor sees a wrapped object
|
|
3252
3257
|
`{record: {...}, job, testMode, settings, headers,
|
|
3253
3258
|
queryParams}` (plus `fileMeta` on file-provider steps).
|
|
3254
3259
|
`mappings[].extract` JSONPath MUST include the
|
|
3255
|
-
`record.` segment for record fields — e.g.
|
|
3256
|
-
`"$.record.orderId"
|
|
3260
|
+
`record.` segment for an object record's fields — e.g.
|
|
3261
|
+
`"$.record.orderId"`; a grouped record sits under `rows`
|
|
3262
|
+
instead (`"$.rows[0].orderId"`) — and reads `headers` and
|
|
3257
3263
|
`queryParams` beside it (`$.headers['X-Id']`);
|
|
3258
3264
|
PLACEHOLDER extracts use `"$.record.PLACEHOLDER_<field>"`.
|
|
3259
3265
|
Pick this only when the transform was authored against
|
|
3260
3266
|
the envelope shape on purpose.
|
|
3261
3267
|
- |-
|
|
3262
|
-
Handlebars expressions inside `extract`
|
|
3263
|
-
|
|
3264
|
-
|
|
3268
|
+
Handlebars expressions inside `extract` reference the
|
|
3269
|
+
`record` root on an object record (`{{record.field}}`,
|
|
3270
|
+
`{{dateFormat ... record.field}}`) and `rows` on a
|
|
3271
|
+
grouped one (`{{rows.0.field}}`), regardless of
|
|
3265
3272
|
`inputContext` — only JSONPath anchoring flips.
|
|
3273
|
+
- |-
|
|
3274
|
+
## Grouped records
|
|
3275
|
+
|
|
3276
|
+
When the export groups rows, each record is an array of
|
|
3277
|
+
rows. In `record` mode JSONPath roots at that array
|
|
3278
|
+
(`$[0].field`, `$[*]`); `envelope` binds it as `rows`,
|
|
3279
|
+
not `record` — `$.rows[0].field`, and an entry
|
|
3280
|
+
`$.rows[*]` whose children read `$.rows.field` — while
|
|
3281
|
+
`$.record[0].field` and `$.record[*]` resolve nothing,
|
|
3282
|
+
with no error (live, 2026-10-30). Handlebars extracts
|
|
3283
|
+
read it as `rows` in both modes (`{{rows.0.field}}`).
|
|
3266
3284
|
- |-
|
|
3267
3285
|
In `envelope` mode the output is still a bare record: a
|
|
3268
3286
|
`modify` transform returns the record with its mapped
|
|
@@ -3283,7 +3301,8 @@ components:
|
|
|
3283
3301
|
``mappings[].extract`` JSONPath values MUST anchor
|
|
3284
3302
|
directly at ``$`` with NO ``record.`` segment — for
|
|
3285
3303
|
example ``"$.orderId"`` or
|
|
3286
|
-
``"$.customer.email"
|
|
3304
|
+
``"$.customer.email"`` on an object record, and
|
|
3305
|
+
``"$[0].orderId"`` on a grouped one. PLACEHOLDER extracts use
|
|
3287
3306
|
``"$.PLACEHOLDER_<field>"``. This is the dominant
|
|
3288
3307
|
Celigo idiom and the right choice for new transforms.
|
|
3289
3308
|
|
|
@@ -3295,9 +3314,10 @@ components:
|
|
|
3295
3314
|
``record``) — the
|
|
3296
3315
|
same runtime-context envelope Handlebars / SQL /
|
|
3297
3316
|
GraphQL templates render against. ``mappings[].extract``
|
|
3298
|
-
JSONPath values for record fields MUST include the
|
|
3317
|
+
JSONPath values for an object record's fields MUST include the
|
|
3299
3318
|
``record.`` segment — for example ``"$.record.orderId"``
|
|
3300
|
-
or ``"$.record.customer.email"
|
|
3319
|
+
or ``"$.record.customer.email"``; a grouped record's rows
|
|
3320
|
+
sit under ``rows`` instead (``"$.rows[0].orderId"``) — while ``headers`` and
|
|
3301
3321
|
``queryParams`` are read beside it
|
|
3302
3322
|
(``"$.headers['X-Id']"``). PLACEHOLDER extracts
|
|
3303
3323
|
use ``"$.record.PLACEHOLDER_<field>"``. Pick this
|
|
@@ -3310,8 +3330,9 @@ components:
|
|
|
3310
3330
|
|
|
3311
3331
|
Handlebars expressions inside ``extract``
|
|
3312
3332
|
(``{{record.field}}``,
|
|
3313
|
-
``{{dateFormat ... record.field}}``, etc.)
|
|
3314
|
-
|
|
3333
|
+
``{{dateFormat ... record.field}}``, etc.) reference the
|
|
3334
|
+
runtime context's ``record`` root on an object record,
|
|
3335
|
+
and ``rows`` (``{{rows.0.field}}``) on a grouped one,
|
|
3315
3336
|
regardless of ``inputContext`` — the Handlebars runtime
|
|
3316
3337
|
always sees the wrapped envelope. Only JSONPath
|
|
3317
3338
|
behavior flips with this field.
|