@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/import.yml CHANGED
@@ -1810,6 +1810,8 @@ components:
1810
1810
  Reference the existing record ID in the UPDATE URI with `{{{data.0.fieldName}}}` (triple braces with the data.0 prefix).
1811
1811
  Use separate array elements per operation rather than `{{#if}}` conditionals inside a single URI.
1812
1812
  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.
1813
+ 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`.
1814
+ A field that holds an empty string or null is defined: it renders empty, and the request is sent without the value.
1813
1815
  x-celigo-ai-guidance:
1814
1816
  - '**CRITICAL: This MUST be an array of strings, NOT an object.**'
1815
1817
  - |-
@@ -2853,9 +2855,17 @@ components:
2853
2855
  extract:
2854
2856
  type: string
2855
2857
  description: |
2856
- JSONPath expression that selects the lookup value from the
2857
- HTTP response body. ``$.`` prefix optional. Examples:
2858
- ``$.data[0].id``, ``$.results.primaryKey``, ``id``.
2858
+ Path to the lookup value in the HTTP response body, written
2859
+ without a ``$.`` prefix: ``id``, ``results[0].id``, or ``ids``
2860
+ for an array of ids. A ``$.``-prefixed path, a ``[*]``
2861
+ wildcard, or a dot path through an array (``results.id``)
2862
+ resolves nothing, so the lookup misses: with
2863
+ ``allowFailures: false`` the record fails
2864
+ (``batch_lookup_evaluation_failed``); otherwise it goes on with
2865
+ ``default`` or without the value, and nothing errors. A
2866
+ composite import whose ``existingLookupName`` names such a
2867
+ lookup sends every record to CREATE. Mapper 2.0 mapping
2868
+ extracts are the opposite: they take the ``$.``.
2859
2869
  _lookupCacheId:
2860
2870
  type: string
2861
2871
  format: objectId
@@ -2879,13 +2889,17 @@ components:
2879
2889
  - string
2880
2890
  - 'null'
2881
2891
  description: |
2882
- Value returned when the HTTP request returns no usable
2883
- match. When omitted and ``allowFailures`` is false, an
2884
- unmatched lookup halts the record. Stored as null when no
2892
+ Value written when the lookup finds no match and the miss is
2893
+ allowed (``allowFailures`` true, or omitted on a static
2894
+ ``map``). A save refuses a ``default`` together with an
2895
+ explicit ``allowFailures: false`` (422 "Lookups with default
2896
+ set can not have allowFailures explicitly set to false."), so
2897
+ a lookup either fails a miss (``allowFailures: false``, no
2898
+ default) or falls back to its default. Stored as null when no
2885
2899
  fallback is configured.
2886
2900
  x-celigo-ai-guidance:
2887
2901
  - '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 `""`.'
2888
- - 'A fallback only takes effect on an allowed miss — pair a real default with allowFailures: true (or useDefaultOnMultipleMatches: true for the ambiguous-match case).'
2902
+ - '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.'
2889
2903
  allowFailures:
2890
2904
  type:
2891
2905
  - boolean
@@ -2895,20 +2909,40 @@ components:
2895
2909
  field out when there is none) and the record continues. When
2896
2910
  false, a miss fails the record: ``lookup_error`` ("Could not find
2897
2911
  value for static lookup: …") for a static ``map``,
2898
- ``lookupcache_evaluation_failed`` for a cache. Omitted or null,
2912
+ ``lookupcache_evaluation_failed`` for a cache, and
2913
+ ``batch_lookup_evaluation_failed`` (source ``internal``, "<field>:
2914
+ The batch lookup could not be evaluated. Check the value in the
2915
+ key '<value>', and try again.") for a live request that matches
2916
+ nothing or whose ``extract`` resolves nothing. Omitted or null,
2899
2917
  a miss doesn't fail the record either: a static lookup writes
2900
2918
  its ``default`` if it has one, and a lookup without one (static,
2901
2919
  cache, or a live request that matches nothing or fails) leaves
2902
2920
  the mapped field out.
2921
+
2922
+ False is also the only setting under which an ambiguous answer
2923
+ fails the record: two or more values at ``extract`` (an array of
2924
+ ids or of result objects) fail it with ``lookup_conflict``
2925
+ ("Multiple matches found for lookup."). Omitted, null or true,
2926
+ the first value is sent with no error, and an array of result
2927
+ objects is written as the text ``[object Object]``. An indexed
2928
+ ``extract`` (``ids[0]``) takes the first match whatever this
2929
+ field says, so it hides an ambiguous search rather than fixing
2930
+ it.
2903
2931
  x-celigo-ai-guidance:
2904
2932
  - 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.
2933
+ - '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.'
2905
2934
  useDefaultOnMultipleMatches:
2906
2935
  type: boolean
2907
2936
  description: |
2908
- Controls behaviour when the response contains more than one
2909
- match. When true, the ``default`` value is returned instead
2910
- of raising an ambiguous-match error. When false (default),
2911
- multiple matches are treated as a failure.
2937
+ Meant to return ``default`` when the response holds more than
2938
+ one match. On an HTTP import it has not been seen to take
2939
+ effect: with ``allowFailures`` omitted or true the first match
2940
+ is sent whatever this flag says, with or without a
2941
+ ``default``, and with ``allowFailures: false`` the record
2942
+ fails with ``lookup_conflict``. Two or more matches fail the
2943
+ record only when ``allowFailures`` is false (see
2944
+ ``allowFailures``), so make the search match one record
2945
+ rather than relying on this flag.
2912
2946
  type: array
2913
2947
  Ftp:
2914
2948
  type: object
@@ -5121,7 +5155,7 @@ components:
5121
5155
 
5122
5156
  This value is used as a fallback when:
5123
5157
  1. The source value doesn't match any key in the map
5124
- 2. allowFailures is set to true
5158
+ 2. allowFailures is true or omitted
5125
5159
 
5126
5160
  Setting an appropriate default helps prevent flow failures due to unexpected
5127
5161
  values and provides predictable behavior for edge cases.
@@ -5131,8 +5165,10 @@ components:
5131
5165
  - Original value indicators: "{Original Value}", "No mapping found"
5132
5166
  - Neutral values: "Other", "N/A", "Miscellaneous"
5133
5167
 
5134
- If allowFailures is false, a record whose value is unmapped fails and the default
5135
- is ignored.
5168
+ A save refuses a default together with an explicit `allowFailures: false`
5169
+ (422 `Lookups with default set can not have allowFailures explicitly set to
5170
+ false.`): a lookup either fails a miss (`allowFailures: false`, no default) or
5171
+ falls back to its default.
5136
5172
  examples:
5137
5173
  - Unknown
5138
5174
  - Other
@@ -5140,7 +5176,8 @@ components:
5140
5176
  - Unmapped Value
5141
5177
  - '{Original Value}'
5142
5178
  x-celigo-ai-guidance:
5143
- - '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 `""`.'
5179
+ - '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 `""`.'
5180
+ - 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.
5144
5181
  allowFailures:
5145
5182
  type:
5146
5183
  - boolean
@@ -9674,7 +9711,7 @@ components:
9674
9711
  x-enumDescriptions:
9675
9712
  text: Free-form text response from the model.
9676
9713
  json_schema: Structured JSON output conforming to a defined schema.
9677
- blob: Binary data output for non-text content.
9714
+ blob: Image generation — the run calls the image generation tool and returns the stored image's `blobKey`, not `_text` or `_json`.
9678
9715
  default: text
9679
9716
  description: Output format type.
9680
9717
  schemaMode:
@@ -9896,11 +9933,6 @@ components:
9896
9933
  an object without a non-empty name fails with a
9897
9934
  missing-required-field error. String entries are the
9898
9935
  legacy form and stay valid.
9899
- allowedPrompts:
9900
- type: array
9901
- description: Specific prompts to allow from the MCP server (used for MCP prompt entries; all if omitted).
9902
- items:
9903
- type: string
9904
9936
  tool:
9905
9937
  type: object
9906
9938
  description: |
@@ -10043,7 +10075,7 @@ components:
10043
10075
  x-enumDescriptions:
10044
10076
  text: Free-form text response from the model.
10045
10077
  json_schema: Structured JSON output conforming to a defined schema.
10046
- blob: Binary data output for non-text content.
10078
+ blob: Image generation — the run returns the stored image's `blobKey`, not `_text` or `_json`.
10047
10079
  default: text
10048
10080
  schemaMode:
10049
10081
  type: string
@@ -10212,11 +10244,6 @@ components:
10212
10244
  description: Display description shown for the tool.
10213
10245
  required:
10214
10246
  - name
10215
- allowedPrompts:
10216
- type: array
10217
- description: Specific prompts to allow from the MCP server (used for MCP prompt entries; all if omitted).
10218
- items:
10219
- type: string
10220
10247
  tool:
10221
10248
  type: object
10222
10249
  description: Reference to a Celigo Tool resource, used when type is "tool".
@@ -10729,9 +10756,9 @@ components:
10729
10756
  LLM configuration for an `ai_agent` guardrail — which provider and model evaluate each
10730
10757
  record, with instructions, parameter tuning, and output format. Guardrails never invoke
10731
10758
  tools, so unlike an AI agent import no block here accepts a `tools` array. MCP `prompts`
10732
- and `resources` are accepted on save, but an unreachable MCP server doesn't fail the
10733
- run (verified on OpenAI), so put the policy the guardrail must apply in its
10734
- instructions. Providers come in two families with two configuration formats:
10759
+ and `resources` are accepted on save but never used at run time, so put the policy the
10760
+ guardrail must apply in its instructions. Providers come in two families with two
10761
+ configuration formats:
10735
10762
 
10736
10763
  - **Built-in providers** — each has its own configuration block.
10737
10764
  - **openai**: OpenAI models (GPT-4.1, GPT-5, etc.). Configure via the `openai` object.
@@ -10896,7 +10923,7 @@ components:
10896
10923
  type: array
10897
10924
  description: |-
10898
10925
  MCP prompt entries saved with a catalog-provider guardrail (generic flat format).
10899
- Each entry references one MCP connection and the prompt names allowed from it.
10926
+ Each entry references one MCP connection and prompt names; a guardrail's run never fetches them.
10900
10927
  items:
10901
10928
  type: object
10902
10929
  properties:
@@ -10917,7 +10944,7 @@ components:
10917
10944
  description: Connection to the MCP server that exposes the prompts.
10918
10945
  allowedPrompts:
10919
10946
  type: array
10920
- description: Prompt names the model may fetch from the server.
10947
+ description: Prompt names saved with the entry; a guardrail's run never fetches them.
10921
10948
  items:
10922
10949
  type: string
10923
10950
  x-celigo-ai-guidance:
@@ -11174,7 +11201,7 @@ components:
11174
11201
  type: array
11175
11202
  description: |-
11176
11203
  MCP prompt entries saved with the guardrail. Each item references one
11177
- MCP connection and the prompt names allowed from it.
11204
+ MCP connection and prompt names; a guardrail's run never fetches them.
11178
11205
  items:
11179
11206
  type: object
11180
11207
  properties:
@@ -11196,7 +11223,7 @@ components:
11196
11223
  description: Connection to the MCP server.
11197
11224
  allowedPrompts:
11198
11225
  type: array
11199
- description: Prompt names to allow from the MCP server.
11226
+ description: Prompt names saved with the entry; a guardrail's run never fetches them.
11200
11227
  items:
11201
11228
  type: string
11202
11229
  resources:
@@ -11363,7 +11390,7 @@ components:
11363
11390
  type: array
11364
11391
  description: |-
11365
11392
  MCP prompt entries saved with a Gemini guardrail. Each item references one
11366
- MCP connection and the prompt names allowed from it.
11393
+ MCP connection and prompt names; a guardrail's run never fetches them.
11367
11394
  items:
11368
11395
  type: object
11369
11396
  properties:
@@ -11385,7 +11412,7 @@ components:
11385
11412
  description: Connection to the MCP server.
11386
11413
  allowedPrompts:
11387
11414
  type: array
11388
- description: Prompt names to allow from the MCP server.
11415
+ description: Prompt names saved with the entry; a guardrail's run never fetches them.
11389
11416
  items:
11390
11417
  type: string
11391
11418
  resources:
@@ -11585,7 +11612,7 @@ components:
11585
11612
  type: array
11586
11613
  description: |-
11587
11614
  MCP prompt entries saved with a Claude guardrail. Each item references one
11588
- MCP connection and the prompt names allowed from it.
11615
+ MCP connection and prompt names; a guardrail's run never fetches them.
11589
11616
  items:
11590
11617
  type: object
11591
11618
  properties:
@@ -11607,7 +11634,7 @@ components:
11607
11634
  description: Connection to the MCP server.
11608
11635
  allowedPrompts:
11609
11636
  type: array
11610
- description: Prompt names to allow from the MCP server.
11637
+ description: Prompt names saved with the entry; a guardrail's run never fetches them.
11611
11638
  items:
11612
11639
  type: string
11613
11640
  resources:
@@ -11709,8 +11736,8 @@ components:
11709
11736
  `aiAgent.openai.tools`, `aiAgent.litellm._overrides.gemini.tools`, `….anthropic.tools`) —
11710
11737
  any non-empty array fails the save with 422 `guardrail_tools_not_allowed` ("Tools aren't
11711
11738
  supported on a guardrail AI agent configuration…"), on create and on update. `prompts` and
11712
- `resources` are accepted on save, but an unreachable MCP server doesn't fail the run
11713
- (verified on OpenAI), so put the policy in the instructions. The server still echoes
11739
+ `resources` are accepted on save but never used at run time, so put the policy in the
11740
+ instructions. The server still echoes
11714
11741
  `openai.tools: []` on OpenAI guardrails.
11715
11742
  properties:
11716
11743
  type:
@@ -12277,15 +12304,30 @@ components:
12277
12304
  - `"lessthan"`: Value is less than specified value (is less than)
12278
12305
  - `"lessthanequals"`: Value is less than or equal to specified value (is less than or equals)
12279
12306
  - `"startswith"`: String starts with specified prefix (starts with)
12307
+ - `"notstartswith"`: String does not start with specified prefix (does not start with)
12280
12308
  - `"endswith"`: String ends with specified suffix (ends with)
12309
+ - `"notendswith"`: String does not end with specified suffix (does not end with)
12281
12310
  - `"contains"`: String contains specified substring (contains)
12282
12311
  - `"doesnotcontain"`: String does not contain specified substring (does not contain)
12283
12312
  - `"empty"`: Field is missing or empty (is empty)
12284
12313
  - `"notempty"`: Field contains a value (is not empty)
12285
- - `"matches"`: Matches a regular expression (matches)
12286
-
12287
- `isempty`, `isnotempty` and `anyof` are not operators: they are refused with 422
12288
- "Invalid operation: <name>".
12314
+ - `"matches"`: Matches a regular expression, ignoring case (matches)
12315
+
12316
+ Operator names are case-insensitive: `NOTEMPTY` and `endsWith` work and are stored
12317
+ as sent. `isempty`, `isnotempty`, `anyof`, `notcontains`, `doesnotstartwith`,
12318
+ `doesnotendwith`, `notmatches`, `doesnotmatch` and `notequal` are not operators:
12319
+ they are refused with 422 "Invalid operation: <name>", with the name in lowercase,
12320
+ both when the filter is saved and by `POST /v1/processors/filter`. To negate a
12321
+ condition, wrap it in `not`.
12322
+
12323
+ The string comparisons (`equals`, `contains`, `startswith`, `endswith` and their
12324
+ negations) are case-sensitive; wrap the field in `lowercase` to compare without case.
12325
+ `matches` is not: every pattern is compiled with the flags `gi`, so `^paid$` also
12326
+ matches `PAID` and `[a-z]` matches capital letters. An inline flag such as `(?i)`
12327
+ makes the pattern invalid. The filter still saves, but in a run every record fails
12328
+ with `FILTER_EVALUATION_FAILED` ("Invalid regular expression: /(?i)…/gi: Invalid
12329
+ group"), and `POST /v1/processors/filter` refuses the call with 422 (live-verified
12330
+ 2026-10-22).
12289
12331
 
12290
12332
  **Logical Operators**
12291
12333
  - `"and"`: All conditions must be true
@@ -12706,7 +12748,11 @@ components:
12706
12748
 
12707
12749
  **Simple Types (direct value mapping)**
12708
12750
  - `string`: Text values, converts other types to string representation
12709
- - `number`: Numeric values, attempts conversion from strings
12751
+ - `number`: Numeric values. Converts a numeric string (`"24"` → `24`,
12752
+ `"007"` → `7`) and leaves the field out for an empty string; a value
12753
+ holding letters or a thousands separator (`"1,250.00"`) fails the
12754
+ record with `non_parsable_string` (`<generate>: String contains alpha
12755
+ characters`)
12710
12756
  - `boolean`: True/false values, converts truthy/falsy values
12711
12757
 
12712
12758
  Dates are represented as strings — use `string` for date fields and
@@ -12749,8 +12795,14 @@ components:
12749
12795
  - |-
12750
12796
  Missing `dataType` is rejected at save with validation error
12751
12797
  `[mandatory_destination_datatype] Destination datatype is a
12752
- required field.` When in doubt, use `"string"` — it accepts
12753
- any source value and the runtime will coerce it.
12798
+ required field.`
12799
+ - |-
12800
+ Give each row the type the destination field expects; `"string"` is
12801
+ not a safe default. It accepts any source value, but sends a numeric
12802
+ source as text (`"24"`), which a destination that checks JSON types
12803
+ refuses. Map numeric destination fields as `number`, which fails a
12804
+ record (`non_parsable_string`) only when the value holds letters or a
12805
+ thousands separator.
12754
12806
  enum:
12755
12807
  - string
12756
12808
  - number
@@ -12762,7 +12814,7 @@ components:
12762
12814
  - objectarray
12763
12815
  x-enumDescriptions:
12764
12816
  string: Text values; converts other types to their string representation.
12765
- number: Numeric values; attempts conversion from strings.
12817
+ number: Numeric values; converts numeric strings, and fails the record (`non_parsable_string`) on letters or a thousands separator.
12766
12818
  boolean: True/false values; converts truthy/falsy values.
12767
12819
  object: Nested object built from child `mappings`, or copied whole with `extract` (not both).
12768
12820
  stringarray: Array of string values.
@@ -13790,7 +13842,11 @@ components:
13790
13842
 
13791
13843
  **Simple Types (direct value mapping)**
13792
13844
  - `string`: Text values, converts other types to string representation
13793
- - `number`: Numeric values, attempts conversion from strings
13845
+ - `number`: Numeric values. Converts a numeric string (`"24"` → `24`,
13846
+ `"007"` → `7`) and leaves the field out for an empty string; a value
13847
+ holding letters or a thousands separator (`"1,250.00"`) fails the
13848
+ record with `non_parsable_string` (`<generate>: String contains alpha
13849
+ characters`)
13794
13850
  - `boolean`: True/false values, converts truthy/falsy values
13795
13851
 
13796
13852
  Dates are represented as strings — use `string` for date fields and
@@ -13833,8 +13889,14 @@ components:
13833
13889
  - |-
13834
13890
  Missing `dataType` is rejected at save with validation error
13835
13891
  `[mandatory_destination_datatype] Destination datatype is a
13836
- required field.` When in doubt, use `"string"` — it accepts
13837
- any source value and the runtime will coerce it.
13892
+ required field.`
13893
+ - |-
13894
+ Give each row the type the destination field expects; `"string"` is
13895
+ not a safe default. It accepts any source value, but sends a numeric
13896
+ source as text (`"24"`), which a destination that checks JSON types
13897
+ refuses. Map numeric destination fields as `number`, which fails a
13898
+ record (`non_parsable_string`) only when the value holds letters or a
13899
+ thousands separator.
13838
13900
  enum:
13839
13901
  - string
13840
13902
  - number
@@ -13846,7 +13908,7 @@ components:
13846
13908
  - objectarray
13847
13909
  x-enumDescriptions:
13848
13910
  string: Text values; converts other types to their string representation.
13849
- number: Numeric values; attempts conversion from strings.
13911
+ number: Numeric values; converts numeric strings, and fails the record (`non_parsable_string`) on letters or a thousands separator.
13850
13912
  boolean: True/false values; converts truthy/falsy values.
13851
13913
  object: Nested object built from child `mappings`, or copied whole with `extract` (not both).
13852
13914
  stringarray: Array of string values.
@@ -15255,8 +15317,10 @@ components:
15255
15317
  - A dot path from the record root (e.g. `email`, `address.city`), read from the
15256
15318
  incoming record. A path that matches no field writes nothing.
15257
15319
  - Handlebars template (contains `{{`) for concatenation /
15258
- formatting / conditional logic (e.g.
15259
- `{{record.firstName}} {{record.lastName}}`).
15320
+ formatting / conditional logic (e.g. `{{firstName}} {{lastName}}`,
15321
+ `{{#if mobile}}{{mobile}}{{else}}{{phone}}{{/if}}`). The template reads the
15322
+ record's fields by bare name: `{{record.firstName}}` and `{{data.firstName}}`
15323
+ render nothing, so the field is left out even when the record has the value.
15260
15324
 
15261
15325
  A `$.` JSONPath (the Mapper 2.0 `mappings` syntax) reads nothing here, and a bare
15262
15326
  string is read as a field path, not a constant: set constants in `hardCodedValue`.
@@ -15297,8 +15361,9 @@ components:
15297
15361
  x-celigo-ai-guidance:
15298
15362
  - |-
15299
15363
  When true, skip this field entirely when ``extract`` / lookup
15300
- produces empty / null. Without this flag the destination field
15301
- receives null and may overwrite existing data.
15364
+ produces an empty string, null or nothing. Without this flag an
15365
+ empty string is written as ``""`` and null as null, either of which
15366
+ may overwrite existing data; a missing source is left out either way.
15302
15367
  immutable:
15303
15368
  type: boolean
15304
15369
  description: When true, the mapped value cannot be overwritten by later mapping steps.
@@ -15315,7 +15380,15 @@ components:
15315
15380
  type:
15316
15381
  - string
15317
15382
  - 'null'
15318
- description: Fallback value used when the extract yields no value.
15383
+ description: |-
15384
+ Fallback value written when the source value is an empty string, null or
15385
+ missing. Without a default, an empty string and null are written as they are
15386
+ and a missing field is left out.
15387
+ x-celigo-ai-guidance:
15388
+ - |-
15389
+ Use ``default``, not ``hardCodedValue``, for a fallback on a field that is
15390
+ sometimes empty: ``hardCodedValue`` is written on every record and replaces
15391
+ the values that exist.
15319
15392
  extractDateFormat:
15320
15393
  type: string
15321
15394
  description: Date format of the source value, used to parse it before conversion.
@@ -15431,8 +15504,8 @@ components:
15431
15504
  id:
15432
15505
  type: string
15433
15506
  description: |
15434
- Unique identifier for this field within the form.
15435
- This value typically matches the key in the fieldMap object.
15507
+ Unique identifier for this field within the form: layout containers and conditions
15508
+ refer to the field by it. Use the same string as the field's fieldMap key and its `name`.
15436
15509
  examples:
15437
15510
  - url
15438
15511
  - mode
@@ -15443,8 +15516,9 @@ components:
15443
15516
  name:
15444
15517
  type: string
15445
15518
  description: |
15446
- Name of the field, used as the property name when generating the settings object
15447
- from the submitted form data.
15519
+ Key the field's value is saved under: one top-level key of the resource's `settings`,
15520
+ which the form also reads the value back from when it opens. Nested objects inside
15521
+ `settings` are written to it directly, not through a form field's `name`.
15448
15522
  examples:
15449
15523
  - url
15450
15524
  - mode
@@ -15519,11 +15593,19 @@ components:
15519
15593
  required:
15520
15594
  type: boolean
15521
15595
  description: |
15522
- When true, the field must have a value before the form can be submitted.
15596
+ When true, the field must have a value before the form can be submitted. Only the form
15597
+ enforces it: an API write of `settings` is stored without the value.
15523
15598
  default: false
15524
15599
  examples:
15525
15600
  - true
15526
15601
  - false
15602
+ defaultValue:
15603
+ description: |
15604
+ Value the form shows while the resource's `settings` holds no value under the field's
15605
+ `name`.
15606
+ examples:
15607
+ - us
15608
+ - true
15527
15609
  multiline:
15528
15610
  type: boolean
15529
15611
  description: |
@@ -15586,15 +15668,187 @@ components:
15586
15668
  keyName:
15587
15669
  type: string
15588
15670
  description: |
15589
- For keyvalue fields, specifies the placeholder and field name for the key input.
15671
+ For keyvalue and staticMap fields, names the first column: each saved row holds that
15672
+ column's value under this key. A keyvalue field without it uses `key`.
15590
15673
  examples:
15591
15674
  - theKey
15675
+ - source
15592
15676
  valueName:
15593
15677
  type: string
15594
15678
  description: |
15595
- For keyvalue fields, specifies the placeholder and field name for the value input.
15679
+ For keyvalue and staticMap fields, names the second column: each saved row holds that
15680
+ column's value under this key. A keyvalue field without it uses `value`.
15596
15681
  examples:
15597
15682
  - theValue
15683
+ - target
15684
+ keyLabel:
15685
+ type: string
15686
+ description: |
15687
+ For staticMap fields, heading of the first column.
15688
+ examples:
15689
+ - Source status
15690
+ valueLabel:
15691
+ type: string
15692
+ description: |
15693
+ For staticMap fields, heading of the second column.
15694
+ examples:
15695
+ - Destination status
15696
+ keyOptions:
15697
+ type: array
15698
+ description: |
15699
+ For staticMap fields, suggestions offered in the first column's cells. A cell still
15700
+ accepts a typed value.
15701
+ items:
15702
+ type: object
15703
+ properties:
15704
+ label:
15705
+ type: string
15706
+ description: |
15707
+ Display text for the suggestion.
15708
+ value:
15709
+ type: string
15710
+ description: |
15711
+ Value saved when the suggestion is chosen.
15712
+ examples:
15713
+ - - label: Pending
15714
+ value: pending
15715
+ - label: Shipped
15716
+ value: shipped
15717
+ valueOptions:
15718
+ type: array
15719
+ description: |
15720
+ For staticMap fields, suggestions offered in the second column's cells. A cell still
15721
+ accepts a typed value.
15722
+ items:
15723
+ type: object
15724
+ properties:
15725
+ label:
15726
+ type: string
15727
+ description: |
15728
+ Display text for the suggestion.
15729
+ value:
15730
+ type: string
15731
+ description: |
15732
+ Value saved when the suggestion is chosen.
15733
+ examples:
15734
+ - - label: Open
15735
+ value: open
15736
+ - label: Closed
15737
+ value: closed
15738
+ keyResource:
15739
+ type: object
15740
+ description: |
15741
+ For staticMap fields, fills the first column's suggestions from an export the form
15742
+ carries inline in `virtual`, run the way an exportSelect's `resource` is. With
15743
+ `keyResource` or `valueResource` set, the form requires both columns in every row
15744
+ unless `keyValueRequired` is false.
15745
+ properties:
15746
+ virtual:
15747
+ type: object
15748
+ description: |
15749
+ Export document to run, inline, shaped like an exportSelect's `resource.virtual`.
15750
+ additionalProperties: true
15751
+ valueResource:
15752
+ type: object
15753
+ description: |
15754
+ For staticMap fields, fills the second column's suggestions from an export the form
15755
+ carries inline in `virtual`, run the way an exportSelect's `resource` is.
15756
+ properties:
15757
+ virtual:
15758
+ type: object
15759
+ description: |
15760
+ Export document to run, inline, shaped like an exportSelect's `resource.virtual`.
15761
+ additionalProperties: true
15762
+ keyValueRequired:
15763
+ type: boolean
15764
+ description: |
15765
+ For staticMap fields with `keyResource` or `valueResource`, when false, saves rows
15766
+ that fill only one column; by default the form drops them.
15767
+ default: true
15768
+ examples:
15769
+ - false
15770
+ resource:
15771
+ type: object
15772
+ description: |
15773
+ For exportSelect fields, the export whose records become the options. When the form
15774
+ opens, the UI previews the export in `virtual` (with `test.limit` 100 unless the export
15775
+ sets its own) and lists the preview's `data`: each record needs a `label` and a `value`
15776
+ (a string or number serves as both), so shape them with the export's `transform`. A
15777
+ saved export can't be referenced, and an HTTP export that finds no records leaves the
15778
+ field showing an error instead of options.
15779
+ properties:
15780
+ virtual:
15781
+ type: object
15782
+ description: |
15783
+ Export document to run, inline: `adaptorType`, its adaptor block, and an optional
15784
+ `transform`. `_connectionId` defaults to the connection of the export or import the
15785
+ form belongs to; set it on any other resource's form.
15786
+ additionalProperties: true
15787
+ examples:
15788
+ - virtual:
15789
+ adaptorType: HTTPExport
15790
+ http:
15791
+ relativeURI: /v1/warehouses
15792
+ method: GET
15793
+ formType: http
15794
+ response:
15795
+ resourcePath: warehouses
15796
+ transform:
15797
+ type: expression
15798
+ expression:
15799
+ version: '2'
15800
+ rulesTwoDotZero:
15801
+ mode: create
15802
+ mappings:
15803
+ - generate: label
15804
+ extract: $.name
15805
+ dataType: string
15806
+ status: Active
15807
+ - generate: value
15808
+ extract: $.code
15809
+ dataType: string
15810
+ status: Active
15811
+ multiselect:
15812
+ type: boolean
15813
+ description: |
15814
+ For exportSelect fields, when true, the user can choose several options and the value
15815
+ is saved as an array.
15816
+ default: false
15817
+ examples:
15818
+ - true
15819
+ supportHandlebars:
15820
+ type: boolean
15821
+ description: |
15822
+ For exportSelect fields, when true, renders the `resource.virtual` export as a Handlebars
15823
+ template before each preview (all but its `transform`, `hooks`, and `filter`). On an
15824
+ integration, flow group, flow, export, or import form, the form's current values are
15825
+ under that form's scope name (`integration`, `flowGrouping`, `flow`, `export`, or
15826
+ `import`), beside the saved settings of the scopes above it, with no `settings.`
15827
+ prefix; on a connection or iClient form the template has no context. The options then
15828
+ load through `refreshOptionsOnChangesTo` or `typeAheadSearch`, or when the user
15829
+ refreshes the field.
15830
+ default: false
15831
+ examples:
15832
+ - true
15833
+ refreshOptionsOnChangesTo:
15834
+ type: array
15835
+ items:
15836
+ type: string
15837
+ description: |
15838
+ For exportSelect fields with `supportHandlebars`, ids of the fields whose values the
15839
+ templated export uses: the options load once one of them has a value and reload whenever
15840
+ one changes.
15841
+ examples:
15842
+ - - region
15843
+ typeAheadSearch:
15844
+ type: boolean
15845
+ description: |
15846
+ For exportSelect fields, when true, re-runs the templated export as the user types, with
15847
+ the typed text as this field's own value; an empty box clears the options, and typed
15848
+ text is accepted as the value.
15849
+ default: false
15850
+ examples:
15851
+ - true
15598
15852
  showDelete:
15599
15853
  type: boolean
15600
15854
  description: |
@@ -15695,7 +15949,9 @@ components:
15695
15949
  field:
15696
15950
  type: string
15697
15951
  description: |
15698
- The ID of another field whose value controls the visibility of this field.
15952
+ The ID of another field whose value controls the visibility of this field. The
15953
+ save doesn't check it: a rule naming an ID that isn't in the form counts as met,
15954
+ so the field stays visible.
15699
15955
  examples:
15700
15956
  - mode
15701
15957
  is:
@@ -15731,7 +15987,7 @@ components:
15731
15987
  - tabWithoutSave
15732
15988
  - verticalTabWithoutSave
15733
15989
  x-enumDescriptions:
15734
- column: Arranges form fields in a single vertical column layout.
15990
+ column: Places the containers side by side, one column each.
15735
15991
  collapse: Groups fields into collapsible/expandable sections.
15736
15992
  box: Wraps field groups in bordered boxes with headings.
15737
15993
  indent: Indents field groups to show hierarchy.
@@ -15740,6 +15996,15 @@ components:
15740
15996
  examples:
15741
15997
  - column
15742
15998
  - collapse
15999
+ fields:
16000
+ type: array
16001
+ items:
16002
+ type: string
16003
+ description: |
16004
+ Field IDs shown above the containers, without a heading.
16005
+ examples:
16006
+ - - region
16007
+ - vatNumber
15743
16008
  containers:
15744
16009
  type: array
15745
16010
  description: |
@@ -15779,7 +16044,8 @@ components:
15779
16044
  type: string
15780
16045
  description: |
15781
16046
  Array of field IDs that should be displayed in this container.
15782
- Each ID must correspond to a key in the fieldMap object.
16047
+ Each ID must correspond to a key in the fieldMap object: the save doesn't check it,
16048
+ and an ID that doesn't renders nothing. A field the layout doesn't list isn't shown.
15783
16049
  examples:
15784
16050
  - - A
15785
16051
  - url
@@ -15856,6 +16122,9 @@ components:
15856
16122
 
15857
16123
  The function must return a valid form object that the UI can render.
15858
16124
  Throwing an exception will signal an error to the user.
16125
+
16126
+ The UI runs the function each time it opens the form and renders the returned form instead of
16127
+ `form`, then fills in the values from `settings`; a thrown error's message replaces the form.
15859
16128
  properties:
15860
16129
  function:
15861
16130
  type: string
@@ -15879,8 +16148,10 @@ components:
15879
16148
  Reference to a predefined script resource containing the initialization function.
15880
16149
 
15881
16150
  The referenced script should contain the function specified in the
15882
- 'function' property. This script must be accessible within the user's account
15883
- and have appropriate permissions.
16151
+ 'function' property. On an integration, a flow group, a flow, an export, an import, or a
16152
+ connection, an id that isn't a script in the same account (or, on an Integration App's
16153
+ resources, one the app shares) is refused with 422 `invalid_ref`. An iClient save
16154
+ stores the id without that check.
15884
16155
  examples:
15885
16156
  - 60a2c4e6f321d800129a1a3c
15886
16157
  - 5f8d43a1b9e5a80011a35f2c