@celigo/api-specs 0.2.51 → 0.2.52
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/export.yml +16 -1
- package/dist/import.yml +31 -5
- package/dist/tool.yml +47 -6
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/export.yml
CHANGED
|
@@ -920,7 +920,17 @@ components:
|
|
|
920
920
|
When grouping is used, the export's page size determines the maximum number of groups per page, not individual
|
|
921
921
|
records. Note that effective grouping typically requires that records with the same group field values appear
|
|
922
922
|
together in the export data.
|
|
923
|
+
|
|
924
|
+
Not a webhook listener feature: on a `webhook` export the platform applies it only within each page, after
|
|
925
|
+
the request has been paged, and only to adjacent rows — the field is not offered for listeners in the UI.
|
|
923
926
|
x-celigo-ai-guidance:
|
|
927
|
+
- |-
|
|
928
|
+
Never set this on a webhook listener to keep a request's rows together —
|
|
929
|
+
the listener pages the request's records at ``pageSize`` FIRST and then
|
|
930
|
+
merges only adjacent same-key rows inside each page, so rows that cross a
|
|
931
|
+
page boundary still arrive as separate records and unsorted rows are not
|
|
932
|
+
grouped at all. Keep a listener's request together by having the sender
|
|
933
|
+
post an object (one record) or by raising the listener's ``pageSize``.
|
|
924
934
|
- |-
|
|
925
935
|
A grouped record's wire shape is a BARE ARRAY of the grouped rows
|
|
926
936
|
(``[{row}, {row}]``) — there is no ``rows`` key on the record
|
|
@@ -2045,7 +2055,10 @@ components:
|
|
|
2045
2055
|
- csv
|
|
2046
2056
|
pathToRecords:
|
|
2047
2057
|
type: string
|
|
2048
|
-
description: JSON path into
|
|
2058
|
+
description: JSON path into an object payload to the array whose elements become the records. When omitted, a top-level JSON array is emitted as one record per element and an object payload is emitted as a single record.
|
|
2059
|
+
x-celigo-ai-guidance:
|
|
2060
|
+
- 'Set this only when the records sit inside an object (`{"data": {"items": [...]}}` → `data.items`). A sender that already posts a top-level array needs nothing here; a sender that posts an object with no path configured delivers exactly one record per request — the whole object — which is also the way to make one request one record on purpose.'
|
|
2061
|
+
- 'Records are paged per request at the export''s `pageSize` (default 20) before any hook, filter, or downstream step runs: a 25-element array is a page of 20 records followed by a page of 5, and a `preSavePage` hook receives one page (up to `pageSize` records) per call. A hook that groups rows by order therefore groups only the rows on the same page — an order whose rows span two pages comes out as two grouped records, the second after the first was already processed. To keep a request''s rows together, have the sender wrap them in an object (one record, rows under `record.<path>`) or raise `pageSize` above the largest request — never `groupByFields`, which the listener applies per page after paging.'
|
|
2049
2062
|
examples:
|
|
2050
2063
|
- events
|
|
2051
2064
|
- data.items
|
|
@@ -16242,6 +16255,8 @@ components:
|
|
|
16242
16255
|
record as one response, capped at 5 MB in total, so the value does not change how many
|
|
16243
16256
|
results a lookup returns; a result set larger than that belongs in a standalone export
|
|
16244
16257
|
step. In a test run or preview the value also caps the records fetched (default 20).
|
|
16258
|
+
On a webhook listener the records of each incoming request are paged separately, before
|
|
16259
|
+
any hook or downstream step runs.
|
|
16245
16260
|
default: 20
|
|
16246
16261
|
examples:
|
|
16247
16262
|
- 100
|
package/dist/import.yml
CHANGED
|
@@ -1734,8 +1734,17 @@ components:
|
|
|
1734
1734
|
description: |-
|
|
1735
1735
|
Maximum number of records submitted per HTTP request, which affects throughput and API rate limiting.
|
|
1736
1736
|
REST services typically send one record per request; raise it only for batch endpoints or RPC/XML services that accept multiple records, consulting the target API documentation for the optimal value.
|
|
1737
|
+
Above 1, the body, relative URI, and header templates render once per request against `batch_of_records` — each entry carrying that record as `record` (or `rows` for a grouped record) — and a root-level `record` or `rows` is undefined.
|
|
1737
1738
|
|
|
1738
1739
|
The default varies by API.
|
|
1740
|
+
x-celigo-ai-guidance:
|
|
1741
|
+
- |-
|
|
1742
|
+
A batched import's templates iterate ``{{#each batch_of_records}}`` and address
|
|
1743
|
+
``this.record.<field>`` (``this.rows.0.<field>`` for grouped records), or iterate
|
|
1744
|
+
the bare records as ``{{#each data}}``; a ``{{record.<field>}}`` left at the root
|
|
1745
|
+
renders empty in the body and fails the request in a relative URI or header. With
|
|
1746
|
+
the default batch size the shape root is ``record`` / ``rows``, ``data`` holds that
|
|
1747
|
+
one record, and ``batch_of_records`` is undefined.
|
|
1739
1748
|
examples:
|
|
1740
1749
|
- 1
|
|
1741
1750
|
- 10
|
|
@@ -1830,6 +1839,7 @@ components:
|
|
|
1830
1839
|
For composite (upsert) imports, the array is positionally aligned with method and requestType, and existingExtract decides the index used at runtime: the UPDATE index when its field has a value, the CREATE index when it is empty or missing.
|
|
1831
1840
|
Reference the existing record ID in the UPDATE URI with `{{{data.0.fieldName}}}` (triple braces with the data.0 prefix).
|
|
1832
1841
|
Use separate array elements per operation rather than `{{#if}}` conditionals inside a single URI.
|
|
1842
|
+
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.
|
|
1833
1843
|
x-celigo-ai-guidance:
|
|
1834
1844
|
- '**CRITICAL: This MUST be an array of strings, NOT an object.**'
|
|
1835
1845
|
- |-
|
|
@@ -1999,6 +2009,21 @@ components:
|
|
|
1999
2009
|
Avoid bare ``{{{jsonSerialize record}}}`` with no wrapper — leave the field undefined instead.
|
|
2000
2010
|
Also avoid wrapping a single post-mapped scalar field in ``jsonSerialize`` (e.g.
|
|
2001
2011
|
``{{{jsonSerialize record.<scalar>}}}``) — that pattern is brittle.
|
|
2012
|
+
- |-
|
|
2013
|
+
Every request context carries two data roots: ``data`` — the list of records in
|
|
2014
|
+
the request, always present (Pattern B) — and ONE shape-specific root that follows
|
|
2015
|
+
the record entering the step. An object record is ``record``; a GROUPED record (an
|
|
2016
|
+
array of rows — a ``groupByFields`` export, file key columns, a NetSuite grouped
|
|
2017
|
+
saved search) is ``rows`` (``{{rows.0.<field>}}``, ``{{#each rows}}``,
|
|
2018
|
+
``{{{jsonSerialize rows}}}``) and ``record.*`` is undefined on it; when
|
|
2019
|
+
``batchSize`` exceeds 1 the shape root is ``batch_of_records`` and neither ``record``
|
|
2020
|
+
nor ``rows`` exists at the top level. Inside ``data`` a grouped record is itself an
|
|
2021
|
+
array element (``{{#each data}}{{#each this}}…{{/each}}{{/each}}``). An object record
|
|
2022
|
+
that carries its own ``rows`` field is still ``record`` — ``{{#each record.rows}}``.
|
|
2023
|
+
Here an undefined path renders empty by default (``strictHandlebarEvaluation`` is the
|
|
2024
|
+
documented switch to raise instead); in ``relativeURI`` and ``headers[].value``
|
|
2025
|
+
templates an undefined path always fails the request — a wrong root there is a
|
|
2026
|
+
runtime failure, not a blank.
|
|
2002
2027
|
- |-
|
|
2003
2028
|
## LEAVE UNDEFINED for the most common case
|
|
2004
2029
|
|
|
@@ -2074,10 +2099,11 @@ components:
|
|
|
2074
2099
|
(the default) the root carries ``record`` (an object record —
|
|
2075
2100
|
or the fanned-out child on a ``oneToMany`` import) or ``rows``
|
|
2076
2101
|
(a grouped/array record), and ``data`` is the one-element list
|
|
2077
|
-
of records in the request
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2102
|
+
of records in the request (a grouped record is that element,
|
|
2103
|
+
itself an array); with ``batchSize`` > 1 the root carries
|
|
2104
|
+
``batch_of_records`` (one ``{record: …}`` item per object
|
|
2105
|
+
record, ``{rows: […]}`` for a grouped record) and ``data`` (the
|
|
2106
|
+
bare records), and ``record`` / ``rows`` are ABSENT. ``oneToMany`` does not make
|
|
2081
2107
|
``batch_of_records`` appear — children are batched after
|
|
2082
2108
|
fan-out under the same rule.
|
|
2083
2109
|
|
|
@@ -2359,7 +2385,7 @@ components:
|
|
|
2359
2385
|
description: Name of the HTTP header to include with each import request.
|
|
2360
2386
|
value:
|
|
2361
2387
|
type: string
|
|
2362
|
-
description: Value sent for the header. Supports handlebars expressions rendered against the pre-mapped record.
|
|
2388
|
+
description: Value sent for the header. Supports handlebars expressions rendered against the pre-mapped record, with the same data roots as the body (`record` / `rows` / `batch_of_records`, plus `data`); an undefined path fails the request rather than rendering empty.
|
|
2363
2389
|
x-celigo-agent:
|
|
2364
2390
|
- handlebars
|
|
2365
2391
|
x-celigo-handlebars-context: pre-mapped
|
package/dist/tool.yml
CHANGED
|
@@ -12254,8 +12254,17 @@ components:
|
|
|
12254
12254
|
description: |-
|
|
12255
12255
|
Maximum number of records submitted per HTTP request, which affects throughput and API rate limiting.
|
|
12256
12256
|
REST services typically send one record per request; raise it only for batch endpoints or RPC/XML services that accept multiple records, consulting the target API documentation for the optimal value.
|
|
12257
|
+
Above 1, the body, relative URI, and header templates render once per request against `batch_of_records` — each entry carrying that record as `record` (or `rows` for a grouped record) — and a root-level `record` or `rows` is undefined.
|
|
12257
12258
|
|
|
12258
12259
|
The default varies by API.
|
|
12260
|
+
x-celigo-ai-guidance:
|
|
12261
|
+
- |-
|
|
12262
|
+
A batched import's templates iterate ``{{#each batch_of_records}}`` and address
|
|
12263
|
+
``this.record.<field>`` (``this.rows.0.<field>`` for grouped records), or iterate
|
|
12264
|
+
the bare records as ``{{#each data}}``; a ``{{record.<field>}}`` left at the root
|
|
12265
|
+
renders empty in the body and fails the request in a relative URI or header. With
|
|
12266
|
+
the default batch size the shape root is ``record`` / ``rows``, ``data`` holds that
|
|
12267
|
+
one record, and ``batch_of_records`` is undefined.
|
|
12259
12268
|
examples:
|
|
12260
12269
|
- 1
|
|
12261
12270
|
- 10
|
|
@@ -12350,6 +12359,7 @@ components:
|
|
|
12350
12359
|
For composite (upsert) imports, the array is positionally aligned with method and requestType, and existingExtract decides the index used at runtime: the UPDATE index when its field has a value, the CREATE index when it is empty or missing.
|
|
12351
12360
|
Reference the existing record ID in the UPDATE URI with `{{{data.0.fieldName}}}` (triple braces with the data.0 prefix).
|
|
12352
12361
|
Use separate array elements per operation rather than `{{#if}}` conditionals inside a single URI.
|
|
12362
|
+
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.
|
|
12353
12363
|
x-celigo-ai-guidance:
|
|
12354
12364
|
- '**CRITICAL: This MUST be an array of strings, NOT an object.**'
|
|
12355
12365
|
- |-
|
|
@@ -12519,6 +12529,21 @@ components:
|
|
|
12519
12529
|
Avoid bare ``{{{jsonSerialize record}}}`` with no wrapper — leave the field undefined instead.
|
|
12520
12530
|
Also avoid wrapping a single post-mapped scalar field in ``jsonSerialize`` (e.g.
|
|
12521
12531
|
``{{{jsonSerialize record.<scalar>}}}``) — that pattern is brittle.
|
|
12532
|
+
- |-
|
|
12533
|
+
Every request context carries two data roots: ``data`` — the list of records in
|
|
12534
|
+
the request, always present (Pattern B) — and ONE shape-specific root that follows
|
|
12535
|
+
the record entering the step. An object record is ``record``; a GROUPED record (an
|
|
12536
|
+
array of rows — a ``groupByFields`` export, file key columns, a NetSuite grouped
|
|
12537
|
+
saved search) is ``rows`` (``{{rows.0.<field>}}``, ``{{#each rows}}``,
|
|
12538
|
+
``{{{jsonSerialize rows}}}``) and ``record.*`` is undefined on it; when
|
|
12539
|
+
``batchSize`` exceeds 1 the shape root is ``batch_of_records`` and neither ``record``
|
|
12540
|
+
nor ``rows`` exists at the top level. Inside ``data`` a grouped record is itself an
|
|
12541
|
+
array element (``{{#each data}}{{#each this}}…{{/each}}{{/each}}``). An object record
|
|
12542
|
+
that carries its own ``rows`` field is still ``record`` — ``{{#each record.rows}}``.
|
|
12543
|
+
Here an undefined path renders empty by default (``strictHandlebarEvaluation`` is the
|
|
12544
|
+
documented switch to raise instead); in ``relativeURI`` and ``headers[].value``
|
|
12545
|
+
templates an undefined path always fails the request — a wrong root there is a
|
|
12546
|
+
runtime failure, not a blank.
|
|
12522
12547
|
- |-
|
|
12523
12548
|
## LEAVE UNDEFINED for the most common case
|
|
12524
12549
|
|
|
@@ -12594,10 +12619,11 @@ components:
|
|
|
12594
12619
|
(the default) the root carries ``record`` (an object record —
|
|
12595
12620
|
or the fanned-out child on a ``oneToMany`` import) or ``rows``
|
|
12596
12621
|
(a grouped/array record), and ``data`` is the one-element list
|
|
12597
|
-
of records in the request
|
|
12598
|
-
|
|
12599
|
-
|
|
12600
|
-
|
|
12622
|
+
of records in the request (a grouped record is that element,
|
|
12623
|
+
itself an array); with ``batchSize`` > 1 the root carries
|
|
12624
|
+
``batch_of_records`` (one ``{record: …}`` item per object
|
|
12625
|
+
record, ``{rows: […]}`` for a grouped record) and ``data`` (the
|
|
12626
|
+
bare records), and ``record`` / ``rows`` are ABSENT. ``oneToMany`` does not make
|
|
12601
12627
|
``batch_of_records`` appear — children are batched after
|
|
12602
12628
|
fan-out under the same rule.
|
|
12603
12629
|
|
|
@@ -12879,7 +12905,7 @@ components:
|
|
|
12879
12905
|
description: Name of the HTTP header to include with each import request.
|
|
12880
12906
|
value:
|
|
12881
12907
|
type: string
|
|
12882
|
-
description: Value sent for the header. Supports handlebars expressions rendered against the pre-mapped record.
|
|
12908
|
+
description: Value sent for the header. Supports handlebars expressions rendered against the pre-mapped record, with the same data roots as the body (`record` / `rows` / `batch_of_records`, plus `data`); an undefined path fails the request rather than rendering empty.
|
|
12883
12909
|
x-celigo-agent:
|
|
12884
12910
|
- handlebars
|
|
12885
12911
|
x-celigo-handlebars-context: pre-mapped
|
|
@@ -24293,7 +24319,17 @@ components:
|
|
|
24293
24319
|
When grouping is used, the export's page size determines the maximum number of groups per page, not individual
|
|
24294
24320
|
records. Note that effective grouping typically requires that records with the same group field values appear
|
|
24295
24321
|
together in the export data.
|
|
24322
|
+
|
|
24323
|
+
Not a webhook listener feature: on a `webhook` export the platform applies it only within each page, after
|
|
24324
|
+
the request has been paged, and only to adjacent rows — the field is not offered for listeners in the UI.
|
|
24296
24325
|
x-celigo-ai-guidance:
|
|
24326
|
+
- |-
|
|
24327
|
+
Never set this on a webhook listener to keep a request's rows together —
|
|
24328
|
+
the listener pages the request's records at ``pageSize`` FIRST and then
|
|
24329
|
+
merges only adjacent same-key rows inside each page, so rows that cross a
|
|
24330
|
+
page boundary still arrive as separate records and unsorted rows are not
|
|
24331
|
+
grouped at all. Keep a listener's request together by having the sender
|
|
24332
|
+
post an object (one record) or by raising the listener's ``pageSize``.
|
|
24297
24333
|
- |-
|
|
24298
24334
|
A grouped record's wire shape is a BARE ARRAY of the grouped rows
|
|
24299
24335
|
(``[{row}, {row}]``) — there is no ``rows`` key on the record
|
|
@@ -25418,7 +25454,10 @@ components:
|
|
|
25418
25454
|
- csv
|
|
25419
25455
|
pathToRecords:
|
|
25420
25456
|
type: string
|
|
25421
|
-
description: JSON path into
|
|
25457
|
+
description: JSON path into an object payload to the array whose elements become the records. When omitted, a top-level JSON array is emitted as one record per element and an object payload is emitted as a single record.
|
|
25458
|
+
x-celigo-ai-guidance:
|
|
25459
|
+
- 'Set this only when the records sit inside an object (`{"data": {"items": [...]}}` → `data.items`). A sender that already posts a top-level array needs nothing here; a sender that posts an object with no path configured delivers exactly one record per request — the whole object — which is also the way to make one request one record on purpose.'
|
|
25460
|
+
- 'Records are paged per request at the export''s `pageSize` (default 20) before any hook, filter, or downstream step runs: a 25-element array is a page of 20 records followed by a page of 5, and a `preSavePage` hook receives one page (up to `pageSize` records) per call. A hook that groups rows by order therefore groups only the rows on the same page — an order whose rows span two pages comes out as two grouped records, the second after the first was already processed. To keep a request''s rows together, have the sender wrap them in an object (one record, rows under `record.<path>`) or raise `pageSize` above the largest request — never `groupByFields`, which the listener applies per page after paging.'
|
|
25422
25461
|
examples:
|
|
25423
25462
|
- events
|
|
25424
25463
|
- data.items
|
|
@@ -36136,6 +36175,8 @@ components:
|
|
|
36136
36175
|
record as one response, capped at 5 MB in total, so the value does not change how many
|
|
36137
36176
|
results a lookup returns; a result set larger than that belongs in a standalone export
|
|
36138
36177
|
step. In a test run or preview the value also caps the records fetched (default 20).
|
|
36178
|
+
On a webhook listener the records of each incoming request are paged separately, before
|
|
36179
|
+
any hook or downstream step runs.
|
|
36139
36180
|
default: 20
|
|
36140
36181
|
examples:
|
|
36141
36182
|
- 100
|
package/package.json
CHANGED