@celigo/api-specs 0.2.170 → 0.2.172

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/tool.yml CHANGED
@@ -3578,7 +3578,11 @@ components:
3578
3578
 
3579
3579
  **Simple Types (direct value mapping)**
3580
3580
  - `string`: Text values, converts other types to string representation
3581
- - `number`: Numeric values, attempts conversion from strings
3581
+ - `number`: Numeric values. Converts a numeric string (`"24"` → `24`,
3582
+ `"007"` → `7`) and leaves the field out for an empty string; a value
3583
+ holding letters or a thousands separator (`"1,250.00"`) fails the
3584
+ record with `non_parsable_string` (`<generate>: String contains alpha
3585
+ characters`)
3582
3586
  - `boolean`: True/false values, converts truthy/falsy values
3583
3587
 
3584
3588
  Dates are represented as strings — use `string` for date fields and
@@ -3621,8 +3625,14 @@ components:
3621
3625
  - |-
3622
3626
  Missing `dataType` is rejected at save with validation error
3623
3627
  `[mandatory_destination_datatype] Destination datatype is a
3624
- required field.` When in doubt, use `"string"` — it accepts
3625
- any source value and the runtime will coerce it.
3628
+ required field.`
3629
+ - |-
3630
+ Give each row the type the destination field expects; `"string"` is
3631
+ not a safe default. It accepts any source value, but sends a numeric
3632
+ source as text (`"24"`), which a destination that checks JSON types
3633
+ refuses. Map numeric destination fields as `number`, which fails a
3634
+ record (`non_parsable_string`) only when the value holds letters or a
3635
+ thousands separator.
3626
3636
  enum:
3627
3637
  - string
3628
3638
  - number
@@ -3634,7 +3644,7 @@ components:
3634
3644
  - objectarray
3635
3645
  x-enumDescriptions:
3636
3646
  string: Text values; converts other types to their string representation.
3637
- number: Numeric values; attempts conversion from strings.
3647
+ number: Numeric values; converts numeric strings, and fails the record (`non_parsable_string`) on letters or a thousands separator.
3638
3648
  boolean: True/false values; converts truthy/falsy values.
3639
3649
  object: Nested object built from child `mappings`, or copied whole with `extract` (not both).
3640
3650
  stringarray: Array of string values.
@@ -4662,7 +4672,11 @@ components:
4662
4672
 
4663
4673
  **Simple Types (direct value mapping)**
4664
4674
  - `string`: Text values, converts other types to string representation
4665
- - `number`: Numeric values, attempts conversion from strings
4675
+ - `number`: Numeric values. Converts a numeric string (`"24"` → `24`,
4676
+ `"007"` → `7`) and leaves the field out for an empty string; a value
4677
+ holding letters or a thousands separator (`"1,250.00"`) fails the
4678
+ record with `non_parsable_string` (`<generate>: String contains alpha
4679
+ characters`)
4666
4680
  - `boolean`: True/false values, converts truthy/falsy values
4667
4681
 
4668
4682
  Dates are represented as strings — use `string` for date fields and
@@ -4705,8 +4719,14 @@ components:
4705
4719
  - |-
4706
4720
  Missing `dataType` is rejected at save with validation error
4707
4721
  `[mandatory_destination_datatype] Destination datatype is a
4708
- required field.` When in doubt, use `"string"` — it accepts
4709
- any source value and the runtime will coerce it.
4722
+ required field.`
4723
+ - |-
4724
+ Give each row the type the destination field expects; `"string"` is
4725
+ not a safe default. It accepts any source value, but sends a numeric
4726
+ source as text (`"24"`), which a destination that checks JSON types
4727
+ refuses. Map numeric destination fields as `number`, which fails a
4728
+ record (`non_parsable_string`) only when the value holds letters or a
4729
+ thousands separator.
4710
4730
  enum:
4711
4731
  - string
4712
4732
  - number
@@ -4718,7 +4738,7 @@ components:
4718
4738
  - objectarray
4719
4739
  x-enumDescriptions:
4720
4740
  string: Text values; converts other types to their string representation.
4721
- number: Numeric values; attempts conversion from strings.
4741
+ number: Numeric values; converts numeric strings, and fails the record (`non_parsable_string`) on letters or a thousands separator.
4722
4742
  boolean: True/false values; converts truthy/falsy values.
4723
4743
  object: Nested object built from child `mappings`, or copied whole with `extract` (not both).
4724
4744
  stringarray: Array of string values.
@@ -5860,7 +5880,7 @@ components:
5860
5880
 
5861
5881
  This value is used as a fallback when:
5862
5882
  1. The source value doesn't match any key in the map
5863
- 2. allowFailures is set to true
5883
+ 2. allowFailures is true or omitted
5864
5884
 
5865
5885
  Setting an appropriate default helps prevent flow failures due to unexpected
5866
5886
  values and provides predictable behavior for edge cases.
@@ -5870,8 +5890,10 @@ components:
5870
5890
  - Original value indicators: "{Original Value}", "No mapping found"
5871
5891
  - Neutral values: "Other", "N/A", "Miscellaneous"
5872
5892
 
5873
- If allowFailures is false, a record whose value is unmapped fails and the default
5874
- is ignored.
5893
+ A save refuses a default together with an explicit `allowFailures: false`
5894
+ (422 `Lookups with default set can not have allowFailures explicitly set to
5895
+ false.`): a lookup either fails a miss (`allowFailures: false`, no default) or
5896
+ falls back to its default.
5875
5897
  examples:
5876
5898
  - Unknown
5877
5899
  - Other
@@ -5879,7 +5901,8 @@ components:
5879
5901
  - Unmapped Value
5880
5902
  - '{Original Value}'
5881
5903
  x-celigo-ai-guidance:
5882
- - 'Omit this field entirely when no fallback value is intended: a miss the lookup lets through then leaves the mapped field out, and with `allowFailures: false` a miss fails the record whatever the default. An empty string is a value, not "no default" — the save accepts `default: ""`, and an allowed miss writes `""`.'
5904
+ - 'Omit this field entirely when no fallback value is intended: a miss the lookup lets through then leaves the mapped field out, and `allowFailures: false` (which a save refuses alongside a default) fails it. An empty string is a value, not "no default" — the save accepts `default: ""`, and an allowed miss writes `""`.'
5905
+ - A default sends every unmapped value with no error, so add the missing key to the map when the destination needs the real value; keys match the extracted value exactly (case, spacing and suffixes count), and a save replaces the whole map.
5883
5906
  allowFailures:
5884
5907
  type:
5885
5908
  - boolean
@@ -13625,6 +13648,8 @@ components:
13625
13648
  Reference the existing record ID in the UPDATE URI with `{{{data.0.fieldName}}}` (triple braces with the data.0 prefix).
13626
13649
  Use separate array elements per operation rather than `{{#if}}` conditionals inside a single URI.
13627
13650
  URI templates render strictly: a path that is undefined on the record — such as `record.<field>` on a grouped record, whose root is `rows` — fails the request instead of rendering empty.
13651
+ A field the record lacks, or a `{{lookup.<name>}}` whose lookup found nothing, fails that record before anything is sent, with `handlebars_template_parse_error` (source `application`, classification `parse`): `Failed to generate request url from template: <URL>. Details: "<field>" not defined in the model.` That is missing data, not template syntax, and a retry of the same record fails the same way: send records that may lack the destination id through a composite UPDATE/CREATE import (`existingExtract`), or skip them with `ignoreMissing` and `ignoreExtract`.
13652
+ A field that holds an empty string or null is defined: it renders empty, and the request is sent without the value.
13628
13653
  x-celigo-ai-guidance:
13629
13654
  - '**CRITICAL: This MUST be an array of strings, NOT an object.**'
13630
13655
  - |-
@@ -14668,9 +14693,17 @@ components:
14668
14693
  extract:
14669
14694
  type: string
14670
14695
  description: |
14671
- JSONPath expression that selects the lookup value from the
14672
- HTTP response body. ``$.`` prefix optional. Examples:
14673
- ``$.data[0].id``, ``$.results.primaryKey``, ``id``.
14696
+ Path to the lookup value in the HTTP response body, written
14697
+ without a ``$.`` prefix: ``id``, ``results[0].id``, or ``ids``
14698
+ for an array of ids. A ``$.``-prefixed path, a ``[*]``
14699
+ wildcard, or a dot path through an array (``results.id``)
14700
+ resolves nothing, so the lookup misses: with
14701
+ ``allowFailures: false`` the record fails
14702
+ (``batch_lookup_evaluation_failed``); otherwise it goes on with
14703
+ ``default`` or without the value, and nothing errors. A
14704
+ composite import whose ``existingLookupName`` names such a
14705
+ lookup sends every record to CREATE. Mapper 2.0 mapping
14706
+ extracts are the opposite: they take the ``$.``.
14674
14707
  _lookupCacheId:
14675
14708
  type: string
14676
14709
  format: objectId
@@ -14694,13 +14727,17 @@ components:
14694
14727
  - string
14695
14728
  - 'null'
14696
14729
  description: |
14697
- Value returned when the HTTP request returns no usable
14698
- match. When omitted and ``allowFailures`` is false, an
14699
- unmatched lookup halts the record. Stored as null when no
14730
+ Value written when the lookup finds no match and the miss is
14731
+ allowed (``allowFailures`` true, or omitted on a static
14732
+ ``map``). A save refuses a ``default`` together with an
14733
+ explicit ``allowFailures: false`` (422 "Lookups with default
14734
+ set can not have allowFailures explicitly set to false."), so
14735
+ a lookup either fails a miss (``allowFailures: false``, no
14736
+ default) or falls back to its default. Stored as null when no
14700
14737
  fallback is configured.
14701
14738
  x-celigo-ai-guidance:
14702
14739
  - 'Omit this field entirely when no fallback value is intended. An empty string is a value, not "no default": the save accepts `default: ""`, and a miss the lookup lets through writes `""`.'
14703
- - 'A fallback only takes effect on an allowed miss — pair a real default with allowFailures: true (or useDefaultOnMultipleMatches: true for the ambiguous-match case).'
14740
+ - 'A default raises no error: every unmatched value goes out as the default with a 200. Set one only when a single fallback is right for every value the lookup can''t match; when a miss must stop the record, set allowFailures: false and leave the default out. An ambiguous answer (two or more matches) doesn''t use the default either: see useDefaultOnMultipleMatches.'
14704
14741
  allowFailures:
14705
14742
  type:
14706
14743
  - boolean
@@ -14710,20 +14747,40 @@ components:
14710
14747
  field out when there is none) and the record continues. When
14711
14748
  false, a miss fails the record: ``lookup_error`` ("Could not find
14712
14749
  value for static lookup: …") for a static ``map``,
14713
- ``lookupcache_evaluation_failed`` for a cache. Omitted or null,
14750
+ ``lookupcache_evaluation_failed`` for a cache, and
14751
+ ``batch_lookup_evaluation_failed`` (source ``internal``, "<field>:
14752
+ The batch lookup could not be evaluated. Check the value in the
14753
+ key '<value>', and try again.") for a live request that matches
14754
+ nothing or whose ``extract`` resolves nothing. Omitted or null,
14714
14755
  a miss doesn't fail the record either: a static lookup writes
14715
14756
  its ``default`` if it has one, and a lookup without one (static,
14716
14757
  cache, or a live request that matches nothing or fails) leaves
14717
14758
  the mapped field out.
14759
+
14760
+ False is also the only setting under which an ambiguous answer
14761
+ fails the record: two or more values at ``extract`` (an array of
14762
+ ids or of result objects) fail it with ``lookup_conflict``
14763
+ ("Multiple matches found for lookup."). Omitted, null or true,
14764
+ the first value is sent with no error, and an array of result
14765
+ objects is written as the text ``[object Object]``. An indexed
14766
+ ``extract`` (``ids[0]``) takes the first match whatever this
14767
+ field says, so it hides an ambiguous search rather than fixing
14768
+ it.
14718
14769
  x-celigo-ai-guidance:
14719
14770
  - Set false explicitly when a miss must stop the record. Leaving the field out lets the record through with the default or without the looked-up value, so a destination that needs the real value gets a request without it and nothing errors.
14771
+ - 'Fix an ambiguous lookup in its search, not here: query on a key that identifies one record (an email, an external id) and keep false, so a search that still finds two fails instead of writing against the first match.'
14720
14772
  useDefaultOnMultipleMatches:
14721
14773
  type: boolean
14722
14774
  description: |
14723
- Controls behaviour when the response contains more than one
14724
- match. When true, the ``default`` value is returned instead
14725
- of raising an ambiguous-match error. When false (default),
14726
- multiple matches are treated as a failure.
14775
+ Meant to return ``default`` when the response holds more than
14776
+ one match. On an HTTP import it has not been seen to take
14777
+ effect: with ``allowFailures`` omitted or true the first match
14778
+ is sent whatever this flag says, with or without a
14779
+ ``default``, and with ``allowFailures: false`` the record
14780
+ fails with ``lookup_conflict``. Two or more matches fail the
14781
+ record only when ``allowFailures`` is false (see
14782
+ ``allowFailures``), so make the search match one record
14783
+ rather than relying on this flag.
14727
14784
  type: array
14728
14785
  Ftp:
14729
14786
  type: object
@@ -21213,7 +21270,7 @@ components:
21213
21270
  x-enumDescriptions:
21214
21271
  text: Free-form text response from the model.
21215
21272
  json_schema: Structured JSON output conforming to a defined schema.
21216
- blob: Binary data output for non-text content.
21273
+ blob: Image generation — the run calls the image generation tool and returns the stored image's `blobKey`, not `_text` or `_json`.
21217
21274
  default: text
21218
21275
  description: Output format type.
21219
21276
  schemaMode:
@@ -21435,11 +21492,6 @@ components:
21435
21492
  an object without a non-empty name fails with a
21436
21493
  missing-required-field error. String entries are the
21437
21494
  legacy form and stay valid.
21438
- allowedPrompts:
21439
- type: array
21440
- description: Specific prompts to allow from the MCP server (used for MCP prompt entries; all if omitted).
21441
- items:
21442
- type: string
21443
21495
  tool:
21444
21496
  type: object
21445
21497
  description: |
@@ -21582,7 +21634,7 @@ components:
21582
21634
  x-enumDescriptions:
21583
21635
  text: Free-form text response from the model.
21584
21636
  json_schema: Structured JSON output conforming to a defined schema.
21585
- blob: Binary data output for non-text content.
21637
+ blob: Image generation — the run returns the stored image's `blobKey`, not `_text` or `_json`.
21586
21638
  default: text
21587
21639
  schemaMode:
21588
21640
  type: string
@@ -21751,11 +21803,6 @@ components:
21751
21803
  description: Display description shown for the tool.
21752
21804
  required:
21753
21805
  - name
21754
- allowedPrompts:
21755
- type: array
21756
- description: Specific prompts to allow from the MCP server (used for MCP prompt entries; all if omitted).
21757
- items:
21758
- type: string
21759
21806
  tool:
21760
21807
  type: object
21761
21808
  description: Reference to a Celigo Tool resource, used when type is "tool".
@@ -22268,9 +22315,9 @@ components:
22268
22315
  LLM configuration for an `ai_agent` guardrail — which provider and model evaluate each
22269
22316
  record, with instructions, parameter tuning, and output format. Guardrails never invoke
22270
22317
  tools, so unlike an AI agent import no block here accepts a `tools` array. MCP `prompts`
22271
- and `resources` are accepted on save, but an unreachable MCP server doesn't fail the
22272
- run (verified on OpenAI), so put the policy the guardrail must apply in its
22273
- instructions. Providers come in two families with two configuration formats:
22318
+ and `resources` are accepted on save but never used at run time, so put the policy the
22319
+ guardrail must apply in its instructions. Providers come in two families with two
22320
+ configuration formats:
22274
22321
 
22275
22322
  - **Built-in providers** — each has its own configuration block.
22276
22323
  - **openai**: OpenAI models (GPT-4.1, GPT-5, etc.). Configure via the `openai` object.
@@ -22435,7 +22482,7 @@ components:
22435
22482
  type: array
22436
22483
  description: |-
22437
22484
  MCP prompt entries saved with a catalog-provider guardrail (generic flat format).
22438
- Each entry references one MCP connection and the prompt names allowed from it.
22485
+ Each entry references one MCP connection and prompt names; a guardrail's run never fetches them.
22439
22486
  items:
22440
22487
  type: object
22441
22488
  properties:
@@ -22456,7 +22503,7 @@ components:
22456
22503
  description: Connection to the MCP server that exposes the prompts.
22457
22504
  allowedPrompts:
22458
22505
  type: array
22459
- description: Prompt names the model may fetch from the server.
22506
+ description: Prompt names saved with the entry; a guardrail's run never fetches them.
22460
22507
  items:
22461
22508
  type: string
22462
22509
  x-celigo-ai-guidance:
@@ -22713,7 +22760,7 @@ components:
22713
22760
  type: array
22714
22761
  description: |-
22715
22762
  MCP prompt entries saved with the guardrail. Each item references one
22716
- MCP connection and the prompt names allowed from it.
22763
+ MCP connection and prompt names; a guardrail's run never fetches them.
22717
22764
  items:
22718
22765
  type: object
22719
22766
  properties:
@@ -22735,7 +22782,7 @@ components:
22735
22782
  description: Connection to the MCP server.
22736
22783
  allowedPrompts:
22737
22784
  type: array
22738
- description: Prompt names to allow from the MCP server.
22785
+ description: Prompt names saved with the entry; a guardrail's run never fetches them.
22739
22786
  items:
22740
22787
  type: string
22741
22788
  resources:
@@ -22902,7 +22949,7 @@ components:
22902
22949
  type: array
22903
22950
  description: |-
22904
22951
  MCP prompt entries saved with a Gemini guardrail. Each item references one
22905
- MCP connection and the prompt names allowed from it.
22952
+ MCP connection and prompt names; a guardrail's run never fetches them.
22906
22953
  items:
22907
22954
  type: object
22908
22955
  properties:
@@ -22924,7 +22971,7 @@ components:
22924
22971
  description: Connection to the MCP server.
22925
22972
  allowedPrompts:
22926
22973
  type: array
22927
- description: Prompt names to allow from the MCP server.
22974
+ description: Prompt names saved with the entry; a guardrail's run never fetches them.
22928
22975
  items:
22929
22976
  type: string
22930
22977
  resources:
@@ -23124,7 +23171,7 @@ components:
23124
23171
  type: array
23125
23172
  description: |-
23126
23173
  MCP prompt entries saved with a Claude guardrail. Each item references one
23127
- MCP connection and the prompt names allowed from it.
23174
+ MCP connection and prompt names; a guardrail's run never fetches them.
23128
23175
  items:
23129
23176
  type: object
23130
23177
  properties:
@@ -23146,7 +23193,7 @@ components:
23146
23193
  description: Connection to the MCP server.
23147
23194
  allowedPrompts:
23148
23195
  type: array
23149
- description: Prompt names to allow from the MCP server.
23196
+ description: Prompt names saved with the entry; a guardrail's run never fetches them.
23150
23197
  items:
23151
23198
  type: string
23152
23199
  resources:
@@ -23248,8 +23295,8 @@ components:
23248
23295
  `aiAgent.openai.tools`, `aiAgent.litellm._overrides.gemini.tools`, `….anthropic.tools`) —
23249
23296
  any non-empty array fails the save with 422 `guardrail_tools_not_allowed` ("Tools aren't
23250
23297
  supported on a guardrail AI agent configuration…"), on create and on update. `prompts` and
23251
- `resources` are accepted on save, but an unreachable MCP server doesn't fail the run
23252
- (verified on OpenAI), so put the policy in the instructions. The server still echoes
23298
+ `resources` are accepted on save but never used at run time, so put the policy in the
23299
+ instructions. The server still echoes
23253
23300
  `openai.tools: []` on OpenAI guardrails.
23254
23301
  properties:
23255
23302
  type:
@@ -23816,15 +23863,30 @@ components:
23816
23863
  - `"lessthan"`: Value is less than specified value (is less than)
23817
23864
  - `"lessthanequals"`: Value is less than or equal to specified value (is less than or equals)
23818
23865
  - `"startswith"`: String starts with specified prefix (starts with)
23866
+ - `"notstartswith"`: String does not start with specified prefix (does not start with)
23819
23867
  - `"endswith"`: String ends with specified suffix (ends with)
23868
+ - `"notendswith"`: String does not end with specified suffix (does not end with)
23820
23869
  - `"contains"`: String contains specified substring (contains)
23821
23870
  - `"doesnotcontain"`: String does not contain specified substring (does not contain)
23822
23871
  - `"empty"`: Field is missing or empty (is empty)
23823
23872
  - `"notempty"`: Field contains a value (is not empty)
23824
- - `"matches"`: Matches a regular expression (matches)
23825
-
23826
- `isempty`, `isnotempty` and `anyof` are not operators: they are refused with 422
23827
- "Invalid operation: <name>".
23873
+ - `"matches"`: Matches a regular expression, ignoring case (matches)
23874
+
23875
+ Operator names are case-insensitive: `NOTEMPTY` and `endsWith` work and are stored
23876
+ as sent. `isempty`, `isnotempty`, `anyof`, `notcontains`, `doesnotstartwith`,
23877
+ `doesnotendwith`, `notmatches`, `doesnotmatch` and `notequal` are not operators:
23878
+ they are refused with 422 "Invalid operation: <name>", with the name in lowercase,
23879
+ both when the filter is saved and by `POST /v1/processors/filter`. To negate a
23880
+ condition, wrap it in `not`.
23881
+
23882
+ The string comparisons (`equals`, `contains`, `startswith`, `endswith` and their
23883
+ negations) are case-sensitive; wrap the field in `lowercase` to compare without case.
23884
+ `matches` is not: every pattern is compiled with the flags `gi`, so `^paid$` also
23885
+ matches `PAID` and `[a-z]` matches capital letters. An inline flag such as `(?i)`
23886
+ makes the pattern invalid. The filter still saves, but in a run every record fails
23887
+ with `FILTER_EVALUATION_FAILED` ("Invalid regular expression: /(?i)…/gi: Invalid
23888
+ group"), and `POST /v1/processors/filter` refuses the call with 422 (live-verified
23889
+ 2026-10-22).
23828
23890
 
23829
23891
  **Logical Operators**
23830
23892
  - `"and"`: All conditions must be true
@@ -24245,8 +24307,10 @@ components:
24245
24307
  - A dot path from the record root (e.g. `email`, `address.city`), read from the
24246
24308
  incoming record. A path that matches no field writes nothing.
24247
24309
  - Handlebars template (contains `{{`) for concatenation /
24248
- formatting / conditional logic (e.g.
24249
- `{{record.firstName}} {{record.lastName}}`).
24310
+ formatting / conditional logic (e.g. `{{firstName}} {{lastName}}`,
24311
+ `{{#if mobile}}{{mobile}}{{else}}{{phone}}{{/if}}`). The template reads the
24312
+ record's fields by bare name: `{{record.firstName}}` and `{{data.firstName}}`
24313
+ render nothing, so the field is left out even when the record has the value.
24250
24314
 
24251
24315
  A `$.` JSONPath (the Mapper 2.0 `mappings` syntax) reads nothing here, and a bare
24252
24316
  string is read as a field path, not a constant: set constants in `hardCodedValue`.
@@ -24287,8 +24351,9 @@ components:
24287
24351
  x-celigo-ai-guidance:
24288
24352
  - |-
24289
24353
  When true, skip this field entirely when ``extract`` / lookup
24290
- produces empty / null. Without this flag the destination field
24291
- receives null and may overwrite existing data.
24354
+ produces an empty string, null or nothing. Without this flag an
24355
+ empty string is written as ``""`` and null as null, either of which
24356
+ may overwrite existing data; a missing source is left out either way.
24292
24357
  immutable:
24293
24358
  type: boolean
24294
24359
  description: When true, the mapped value cannot be overwritten by later mapping steps.
@@ -24305,7 +24370,15 @@ components:
24305
24370
  type:
24306
24371
  - string
24307
24372
  - 'null'
24308
- description: Fallback value used when the extract yields no value.
24373
+ description: |-
24374
+ Fallback value written when the source value is an empty string, null or
24375
+ missing. Without a default, an empty string and null are written as they are
24376
+ and a missing field is left out.
24377
+ x-celigo-ai-guidance:
24378
+ - |-
24379
+ Use ``default``, not ``hardCodedValue``, for a fallback on a field that is
24380
+ sometimes empty: ``hardCodedValue`` is written on every record and replaces
24381
+ the values that exist.
24309
24382
  extractDateFormat:
24310
24383
  type: string
24311
24384
  description: Date format of the source value, used to parse it before conversion.
@@ -24421,8 +24494,8 @@ components:
24421
24494
  id:
24422
24495
  type: string
24423
24496
  description: |
24424
- Unique identifier for this field within the form.
24425
- This value typically matches the key in the fieldMap object.
24497
+ Unique identifier for this field within the form: layout containers and conditions
24498
+ refer to the field by it. Use the same string as the field's fieldMap key and its `name`.
24426
24499
  examples:
24427
24500
  - url
24428
24501
  - mode
@@ -24433,8 +24506,9 @@ components:
24433
24506
  name:
24434
24507
  type: string
24435
24508
  description: |
24436
- Name of the field, used as the property name when generating the settings object
24437
- from the submitted form data.
24509
+ Key the field's value is saved under: one top-level key of the resource's `settings`,
24510
+ which the form also reads the value back from when it opens. Nested objects inside
24511
+ `settings` are written to it directly, not through a form field's `name`.
24438
24512
  examples:
24439
24513
  - url
24440
24514
  - mode
@@ -24509,11 +24583,19 @@ components:
24509
24583
  required:
24510
24584
  type: boolean
24511
24585
  description: |
24512
- When true, the field must have a value before the form can be submitted.
24586
+ When true, the field must have a value before the form can be submitted. Only the form
24587
+ enforces it: an API write of `settings` is stored without the value.
24513
24588
  default: false
24514
24589
  examples:
24515
24590
  - true
24516
24591
  - false
24592
+ defaultValue:
24593
+ description: |
24594
+ Value the form shows while the resource's `settings` holds no value under the field's
24595
+ `name`.
24596
+ examples:
24597
+ - us
24598
+ - true
24517
24599
  multiline:
24518
24600
  type: boolean
24519
24601
  description: |
@@ -24576,15 +24658,187 @@ components:
24576
24658
  keyName:
24577
24659
  type: string
24578
24660
  description: |
24579
- For keyvalue fields, specifies the placeholder and field name for the key input.
24661
+ For keyvalue and staticMap fields, names the first column: each saved row holds that
24662
+ column's value under this key. A keyvalue field without it uses `key`.
24580
24663
  examples:
24581
24664
  - theKey
24665
+ - source
24582
24666
  valueName:
24583
24667
  type: string
24584
24668
  description: |
24585
- For keyvalue fields, specifies the placeholder and field name for the value input.
24669
+ For keyvalue and staticMap fields, names the second column: each saved row holds that
24670
+ column's value under this key. A keyvalue field without it uses `value`.
24586
24671
  examples:
24587
24672
  - theValue
24673
+ - target
24674
+ keyLabel:
24675
+ type: string
24676
+ description: |
24677
+ For staticMap fields, heading of the first column.
24678
+ examples:
24679
+ - Source status
24680
+ valueLabel:
24681
+ type: string
24682
+ description: |
24683
+ For staticMap fields, heading of the second column.
24684
+ examples:
24685
+ - Destination status
24686
+ keyOptions:
24687
+ type: array
24688
+ description: |
24689
+ For staticMap fields, suggestions offered in the first column's cells. A cell still
24690
+ accepts a typed value.
24691
+ items:
24692
+ type: object
24693
+ properties:
24694
+ label:
24695
+ type: string
24696
+ description: |
24697
+ Display text for the suggestion.
24698
+ value:
24699
+ type: string
24700
+ description: |
24701
+ Value saved when the suggestion is chosen.
24702
+ examples:
24703
+ - - label: Pending
24704
+ value: pending
24705
+ - label: Shipped
24706
+ value: shipped
24707
+ valueOptions:
24708
+ type: array
24709
+ description: |
24710
+ For staticMap fields, suggestions offered in the second column's cells. A cell still
24711
+ accepts a typed value.
24712
+ items:
24713
+ type: object
24714
+ properties:
24715
+ label:
24716
+ type: string
24717
+ description: |
24718
+ Display text for the suggestion.
24719
+ value:
24720
+ type: string
24721
+ description: |
24722
+ Value saved when the suggestion is chosen.
24723
+ examples:
24724
+ - - label: Open
24725
+ value: open
24726
+ - label: Closed
24727
+ value: closed
24728
+ keyResource:
24729
+ type: object
24730
+ description: |
24731
+ For staticMap fields, fills the first column's suggestions from an export the form
24732
+ carries inline in `virtual`, run the way an exportSelect's `resource` is. With
24733
+ `keyResource` or `valueResource` set, the form requires both columns in every row
24734
+ unless `keyValueRequired` is false.
24735
+ properties:
24736
+ virtual:
24737
+ type: object
24738
+ description: |
24739
+ Export document to run, inline, shaped like an exportSelect's `resource.virtual`.
24740
+ additionalProperties: true
24741
+ valueResource:
24742
+ type: object
24743
+ description: |
24744
+ For staticMap fields, fills the second column's suggestions from an export the form
24745
+ carries inline in `virtual`, run the way an exportSelect's `resource` is.
24746
+ properties:
24747
+ virtual:
24748
+ type: object
24749
+ description: |
24750
+ Export document to run, inline, shaped like an exportSelect's `resource.virtual`.
24751
+ additionalProperties: true
24752
+ keyValueRequired:
24753
+ type: boolean
24754
+ description: |
24755
+ For staticMap fields with `keyResource` or `valueResource`, when false, saves rows
24756
+ that fill only one column; by default the form drops them.
24757
+ default: true
24758
+ examples:
24759
+ - false
24760
+ resource:
24761
+ type: object
24762
+ description: |
24763
+ For exportSelect fields, the export whose records become the options. When the form
24764
+ opens, the UI previews the export in `virtual` (with `test.limit` 100 unless the export
24765
+ sets its own) and lists the preview's `data`: each record needs a `label` and a `value`
24766
+ (a string or number serves as both), so shape them with the export's `transform`. A
24767
+ saved export can't be referenced, and an HTTP export that finds no records leaves the
24768
+ field showing an error instead of options.
24769
+ properties:
24770
+ virtual:
24771
+ type: object
24772
+ description: |
24773
+ Export document to run, inline: `adaptorType`, its adaptor block, and an optional
24774
+ `transform`. `_connectionId` defaults to the connection of the export or import the
24775
+ form belongs to; set it on any other resource's form.
24776
+ additionalProperties: true
24777
+ examples:
24778
+ - virtual:
24779
+ adaptorType: HTTPExport
24780
+ http:
24781
+ relativeURI: /v1/warehouses
24782
+ method: GET
24783
+ formType: http
24784
+ response:
24785
+ resourcePath: warehouses
24786
+ transform:
24787
+ type: expression
24788
+ expression:
24789
+ version: '2'
24790
+ rulesTwoDotZero:
24791
+ mode: create
24792
+ mappings:
24793
+ - generate: label
24794
+ extract: $.name
24795
+ dataType: string
24796
+ status: Active
24797
+ - generate: value
24798
+ extract: $.code
24799
+ dataType: string
24800
+ status: Active
24801
+ multiselect:
24802
+ type: boolean
24803
+ description: |
24804
+ For exportSelect fields, when true, the user can choose several options and the value
24805
+ is saved as an array.
24806
+ default: false
24807
+ examples:
24808
+ - true
24809
+ supportHandlebars:
24810
+ type: boolean
24811
+ description: |
24812
+ For exportSelect fields, when true, renders the `resource.virtual` export as a Handlebars
24813
+ template before each preview (all but its `transform`, `hooks`, and `filter`). On an
24814
+ integration, flow group, flow, export, or import form, the form's current values are
24815
+ under that form's scope name (`integration`, `flowGrouping`, `flow`, `export`, or
24816
+ `import`), beside the saved settings of the scopes above it, with no `settings.`
24817
+ prefix; on a connection or iClient form the template has no context. The options then
24818
+ load through `refreshOptionsOnChangesTo` or `typeAheadSearch`, or when the user
24819
+ refreshes the field.
24820
+ default: false
24821
+ examples:
24822
+ - true
24823
+ refreshOptionsOnChangesTo:
24824
+ type: array
24825
+ items:
24826
+ type: string
24827
+ description: |
24828
+ For exportSelect fields with `supportHandlebars`, ids of the fields whose values the
24829
+ templated export uses: the options load once one of them has a value and reload whenever
24830
+ one changes.
24831
+ examples:
24832
+ - - region
24833
+ typeAheadSearch:
24834
+ type: boolean
24835
+ description: |
24836
+ For exportSelect fields, when true, re-runs the templated export as the user types, with
24837
+ the typed text as this field's own value; an empty box clears the options, and typed
24838
+ text is accepted as the value.
24839
+ default: false
24840
+ examples:
24841
+ - true
24588
24842
  showDelete:
24589
24843
  type: boolean
24590
24844
  description: |
@@ -24685,7 +24939,9 @@ components:
24685
24939
  field:
24686
24940
  type: string
24687
24941
  description: |
24688
- The ID of another field whose value controls the visibility of this field.
24942
+ The ID of another field whose value controls the visibility of this field. The
24943
+ save doesn't check it: a rule naming an ID that isn't in the form counts as met,
24944
+ so the field stays visible.
24689
24945
  examples:
24690
24946
  - mode
24691
24947
  is:
@@ -24721,7 +24977,7 @@ components:
24721
24977
  - tabWithoutSave
24722
24978
  - verticalTabWithoutSave
24723
24979
  x-enumDescriptions:
24724
- column: Arranges form fields in a single vertical column layout.
24980
+ column: Places the containers side by side, one column each.
24725
24981
  collapse: Groups fields into collapsible/expandable sections.
24726
24982
  box: Wraps field groups in bordered boxes with headings.
24727
24983
  indent: Indents field groups to show hierarchy.
@@ -24730,6 +24986,15 @@ components:
24730
24986
  examples:
24731
24987
  - column
24732
24988
  - collapse
24989
+ fields:
24990
+ type: array
24991
+ items:
24992
+ type: string
24993
+ description: |
24994
+ Field IDs shown above the containers, without a heading.
24995
+ examples:
24996
+ - - region
24997
+ - vatNumber
24733
24998
  containers:
24734
24999
  type: array
24735
25000
  description: |
@@ -24769,7 +25034,8 @@ components:
24769
25034
  type: string
24770
25035
  description: |
24771
25036
  Array of field IDs that should be displayed in this container.
24772
- Each ID must correspond to a key in the fieldMap object.
25037
+ Each ID must correspond to a key in the fieldMap object: the save doesn't check it,
25038
+ and an ID that doesn't renders nothing. A field the layout doesn't list isn't shown.
24773
25039
  examples:
24774
25040
  - - A
24775
25041
  - url
@@ -24846,6 +25112,9 @@ components:
24846
25112
 
24847
25113
  The function must return a valid form object that the UI can render.
24848
25114
  Throwing an exception will signal an error to the user.
25115
+
25116
+ The UI runs the function each time it opens the form and renders the returned form instead of
25117
+ `form`, then fills in the values from `settings`; a thrown error's message replaces the form.
24849
25118
  properties:
24850
25119
  function:
24851
25120
  type: string
@@ -24869,8 +25138,10 @@ components:
24869
25138
  Reference to a predefined script resource containing the initialization function.
24870
25139
 
24871
25140
  The referenced script should contain the function specified in the
24872
- 'function' property. This script must be accessible within the user's account
24873
- and have appropriate permissions.
25141
+ 'function' property. On an integration, a flow group, a flow, an export, an import, or a
25142
+ connection, an id that isn't a script in the same account (or, on an Integration App's
25143
+ resources, one the app shares) is refused with 422 `invalid_ref`. An iClient save
25144
+ stores the id without that check.
24874
25145
  examples:
24875
25146
  - 60a2c4e6f321d800129a1a3c
24876
25147
  - 5f8d43a1b9e5a80011a35f2c
@@ -37501,8 +37772,11 @@ components:
37501
37772
  (CSV/XML/JSON) into records. Most modes take their matching configuration object (e.g. a
37502
37773
  `webhook` object when `type` is `webhook`); an HTTP or SQL `delta` export saves without a
37503
37774
  `delta` object because its request carries `{{lastExportDateTime}}`, though
37504
- `delta.startDate` sets its first window. Use `blob` only to transfer raw files without
37505
- parsing their contents.
37775
+ `delta.startDate` sets its first window. It still needs `type: delta`: on an export
37776
+ with no `type`, `{{lastExportDateTime}}` and `{{currentExportDateTime}}` render
37777
+ empty on every run, so a request that carries them goes out with blank values each time
37778
+ (live-verified 2026-10-22). Use `blob` only to transfer raw files without parsing their
37779
+ contents.
37506
37780
  x-celigo-ai-guidance:
37507
37781
  - |-
37508
37782
  ## HOW TO PICK THE TYPE VALUE