@celigo/api-specs 0.2.100 → 0.2.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ai-agent.yml CHANGED
@@ -2118,7 +2118,11 @@ components:
2118
2118
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
2119
2119
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
2120
2120
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
2121
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
2121
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
2122
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
2123
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
2124
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
2125
+ name changes the output; it does not complete the row
2122
2126
 
2123
2127
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
2124
2128
  hierarchical structure with nested mappings:
@@ -2133,8 +2137,9 @@ components:
2133
2137
  }
2134
2138
  ```
2135
2139
 
2136
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
2137
- within a parent array.
2140
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
2141
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
2142
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
2138
2143
  examples:
2139
2144
  - name
2140
2145
  - address
@@ -3115,6 +3120,12 @@ components:
3115
3120
  object-array row left with no source, no destination and no remaining child `mappings` or
3116
3121
  `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
3117
3122
  wrapper that still has children, are kept.
3123
+
3124
+ The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
3125
+ record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
3126
+ the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
3127
+ source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
3128
+ bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
3118
3129
  x-celigo-ai-guidance:
3119
3130
  - |-
3120
3131
  Rows that exist in the saved document — including `Draft` and `Inactive` rows and
@@ -3123,6 +3134,14 @@ components:
3123
3134
  them. Only a row with neither source nor destination — and, for an object or
3124
3135
  object-array row, no remaining children — can be left out; the save would drop it
3125
3136
  anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
3137
+ - |-
3138
+ A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
3139
+ missing destination: keep it unnamed when editing (naming it turns the output into an
3140
+ object, and a template that iterates `rows` then renders nothing), and author that
3141
+ shape only when the request body must be an array or a template iterates `rows`.
3142
+ The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
3143
+ any other row with a source and no `generate` fails with "One or more destination
3144
+ field values not entered".
3126
3145
  items:
3127
3146
  type: object
3128
3147
  properties:
@@ -3138,7 +3157,11 @@ components:
3138
3157
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
3139
3158
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
3140
3159
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
3141
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
3160
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
3161
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
3162
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
3163
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
3164
+ name changes the output; it does not complete the row
3142
3165
 
3143
3166
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
3144
3167
  hierarchical structure with nested mappings:
@@ -3153,8 +3176,9 @@ components:
3153
3176
  }
3154
3177
  ```
3155
3178
 
3156
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
3157
- within a parent array.
3179
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
3180
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
3181
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
3158
3182
  examples:
3159
3183
  - name
3160
3184
  - address
@@ -505,7 +505,11 @@ components:
505
505
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
506
506
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
507
507
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
508
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
508
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
509
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
510
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
511
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
512
+ name changes the output; it does not complete the row
509
513
 
510
514
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
511
515
  hierarchical structure with nested mappings:
@@ -520,8 +524,9 @@ components:
520
524
  }
521
525
  ```
522
526
 
523
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
524
- within a parent array.
527
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
528
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
529
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
525
530
  examples:
526
531
  - name
527
532
  - address
@@ -1502,6 +1507,12 @@ components:
1502
1507
  object-array row left with no source, no destination and no remaining child `mappings` or
1503
1508
  `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
1504
1509
  wrapper that still has children, are kept.
1510
+
1511
+ The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
1512
+ record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
1513
+ the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
1514
+ source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
1515
+ bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
1505
1516
  x-celigo-ai-guidance:
1506
1517
  - |-
1507
1518
  Rows that exist in the saved document — including `Draft` and `Inactive` rows and
@@ -1510,6 +1521,14 @@ components:
1510
1521
  them. Only a row with neither source nor destination — and, for an object or
1511
1522
  object-array row, no remaining children — can be left out; the save would drop it
1512
1523
  anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
1524
+ - |-
1525
+ A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
1526
+ missing destination: keep it unnamed when editing (naming it turns the output into an
1527
+ object, and a template that iterates `rows` then renders nothing), and author that
1528
+ shape only when the request body must be an array or a template iterates `rows`.
1529
+ The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
1530
+ any other row with a source and no `generate` fails with "One or more destination
1531
+ field values not entered".
1513
1532
  items:
1514
1533
  type: object
1515
1534
  properties:
@@ -1525,7 +1544,11 @@ components:
1525
1544
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
1526
1545
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
1527
1546
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
1528
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
1547
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
1548
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
1549
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
1550
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
1551
+ name changes the output; it does not complete the row
1529
1552
 
1530
1553
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
1531
1554
  hierarchical structure with nested mappings:
@@ -1540,8 +1563,9 @@ components:
1540
1563
  }
1541
1564
  ```
1542
1565
 
1543
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
1544
- within a parent array.
1566
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
1567
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
1568
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
1545
1569
  examples:
1546
1570
  - name
1547
1571
  - address
package/dist/export.yml CHANGED
@@ -12311,7 +12311,11 @@ components:
12311
12311
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
12312
12312
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
12313
12313
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
12314
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
12314
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
12315
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
12316
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
12317
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
12318
+ name changes the output; it does not complete the row
12315
12319
 
12316
12320
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
12317
12321
  hierarchical structure with nested mappings:
@@ -12326,8 +12330,9 @@ components:
12326
12330
  }
12327
12331
  ```
12328
12332
 
12329
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
12330
- within a parent array.
12333
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
12334
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
12335
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
12331
12336
  examples:
12332
12337
  - name
12333
12338
  - address
@@ -13308,6 +13313,12 @@ components:
13308
13313
  object-array row left with no source, no destination and no remaining child `mappings` or
13309
13314
  `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
13310
13315
  wrapper that still has children, are kept.
13316
+
13317
+ The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
13318
+ record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
13319
+ the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
13320
+ source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
13321
+ bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
13311
13322
  x-celigo-ai-guidance:
13312
13323
  - |-
13313
13324
  Rows that exist in the saved document — including `Draft` and `Inactive` rows and
@@ -13316,6 +13327,14 @@ components:
13316
13327
  them. Only a row with neither source nor destination — and, for an object or
13317
13328
  object-array row, no remaining children — can be left out; the save would drop it
13318
13329
  anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
13330
+ - |-
13331
+ A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
13332
+ missing destination: keep it unnamed when editing (naming it turns the output into an
13333
+ object, and a template that iterates `rows` then renders nothing), and author that
13334
+ shape only when the request body must be an array or a template iterates `rows`.
13335
+ The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
13336
+ any other row with a source and no `generate` fails with "One or more destination
13337
+ field values not entered".
13319
13338
  items:
13320
13339
  type: object
13321
13340
  properties:
@@ -13331,7 +13350,11 @@ components:
13331
13350
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
13332
13351
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
13333
13352
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
13334
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
13353
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
13354
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
13355
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
13356
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
13357
+ name changes the output; it does not complete the row
13335
13358
 
13336
13359
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
13337
13360
  hierarchical structure with nested mappings:
@@ -13346,8 +13369,9 @@ components:
13346
13369
  }
13347
13370
  ```
13348
13371
 
13349
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
13350
- within a parent array.
13372
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
13373
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
13374
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
13351
13375
  examples:
13352
13376
  - name
13353
13377
  - address
package/dist/import.yml CHANGED
@@ -677,11 +677,11 @@ paths:
677
677
 
678
678
  The integrator.io UI never calls this path — the import editor's
679
679
  "Preview" and "Send" buttons both go through
680
- `POST /v1/pageProcessors/preview`. This endpoint is the API-only,
681
- unscoped counterpart to
682
- `POST /v1/integrations/{_integrationId}/flows/{_flowId}/imports/preview`
683
- — prefer this variant when previewing a standalone import that is not
684
- yet associated with a flow.
680
+ `POST /v1/pageProcessors/preview`. This is the only import preview
681
+ route on the public API: unlike exports, imports have no flow-scoped
682
+ sibling — `POST /v1/integrations/{_integrationId}/flows/{_flowId}/imports/preview`
683
+ answers 404 `resource_not_found`. To preview an import inside its
684
+ flow, use `POST /v1/pageProcessors/preview`.
685
685
  requestBody:
686
686
  required: true
687
687
  content:
@@ -934,82 +934,6 @@ paths:
934
934
  message: _connectionId is required.
935
935
  '401':
936
936
  $ref: '#/components/responses/401-unauthorized'
937
- /v1/integrations/{_integrationId}/flows/{_flowId}/imports/preview:
938
- post:
939
- x-internal: false
940
- summary: Preview import data
941
- description: |
942
- Runs the import pipeline — field mappings, transformations, and hooks —
943
- against the supplied sample data and returns the per-record results.
944
- Treat the preview as capable of executing the composed destination
945
- request: its unscoped sibling (`POST /v1/imports/preview`) is verified
946
- to write real records to live destinations and offers no option to
947
- disable the send, so do not preview create/update imports against
948
- production systems with data you do not want written. For a
949
- compose-only preview of the destination request, use
950
- `POST /v1/pageProcessors/preview` with `{preview: true}` on the
951
- target entry.
952
- operationId: previewImportData
953
- tags:
954
- - Imports
955
- parameters:
956
- - in: path
957
- name: _integrationId
958
- required: true
959
- schema:
960
- type: string
961
- format: objectId
962
- x-celigo-refModel: integrations
963
- examples:
964
- - 60a2c4e6f321d800129a1a3c
965
- description: Integration ID
966
- - in: path
967
- name: _flowId
968
- required: true
969
- schema:
970
- type: string
971
- format: objectId
972
- x-celigo-refModel: flows
973
- examples:
974
- - 64ff4b22612a134bd2f45538
975
- description: Flow ID
976
- requestBody:
977
- required: true
978
- content:
979
- application/json:
980
- schema:
981
- $ref: '#/components/schemas/PreviewRequest'
982
- examples:
983
- one_record:
984
- summary: Preview an existing import against one sample record
985
- value:
986
- _importId: 5f8d43a1b9e5a80011a35f2c
987
- sampleData:
988
- name: Acme Corp
989
- email: contact@acme.com
990
- responses:
991
- '200':
992
- description: Successfully previewed import data
993
- content:
994
- application/json:
995
- schema:
996
- $ref: '#/components/schemas/PreviewResponse'
997
- examples:
998
- mapped_record:
999
- summary: Mapped record as composed for the destination
1000
- value:
1001
- data:
1002
- - name: Acme Corp
1003
- email: contact@acme.com
1004
- errors: []
1005
- '400':
1006
- $ref: '#/components/responses/400-bad-request'
1007
- '401':
1008
- $ref: '#/components/responses/401-unauthorized'
1009
- '404':
1010
- $ref: '#/components/responses/404-not-found'
1011
- '422':
1012
- $ref: '#/components/responses/422-unprocessable-entity'
1013
937
  /v1/imports/{_id}/dependencies:
1014
938
  get:
1015
939
  x-internal: false
@@ -12363,7 +12287,11 @@ components:
12363
12287
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
12364
12288
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
12365
12289
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
12366
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
12290
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
12291
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
12292
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
12293
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
12294
+ name changes the output; it does not complete the row
12367
12295
 
12368
12296
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
12369
12297
  hierarchical structure with nested mappings:
@@ -12378,8 +12306,9 @@ components:
12378
12306
  }
12379
12307
  ```
12380
12308
 
12381
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
12382
- within a parent array.
12309
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
12310
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
12311
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
12383
12312
  examples:
12384
12313
  - name
12385
12314
  - address
@@ -13360,6 +13289,12 @@ components:
13360
13289
  object-array row left with no source, no destination and no remaining child `mappings` or
13361
13290
  `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
13362
13291
  wrapper that still has children, are kept.
13292
+
13293
+ The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
13294
+ record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
13295
+ the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
13296
+ source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
13297
+ bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
13363
13298
  x-celigo-ai-guidance:
13364
13299
  - |-
13365
13300
  Rows that exist in the saved document — including `Draft` and `Inactive` rows and
@@ -13368,6 +13303,14 @@ components:
13368
13303
  them. Only a row with neither source nor destination — and, for an object or
13369
13304
  object-array row, no remaining children — can be left out; the save would drop it
13370
13305
  anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
13306
+ - |-
13307
+ A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
13308
+ missing destination: keep it unnamed when editing (naming it turns the output into an
13309
+ object, and a template that iterates `rows` then renders nothing), and author that
13310
+ shape only when the request body must be an array or a template iterates `rows`.
13311
+ The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
13312
+ any other row with a source and no `generate` fails with "One or more destination
13313
+ field values not entered".
13371
13314
  items:
13372
13315
  type: object
13373
13316
  properties:
@@ -13383,7 +13326,11 @@ components:
13383
13326
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
13384
13327
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
13385
13328
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
13386
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
13329
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
13330
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
13331
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
13332
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
13333
+ name changes the output; it does not complete the row
13387
13334
 
13388
13335
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
13389
13336
  hierarchical structure with nested mappings:
@@ -13398,8 +13345,9 @@ components:
13398
13345
  }
13399
13346
  ```
13400
13347
 
13401
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
13402
- within a parent array.
13348
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
13349
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
13350
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
13403
13351
  examples:
13404
13352
  - name
13405
13353
  - address
@@ -16364,6 +16312,23 @@ components:
16364
16312
  per-mode contract. Handlebars expressions in ``extract`` always
16365
16313
  reference ``{{record.field}}`` regardless — only JSONPath
16366
16314
  behavior flips with ``inputContext``.
16315
+ - |-
16316
+ ## JSON structure — record { } or rows [ ]
16317
+
16318
+ The shape of this array is the mapper's JSON structure. Named
16319
+ top-level items produce an object record; ``http.body`` and the
16320
+ other templates bind it as ``record``. Exactly one top-level item
16321
+ with ``dataType: objectarray`` and no ``generate`` is the
16322
+ ``rows [ ]`` structure: the mapped record is an array — one
16323
+ element per element the item's ``buildArrayHelper`` iterates —
16324
+ and templates bind it as ``rows`` (``{{#each rows}}``), with
16325
+ ``record.*`` undefined. The mapping editor shows that row's
16326
+ destination disabled; its save check accepts the unnamed root
16327
+ only in the ``rows [ ]`` structure and fails any other row that
16328
+ has a source and no ``generate`` with "One or more destination
16329
+ field values not entered". Keep the root unnamed when editing a
16330
+ ``rows [ ]`` mapping — naming it turns the output into an object
16331
+ and a ``{{#each rows}}`` body renders nothing.
16367
16332
  - |-
16368
16333
  ## IMPORT-SPECIFIC BEHAVIOR
16369
16334
 
@@ -17081,13 +17046,11 @@ components:
17081
17046
  ImportPreviewResponse:
17082
17047
  type: object
17083
17048
  description: |-
17084
- Envelope returned by `POST /v1/imports/preview` (and the scoped
17085
- `/v1/integrations/{_integrationId}/flows/{_flowId}/imports/preview`
17086
- variant). Carries per-stage diagnostics alongside the sampled records
17087
- produced by running the supplied source data through the import's
17088
- mapping/transform/target pipeline. The target stage executes the
17089
- composed destination request — see the operation descriptions for the
17090
- write-safety warning.
17049
+ Envelope returned by `POST /v1/imports/preview`. Carries per-stage
17050
+ diagnostics alongside the sampled records produced by running the
17051
+ supplied source data through the import's mapping/transform/target
17052
+ pipeline. The target stage executes the composed destination request —
17053
+ see the operation description for the write-safety warning.
17091
17054
  properties:
17092
17055
  data:
17093
17056
  type: array
@@ -17283,67 +17246,6 @@ components:
17283
17246
  celigo_classname:
17284
17247
  type: string
17285
17248
  description: Internal engine class name for the result (e.g. `Celigo.integrator.mapping.model.MapToNetSuiteResult`).
17286
- PreviewRequest:
17287
- type: object
17288
- description: |
17289
- Request body for running sample data through an import's pipeline
17290
- (mappings, transformations, hooks). The preview can execute the
17291
- composed destination request — see the operation descriptions for the
17292
- write-safety warning.
17293
- properties:
17294
- _importId:
17295
- type: string
17296
- format: objectId
17297
- x-celigo-refModel: imports
17298
- description: The import to preview. Required when previewing within a flow.
17299
- examples:
17300
- - 5f8d43a1b9e5a80011a35f2c
17301
- sampleData:
17302
- description: |
17303
- Sample source record(s) to run through the import's mappings and transformations.
17304
- May be a single object or an array of objects depending on the adaptor.
17305
- oneOf:
17306
- - title: Single record
17307
- type: object
17308
- additionalProperties: true
17309
- - title: Array of records
17310
- type: array
17311
- items:
17312
- type: object
17313
- additionalProperties: true
17314
- options:
17315
- type: object
17316
- description: Optional overrides applied only for this preview.
17317
- additionalProperties: true
17318
- additionalProperties: true
17319
- PreviewResponse:
17320
- type: object
17321
- description: |
17322
- Result of running a preview against the configured import. Shows the
17323
- mapped/transformed records as composed for the destination.
17324
- properties:
17325
- data:
17326
- type: array
17327
- description: Mapped and transformed records produced by the import.
17328
- items:
17329
- type: object
17330
- additionalProperties: true
17331
- errors:
17332
- type: array
17333
- description: Any validation or transformation errors encountered while building the preview.
17334
- items:
17335
- type: object
17336
- properties:
17337
- code:
17338
- type: string
17339
- description: Machine-readable code identifying the type of preview error.
17340
- message:
17341
- type: string
17342
- description: Human-readable explanation of what went wrong while building the preview.
17343
- path:
17344
- type: string
17345
- description: Path to the field or configuration element the error relates to.
17346
- additionalProperties: true
17347
17249
  DependencyEntry:
17348
17250
  type: object
17349
17251
  description: A single resource that depends on the queried resource.
package/dist/tool.yml CHANGED
@@ -1273,6 +1273,10 @@ paths:
1273
1273
  broader history. Use an entry's `executionId` with
1274
1274
  `GET /v1/tools/{_id}/invocations/{executionId}` to drill into its steps.
1275
1275
 
1276
+ Entries are written asynchronously: a run appears here a few seconds after
1277
+ `POST /v1/tools/{_id}/invoke` returns, so re-read before concluding that a run
1278
+ was not logged.
1279
+
1276
1280
  Sandbox Tools return `403`. Custom roles only see invocations whose
1277
1281
  `_invokerIntegrationId` is in their accessible integrations.
1278
1282
  parameters:
@@ -1288,7 +1292,9 @@ paths:
1288
1292
  - 65a98d1ef2b40000098c3a4d
1289
1293
  - name: pageSize
1290
1294
  in: query
1291
- description: Number of entries per page. Larger values are clamped to 100.
1295
+ description: |-
1296
+ Number of entries per page. Larger values are clamped to 100; `0` or a non-numeric
1297
+ value returns `400` `invalid_url`.
1292
1298
  schema:
1293
1299
  type: integer
1294
1300
  minimum: 1
@@ -1454,7 +1460,11 @@ paths:
1454
1460
  nextPageUrl: null
1455
1461
  prevPageUrl: null
1456
1462
  '400':
1457
- description: Invalid query parameter, for example a `status` token outside the enum.
1463
+ description: |-
1464
+ Invalid query parameter: a `status` token outside the enum (`invalid_status`), a
1465
+ `sortOrder` other than `asc`/`desc` (`invalid_sort_order`), a `time_gte`/`time_lte`
1466
+ that is not a timestamp (`invalid_field`), or a `pageSize` below 1 or non-numeric
1467
+ (`invalid_url`).
1458
1468
  content:
1459
1469
  application/json:
1460
1470
  schema:
@@ -1465,6 +1475,23 @@ paths:
1465
1475
  errors:
1466
1476
  - code: invalid_status
1467
1477
  message: Status should be either success, error or ignore.
1478
+ invalid_sort_order:
1479
+ value:
1480
+ errors:
1481
+ - code: invalid_sort_order
1482
+ message: Sort order should be either asc or desc.
1483
+ invalid_time:
1484
+ summary: '`time_gte` is not a timestamp'
1485
+ value:
1486
+ errors:
1487
+ - code: invalid_field
1488
+ message: 'The value provided for the field: ''time_gte'' is invalid.'
1489
+ invalid_page_size:
1490
+ summary: '`pageSize` is 0 or not a number'
1491
+ value:
1492
+ errors:
1493
+ - code: invalid_url
1494
+ message: pageSize is not valid.
1468
1495
  '401':
1469
1496
  $ref: '#/components/responses/401-unauthorized'
1470
1497
  '403':
@@ -1506,14 +1533,16 @@ paths:
1506
1533
  - name: time_gte
1507
1534
  in: query
1508
1535
  required: true
1509
- description: Start of the deletion window. Omitting it returns `400` `invalid_query_params`.
1536
+ description: |-
1537
+ Start of the deletion window. Must be earlier than `time_lte`; omitting either bound
1538
+ returns `400` `invalid_query_params`.
1510
1539
  schema:
1511
1540
  type: string
1512
1541
  format: date-time
1513
1542
  - name: time_lte
1514
1543
  in: query
1515
1544
  required: true
1516
- description: End of the deletion window. Must not be in the future.
1545
+ description: End of the deletion window. Neither bound may be in the future.
1517
1546
  schema:
1518
1547
  type: string
1519
1548
  format: date-time
@@ -1521,7 +1550,9 @@ paths:
1521
1550
  '202':
1522
1551
  description: Deletion request accepted for asynchronous processing. No body.
1523
1552
  '400':
1524
- description: Missing or invalid window parameters.
1553
+ description: |-
1554
+ Missing or invalid window parameters — a bound is omitted, a bound is in the future,
1555
+ or `time_gte` is not before `time_lte`. Nothing is deleted.
1525
1556
  content:
1526
1557
  application/json:
1527
1558
  schema:
@@ -1532,6 +1563,21 @@ paths:
1532
1563
  errors:
1533
1564
  - code: invalid_query_params
1534
1565
  message: time_gte query parameter is required for deleting logs.
1566
+ missing_time_lte:
1567
+ value:
1568
+ errors:
1569
+ - code: invalid_query_params
1570
+ message: time_lte query parameter is required for deleting logs.
1571
+ future_window:
1572
+ value:
1573
+ errors:
1574
+ - code: invalid_query_params
1575
+ message: time_gte and time_lte cannot be in the future.
1576
+ inverted_window:
1577
+ value:
1578
+ errors:
1579
+ - code: invalid_query_params
1580
+ message: time_gte must be before time_lte.
1535
1581
  '401':
1536
1582
  $ref: '#/components/responses/401-unauthorized'
1537
1583
  '403':
@@ -1553,8 +1599,12 @@ paths:
1553
1599
  `recordId` with the log-data endpoint to read the payload it processed.
1554
1600
 
1555
1601
  When the invocation is missing or not visible under the caller's integration ACL,
1556
- the endpoint returns `204 No Content`. `404` applies only to an unknown or inaccessible
1557
- Tool `_id`. A malformed `executionId` returns `422`. Sandbox Tools return `403`.
1602
+ the endpoint returns `204 No Content`. The trace is written asynchronously: for a few
1603
+ seconds after `POST /v1/tools/{_id}/invoke` returns, a valid `invocationId` also answers
1604
+ `204`, and the header can then appear before its step records, with an empty `steps`
1605
+ array. Re-read before treating a run as unknown or as failed before its first step.
1606
+ `404` applies only to an unknown or inaccessible Tool `_id`. A malformed `executionId`
1607
+ returns `422`. Sandbox Tools return `403`.
1558
1608
  parameters:
1559
1609
  - name: _id
1560
1610
  in: path
@@ -1630,7 +1680,9 @@ paths:
1630
1680
  logMode: debug
1631
1681
  steps: []
1632
1682
  '204':
1633
- description: Invocation not found or not visible under the caller's integration ACL.
1683
+ description: |-
1684
+ Invocation not found, not visible under the caller's integration ACL, or not yet
1685
+ written — a run answers `204` for a few seconds after the invoke returns.
1634
1686
  '401':
1635
1687
  $ref: '#/components/responses/401-unauthorized'
1636
1688
  '403':
@@ -1801,9 +1853,17 @@ paths:
1801
1853
  came out — selected by `_expOrImpId`, `stage`, `groupId`, and `recordId` from the
1802
1854
  trace-metadata response. The input and output bubbles store their payload under the
1803
1855
  `schemaValidation` stage; a lookup step stores the response it merged under
1804
- `responseMapping`. A selector that matches nothing returns `200` with an empty `logs`
1805
- array. Large payloads are not inlined — the entry carries an `externalReference` whose
1806
- `s3Key` you pass to the signed-URL endpoint.
1856
+ `responseMapping`; a step that makes an outbound API call, such as an HTTP lookup,
1857
+ stores each request it sent under `apiCall`, one entry per attempt, so a retried
1858
+ request shows each failed attempt before the one that succeeded. Large payloads are
1859
+ not inlined — the entry carries an `externalReference` whose `s3Key` you pass to the
1860
+ signed-URL endpoint.
1861
+
1862
+ A selector that matches nothing returns `200` with an empty `logs` array — a stage
1863
+ the step never ran for that record, a `groupId` from another step, and a step that
1864
+ recorded no request all look the same. Payloads are written after the trace's step
1865
+ records, so for a run that just finished an empty array can also mean the payload has
1866
+ not landed yet; re-query before concluding nothing was stored.
1807
1867
 
1808
1868
  For nested Tools, set `stage` to `tool` with the nested ToolImport id to fetch the
1809
1869
  composed input/output payload.
@@ -1886,6 +1946,43 @@ paths:
1886
1946
  orderId: SO-1043
1887
1947
  errors: []
1888
1948
  errors: []
1949
+ apiCall:
1950
+ summary: HTTP lookup requests — a failed attempt, then the retry that succeeded
1951
+ value:
1952
+ logs:
1953
+ - log:
1954
+ apiCallTraceKeyId: M3bsB9KB
1955
+ stage: apiCall
1956
+ apiCallType: lookupexport
1957
+ status: failed
1958
+ request:
1959
+ method: GET
1960
+ uri: https://api.example.com/v1/orders
1961
+ headers:
1962
+ accept: application/json
1963
+ Authorization: Bearer ********
1964
+ response:
1965
+ statusCode: 503
1966
+ headers:
1967
+ content-type: text/html
1968
+ body: <html><head><title>503 Service Temporarily Unavailable</title></head></html>
1969
+ - log:
1970
+ apiCallTraceKeyId: cI09faBo
1971
+ stage: apiCall
1972
+ apiCallType: lookupexport
1973
+ status: success
1974
+ request:
1975
+ method: GET
1976
+ uri: https://api.example.com/v1/orders
1977
+ headers:
1978
+ accept: application/json
1979
+ Authorization: Bearer ********
1980
+ response:
1981
+ statusCode: 200
1982
+ headers:
1983
+ content-type: application/json; charset=utf-8
1984
+ body: '[{"_id":"6a50f177a8d85436a4a890db","name":"SO-1043"}]'
1985
+ errors: []
1889
1986
  noMatch:
1890
1987
  summary: Selector matched no stored payload
1891
1988
  value:
@@ -3394,7 +3491,11 @@ components:
3394
3491
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
3395
3492
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
3396
3493
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
3397
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
3494
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
3495
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
3496
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
3497
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
3498
+ name changes the output; it does not complete the row
3398
3499
 
3399
3500
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
3400
3501
  hierarchical structure with nested mappings:
@@ -3409,8 +3510,9 @@ components:
3409
3510
  }
3410
3511
  ```
3411
3512
 
3412
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
3413
- within a parent array.
3513
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
3514
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
3515
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
3414
3516
  examples:
3415
3517
  - name
3416
3518
  - address
@@ -4391,6 +4493,12 @@ components:
4391
4493
  object-array row left with no source, no destination and no remaining child `mappings` or
4392
4494
  `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
4393
4495
  wrapper that still has children, are kept.
4496
+
4497
+ The shape of the array is the mapper's **JSON structure**. Named top-level items produce an object
4498
+ record (`record { }`). Exactly one top-level item with `dataType: objectarray` and no `generate` is
4499
+ the `rows [ ]` structure: the mapped record is an array — usually one element per element of the
4500
+ source array that root's `buildArrayHelper` iterates — Handlebars templates such as `http.body`
4501
+ bind it as `rows` instead of `record`, and the mapping editor shows that row's destination disabled.
4394
4502
  x-celigo-ai-guidance:
4395
4503
  - |-
4396
4504
  Rows that exist in the saved document — including `Draft` and `Inactive` rows and
@@ -4399,6 +4507,14 @@ components:
4399
4507
  them. Only a row with neither source nor destination — and, for an object or
4400
4508
  object-array row, no remaining children — can be left out; the save would drop it
4401
4509
  anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
4510
+ - |-
4511
+ A single unnamed top-level `objectarray` item is the `rows [ ]` JSON structure, not a
4512
+ missing destination: keep it unnamed when editing (naming it turns the output into an
4513
+ object, and a template that iterates `rows` then renders nothing), and author that
4514
+ shape only when the request body must be an array or a template iterates `rows`.
4515
+ The editor's save check accepts the unnamed root only in the `rows [ ]` structure;
4516
+ any other row with a source and no `generate` fails with "One or more destination
4517
+ field values not entered".
4402
4518
  items:
4403
4519
  type: object
4404
4520
  properties:
@@ -4414,7 +4530,11 @@ components:
4414
4530
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
4415
4531
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
4416
4532
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
4417
- - For arrays within arrays: Leave EMPTY for the inner array mappings, as they don't have field names
4533
+ - Two structural blanks: the inner array item of an array of arrays (it has no field name),
4534
+ and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
4535
+ structure — see the array's description). A child-bearing wrapper and a source-only row that
4536
+ already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
4537
+ name changes the output; it does not complete the row
4418
4538
 
4419
4539
  IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
4420
4540
  hierarchical structure with nested mappings:
@@ -4429,8 +4549,9 @@ components:
4429
4549
  }
4430
4550
  ```
4431
4551
 
4432
- When parsing existing mappings, empty 'generate' fields almost always indicate inner array structures
4433
- within a parent array.
4552
+ When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
4553
+ empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
4554
+ structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
4434
4555
  examples:
4435
4556
  - name
4436
4557
  - address
@@ -24981,6 +25102,23 @@ components:
24981
25102
  per-mode contract. Handlebars expressions in ``extract`` always
24982
25103
  reference ``{{record.field}}`` regardless — only JSONPath
24983
25104
  behavior flips with ``inputContext``.
25105
+ - |-
25106
+ ## JSON structure — record { } or rows [ ]
25107
+
25108
+ The shape of this array is the mapper's JSON structure. Named
25109
+ top-level items produce an object record; ``http.body`` and the
25110
+ other templates bind it as ``record``. Exactly one top-level item
25111
+ with ``dataType: objectarray`` and no ``generate`` is the
25112
+ ``rows [ ]`` structure: the mapped record is an array — one
25113
+ element per element the item's ``buildArrayHelper`` iterates —
25114
+ and templates bind it as ``rows`` (``{{#each rows}}``), with
25115
+ ``record.*`` undefined. The mapping editor shows that row's
25116
+ destination disabled; its save check accepts the unnamed root
25117
+ only in the ``rows [ ]`` structure and fails any other row that
25118
+ has a source and no ``generate`` with "One or more destination
25119
+ field values not entered". Keep the root unnamed when editing a
25120
+ ``rows [ ]`` mapping — naming it turns the output into an object
25121
+ and a ``{{#each rows}}`` body renders nothing.
24984
25122
  - |-
24985
25123
  ## IMPORT-SPECIFIC BEHAVIOR
24986
25124
 
@@ -37273,7 +37411,10 @@ components:
37273
37411
  - '2026-09-22T03:27:29.411000Z'
37274
37412
  timeTaken:
37275
37413
  type: integer
37276
- description: Total processing time in milliseconds.
37414
+ description: |-
37415
+ Wall-clock duration of the invocation in milliseconds, from request to response.
37416
+ It also counts time spent outside the steps, so it exceeds the sum of the step
37417
+ `timeTaken` values on the trace.
37277
37418
  examples:
37278
37419
  - 1025
37279
37420
  logMode:
@@ -37446,7 +37587,10 @@ components:
37446
37587
  - '2026-09-22T03:27:29.411000Z'
37447
37588
  timeTaken:
37448
37589
  type: integer
37449
- description: Total processing time in milliseconds.
37590
+ description: |-
37591
+ Wall-clock duration of the invocation in milliseconds, from request to response.
37592
+ It also counts time spent outside the steps, so it exceeds the sum of the step
37593
+ `timeTaken` values — use the step sum when apportioning time across steps.
37450
37594
  examples:
37451
37595
  - 1025
37452
37596
  traceKey:
@@ -37492,7 +37636,8 @@ components:
37492
37636
  type: array
37493
37637
  description: |-
37494
37638
  Step records in execution order — input bubble, branch steps, output bubble.
37495
- Empty when the run failed before its first step.
37639
+ Empty when the run failed before its first step. Step records are written after
37640
+ the header, so a run read seconds after it finished can also return an empty array.
37496
37641
  items:
37497
37642
  $ref: '#/components/schemas/ToolInvocationStep'
37498
37643
  ToolChildrenResponse:
@@ -37544,10 +37689,14 @@ components:
37544
37689
  description: |-
37545
37690
  Processing stage whose payload to fetch. The input and output bubbles store their
37546
37691
  payload under `schemaValidation`; a lookup step stores the merged response under
37547
- `responseMapping`; use `tool` for a nested ToolImport's composed payload.
37692
+ `responseMapping`; a step that makes an outbound API call, such as an HTTP lookup,
37693
+ stores each request it sent under `apiCall`; use `tool` for a nested ToolImport's
37694
+ composed payload. A stage the step never ran for this record returns an empty
37695
+ `logs` array, the same as a record that stored nothing.
37548
37696
  examples:
37549
37697
  - schemaValidation
37550
37698
  - responseMapping
37699
+ - apiCall
37551
37700
  - tool
37552
37701
  groupId:
37553
37702
  type: string
@@ -37573,12 +37722,19 @@ components:
37573
37722
  Small payloads are inlined under `log`; a large payload is replaced by an
37574
37723
  `externalReference[]` whose `source.s3Key` you pass to
37575
37724
  `GET /v1/tools/{_id}/invocations/{executionId}/logs/signedURL` to download it.
37725
+ A bubble or mapping stage returns one entry per record; the `apiCall` stage
37726
+ returns one entry per request the step sent, in order, so a retried request shows
37727
+ each failed attempt before the one that succeeded.
37576
37728
  items:
37577
37729
  type: object
37578
37730
  properties:
37579
37731
  log:
37580
37732
  type: object
37581
- description: Inlined payload for the selected record and stage.
37733
+ description: |-
37734
+ Inlined payload for the selected record and stage. Record-level stages such
37735
+ as `schemaValidation` and `responseMapping` carry the timestamp, selector echo
37736
+ and `input` / `output` / `errors`; the `apiCall` stage carries the request sent
37737
+ and the response received instead.
37582
37738
  properties:
37583
37739
  timestamp:
37584
37740
  type: string
@@ -37628,6 +37784,71 @@ components:
37628
37784
  items:
37629
37785
  type: object
37630
37786
  additionalProperties: true
37787
+ apiCallTraceKeyId:
37788
+ type: string
37789
+ description: Identifier of one request attempt. Present when `stage` is `apiCall`.
37790
+ examples:
37791
+ - M3bsB9KB
37792
+ apiCallType:
37793
+ type: string
37794
+ description: Kind of step that sent the request, such as a lookup export. Present when `stage` is `apiCall`.
37795
+ examples:
37796
+ - lookupexport
37797
+ status:
37798
+ type: string
37799
+ enum:
37800
+ - success
37801
+ - failed
37802
+ x-enumDescriptions:
37803
+ success: The attempt received a response the step accepted
37804
+ failed: The attempt was rejected or errored; a later entry may carry the retry
37805
+ description: Outcome of this request attempt. Present when `stage` is `apiCall`.
37806
+ request:
37807
+ type: object
37808
+ description: |-
37809
+ The request the step sent on this attempt — `method`, `uri` and `headers`.
37810
+ Credential headers are masked. Present when `stage` is `apiCall`.
37811
+ properties:
37812
+ method:
37813
+ type: string
37814
+ description: HTTP method of the attempt.
37815
+ uri:
37816
+ type: string
37817
+ description: Full URL the attempt called.
37818
+ headers:
37819
+ type: object
37820
+ additionalProperties: true
37821
+ description: Request headers as sent, with credential values masked.
37822
+ additionalProperties: true
37823
+ response:
37824
+ type: object
37825
+ description: |-
37826
+ The response this attempt received — `statusCode`, `headers`, and the raw
37827
+ `body` as a string when the endpoint sent one. Present when `stage` is
37828
+ `apiCall`.
37829
+ properties:
37830
+ statusCode:
37831
+ type: integer
37832
+ description: HTTP status the endpoint returned.
37833
+ headers:
37834
+ type: object
37835
+ additionalProperties: true
37836
+ description: Response headers as received.
37837
+ body:
37838
+ type: string
37839
+ description: Raw response body; JSON arrives as a serialized string.
37840
+ additionalProperties: true
37841
+ if:
37842
+ properties:
37843
+ stage:
37844
+ const: apiCall
37845
+ required:
37846
+ - stage
37847
+ then:
37848
+ required:
37849
+ - status
37850
+ - request
37851
+ - response
37631
37852
  additionalProperties: true
37632
37853
  externalReference:
37633
37854
  type: array
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.100",
3
+ "version": "0.2.102",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [
package/schemas.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "provenance": {
3
3
  "repo": "celigo/integrator-api-specs",
4
- "iasCommit": "5a3e9e39",
4
+ "iasCommit": "f7df0c08",
5
5
  "generatedAt": "2026-10-12"
6
6
  },
7
7
  "roots": {