@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/import.yml CHANGED
@@ -9585,8 +9585,10 @@ components:
9585
9585
  - **openai**: OpenAI models (GPT-4.1, GPT-5, etc.). Configure via the `openai` object.
9586
9586
  - **gemini**: Google Gemini models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.gemini`.
9587
9587
  - **anthropic**: Anthropic Claude models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.anthropic`.
9588
- - **Catalog providers** — `mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`. Added
9589
- as catalog data rather than platform code, they share one generic flat format:
9588
+ - **Catalog providers** — every other value of `provider` (Mistral, xAI, Hugging Face,
9589
+ DeepSeek, Cohere, Groq, Together AI, Azure OpenAI, Fireworks AI, AWS Bedrock, NVIDIA NIM,
9590
+ Ollama Cloud and Google Vertex AI today; the catalog grows without a platform release).
9591
+ Added as catalog data rather than platform code, they share one generic flat format:
9590
9592
  `model`, `modelOptions`, `instructions`, `output`, and the `tools` / `prompts` /
9591
9593
  `resources` arrays directly on this object.
9592
9594
 
@@ -9632,26 +9634,45 @@ components:
9632
9634
  - deepseek
9633
9635
  - cohere
9634
9636
  - groq
9637
+ - together_ai
9638
+ - azure_ai
9639
+ - fireworks_ai
9640
+ - bedrock
9641
+ - nvidia_nim
9642
+ - ollama_chat
9643
+ - vertex_ai
9635
9644
  x-enumDescriptions:
9636
- openai: Use OpenAI models via the OpenAI Responses API (built-in; `openai` block).
9637
- gemini: Use Google Gemini models via the LiteLLM proxy (built-in; `litellm` block).
9638
- anthropic: Use Anthropic Claude models via the LiteLLM proxy (built-in; `litellm` block).
9639
- mistral: Use Mistral models (catalog provider; generic flat format, BYOK).
9640
- xai: Use xAI Grok models (catalog provider; generic flat format, BYOK).
9641
- huggingface: Use Hugging Face inference endpoint models (catalog provider; generic flat format, BYOK).
9642
- deepseek: Use DeepSeek models (catalog provider; generic flat format, BYOK).
9643
- cohere: Use Cohere models (catalog provider; generic flat format, BYOK).
9644
- groq: Use Groq-hosted models (catalog provider; generic flat format, BYOK).
9645
- description: AI provider to use.
9645
+ openai: Use OpenAI models via the OpenAI Responses API (built-in; `openai` block; Celigo AI or BYOK)
9646
+ gemini: Use Google Gemini models via the LiteLLM proxy (built-in; `litellm` block; Celigo AI or BYOK)
9647
+ anthropic: Use Anthropic Claude models via the LiteLLM proxy (built-in; `litellm` block; Celigo AI or BYOK)
9648
+ mistral: Use Mistral models (catalog provider; generic flat format, BYOK)
9649
+ xai: Use xAI Grok models (catalog provider; generic flat format, BYOK)
9650
+ huggingface: Use Hugging Face inference endpoint models (catalog provider; generic flat format, BYOK)
9651
+ deepseek: Use DeepSeek models (catalog provider; generic flat format, BYOK)
9652
+ cohere: Use Cohere models (catalog provider; generic flat format, BYOK)
9653
+ groq: Use Groq-hosted models (catalog provider; generic flat format, BYOK)
9654
+ together_ai: Use models served by Together AI (catalog provider; generic flat format, BYOK)
9655
+ azure_ai: Use deployments on an Azure AI Foundry / Azure OpenAI resource — `model` is the deployment name (catalog provider; generic flat format, BYOK)
9656
+ fireworks_ai: Use models served by Fireworks AI (catalog provider; generic flat format, BYOK)
9657
+ 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)
9658
+ nvidia_nim: Use models served by NVIDIA NIM (catalog provider; generic flat format, BYOK)
9659
+ ollama_chat: Use models served by Ollama Cloud (catalog provider; generic flat format, BYOK)
9660
+ vertex_ai: Use Gemini models on Google Vertex AI with the customer's own GCP project (catalog provider; generic flat format, BYOK)
9661
+ description: |-
9662
+ AI provider to use. Built-in providers run on Celigo AI credentials or on a
9663
+ BYOK connection; every other provider is a catalog row that runs only on a BYOK
9664
+ connection. The catalog is data — a provider can be added without a platform
9665
+ release, and `GET /api/aiproviders` lists the rows currently offered.
9646
9666
  x-celigo-ai-guidance:
9647
9667
  - |-
9648
9668
  The provider decides the configuration format, and the server rejects a
9649
9669
  mismatch with 422 `invalid_provider_config_format`: `openai` needs the
9650
9670
  `openai` block, `gemini` and `anthropic` need the `litellm` block (Gemini- or
9651
- Claude-specific settings under `litellm._overrides`), and the catalog
9652
- providers (`mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`) need the
9653
- generic flat format — `model` and `modelOptions` directly on this object,
9654
- never an `openai` or `litellm` block.
9671
+ Claude-specific settings under `litellm._overrides`), and every other
9672
+ provider (the catalog providers) needs the generic flat format — `model` and
9673
+ `modelOptions` directly on this object, never an `openai` or `litellm` block.
9674
+ Switching across that boundary replaces the whole configuration in the target
9675
+ format; nothing is translated field by field.
9655
9676
  - |-
9656
9677
  Catalog providers are BYOK-only, and the save enforces it through the model
9657
9678
  catalog: without a `_connectionId` the agent fails to save with 422
@@ -9660,6 +9681,18 @@ components:
9660
9681
  configuration.") — the model is a catalog row that is not offered on
9661
9682
  platform-managed credentials. Attach an HTTP connection to the vendor's API
9662
9683
  (token auth) before saving a catalog-provider agent.
9684
+ - |-
9685
+ Without a connection, a provider the catalog does not list is refused at the
9686
+ model check — 422 `ai_model_not_in_catalog` on `aiAgent.model` — so the
9687
+ message names the model, not the provider. Check the provider against the
9688
+ catalog before blaming the model.
9689
+ - |-
9690
+ For `azure_ai` and `bedrock` the vendor-specific settings ride the BYOK
9691
+ connection, not this object: an optional connection `baseURI` (the vendor
9692
+ endpoint the connector asks for), and connection settings forwarded to the
9693
+ vendor — Azure's `apiVersion`, Bedrock's `awsRegionName`. `bedrock`
9694
+ authenticates with a Bedrock API key (no IAM role); for `azure_ai`, `model` is
9695
+ the deployment name.
9663
9696
  model:
9664
9697
  type: string
9665
9698
  description: |-
@@ -10132,13 +10165,27 @@ components:
10132
10165
  web_search: Search the web for real-time information.
10133
10166
  mcp: Connect to an MCP server for additional external tools.
10134
10167
  image_generation: Generate images using an AI image model.
10135
- code_execution: 'Enable OpenAI''s built-in code-execution tool; carries no configuration block, send `{type: code_execution}` only'
10168
+ 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'
10136
10169
  tool: Reference a reusable Celigo Tool resource.
10137
10170
  description: |-
10138
10171
  Type of tool. Every type except `code_execution` is configured through the
10139
10172
  sibling object of the same name; OpenAI spells this one `code_execution`, while
10140
10173
  the Gemini and Anthropic overrides spell theirs `codeExecution` — the other spelling
10141
- fails with 422 `enum`.
10174
+ fails with 422 `enum`. Code execution runs only on a BYOK agent and only on
10175
+ models that support it: the code runs in OpenAI's sandbox with no outbound
10176
+ network access, the session lasts one hour, and each execution is billed as an
10177
+ AI Action to the connection's OpenAI account rather than as Celigo AI credits.
10178
+ x-celigo-ai-guidance:
10179
+ - |-
10180
+ Add `code_execution` only when the agent has a `_connectionId`. The save does
10181
+ not check the credential type, but every run and preview of an agent on
10182
+ Celigo-managed credentials is refused with `Code Execution requires a BYOK
10183
+ connection.` — switch the agent to a BYOK connection or leave the tool out.
10184
+ - |-
10185
+ Send the tool as `{type: code_execution}` with no other key — a sandbox or
10186
+ options object on it is rejected. Check that the chosen model supports code
10187
+ execution before adding it; the platform does not verify that at save and
10188
+ the UI hides the tool for models that lack it.
10142
10189
  webSearch:
10143
10190
  type: object
10144
10191
  description: Web search configuration (empty object to enable)
@@ -10492,12 +10539,28 @@ components:
10492
10539
  googleSearch: Use Google Search for real-time information grounding.
10493
10540
  urlContext: Retrieve and use content from specified URLs.
10494
10541
  fileSearch: Search through previously uploaded files.
10495
- codeExecution: 'Enable Gemini''s built-in code-execution tool; carries no configuration block, send `{type: codeExecution}` only'
10542
+ codeExecution: 'Let the model write and run code in Gemini''s sandbox on a BYOK agent; carries no configuration block, send `{type: codeExecution}` only'
10496
10543
  mcp: Connect to an MCP server for additional external tools.
10497
10544
  tool: Reference a reusable Celigo Tool resource.
10498
10545
  description: |-
10499
10546
  Type of Gemini tool. `codeExecution` is the Gemini spelling — `code_execution`
10500
- fails with 422 `enum`.
10547
+ fails with 422 `enum`. Code execution runs only on a BYOK agent and only on
10548
+ models that support it (not on `gemini-2.5-flash-image`): the code runs in
10549
+ Gemini's sandbox with no outbound network access for up to 30 seconds per
10550
+ execution and at most 5 executions per API call (the limit resets each turn),
10551
+ and each execution is billed as an AI Action to the connection's Google
10552
+ account rather than as Celigo AI credits.
10553
+ x-celigo-ai-guidance:
10554
+ - |-
10555
+ Add `codeExecution` only when the agent has a `_connectionId`. The save does
10556
+ not check the credential type, but every run and preview of an agent on
10557
+ Celigo-managed credentials is refused with `Code Execution requires a BYOK
10558
+ connection.` — switch the agent to a BYOK connection or leave the tool out.
10559
+ - |-
10560
+ Send the tool as `{type: codeExecution}` with no other key — any other key on
10561
+ it is rejected. Check that the chosen model supports code execution before
10562
+ adding it; the platform does not verify that at save and the UI hides the
10563
+ tool for models that lack it.
10501
10564
  googleSearch:
10502
10565
  type: object
10503
10566
  description: Google Search configuration (empty object to enable)
@@ -10829,10 +10892,26 @@ components:
10829
10892
  tool: Reference a reusable Celigo Tool resource.
10830
10893
  mcp: Connect to an MCP server for additional external tools.
10831
10894
  webSearch: Search the web for real-time information.
10832
- codeExecution: 'Enable Anthropic''s built-in code-execution tool; carries no configuration block, send `{type: codeExecution}` only'
10895
+ 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'
10833
10896
  description: |-
10834
10897
  Type of Claude tool. `codeExecution` is the Anthropic spelling — `code_execution`
10835
- fails with 422 `enum`.
10898
+ fails with 422 `enum`. Code execution (beta on Anthropic) runs only on a BYOK
10899
+ agent and only on models that support it: the code runs per API call in
10900
+ Anthropic's sandbox (Python 3.11 with pandas, numpy and matplotlib) with no
10901
+ outbound network access and no state kept between turns, and each execution is
10902
+ billed as an AI Action to the connection's Anthropic account rather than as
10903
+ Celigo AI credits.
10904
+ x-celigo-ai-guidance:
10905
+ - |-
10906
+ Add `codeExecution` only when the agent has a `_connectionId`. The save does
10907
+ not check the credential type, but every run and preview of an agent on
10908
+ Celigo-managed credentials is refused with `Code Execution requires a BYOK
10909
+ connection.` — switch the agent to a BYOK connection or leave the tool out.
10910
+ - |-
10911
+ Send the tool as `{type: codeExecution}` with no other key — any other key on
10912
+ it is rejected. Check that the chosen model supports code execution before
10913
+ adding it; the platform does not verify that at save and the UI hides the
10914
+ tool for models that lack it.
10836
10915
  tool:
10837
10916
  type: object
10838
10917
  description: Reference to a Celigo Tool resource, used when type is "tool".
@@ -11049,6 +11128,13 @@ components:
11049
11128
  - deepseek
11050
11129
  - cohere
11051
11130
  - groq
11131
+ - together_ai
11132
+ - azure_ai
11133
+ - fireworks_ai
11134
+ - bedrock
11135
+ - nvidia_nim
11136
+ - ollama_chat
11137
+ - vertex_ai
11052
11138
  required:
11053
11139
  - provider
11054
11140
  then:
@@ -11068,8 +11154,10 @@ components:
11068
11154
  - **openai**: OpenAI models (GPT-4.1, GPT-5, etc.). Configure via the `openai` object.
11069
11155
  - **gemini**: Google Gemini models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.gemini`.
11070
11156
  - **anthropic**: Anthropic Claude models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.anthropic`.
11071
- - **Catalog providers** — `mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`. Added
11072
- as catalog data rather than platform code, they share one generic flat format:
11157
+ - **Catalog providers** — every other value of `provider` (Mistral, xAI, Hugging Face,
11158
+ DeepSeek, Cohere, Groq, Together AI, Azure OpenAI, Fireworks AI, AWS Bedrock, NVIDIA NIM,
11159
+ Ollama Cloud and Google Vertex AI today; the catalog grows without a platform release).
11160
+ Added as catalog data rather than platform code, they share one generic flat format:
11073
11161
  `model`, `modelOptions`, `instructions`, `output`, and the `prompts` / `resources`
11074
11162
  arrays directly on this object.
11075
11163
 
@@ -11121,26 +11209,43 @@ components:
11121
11209
  - deepseek
11122
11210
  - cohere
11123
11211
  - groq
11212
+ - together_ai
11213
+ - azure_ai
11214
+ - fireworks_ai
11215
+ - bedrock
11216
+ - nvidia_nim
11217
+ - ollama_chat
11218
+ - vertex_ai
11124
11219
  x-enumDescriptions:
11125
- openai: Use OpenAI models via the OpenAI Responses API (built-in; `openai` block).
11126
- gemini: Use Google Gemini models via the LiteLLM proxy (built-in; `litellm` block).
11127
- anthropic: Use Anthropic Claude models via the LiteLLM proxy (built-in; `litellm` block).
11128
- mistral: Use Mistral models (catalog provider; generic flat format, BYOK).
11129
- xai: Use xAI Grok models (catalog provider; generic flat format, BYOK).
11130
- huggingface: Use Hugging Face inference endpoint models (catalog provider; generic flat format, BYOK).
11131
- deepseek: Use DeepSeek models (catalog provider; generic flat format, BYOK).
11132
- cohere: Use Cohere models (catalog provider; generic flat format, BYOK).
11133
- groq: Use Groq-hosted models (catalog provider; generic flat format, BYOK).
11134
- description: AI provider to use.
11220
+ openai: Use OpenAI models via the OpenAI Responses API (built-in; `openai` block; Celigo AI or BYOK)
11221
+ gemini: Use Google Gemini models via the LiteLLM proxy (built-in; `litellm` block; Celigo AI or BYOK)
11222
+ anthropic: Use Anthropic Claude models via the LiteLLM proxy (built-in; `litellm` block; Celigo AI or BYOK)
11223
+ mistral: Use Mistral models (catalog provider; generic flat format, BYOK)
11224
+ xai: Use xAI Grok models (catalog provider; generic flat format, BYOK)
11225
+ huggingface: Use Hugging Face inference endpoint models (catalog provider; generic flat format, BYOK)
11226
+ deepseek: Use DeepSeek models (catalog provider; generic flat format, BYOK)
11227
+ cohere: Use Cohere models (catalog provider; generic flat format, BYOK)
11228
+ groq: Use Groq-hosted models (catalog provider; generic flat format, BYOK)
11229
+ together_ai: Use models served by Together AI (catalog provider; generic flat format, BYOK)
11230
+ azure_ai: Use deployments on an Azure AI Foundry / Azure OpenAI resource — `model` is the deployment name (catalog provider; generic flat format, BYOK)
11231
+ fireworks_ai: Use models served by Fireworks AI (catalog provider; generic flat format, BYOK)
11232
+ 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)
11233
+ nvidia_nim: Use models served by NVIDIA NIM (catalog provider; generic flat format, BYOK)
11234
+ ollama_chat: Use models served by Ollama Cloud (catalog provider; generic flat format, BYOK)
11235
+ vertex_ai: Use Gemini models on Google Vertex AI with the customer's own GCP project (catalog provider; generic flat format, BYOK)
11236
+ description: |-
11237
+ AI provider to use. Built-in providers run on Celigo AI credentials or on a
11238
+ BYOK connection; every other provider is a catalog row that runs only on a BYOK
11239
+ connection. The catalog is data — a provider can be added without a platform
11240
+ release, and `GET /api/aiproviders` lists the rows currently offered.
11135
11241
  x-celigo-ai-guidance:
11136
11242
  - |-
11137
11243
  The provider decides the configuration format, and the server rejects a
11138
11244
  mismatch with 422 `invalid_provider_config_format`: `openai` needs the
11139
11245
  `openai` block, `gemini` and `anthropic` need the `litellm` block (Gemini- or
11140
- Claude-specific settings under `litellm._overrides`), and the catalog
11141
- providers (`mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`) need the
11142
- generic flat format — `model` and `modelOptions` directly on this object,
11143
- never an `openai` or `litellm` block.
11246
+ Claude-specific settings under `litellm._overrides`), and every other
11247
+ provider (the catalog providers) needs the generic flat format — `model` and
11248
+ `modelOptions` directly on this object, never an `openai` or `litellm` block.
11144
11249
  - |-
11145
11250
  Catalog providers are BYOK-only, and the save enforces it through the model
11146
11251
  catalog: without a `_connectionId` the guardrail fails to save with 422
@@ -11149,6 +11254,18 @@ components:
11149
11254
  configuration.") — the model is a catalog row that is not offered on
11150
11255
  platform-managed credentials. Attach an HTTP connection to the vendor's API
11151
11256
  (token auth) before saving a catalog-provider guardrail.
11257
+ - |-
11258
+ Without a connection, a provider the catalog does not list is refused at the
11259
+ model check — 422 `ai_model_not_in_catalog` on `guardrail.aiAgent.model` — so the
11260
+ message names the model, not the provider. Check the provider against the
11261
+ catalog before blaming the model.
11262
+ - |-
11263
+ For `azure_ai` and `bedrock` the vendor-specific settings ride the BYOK
11264
+ connection, not this object: an optional connection `baseURI` (the vendor
11265
+ endpoint the connector asks for), and connection settings forwarded to the
11266
+ vendor — Azure's `apiVersion`, Bedrock's `awsRegionName`. `bedrock`
11267
+ authenticates with a Bedrock API key (no IAM role); for `azure_ai`, `model` is
11268
+ the deployment name.
11152
11269
  model:
11153
11270
  type: string
11154
11271
  description: |-
@@ -12032,6 +12149,13 @@ components:
12032
12149
  - deepseek
12033
12150
  - cohere
12034
12151
  - groq
12152
+ - together_ai
12153
+ - azure_ai
12154
+ - fireworks_ai
12155
+ - bedrock
12156
+ - nvidia_nim
12157
+ - ollama_chat
12158
+ - vertex_ai
12035
12159
  required:
12036
12160
  - provider
12037
12161
  then:
@@ -15442,12 +15566,16 @@ components:
15442
15566
  - |-
15443
15567
  On a grouped record (the export groups rows, so the record is an
15444
15568
  array) only `create` can author output — build it from the rows with
15445
- `$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`.
15569
+ `$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`
15570
+ (`$.rows[0].field` and `$.rows[*]` with `inputContext: envelope`).
15446
15571
  `modify` has no object to overlay onto an array: the record passes
15447
- through untouched and the processor reports success. Either mode
15448
- reshapes the inside of one record; neither changes how many records
15449
- the page carries (that is the export's `preSavePage` hook) or whether
15450
- the export groups at all (that is its grouping setting).
15572
+ through untouched and the processor reports success. Paths written
15573
+ for one object record (`$.field`, an entry `$.lines[*]`) resolve
15574
+ nothing there, so `create` returns `{}` for each record, also with
15575
+ no error (live, 2026-10-30). Either mode reshapes the inside of one
15576
+ record; neither changes how many records the page carries (that is
15577
+ the export's `preSavePage` hook) or whether the export groups at all
15578
+ (that is its grouping setting).
15451
15579
  examples:
15452
15580
  - create
15453
15581
  - modify
@@ -15512,8 +15640,8 @@ components:
15512
15640
  - record
15513
15641
  - envelope
15514
15642
  x-enumDescriptions:
15515
- record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment) — the default when absent.
15516
- 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`).
15643
+ 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.
15644
+ 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`).
15517
15645
  description: |
15518
15646
  Controls the JSON shape the transformTwoDotZero processor
15519
15647
  evaluates `mappings[].extract` JSONPath values against at
@@ -15529,24 +15657,38 @@ components:
15529
15657
  processor sees the FLAT record as its evaluation root.
15530
15658
  `mappings[].extract` JSONPath MUST anchor directly at
15531
15659
  `$` with NO `record.` segment — e.g. `"$.orderId"`,
15532
- `"$.customer.email"`; PLACEHOLDER extracts use
15660
+ `"$.customer.email"` on an object record, `"$[0].orderId"`
15661
+ on a grouped one; PLACEHOLDER extracts use
15533
15662
  `"$.PLACEHOLDER_<field>"`.
15534
15663
  This is the dominant Celigo idiom and the right choice for new transforms.
15535
15664
  - `envelope`: the processor sees a wrapped object
15536
15665
  `{record: {...}, job, testMode, settings, headers,
15537
15666
  queryParams}` (plus `fileMeta` on file-provider steps).
15538
15667
  `mappings[].extract` JSONPath MUST include the
15539
- `record.` segment for record fields — e.g.
15540
- `"$.record.orderId"` — and reads `headers` and
15668
+ `record.` segment for an object record's fields — e.g.
15669
+ `"$.record.orderId"`; a grouped record sits under `rows`
15670
+ instead (`"$.rows[0].orderId"`) — and reads `headers` and
15541
15671
  `queryParams` beside it (`$.headers['X-Id']`);
15542
15672
  PLACEHOLDER extracts use `"$.record.PLACEHOLDER_<field>"`.
15543
15673
  Pick this only when the transform was authored against
15544
15674
  the envelope shape on purpose.
15545
15675
  - |-
15546
- Handlebars expressions inside `extract`
15547
- (`{{record.field}}`, `{{dateFormat ... record.field}}`)
15548
- ALWAYS reference the `record` root regardless of
15676
+ Handlebars expressions inside `extract` reference the
15677
+ `record` root on an object record (`{{record.field}}`,
15678
+ `{{dateFormat ... record.field}}`) and `rows` on a
15679
+ grouped one (`{{rows.0.field}}`), regardless of
15549
15680
  `inputContext` — only JSONPath anchoring flips.
15681
+ - |-
15682
+ ## Grouped records
15683
+
15684
+ When the export groups rows, each record is an array of
15685
+ rows. In `record` mode JSONPath roots at that array
15686
+ (`$[0].field`, `$[*]`); `envelope` binds it as `rows`,
15687
+ not `record` — `$.rows[0].field`, and an entry
15688
+ `$.rows[*]` whose children read `$.rows.field` — while
15689
+ `$.record[0].field` and `$.record[*]` resolve nothing,
15690
+ with no error (live, 2026-10-30). Handlebars extracts
15691
+ read it as `rows` in both modes (`{{rows.0.field}}`).
15550
15692
  - |-
15551
15693
  In `envelope` mode the output is still a bare record: a
15552
15694
  `modify` transform returns the record with its mapped
@@ -15567,7 +15709,8 @@ components:
15567
15709
  ``mappings[].extract`` JSONPath values MUST anchor
15568
15710
  directly at ``$`` with NO ``record.`` segment — for
15569
15711
  example ``"$.orderId"`` or
15570
- ``"$.customer.email"``. PLACEHOLDER extracts use
15712
+ ``"$.customer.email"`` on an object record, and
15713
+ ``"$[0].orderId"`` on a grouped one. PLACEHOLDER extracts use
15571
15714
  ``"$.PLACEHOLDER_<field>"``. This is the dominant
15572
15715
  Celigo idiom and the right choice for new transforms.
15573
15716
 
@@ -15579,9 +15722,10 @@ components:
15579
15722
  ``record``) — the
15580
15723
  same runtime-context envelope Handlebars / SQL /
15581
15724
  GraphQL templates render against. ``mappings[].extract``
15582
- JSONPath values for record fields MUST include the
15725
+ JSONPath values for an object record's fields MUST include the
15583
15726
  ``record.`` segment — for example ``"$.record.orderId"``
15584
- or ``"$.record.customer.email"`` — while ``headers`` and
15727
+ or ``"$.record.customer.email"``; a grouped record's rows
15728
+ sit under ``rows`` instead (``"$.rows[0].orderId"``) — while ``headers`` and
15585
15729
  ``queryParams`` are read beside it
15586
15730
  (``"$.headers['X-Id']"``). PLACEHOLDER extracts
15587
15731
  use ``"$.record.PLACEHOLDER_<field>"``. Pick this
@@ -15594,8 +15738,9 @@ components:
15594
15738
 
15595
15739
  Handlebars expressions inside ``extract``
15596
15740
  (``{{record.field}}``,
15597
- ``{{dateFormat ... record.field}}``, etc.) ALWAYS
15598
- reference the runtime context's ``record`` root
15741
+ ``{{dateFormat ... record.field}}``, etc.) reference the
15742
+ runtime context's ``record`` root on an object record,
15743
+ and ``rows`` (``{{rows.0.field}}``) on a grouped one,
15599
15744
  regardless of ``inputContext`` — the Handlebars runtime
15600
15745
  always sees the wrapped envelope. Only JSONPath
15601
15746
  behavior flips with this field.
@@ -16790,7 +16935,7 @@ components:
16790
16935
  MongodbImport: MongoDB database import for document-based operations.
16791
16936
  DynamodbImport: Amazon DynamoDB import for NoSQL table operations.
16792
16937
  WrapperImport: Custom adaptor import built outside of Celigo (rarely used).
16793
- AiAgentImport: AI agent import using OpenAI, Gemini, Anthropic Claude, or a BYOK catalog provider (Mistral, xAI, Hugging Face, DeepSeek, Cohere, Groq) for data processing.
16938
+ AiAgentImport: AI agent import using OpenAI, Gemini, Anthropic Claude, or a BYOK catalog provider (Mistral, xAI, Hugging Face, DeepSeek, Cohere, Groq, Together AI, Azure OpenAI, Fireworks AI, AWS Bedrock, NVIDIA NIM, Ollama Cloud, Google Vertex AI) for data processing.
16794
16939
  GuardrailImport: Safety and compliance check import for PII detection, moderation, or AI evaluation.
16795
16940
  FileSystemImport: Local or network file system import.
16796
16941
  ToolImport: Import that executes a reusable Celigo Tool resource.
@@ -1179,8 +1179,10 @@ paths:
1179
1179
  `http.relativeURI`; triple braces insert it unchanged. A `timestamp` with no time zone
1180
1180
  renders in UTC.
1181
1181
 
1182
- A null value, or a field under an object that is null, renders empty here. An HTTP import
1183
- escapes values its own way, at run time and in the import preview: in its JSON body a
1182
+ By default a null value, a field under an object that is null, and a path the data doesn't
1183
+ carry all render empty here. With `rules.strict` true, a path the data doesn't carry or one
1184
+ through a null object fails with 422, while a null or empty value still renders empty. An
1185
+ HTTP import escapes values its own way, at run time and in the import preview: in its JSON body a
1184
1186
  double-brace value that is null, or under a null object, is written as the text `null`
1185
1187
  (triple braces rendered `{{{record.customer.name}}}` empty, whether `customer` or its `name`
1186
1188
  was null); in its relative URI a null field is sent as the text
@@ -1221,6 +1223,21 @@ paths:
1221
1223
  description: Form of the result; `text` returns the rendered string.
1222
1224
  examples:
1223
1225
  - text
1226
+ strict:
1227
+ type: boolean
1228
+ default: false
1229
+ description: |-
1230
+ When true, a path the data doesn't carry, or one through a missing or null
1231
+ object, fails the render with 422 instead of rendering empty: `"poNumber" not
1232
+ defined in the model`, or `not defined in undefined` / `not defined in null`
1233
+ when the object above it is missing or null — the detail a step's
1234
+ `handlebars_template_parse_error` carries. A null or empty value still renders
1235
+ empty.
1236
+ x-celigo-ai-guidance:
1237
+ - |-
1238
+ Render with `strict: true` to check a template's paths against a sample
1239
+ record: by default a misspelled or wrongly rooted path (`{{record.poNumber}}`
1240
+ on a record that carries `po_number`) renders empty with 200.
1224
1241
  options:
1225
1242
  type: object
1226
1243
  description: |-
@@ -1292,6 +1309,16 @@ paths:
1292
1309
  data:
1293
1310
  record:
1294
1311
  name: Smith & Sons
1312
+ strict:
1313
+ summary: Fail on a path the record doesn't carry
1314
+ value:
1315
+ rules:
1316
+ template: '{{record.poNumber}}'
1317
+ resultMode: text
1318
+ strict: true
1319
+ data:
1320
+ record:
1321
+ po_number: '10482'
1295
1322
  static_lookup:
1296
1323
  summary: Resolve an HTTP import's static lookup
1297
1324
  value:
@@ -1352,7 +1379,8 @@ paths:
1352
1379
  '422':
1353
1380
  description: |-
1354
1381
  The template could not be rendered, for example because it calls a helper that does not
1355
- exist ('Missing helper: "first"').
1382
+ exist ('Missing helper: "first"') or, with `rules.strict`, reads a path the data doesn't
1383
+ carry ('"poNumber" not defined in the model').
1356
1384
  content:
1357
1385
  application/json:
1358
1386
  schema:
@@ -518,7 +518,8 @@ components:
518
518
  description: |-
519
519
  Base number of endpoints (distinct connected applications) included with the plan, per
520
520
  environment. Whether the count is taken from endpoints in use or from endpoints invoked
521
- in the billing period depends on the account's pricing model.
521
+ in the billing period depends on the account's pricing model, which the license's `type`
522
+ names.
522
523
  example: 600
523
524
  numAddOnEndpoints:
524
525
  type: integer
@@ -529,7 +530,7 @@ components:
529
530
  description: |-
530
531
  Base flow entitlement included with the plan, per environment. Whether it caps enabled
531
532
  flows or the distinct flows run in a billing period — and whether reaching it blocks or
532
- only notifies — depends on the account's pricing model.
533
+ only notifies — depends on the account's pricing model, which the license's `type` names.
533
534
  example: 80
534
535
  numAddOnFlows:
535
536
  type: integer
@@ -581,9 +582,14 @@ components:
581
582
  the number of environments, prepaid AI balances, and the other non-resource fields —
582
583
  belong to the parent license and are not repeated per environment.
583
584
  - |-
584
- What a flow or endpoint entitlement METERS depends on the account's pricing model
585
- (`type` plus tier generation). Interpret the counts for the plan this account is on
586
- only; do not infer the rule from field names.
585
+ No field names what a flow or endpoint entitlement METERS; the account-level license's
586
+ `type` tells it. A `platform` license meters runs: on `GET /v1/licenseEntitlementUsage`,
587
+ `flowUsage.numEnabled` counts the distinct flows that ran in the billing period and
588
+ `endpointUsage.numConsumed` the endpoints they used, and `GET /v1/historicalMonthlyUsage`
589
+ returns its monthly rows. An `endpoint` license meters enabled resources: its endpoints are
590
+ counted across enabled flows. Neither `endpoint` nor `integrator` licenses store monthly
591
+ usage (that route fails with 500 for them). Interpret the counts for the plan this account
592
+ is on only; do not infer the rule from field names such as `numEnabled`.
587
593
  properties:
588
594
  _id:
589
595
  type: string
@@ -632,8 +638,8 @@ components:
632
638
  - integrationAppChild
633
639
  x-enumDescriptions:
634
640
  integrator: Account-level subscription (legacy integrator pricing model).
635
- platform: Account-level subscription (platform pricing model; the tier name carries the plan generation).
636
- endpoint: Account-level subscription (endpoint pricing model, metered on distinct endpoints).
641
+ platform: Account-level subscription (platform pricing model, metered on flow runs in the billing period; the tier name carries the plan generation).
642
+ endpoint: Account-level subscription (endpoint pricing model, metered on the distinct endpoints enabled flows use).
637
643
  connector: Connector-specific license for an Integration App.
638
644
  integrationApp: Integration App license (parent).
639
645
  integrationAppChild: Integration App child license (inherits from a parent via `_parentId`).