@celigo/api-specs 0.2.99 → 0.2.101
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 +30 -6
- package/dist/api.yml +40 -6
- package/dist/asynchelper.yml +30 -6
- package/dist/export.yml +34 -7
- package/dist/flow.yml +50 -17
- package/dist/import.yml +57 -155
- package/dist/integration.yml +25 -8
- package/dist/tool.yml +331 -33
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/tool.yml
CHANGED
|
@@ -710,14 +710,26 @@ paths:
|
|
|
710
710
|
- Tools
|
|
711
711
|
summary: Clone a tool
|
|
712
712
|
description: |-
|
|
713
|
-
Creates a copy of a tool in the target integration
|
|
714
|
-
|
|
715
|
-
places it in the source
|
|
713
|
+
Creates a copy of a tool in the target integration, together with the export and
|
|
714
|
+
import steps it references, and returns a manifest of the resources the clone
|
|
715
|
+
created. The clone records its lineage in `_sourceId`, which places it in the source
|
|
716
|
+
tool's clone family.
|
|
716
717
|
|
|
717
718
|
The target integration is never inferred from the source tool — pass the source
|
|
718
|
-
tool's own integration id to clone in place.
|
|
719
|
+
tool's own integration id to clone in place. When any step of the tool references a
|
|
720
|
+
connection, `connectionMap` is required as well: every connection the tool uses must
|
|
721
|
+
appear as a key, mapped to itself to reuse it or to another connection of the account
|
|
722
|
+
to repoint the cloned steps. A tool with no connection-bearing steps clones without it.
|
|
719
723
|
|
|
720
|
-
Use `GET /v1/tools/{_id}/clone/preview` first to see what the clone would create
|
|
724
|
+
Use `GET /v1/tools/{_id}/clone/preview` first to see what the clone would create —
|
|
725
|
+
each `Connection` object in the preview is a key `connectionMap` must carry.
|
|
726
|
+
x-celigo-ai-guidance:
|
|
727
|
+
- |-
|
|
728
|
+
Build `connectionMap` from the clone preview: one key per `Connection` object it lists,
|
|
729
|
+
each mapped to its own id unless the user asked to repoint the clone. Omitting the map
|
|
730
|
+
(or sending `{}`) when a step references a connection fails with 400
|
|
731
|
+
`invalid_connectionMap`; a key the tool does not reference, or a value that is not a
|
|
732
|
+
connection in the account, fails with 422 `invalid_connectionId` and nothing is created.
|
|
721
733
|
parameters:
|
|
722
734
|
- name: _id
|
|
723
735
|
in: path
|
|
@@ -750,15 +762,37 @@ paths:
|
|
|
750
762
|
description: Name for the cloned tool. Defaults to `Clone - <source tool name>` when omitted.
|
|
751
763
|
examples:
|
|
752
764
|
- Customer enrichment tool (copy)
|
|
765
|
+
connectionMap:
|
|
766
|
+
type: object
|
|
767
|
+
description: |-
|
|
768
|
+
Connection ids the tool's steps reference, each mapped to the connection the
|
|
769
|
+
cloned steps use instead. Required when any step references a connection —
|
|
770
|
+
omitted or empty, the clone fails with 400 `invalid_connectionMap`. Map an id
|
|
771
|
+
to itself to keep the connection; every key must be a connection the tool
|
|
772
|
+
references and every value a connection in the account.
|
|
773
|
+
additionalProperties:
|
|
774
|
+
type: string
|
|
775
|
+
format: objectId
|
|
776
|
+
examples:
|
|
777
|
+
- 6ac1ef4a38b24d95ffac2545: 6ac1ef4a38b24d95ffac2545
|
|
753
778
|
examples:
|
|
754
779
|
default:
|
|
755
|
-
summary: Clone into the same integration
|
|
780
|
+
summary: Clone a tool with no connection-bearing steps into the same integration
|
|
756
781
|
value:
|
|
757
782
|
_integrationId: 6a429af50547257e3301246c
|
|
758
783
|
name: Customer enrichment tool (copy)
|
|
784
|
+
with_connection_map:
|
|
785
|
+
summary: Clone a tool whose lookup step uses a connection, reusing that connection
|
|
786
|
+
value:
|
|
787
|
+
_integrationId: 6a429af50547257e3301246c
|
|
788
|
+
name: Customer enrichment tool (copy)
|
|
789
|
+
connectionMap:
|
|
790
|
+
6ac1ef4a38b24d95ffac2545: 6ac1ef4a38b24d95ffac2545
|
|
759
791
|
responses:
|
|
760
792
|
'201':
|
|
761
|
-
description:
|
|
793
|
+
description: |-
|
|
794
|
+
The clone was created. Returns a manifest of every resource the clone created —
|
|
795
|
+
the new tool plus the export and import steps it copied.
|
|
762
796
|
content:
|
|
763
797
|
application/json:
|
|
764
798
|
schema:
|
|
@@ -769,7 +803,7 @@ paths:
|
|
|
769
803
|
properties:
|
|
770
804
|
model:
|
|
771
805
|
type: string
|
|
772
|
-
description: Model name of the created resource (e.g. `Tool`).
|
|
806
|
+
description: Model name of the created resource (e.g. `Tool`, `Export`, `Import`).
|
|
773
807
|
examples:
|
|
774
808
|
- Tool
|
|
775
809
|
_id:
|
|
@@ -780,12 +814,22 @@ paths:
|
|
|
780
814
|
- 6a869d2f3ae8ccee42a45c44
|
|
781
815
|
examples:
|
|
782
816
|
default:
|
|
783
|
-
summary: Clone created a tool
|
|
817
|
+
summary: Clone created a tool with no steps
|
|
784
818
|
value:
|
|
785
819
|
- model: Tool
|
|
786
820
|
_id: 6a869d2f3ae8ccee42a45c44
|
|
821
|
+
with_steps:
|
|
822
|
+
summary: Clone created a tool and the lookup export it references
|
|
823
|
+
value:
|
|
824
|
+
- model: Export
|
|
825
|
+
_id: 6ac1ef8a38b24d95ffac2d64
|
|
826
|
+
- model: Tool
|
|
827
|
+
_id: 6ac1ef8a38b24d95ffac2d78
|
|
787
828
|
'400':
|
|
788
|
-
description:
|
|
829
|
+
description: |-
|
|
830
|
+
The body omits `_integrationId` (`required_field_missing`), or the tool's steps
|
|
831
|
+
reference a connection and `connectionMap` is missing or empty
|
|
832
|
+
(`invalid_connectionMap`).
|
|
789
833
|
content:
|
|
790
834
|
application/json:
|
|
791
835
|
schema:
|
|
@@ -797,10 +841,40 @@ paths:
|
|
|
797
841
|
errors:
|
|
798
842
|
- code: required_field_missing
|
|
799
843
|
message: 'required field: _integrationId is missing'
|
|
844
|
+
missingConnectionMap:
|
|
845
|
+
summary: A step references a connection but no connectionMap was sent
|
|
846
|
+
value:
|
|
847
|
+
errors:
|
|
848
|
+
- code: invalid_connectionMap
|
|
849
|
+
message: The resource which you are trying to create requires a connectionMap.
|
|
800
850
|
'401':
|
|
801
851
|
$ref: '#/components/responses/401-unauthorized'
|
|
802
852
|
'404':
|
|
803
853
|
$ref: '#/components/responses/404-not-found'
|
|
854
|
+
'422':
|
|
855
|
+
description: |-
|
|
856
|
+
`connectionMap` does not match the tool: a value is not a connection in the account,
|
|
857
|
+
or a key is not a connection the tool's steps reference (the unmapped connection is
|
|
858
|
+
reported alongside). Nothing is created.
|
|
859
|
+
content:
|
|
860
|
+
application/json:
|
|
861
|
+
schema:
|
|
862
|
+
$ref: '#/components/schemas/Error'
|
|
863
|
+
examples:
|
|
864
|
+
unknownTargetConnection:
|
|
865
|
+
summary: A mapped value is not a connection in the account
|
|
866
|
+
value:
|
|
867
|
+
errors:
|
|
868
|
+
- code: invalid_connectionId
|
|
869
|
+
message: 'The _connectionId provided for the key ''6ac1ef4a38b24d95ffac2545'': ''000000000000000000000001'' is invalid.'
|
|
870
|
+
keyNotReferenced:
|
|
871
|
+
summary: A key is not one of the tool's connections, so the real one is unmapped
|
|
872
|
+
value:
|
|
873
|
+
errors:
|
|
874
|
+
- code: invalid_connectionId
|
|
875
|
+
message: The key '000000000000000000000001' in connectionMap doesn't match with any of the _id's of the connection documents.
|
|
876
|
+
- code: invalid_connectionId
|
|
877
|
+
message: 'The _connectionId provided for the key ''6ac1ef4a38b24d95ffac2545'': '''' is invalid.'
|
|
804
878
|
/v1/tools/{_id}/clone/preview:
|
|
805
879
|
get:
|
|
806
880
|
x-internal: false
|
|
@@ -1199,6 +1273,10 @@ paths:
|
|
|
1199
1273
|
broader history. Use an entry's `executionId` with
|
|
1200
1274
|
`GET /v1/tools/{_id}/invocations/{executionId}` to drill into its steps.
|
|
1201
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
|
+
|
|
1202
1280
|
Sandbox Tools return `403`. Custom roles only see invocations whose
|
|
1203
1281
|
`_invokerIntegrationId` is in their accessible integrations.
|
|
1204
1282
|
parameters:
|
|
@@ -1214,7 +1292,9 @@ paths:
|
|
|
1214
1292
|
- 65a98d1ef2b40000098c3a4d
|
|
1215
1293
|
- name: pageSize
|
|
1216
1294
|
in: query
|
|
1217
|
-
description:
|
|
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`.
|
|
1218
1298
|
schema:
|
|
1219
1299
|
type: integer
|
|
1220
1300
|
minimum: 1
|
|
@@ -1380,7 +1460,11 @@ paths:
|
|
|
1380
1460
|
nextPageUrl: null
|
|
1381
1461
|
prevPageUrl: null
|
|
1382
1462
|
'400':
|
|
1383
|
-
description:
|
|
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`).
|
|
1384
1468
|
content:
|
|
1385
1469
|
application/json:
|
|
1386
1470
|
schema:
|
|
@@ -1391,6 +1475,23 @@ paths:
|
|
|
1391
1475
|
errors:
|
|
1392
1476
|
- code: invalid_status
|
|
1393
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.
|
|
1394
1495
|
'401':
|
|
1395
1496
|
$ref: '#/components/responses/401-unauthorized'
|
|
1396
1497
|
'403':
|
|
@@ -1432,14 +1533,16 @@ paths:
|
|
|
1432
1533
|
- name: time_gte
|
|
1433
1534
|
in: query
|
|
1434
1535
|
required: true
|
|
1435
|
-
description:
|
|
1536
|
+
description: |-
|
|
1537
|
+
Start of the deletion window. Must be earlier than `time_lte`; omitting either bound
|
|
1538
|
+
returns `400` `invalid_query_params`.
|
|
1436
1539
|
schema:
|
|
1437
1540
|
type: string
|
|
1438
1541
|
format: date-time
|
|
1439
1542
|
- name: time_lte
|
|
1440
1543
|
in: query
|
|
1441
1544
|
required: true
|
|
1442
|
-
description: End of the deletion window.
|
|
1545
|
+
description: End of the deletion window. Neither bound may be in the future.
|
|
1443
1546
|
schema:
|
|
1444
1547
|
type: string
|
|
1445
1548
|
format: date-time
|
|
@@ -1447,7 +1550,9 @@ paths:
|
|
|
1447
1550
|
'202':
|
|
1448
1551
|
description: Deletion request accepted for asynchronous processing. No body.
|
|
1449
1552
|
'400':
|
|
1450
|
-
description:
|
|
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.
|
|
1451
1556
|
content:
|
|
1452
1557
|
application/json:
|
|
1453
1558
|
schema:
|
|
@@ -1458,6 +1563,21 @@ paths:
|
|
|
1458
1563
|
errors:
|
|
1459
1564
|
- code: invalid_query_params
|
|
1460
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.
|
|
1461
1581
|
'401':
|
|
1462
1582
|
$ref: '#/components/responses/401-unauthorized'
|
|
1463
1583
|
'403':
|
|
@@ -1479,8 +1599,12 @@ paths:
|
|
|
1479
1599
|
`recordId` with the log-data endpoint to read the payload it processed.
|
|
1480
1600
|
|
|
1481
1601
|
When the invocation is missing or not visible under the caller's integration ACL,
|
|
1482
|
-
the endpoint returns `204 No Content`.
|
|
1483
|
-
|
|
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`.
|
|
1484
1608
|
parameters:
|
|
1485
1609
|
- name: _id
|
|
1486
1610
|
in: path
|
|
@@ -1556,7 +1680,9 @@ paths:
|
|
|
1556
1680
|
logMode: debug
|
|
1557
1681
|
steps: []
|
|
1558
1682
|
'204':
|
|
1559
|
-
description:
|
|
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.
|
|
1560
1686
|
'401':
|
|
1561
1687
|
$ref: '#/components/responses/401-unauthorized'
|
|
1562
1688
|
'403':
|
|
@@ -1727,9 +1853,17 @@ paths:
|
|
|
1727
1853
|
came out — selected by `_expOrImpId`, `stage`, `groupId`, and `recordId` from the
|
|
1728
1854
|
trace-metadata response. The input and output bubbles store their payload under the
|
|
1729
1855
|
`schemaValidation` stage; a lookup step stores the response it merged under
|
|
1730
|
-
`responseMapping
|
|
1731
|
-
|
|
1732
|
-
|
|
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.
|
|
1733
1867
|
|
|
1734
1868
|
For nested Tools, set `stage` to `tool` with the nested ToolImport id to fetch the
|
|
1735
1869
|
composed input/output payload.
|
|
@@ -1812,6 +1946,43 @@ paths:
|
|
|
1812
1946
|
orderId: SO-1043
|
|
1813
1947
|
errors: []
|
|
1814
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: []
|
|
1815
1986
|
noMatch:
|
|
1816
1987
|
summary: Selector matched no stored payload
|
|
1817
1988
|
value:
|
|
@@ -3320,7 +3491,11 @@ components:
|
|
|
3320
3491
|
- For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
|
|
3321
3492
|
- For object fields: Set to the object property name, then add child mappings in the 'mappings' array
|
|
3322
3493
|
- For array fields: Set to the array property name, then configure 'buildArrayHelper'
|
|
3323
|
-
-
|
|
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
|
|
3324
3499
|
|
|
3325
3500
|
IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
|
|
3326
3501
|
hierarchical structure with nested mappings:
|
|
@@ -3335,8 +3510,9 @@ components:
|
|
|
3335
3510
|
}
|
|
3336
3511
|
```
|
|
3337
3512
|
|
|
3338
|
-
When parsing existing mappings, empty
|
|
3339
|
-
|
|
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.
|
|
3340
3516
|
examples:
|
|
3341
3517
|
- name
|
|
3342
3518
|
- address
|
|
@@ -4317,6 +4493,12 @@ components:
|
|
|
4317
4493
|
object-array row left with no source, no destination and no remaining child `mappings` or
|
|
4318
4494
|
`buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
|
|
4319
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.
|
|
4320
4502
|
x-celigo-ai-guidance:
|
|
4321
4503
|
- |-
|
|
4322
4504
|
Rows that exist in the saved document — including `Draft` and `Inactive` rows and
|
|
@@ -4325,6 +4507,14 @@ components:
|
|
|
4325
4507
|
them. Only a row with neither source nor destination — and, for an object or
|
|
4326
4508
|
object-array row, no remaining children — can be left out; the save would drop it
|
|
4327
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".
|
|
4328
4518
|
items:
|
|
4329
4519
|
type: object
|
|
4330
4520
|
properties:
|
|
@@ -4340,7 +4530,11 @@ components:
|
|
|
4340
4530
|
- For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
|
|
4341
4531
|
- For object fields: Set to the object property name, then add child mappings in the 'mappings' array
|
|
4342
4532
|
- For array fields: Set to the array property name, then configure 'buildArrayHelper'
|
|
4343
|
-
-
|
|
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
|
|
4344
4538
|
|
|
4345
4539
|
IMPORTANT: Do NOT use dot notation (e.g., "customer.firstName") in this field. Instead, create proper
|
|
4346
4540
|
hierarchical structure with nested mappings:
|
|
@@ -4355,8 +4549,9 @@ components:
|
|
|
4355
4549
|
}
|
|
4356
4550
|
```
|
|
4357
4551
|
|
|
4358
|
-
When parsing existing mappings, empty
|
|
4359
|
-
|
|
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.
|
|
4360
4555
|
examples:
|
|
4361
4556
|
- name
|
|
4362
4557
|
- address
|
|
@@ -24907,6 +25102,23 @@ components:
|
|
|
24907
25102
|
per-mode contract. Handlebars expressions in ``extract`` always
|
|
24908
25103
|
reference ``{{record.field}}`` regardless — only JSONPath
|
|
24909
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.
|
|
24910
25122
|
- |-
|
|
24911
25123
|
## IMPORT-SPECIFIC BEHAVIOR
|
|
24912
25124
|
|
|
@@ -30365,7 +30577,10 @@ components:
|
|
|
30365
30577
|
- '{"records": [{"id": "{{record.id}}", "exported": true}]}'
|
|
30366
30578
|
paging:
|
|
30367
30579
|
type: object
|
|
30368
|
-
description:
|
|
30580
|
+
description: |-
|
|
30581
|
+
Controls how the export requests subsequent pages when the API returns multi-page responses. The `method` field determines which companion fields are required and how each next page is requested. For the page, skip, and token methods, reference the matching pagination variable (`{{export.http.paging.page}}`, `{{export.http.paging.skip}}`, or `{{export.http.paging.token}}`) in the relative URI or request body — misconfigured pagination is a common cause of incomplete data retrieval.
|
|
30582
|
+
|
|
30583
|
+
When this export is the first lookup of a builder-mode API with `pagination.enabled` set, it is that API's volume driver: saving the export (even unchanged) invalidates the API's issued cursors, so a caller mid-walk gets an empty final page, and removing `paging` is accepted on save but makes every call to the API fail with `400 api_pagination_source_not_paged` until paging is restored or the API's flag is turned off.
|
|
30369
30584
|
x-celigo-ai-guidance:
|
|
30370
30585
|
- Configuration object for navigating through multi-page API responses.
|
|
30371
30586
|
- |-
|
|
@@ -37196,7 +37411,10 @@ components:
|
|
|
37196
37411
|
- '2026-09-22T03:27:29.411000Z'
|
|
37197
37412
|
timeTaken:
|
|
37198
37413
|
type: integer
|
|
37199
|
-
description:
|
|
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.
|
|
37200
37418
|
examples:
|
|
37201
37419
|
- 1025
|
|
37202
37420
|
logMode:
|
|
@@ -37369,7 +37587,10 @@ components:
|
|
|
37369
37587
|
- '2026-09-22T03:27:29.411000Z'
|
|
37370
37588
|
timeTaken:
|
|
37371
37589
|
type: integer
|
|
37372
|
-
description:
|
|
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.
|
|
37373
37594
|
examples:
|
|
37374
37595
|
- 1025
|
|
37375
37596
|
traceKey:
|
|
@@ -37415,7 +37636,8 @@ components:
|
|
|
37415
37636
|
type: array
|
|
37416
37637
|
description: |-
|
|
37417
37638
|
Step records in execution order — input bubble, branch steps, output bubble.
|
|
37418
|
-
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.
|
|
37419
37641
|
items:
|
|
37420
37642
|
$ref: '#/components/schemas/ToolInvocationStep'
|
|
37421
37643
|
ToolChildrenResponse:
|
|
@@ -37467,10 +37689,14 @@ components:
|
|
|
37467
37689
|
description: |-
|
|
37468
37690
|
Processing stage whose payload to fetch. The input and output bubbles store their
|
|
37469
37691
|
payload under `schemaValidation`; a lookup step stores the merged response under
|
|
37470
|
-
`responseMapping`;
|
|
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.
|
|
37471
37696
|
examples:
|
|
37472
37697
|
- schemaValidation
|
|
37473
37698
|
- responseMapping
|
|
37699
|
+
- apiCall
|
|
37474
37700
|
- tool
|
|
37475
37701
|
groupId:
|
|
37476
37702
|
type: string
|
|
@@ -37496,12 +37722,19 @@ components:
|
|
|
37496
37722
|
Small payloads are inlined under `log`; a large payload is replaced by an
|
|
37497
37723
|
`externalReference[]` whose `source.s3Key` you pass to
|
|
37498
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.
|
|
37499
37728
|
items:
|
|
37500
37729
|
type: object
|
|
37501
37730
|
properties:
|
|
37502
37731
|
log:
|
|
37503
37732
|
type: object
|
|
37504
|
-
description:
|
|
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.
|
|
37505
37738
|
properties:
|
|
37506
37739
|
timestamp:
|
|
37507
37740
|
type: string
|
|
@@ -37551,6 +37784,71 @@ components:
|
|
|
37551
37784
|
items:
|
|
37552
37785
|
type: object
|
|
37553
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
|
|
37554
37852
|
additionalProperties: true
|
|
37555
37853
|
externalReference:
|
|
37556
37854
|
type: array
|
package/package.json
CHANGED