@celigo/api-specs 0.2.169 → 0.2.170
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/connection.yml +6 -3
- package/dist/export.yml +63 -24
- package/dist/flow.yml +6 -3
- package/dist/import.yml +41 -6
- package/dist/tool.yml +99 -28
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/connection.yml
CHANGED
|
@@ -10113,9 +10113,12 @@ components:
|
|
|
10113
10113
|
type: array
|
|
10114
10114
|
description: |-
|
|
10115
10115
|
Errors recorded for the record. `source: application` with
|
|
10116
|
-
`stage: apiCall`
|
|
10117
|
-
answer was the failure
|
|
10118
|
-
`message
|
|
10116
|
+
`stage: apiCall` marks the import's call to the destination. Usually
|
|
10117
|
+
the destination's answer was the failure, and its response body rides
|
|
10118
|
+
in `message`; but a request the import couldn't build carries the same
|
|
10119
|
+
pair and was never sent, such as a URL template that failed to render
|
|
10120
|
+
(`code: handlebars_template_parse_error`, "Failed to generate request
|
|
10121
|
+
url from template ...").
|
|
10119
10122
|
items:
|
|
10120
10123
|
type: object
|
|
10121
10124
|
properties:
|
package/dist/export.yml
CHANGED
|
@@ -6273,9 +6273,12 @@ components:
|
|
|
6273
6273
|
request fields are interpreted. When omitted, the standard HTTP form is used.
|
|
6274
6274
|
x-celigo-ai-guidance:
|
|
6275
6275
|
- |-
|
|
6276
|
-
The value
|
|
6277
|
-
|
|
6278
|
-
|
|
6276
|
+
The value picks the editor and changes one thing in a GraphQL request: under `graph_ql`
|
|
6277
|
+
and `assistant_graphql`, a `variables` member stored as a JSON string is parsed and sent
|
|
6278
|
+
as an object, while under `http` it is sent as the string. A body whose `variables` is
|
|
6279
|
+
already an object goes out unchanged under `graph_ql` and `http`. Live-verified 2026-10-22 with
|
|
6280
|
+
export previews against an echo endpoint: a string `variables` under `graph_ql`,
|
|
6281
|
+
`assistant_graphql` and `http`, and an object `variables` under `graph_ql` and `http`.
|
|
6279
6282
|
- |-
|
|
6280
6283
|
The GraphQL form reads `http.body` as the JSON envelope `{"query", "operationName",
|
|
6281
6284
|
"variables"}` and shows each member in its own editor, recompiling the envelope on save
|
|
@@ -6492,9 +6495,15 @@ components:
|
|
|
6492
6495
|
XML, etc.).
|
|
6493
6496
|
- |-
|
|
6494
6497
|
A GraphQL request is this field holding the stringified JSON envelope `{"query":
|
|
6495
|
-
"<document>", "operationName": "...", "variables": ...}
|
|
6496
|
-
|
|
6497
|
-
|
|
6498
|
+
"<document>", "operationName": "...", "variables": ...}`. `variables` may be an object
|
|
6499
|
+
or a JSON-encoded string, and a string is sent as an object only under the GraphQL
|
|
6500
|
+
form types (see `formType`). Variables with unquoted Handlebars (a number, `null`, an
|
|
6501
|
+
`{{#if}}` block) must be a string so the body remains parseable JSON at rest; string
|
|
6502
|
+
values inside that string sit two JSON levels deep, so write them as
|
|
6503
|
+
`\"{{jsonEncode record.x}}\"` with double braces: a plain `{{record.x}}`, or a
|
|
6504
|
+
triple-brace `jsonEncode`, fails a value holding a quote with 422 `invalid_json`.
|
|
6505
|
+
An object or array there is `{{jsonSerialize record.x}}`, also with double braces;
|
|
6506
|
+
triple braces fail the same way.
|
|
6498
6507
|
- |-
|
|
6499
6508
|
You can use handlebars expressions to create dynamic content:
|
|
6500
6509
|
```
|
|
@@ -7318,7 +7327,7 @@ components:
|
|
|
7318
7327
|
- response.records
|
|
7319
7328
|
lastPageStatusCode:
|
|
7320
7329
|
type: integer
|
|
7321
|
-
description: HTTP status code that signals the last page, replacing the default behavior of treating 404 as the end of pagination. When this status is received, paging stops and the response is not treated as an error. Set
|
|
7330
|
+
description: 'HTTP status code that signals the last page, replacing the default behavior of treating 404 as the end of pagination. When this status is received (any code but `200` paired with `lastPagePath`), paging stops and the response is not treated as an error. Set it when the API uses a non-404 code (such as 204 or 400) to indicate no more pages, or to `200` together with `lastPagePath` when the last page is an ordinary 200 response: then the response is parsed, its records are kept, and paging stops only when `lastPagePath` matches `lastPageValues`.'
|
|
7322
7331
|
x-celigo-ai-guidance:
|
|
7323
7332
|
- Specifies a custom HTTP status code that indicates the last page of results.
|
|
7324
7333
|
- |-
|
|
@@ -7353,36 +7362,45 @@ components:
|
|
|
7353
7362
|
- |-
|
|
7354
7363
|
## TECHNICAL DETAILS
|
|
7355
7364
|
|
|
7356
|
-
When this status code is received
|
|
7365
|
+
When this status code is received (any code but `200` paired with
|
|
7366
|
+
`lastPagePath`), the system:
|
|
7357
7367
|
- Stops the pagination process
|
|
7358
7368
|
- Considers the data collection complete
|
|
7359
7369
|
- Does not treat the response as an error
|
|
7360
7370
|
- Does not attempt to process any response body
|
|
7361
7371
|
|
|
7362
7372
|
IMPORTANT: Only set this if your API explicitly uses a non-404 status code
|
|
7363
|
-
to indicate the end of pagination
|
|
7364
|
-
|
|
7373
|
+
to indicate the end of pagination, or to `200` with `lastPagePath` (below).
|
|
7374
|
+
Setting this incorrectly could cause premature termination of data
|
|
7375
|
+
collection or error handling issues.
|
|
7376
|
+
- |-
|
|
7377
|
+
`200` is the exception, for an API whose last page is an ordinary 200 response:
|
|
7378
|
+
together with `lastPagePath`, paging stops on the first 200 whose `lastPagePath`
|
|
7379
|
+
value matches `lastPageValues`, and that page's records are kept. Live-verified
|
|
7380
|
+
2026-10-22 with token paging.
|
|
7365
7381
|
examples:
|
|
7366
7382
|
- 204
|
|
7367
7383
|
- 400
|
|
7368
7384
|
- 500
|
|
7369
7385
|
lastPagePath:
|
|
7370
7386
|
type: string
|
|
7371
|
-
description: JSON path to a response-body field that signals the end of pagination, such as a "has more" flag or a cursor that empties on the last page. Must be used with `lastPageValues`, which lists the values at this path that stop paging. If the path does not exist in a response, the condition is not considered met.
|
|
7387
|
+
description: 'JSON path to a response-body field that signals the end of pagination, such as a "has more" flag or a cursor that empties on the last page. Must be used with `lastPageValues`, which lists the values at this path that stop paging. If the path does not exist in a response, the condition is not considered met. With `method: token` the path is read only on a response whose status code equals `lastPageStatusCode`, so pair it with `lastPageStatusCode: 200` for an ordinary last page; with `method: body` it is read on every response.'
|
|
7372
7388
|
x-celigo-ai-guidance:
|
|
7373
7389
|
- |-
|
|
7374
7390
|
## FIELD BEHAVIOR
|
|
7375
7391
|
|
|
7376
7392
|
- OPTIONAL: Only needed for APIs with field-based pagination completion signals
|
|
7377
|
-
-
|
|
7393
|
+
- Accepted on all pagination methods; when it is read depends on the method (see
|
|
7394
|
+
the method note below)
|
|
7378
7395
|
- Used in conjunction with lastPageValues
|
|
7379
7396
|
- JSON path notation to a field in the response body
|
|
7380
7397
|
- |-
|
|
7381
7398
|
## IMPLEMENTATION GUIDANCE
|
|
7382
7399
|
|
|
7383
7400
|
This field is used when an API indicates the last page through a field
|
|
7384
|
-
in the response body rather than using HTTP status codes.
|
|
7385
|
-
checks
|
|
7401
|
+
in the response body rather than using HTTP status codes. Which responses
|
|
7402
|
+
the system checks it on depends on the paging method (see the method note
|
|
7403
|
+
below).
|
|
7386
7404
|
|
|
7387
7405
|
Common patterns include:
|
|
7388
7406
|
|
|
@@ -7416,8 +7434,19 @@ components:
|
|
|
7416
7434
|
"lastPageValues": ["false", "0"]
|
|
7417
7435
|
```
|
|
7418
7436
|
|
|
7419
|
-
IMPORTANT: The path is evaluated
|
|
7420
|
-
If the path doesn't exist in the response, the
|
|
7437
|
+
IMPORTANT: The path is evaluated using JSON path notation, on the responses the
|
|
7438
|
+
method note below describes. If the path doesn't exist in the response, the
|
|
7439
|
+
condition is not considered met.
|
|
7440
|
+
- |-
|
|
7441
|
+
On `method: token` the path is checked only on a response whose status code equals
|
|
7442
|
+
`lastPageStatusCode`. For an API whose last page is an ordinary 200 (a GraphQL
|
|
7443
|
+
`pageInfo.hasNextPage: false`), set `lastPageStatusCode: 200` with it; without that,
|
|
7444
|
+
paging goes on while the token at `path` is non-empty, so a last page that still
|
|
7445
|
+
carries a cursor costs one more request. On `method: body` the path is read on
|
|
7446
|
+
every response, with no status code needed. Live-verified 2026-10-22 against an echo
|
|
7447
|
+
endpoint for `token` (two requests without `lastPageStatusCode`, one with 200) and
|
|
7448
|
+
`body` (stopped on the second response); `page`, `skip` and `url` paging were not
|
|
7449
|
+
verified.
|
|
7421
7450
|
examples:
|
|
7422
7451
|
- meta.isLastPage
|
|
7423
7452
|
- pagination.hasMore
|
|
@@ -7841,22 +7870,30 @@ components:
|
|
|
7841
7870
|
- '201'
|
|
7842
7871
|
errorPath:
|
|
7843
7872
|
type: string
|
|
7844
|
-
description: Path to the error message in the response body. The value at this path is included in error logs and error records when the API returns an error.
|
|
7873
|
+
description: Path to the error message in the response body. The value at this path is included in error logs and error records when the API returns an error; without it, the message is the whole response body.
|
|
7845
7874
|
examples:
|
|
7846
7875
|
- error.message
|
|
7847
7876
|
- errorMessage
|
|
7848
7877
|
- errors[0].detail
|
|
7878
|
+
- errors[0].message
|
|
7849
7879
|
failPath:
|
|
7850
7880
|
type: string
|
|
7851
|
-
description: Path to a response field that signals failure even when the HTTP status code is 200 — the inverse of `successPath`.
|
|
7881
|
+
description: Path to a response field that signals failure even when the HTTP status code is 200 — the inverse of `successPath`. With `failValues`, the response fails when the value there matches one of them; without, when the path holds a truthy value. A path that resolves to an array matches only when the array has exactly one element.
|
|
7852
7882
|
x-celigo-ai-guidance:
|
|
7883
|
+
- Similar to `successPath` but inverted logic — checks for failure indicators.
|
|
7853
7884
|
- |-
|
|
7854
|
-
|
|
7855
|
-
|
|
7885
|
+
A path that resolves to an array matches only when the array has exactly one
|
|
7886
|
+
element. GraphQL APIs usually report a failed query with HTTP 200 and an `errors` array:
|
|
7887
|
+
`failPath: errors` fails the response for one error and lets two or more through,
|
|
7888
|
+
so set `failPath` (and `errorPath`) to `errors[0].message`. Without a fail path the
|
|
7889
|
+
response counts as a success, and an export whose `resourcePath` points into
|
|
7890
|
+
`data` returns zero records with no error. Live-verified 2026-10-22 with export
|
|
7891
|
+
and import previews against an echo endpoint.
|
|
7856
7892
|
examples:
|
|
7857
7893
|
- error
|
|
7858
7894
|
- status
|
|
7859
7895
|
- result.error
|
|
7896
|
+
- errors[0].message
|
|
7860
7897
|
failValues:
|
|
7861
7898
|
type: array
|
|
7862
7899
|
items:
|
|
@@ -10674,8 +10711,9 @@ components:
|
|
|
10674
10711
|
Number of records the RESTlet returns per request (default 1000). This, not the
|
|
10675
10712
|
export's `pageSize`, sizes each NetSuite call; the export keeps requesting until the
|
|
10676
10713
|
search is exhausted. Larger batches reduce round-trips but raise NetSuite governance
|
|
10677
|
-
and memory use per call; tune to the record's size.
|
|
10678
|
-
|
|
10714
|
+
and memory use per call; tune to the record's size. The RESTlet caps a call at 1000,
|
|
10715
|
+
so a larger value acts as 1000. In a test run or preview the request is capped at the
|
|
10716
|
+
export's `pageSize` (default 20) instead.
|
|
10679
10717
|
examples:
|
|
10680
10718
|
- 100
|
|
10681
10719
|
- 200
|
|
@@ -10954,8 +10992,9 @@ components:
|
|
|
10954
10992
|
type: array
|
|
10955
10993
|
description: |-
|
|
10956
10994
|
Search columns the RESTlet returns for each matching record. With a saved search,
|
|
10957
|
-
|
|
10958
|
-
|
|
10995
|
+
the RESTlet returns the search's own result columns followed by any listed here: a
|
|
10996
|
+
list adds columns and never removes one of the search's, so remove a column in the
|
|
10997
|
+
saved search itself. An ad-hoc search (no `searchId`) must list its columns here.
|
|
10959
10998
|
x-celigo-ai-guidance:
|
|
10960
10999
|
- |-
|
|
10961
11000
|
Entries are objects keyed by `name` — `[{"name": "internalid"}, {"name":
|
package/dist/flow.yml
CHANGED
|
@@ -6637,9 +6637,12 @@ components:
|
|
|
6637
6637
|
source:
|
|
6638
6638
|
type: string
|
|
6639
6639
|
description: |-
|
|
6640
|
-
Step stage or system the error came from, such as `application`
|
|
6641
|
-
|
|
6642
|
-
`
|
|
6640
|
+
Step stage or system the error came from, such as `application`, `connection`, a hook
|
|
6641
|
+
(`pre_save_page_hook`, `post_response_map_hook`) or a filter (`output_filter`).
|
|
6642
|
+
`application` covers the step's whole call to the external system, not only its answer:
|
|
6643
|
+
besides errors the destination returned, it marks a request that never got an answer,
|
|
6644
|
+
such as a URL template that failed to render (`handlebars_template_parse_error`) or a
|
|
6645
|
+
refused connection, so read `code` and `message` with it. `GET /v1/errors/filterMetadata`
|
|
6643
6646
|
lists the source values the errors filter accepts.
|
|
6644
6647
|
examples:
|
|
6645
6648
|
- application
|
package/dist/import.yml
CHANGED
|
@@ -1572,12 +1572,25 @@ components:
|
|
|
1572
1572
|
Use `assistant_graphql` as the default value if there is a connector available
|
|
1573
1573
|
for the system and the connector supports GraphQL.
|
|
1574
1574
|
- |-
|
|
1575
|
-
The value selects the editor
|
|
1575
|
+
The value selects the editor and changes one thing in a GraphQL request: under
|
|
1576
|
+
`graph_ql` and `assistant_graphql`, a `variables` member stored as a JSON string is
|
|
1577
|
+
parsed and sent as an object, while under `http` it is sent as the string; an object
|
|
1578
|
+
`variables` goes out unchanged under `graph_ql` and `http`. Live-verified 2026-10-22 with import
|
|
1579
|
+
previews against an echo endpoint: a string `variables` under `graph_ql`,
|
|
1580
|
+
`assistant_graphql` and `http`, and an object `variables` under `graph_ql` and `http`.
|
|
1581
|
+
- |-
|
|
1582
|
+
Each `http.body[]` entry stays a template STRING — a
|
|
1576
1583
|
stringified `{"query", "operationName", "variables"}` envelope, one per operation for the
|
|
1577
1584
|
update/create pair (`http.body[0]` / `http.body[1]`); never an object entry, which is stored
|
|
1578
1585
|
as-is and does not render. The GraphQL form parses that string to show each member in its
|
|
1579
1586
|
own field and re-stringifies it on save; an entry that is not parseable JSON at rest renders
|
|
1580
|
-
those fields empty, so keep templated variables inside a JSON string value.
|
|
1587
|
+
those fields empty, so keep templated variables inside a JSON string value. When
|
|
1588
|
+
`variables` is itself a JSON string, the string values inside it sit two JSON levels
|
|
1589
|
+
deep: write them as `\"{{jsonEncode record.x}}\"` with double braces, because a plain
|
|
1590
|
+
`{{record.x}}`, or a triple-brace `jsonEncode`, fails a record whose value holds a quote
|
|
1591
|
+
with 422 `invalid_json` before the request is sent. An object or array there is
|
|
1592
|
+
`{{jsonSerialize record.x}}`, also with double braces; `{{{jsonSerialize record.x}}}`
|
|
1593
|
+
fails the same way (live-verified 2026-10-22).
|
|
1581
1594
|
- |-
|
|
1582
1595
|
Create GraphQL imports on a `graph_ql` connection (or a connector connection bound to its
|
|
1583
1596
|
GraphQL API): that setup offers the Form view toggle between the GraphQL editor and the
|
|
@@ -2394,13 +2407,20 @@ components:
|
|
|
2394
2407
|
|
|
2395
2408
|
Each entry is a DOT-PATH STRING, or null for an operation
|
|
2396
2409
|
with no ID path configured. When not specified, the platform
|
|
2397
|
-
looks for standard `id` or `_id` fields automatically.
|
|
2410
|
+
looks for standard `id` or `_id` fields automatically. When
|
|
2411
|
+
set, a response with no value at the path fails the record
|
|
2412
|
+
with `missing_id`, quoting the response.
|
|
2398
2413
|
x-celigo-ai-guidance:
|
|
2399
2414
|
- |-
|
|
2400
2415
|
Common LLM mistake:
|
|
2401
2416
|
splitting a single dot-path like ``"data.id"`` into array segments ``["data",
|
|
2402
2417
|
"id"]`` — DO NOT do this.
|
|
2403
2418
|
See the ``response`` object docs above.
|
|
2419
|
+
- |-
|
|
2420
|
+
For a GraphQL mutation, point it at the id only a successful call returns
|
|
2421
|
+
(``["data.customerCreate.customer.id"]``): a 200 that carries top-level ``errors``
|
|
2422
|
+
or the mutation's ``userErrors`` then fails the record with ``missing_id`` instead
|
|
2423
|
+
of counting as written. Live-verified 2026-10-22 against an echo endpoint.
|
|
2404
2424
|
examples:
|
|
2405
2425
|
- - id
|
|
2406
2426
|
- - data.id
|
|
@@ -2474,11 +2494,23 @@ components:
|
|
|
2474
2494
|
available, set both — the platform evaluates ``successPath``
|
|
2475
2495
|
first and falls through to ``failPath`` only when the
|
|
2476
2496
|
success check is inconclusive.
|
|
2497
|
+
|
|
2498
|
+
Without ``failValues``, a truthy value at the path fails
|
|
2499
|
+
the response. A path that resolves to an array matches only
|
|
2500
|
+
when the array has exactly one element.
|
|
2501
|
+
x-celigo-ai-guidance:
|
|
2502
|
+
- |-
|
|
2503
|
+
A GraphQL API usually reports a failed mutation with HTTP 200 and an ``errors`` array, which
|
|
2504
|
+
counts as written when no rule catches it. ``failPath: ["errors"]`` fails the record
|
|
2505
|
+
for one error and lets two or more through; use ``["errors[0].message"]`` with
|
|
2506
|
+
``errorPath: "errors[0].message"`` so the record fails with the server's message.
|
|
2507
|
+
Live-verified 2026-10-22 with import runs against an echo endpoint.
|
|
2477
2508
|
examples:
|
|
2478
2509
|
- - error
|
|
2479
2510
|
- - success
|
|
2480
2511
|
- - error
|
|
2481
2512
|
- error
|
|
2513
|
+
- - errors[0].message
|
|
2482
2514
|
failValues:
|
|
2483
2515
|
type: array
|
|
2484
2516
|
items:
|
|
@@ -17547,9 +17579,12 @@ components:
|
|
|
17547
17579
|
type: array
|
|
17548
17580
|
description: |-
|
|
17549
17581
|
Errors recorded for the record. `source: application` with
|
|
17550
|
-
`stage: apiCall`
|
|
17551
|
-
answer was the failure
|
|
17552
|
-
`message
|
|
17582
|
+
`stage: apiCall` marks the import's call to the destination. Usually
|
|
17583
|
+
the destination's answer was the failure, and its response body rides
|
|
17584
|
+
in `message`; but a request the import couldn't build carries the same
|
|
17585
|
+
pair and was never sent, such as a URL template that failed to render
|
|
17586
|
+
(`code: handlebars_template_parse_error`, "Failed to generate request
|
|
17587
|
+
url from template ...").
|
|
17553
17588
|
items:
|
|
17554
17589
|
type: object
|
|
17555
17590
|
properties:
|
package/dist/tool.yml
CHANGED
|
@@ -13387,12 +13387,25 @@ components:
|
|
|
13387
13387
|
Use `assistant_graphql` as the default value if there is a connector available
|
|
13388
13388
|
for the system and the connector supports GraphQL.
|
|
13389
13389
|
- |-
|
|
13390
|
-
The value selects the editor
|
|
13390
|
+
The value selects the editor and changes one thing in a GraphQL request: under
|
|
13391
|
+
`graph_ql` and `assistant_graphql`, a `variables` member stored as a JSON string is
|
|
13392
|
+
parsed and sent as an object, while under `http` it is sent as the string; an object
|
|
13393
|
+
`variables` goes out unchanged under `graph_ql` and `http`. Live-verified 2026-10-22 with import
|
|
13394
|
+
previews against an echo endpoint: a string `variables` under `graph_ql`,
|
|
13395
|
+
`assistant_graphql` and `http`, and an object `variables` under `graph_ql` and `http`.
|
|
13396
|
+
- |-
|
|
13397
|
+
Each `http.body[]` entry stays a template STRING — a
|
|
13391
13398
|
stringified `{"query", "operationName", "variables"}` envelope, one per operation for the
|
|
13392
13399
|
update/create pair (`http.body[0]` / `http.body[1]`); never an object entry, which is stored
|
|
13393
13400
|
as-is and does not render. The GraphQL form parses that string to show each member in its
|
|
13394
13401
|
own field and re-stringifies it on save; an entry that is not parseable JSON at rest renders
|
|
13395
|
-
those fields empty, so keep templated variables inside a JSON string value.
|
|
13402
|
+
those fields empty, so keep templated variables inside a JSON string value. When
|
|
13403
|
+
`variables` is itself a JSON string, the string values inside it sit two JSON levels
|
|
13404
|
+
deep: write them as `\"{{jsonEncode record.x}}\"` with double braces, because a plain
|
|
13405
|
+
`{{record.x}}`, or a triple-brace `jsonEncode`, fails a record whose value holds a quote
|
|
13406
|
+
with 422 `invalid_json` before the request is sent. An object or array there is
|
|
13407
|
+
`{{jsonSerialize record.x}}`, also with double braces; `{{{jsonSerialize record.x}}}`
|
|
13408
|
+
fails the same way (live-verified 2026-10-22).
|
|
13396
13409
|
- |-
|
|
13397
13410
|
Create GraphQL imports on a `graph_ql` connection (or a connector connection bound to its
|
|
13398
13411
|
GraphQL API): that setup offers the Form view toggle between the GraphQL editor and the
|
|
@@ -14209,13 +14222,20 @@ components:
|
|
|
14209
14222
|
|
|
14210
14223
|
Each entry is a DOT-PATH STRING, or null for an operation
|
|
14211
14224
|
with no ID path configured. When not specified, the platform
|
|
14212
|
-
looks for standard `id` or `_id` fields automatically.
|
|
14225
|
+
looks for standard `id` or `_id` fields automatically. When
|
|
14226
|
+
set, a response with no value at the path fails the record
|
|
14227
|
+
with `missing_id`, quoting the response.
|
|
14213
14228
|
x-celigo-ai-guidance:
|
|
14214
14229
|
- |-
|
|
14215
14230
|
Common LLM mistake:
|
|
14216
14231
|
splitting a single dot-path like ``"data.id"`` into array segments ``["data",
|
|
14217
14232
|
"id"]`` — DO NOT do this.
|
|
14218
14233
|
See the ``response`` object docs above.
|
|
14234
|
+
- |-
|
|
14235
|
+
For a GraphQL mutation, point it at the id only a successful call returns
|
|
14236
|
+
(``["data.customerCreate.customer.id"]``): a 200 that carries top-level ``errors``
|
|
14237
|
+
or the mutation's ``userErrors`` then fails the record with ``missing_id`` instead
|
|
14238
|
+
of counting as written. Live-verified 2026-10-22 against an echo endpoint.
|
|
14219
14239
|
examples:
|
|
14220
14240
|
- - id
|
|
14221
14241
|
- - data.id
|
|
@@ -14289,11 +14309,23 @@ components:
|
|
|
14289
14309
|
available, set both — the platform evaluates ``successPath``
|
|
14290
14310
|
first and falls through to ``failPath`` only when the
|
|
14291
14311
|
success check is inconclusive.
|
|
14312
|
+
|
|
14313
|
+
Without ``failValues``, a truthy value at the path fails
|
|
14314
|
+
the response. A path that resolves to an array matches only
|
|
14315
|
+
when the array has exactly one element.
|
|
14316
|
+
x-celigo-ai-guidance:
|
|
14317
|
+
- |-
|
|
14318
|
+
A GraphQL API usually reports a failed mutation with HTTP 200 and an ``errors`` array, which
|
|
14319
|
+
counts as written when no rule catches it. ``failPath: ["errors"]`` fails the record
|
|
14320
|
+
for one error and lets two or more through; use ``["errors[0].message"]`` with
|
|
14321
|
+
``errorPath: "errors[0].message"`` so the record fails with the server's message.
|
|
14322
|
+
Live-verified 2026-10-22 with import runs against an echo endpoint.
|
|
14292
14323
|
examples:
|
|
14293
14324
|
- - error
|
|
14294
14325
|
- - success
|
|
14295
14326
|
- - error
|
|
14296
14327
|
- error
|
|
14328
|
+
- - errors[0].message
|
|
14297
14329
|
failValues:
|
|
14298
14330
|
type: array
|
|
14299
14331
|
items:
|
|
@@ -30955,9 +30987,12 @@ components:
|
|
|
30955
30987
|
request fields are interpreted. When omitted, the standard HTTP form is used.
|
|
30956
30988
|
x-celigo-ai-guidance:
|
|
30957
30989
|
- |-
|
|
30958
|
-
The value
|
|
30959
|
-
|
|
30960
|
-
|
|
30990
|
+
The value picks the editor and changes one thing in a GraphQL request: under `graph_ql`
|
|
30991
|
+
and `assistant_graphql`, a `variables` member stored as a JSON string is parsed and sent
|
|
30992
|
+
as an object, while under `http` it is sent as the string. A body whose `variables` is
|
|
30993
|
+
already an object goes out unchanged under `graph_ql` and `http`. Live-verified 2026-10-22 with
|
|
30994
|
+
export previews against an echo endpoint: a string `variables` under `graph_ql`,
|
|
30995
|
+
`assistant_graphql` and `http`, and an object `variables` under `graph_ql` and `http`.
|
|
30961
30996
|
- |-
|
|
30962
30997
|
The GraphQL form reads `http.body` as the JSON envelope `{"query", "operationName",
|
|
30963
30998
|
"variables"}` and shows each member in its own editor, recompiling the envelope on save
|
|
@@ -31174,9 +31209,15 @@ components:
|
|
|
31174
31209
|
XML, etc.).
|
|
31175
31210
|
- |-
|
|
31176
31211
|
A GraphQL request is this field holding the stringified JSON envelope `{"query":
|
|
31177
|
-
"<document>", "operationName": "...", "variables": ...}
|
|
31178
|
-
|
|
31179
|
-
|
|
31212
|
+
"<document>", "operationName": "...", "variables": ...}`. `variables` may be an object
|
|
31213
|
+
or a JSON-encoded string, and a string is sent as an object only under the GraphQL
|
|
31214
|
+
form types (see `formType`). Variables with unquoted Handlebars (a number, `null`, an
|
|
31215
|
+
`{{#if}}` block) must be a string so the body remains parseable JSON at rest; string
|
|
31216
|
+
values inside that string sit two JSON levels deep, so write them as
|
|
31217
|
+
`\"{{jsonEncode record.x}}\"` with double braces: a plain `{{record.x}}`, or a
|
|
31218
|
+
triple-brace `jsonEncode`, fails a value holding a quote with 422 `invalid_json`.
|
|
31219
|
+
An object or array there is `{{jsonSerialize record.x}}`, also with double braces;
|
|
31220
|
+
triple braces fail the same way.
|
|
31180
31221
|
- |-
|
|
31181
31222
|
You can use handlebars expressions to create dynamic content:
|
|
31182
31223
|
```
|
|
@@ -32000,7 +32041,7 @@ components:
|
|
|
32000
32041
|
- response.records
|
|
32001
32042
|
lastPageStatusCode:
|
|
32002
32043
|
type: integer
|
|
32003
|
-
description: HTTP status code that signals the last page, replacing the default behavior of treating 404 as the end of pagination. When this status is received, paging stops and the response is not treated as an error. Set
|
|
32044
|
+
description: 'HTTP status code that signals the last page, replacing the default behavior of treating 404 as the end of pagination. When this status is received (any code but `200` paired with `lastPagePath`), paging stops and the response is not treated as an error. Set it when the API uses a non-404 code (such as 204 or 400) to indicate no more pages, or to `200` together with `lastPagePath` when the last page is an ordinary 200 response: then the response is parsed, its records are kept, and paging stops only when `lastPagePath` matches `lastPageValues`.'
|
|
32004
32045
|
x-celigo-ai-guidance:
|
|
32005
32046
|
- Specifies a custom HTTP status code that indicates the last page of results.
|
|
32006
32047
|
- |-
|
|
@@ -32035,36 +32076,45 @@ components:
|
|
|
32035
32076
|
- |-
|
|
32036
32077
|
## TECHNICAL DETAILS
|
|
32037
32078
|
|
|
32038
|
-
When this status code is received
|
|
32079
|
+
When this status code is received (any code but `200` paired with
|
|
32080
|
+
`lastPagePath`), the system:
|
|
32039
32081
|
- Stops the pagination process
|
|
32040
32082
|
- Considers the data collection complete
|
|
32041
32083
|
- Does not treat the response as an error
|
|
32042
32084
|
- Does not attempt to process any response body
|
|
32043
32085
|
|
|
32044
32086
|
IMPORTANT: Only set this if your API explicitly uses a non-404 status code
|
|
32045
|
-
to indicate the end of pagination
|
|
32046
|
-
|
|
32087
|
+
to indicate the end of pagination, or to `200` with `lastPagePath` (below).
|
|
32088
|
+
Setting this incorrectly could cause premature termination of data
|
|
32089
|
+
collection or error handling issues.
|
|
32090
|
+
- |-
|
|
32091
|
+
`200` is the exception, for an API whose last page is an ordinary 200 response:
|
|
32092
|
+
together with `lastPagePath`, paging stops on the first 200 whose `lastPagePath`
|
|
32093
|
+
value matches `lastPageValues`, and that page's records are kept. Live-verified
|
|
32094
|
+
2026-10-22 with token paging.
|
|
32047
32095
|
examples:
|
|
32048
32096
|
- 204
|
|
32049
32097
|
- 400
|
|
32050
32098
|
- 500
|
|
32051
32099
|
lastPagePath:
|
|
32052
32100
|
type: string
|
|
32053
|
-
description: JSON path to a response-body field that signals the end of pagination, such as a "has more" flag or a cursor that empties on the last page. Must be used with `lastPageValues`, which lists the values at this path that stop paging. If the path does not exist in a response, the condition is not considered met.
|
|
32101
|
+
description: 'JSON path to a response-body field that signals the end of pagination, such as a "has more" flag or a cursor that empties on the last page. Must be used with `lastPageValues`, which lists the values at this path that stop paging. If the path does not exist in a response, the condition is not considered met. With `method: token` the path is read only on a response whose status code equals `lastPageStatusCode`, so pair it with `lastPageStatusCode: 200` for an ordinary last page; with `method: body` it is read on every response.'
|
|
32054
32102
|
x-celigo-ai-guidance:
|
|
32055
32103
|
- |-
|
|
32056
32104
|
## FIELD BEHAVIOR
|
|
32057
32105
|
|
|
32058
32106
|
- OPTIONAL: Only needed for APIs with field-based pagination completion signals
|
|
32059
|
-
-
|
|
32107
|
+
- Accepted on all pagination methods; when it is read depends on the method (see
|
|
32108
|
+
the method note below)
|
|
32060
32109
|
- Used in conjunction with lastPageValues
|
|
32061
32110
|
- JSON path notation to a field in the response body
|
|
32062
32111
|
- |-
|
|
32063
32112
|
## IMPLEMENTATION GUIDANCE
|
|
32064
32113
|
|
|
32065
32114
|
This field is used when an API indicates the last page through a field
|
|
32066
|
-
in the response body rather than using HTTP status codes.
|
|
32067
|
-
checks
|
|
32115
|
+
in the response body rather than using HTTP status codes. Which responses
|
|
32116
|
+
the system checks it on depends on the paging method (see the method note
|
|
32117
|
+
below).
|
|
32068
32118
|
|
|
32069
32119
|
Common patterns include:
|
|
32070
32120
|
|
|
@@ -32098,8 +32148,19 @@ components:
|
|
|
32098
32148
|
"lastPageValues": ["false", "0"]
|
|
32099
32149
|
```
|
|
32100
32150
|
|
|
32101
|
-
IMPORTANT: The path is evaluated
|
|
32102
|
-
If the path doesn't exist in the response, the
|
|
32151
|
+
IMPORTANT: The path is evaluated using JSON path notation, on the responses the
|
|
32152
|
+
method note below describes. If the path doesn't exist in the response, the
|
|
32153
|
+
condition is not considered met.
|
|
32154
|
+
- |-
|
|
32155
|
+
On `method: token` the path is checked only on a response whose status code equals
|
|
32156
|
+
`lastPageStatusCode`. For an API whose last page is an ordinary 200 (a GraphQL
|
|
32157
|
+
`pageInfo.hasNextPage: false`), set `lastPageStatusCode: 200` with it; without that,
|
|
32158
|
+
paging goes on while the token at `path` is non-empty, so a last page that still
|
|
32159
|
+
carries a cursor costs one more request. On `method: body` the path is read on
|
|
32160
|
+
every response, with no status code needed. Live-verified 2026-10-22 against an echo
|
|
32161
|
+
endpoint for `token` (two requests without `lastPageStatusCode`, one with 200) and
|
|
32162
|
+
`body` (stopped on the second response); `page`, `skip` and `url` paging were not
|
|
32163
|
+
verified.
|
|
32103
32164
|
examples:
|
|
32104
32165
|
- meta.isLastPage
|
|
32105
32166
|
- pagination.hasMore
|
|
@@ -32523,22 +32584,30 @@ components:
|
|
|
32523
32584
|
- '201'
|
|
32524
32585
|
errorPath:
|
|
32525
32586
|
type: string
|
|
32526
|
-
description: Path to the error message in the response body. The value at this path is included in error logs and error records when the API returns an error.
|
|
32587
|
+
description: Path to the error message in the response body. The value at this path is included in error logs and error records when the API returns an error; without it, the message is the whole response body.
|
|
32527
32588
|
examples:
|
|
32528
32589
|
- error.message
|
|
32529
32590
|
- errorMessage
|
|
32530
32591
|
- errors[0].detail
|
|
32592
|
+
- errors[0].message
|
|
32531
32593
|
failPath:
|
|
32532
32594
|
type: string
|
|
32533
|
-
description: Path to a response field that signals failure even when the HTTP status code is 200 — the inverse of `successPath`.
|
|
32595
|
+
description: Path to a response field that signals failure even when the HTTP status code is 200 — the inverse of `successPath`. With `failValues`, the response fails when the value there matches one of them; without, when the path holds a truthy value. A path that resolves to an array matches only when the array has exactly one element.
|
|
32534
32596
|
x-celigo-ai-guidance:
|
|
32535
|
-
-
|
|
32536
|
-
|
|
32537
|
-
|
|
32597
|
+
- Similar to `successPath` but inverted logic — checks for failure indicators.
|
|
32598
|
+
- |-
|
|
32599
|
+
A path that resolves to an array matches only when the array has exactly one
|
|
32600
|
+
element. GraphQL APIs usually report a failed query with HTTP 200 and an `errors` array:
|
|
32601
|
+
`failPath: errors` fails the response for one error and lets two or more through,
|
|
32602
|
+
so set `failPath` (and `errorPath`) to `errors[0].message`. Without a fail path the
|
|
32603
|
+
response counts as a success, and an export whose `resourcePath` points into
|
|
32604
|
+
`data` returns zero records with no error. Live-verified 2026-10-22 with export
|
|
32605
|
+
and import previews against an echo endpoint.
|
|
32538
32606
|
examples:
|
|
32539
32607
|
- error
|
|
32540
32608
|
- status
|
|
32541
32609
|
- result.error
|
|
32610
|
+
- errors[0].message
|
|
32542
32611
|
failValues:
|
|
32543
32612
|
type: array
|
|
32544
32613
|
items:
|
|
@@ -35356,8 +35425,9 @@ components:
|
|
|
35356
35425
|
Number of records the RESTlet returns per request (default 1000). This, not the
|
|
35357
35426
|
export's `pageSize`, sizes each NetSuite call; the export keeps requesting until the
|
|
35358
35427
|
search is exhausted. Larger batches reduce round-trips but raise NetSuite governance
|
|
35359
|
-
and memory use per call; tune to the record's size.
|
|
35360
|
-
|
|
35428
|
+
and memory use per call; tune to the record's size. The RESTlet caps a call at 1000,
|
|
35429
|
+
so a larger value acts as 1000. In a test run or preview the request is capped at the
|
|
35430
|
+
export's `pageSize` (default 20) instead.
|
|
35361
35431
|
examples:
|
|
35362
35432
|
- 100
|
|
35363
35433
|
- 200
|
|
@@ -35636,8 +35706,9 @@ components:
|
|
|
35636
35706
|
type: array
|
|
35637
35707
|
description: |-
|
|
35638
35708
|
Search columns the RESTlet returns for each matching record. With a saved search,
|
|
35639
|
-
|
|
35640
|
-
|
|
35709
|
+
the RESTlet returns the search's own result columns followed by any listed here: a
|
|
35710
|
+
list adds columns and never removes one of the search's, so remove a column in the
|
|
35711
|
+
saved search itself. An ad-hoc search (no `searchId`) must list its columns here.
|
|
35641
35712
|
x-celigo-ai-guidance:
|
|
35642
35713
|
- |-
|
|
35643
35714
|
Entries are objects keyed by `name` — `[{"name": "internalid"}, {"name":
|
package/package.json
CHANGED