@celigo/api-specs 0.2.28 → 0.2.30
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 +110 -22
- package/dist/asynchelper.yml +110 -22
- package/dist/connection.yml +103 -1
- package/dist/export.yml +233 -52
- package/dist/import.yml +169 -27
- package/dist/tool.yml +258 -40
- package/package.json +1 -1
- package/schemas.json +566 -551
package/dist/tool.yml
CHANGED
|
@@ -2075,9 +2075,11 @@ components:
|
|
|
2075
2075
|
This field supports THREE DISTINCT PATTERNS that are easily distinguished:
|
|
2076
2076
|
|
|
2077
2077
|
**1. json Path Syntax**
|
|
2078
|
-
- MUST start with '
|
|
2078
|
+
- MUST start with '$' — the record root. An object record is addressed as
|
|
2079
|
+
'$.field'; a grouped (array) record as '$[0].field' / '$[*].field'
|
|
2079
2080
|
- Used for precisely targeting data in structured JSON objects
|
|
2080
|
-
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street'
|
|
2081
|
+
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street',
|
|
2082
|
+
'$[*].Tax' (every row of a grouped record)
|
|
2081
2083
|
- Wildcards like [*] extract multiple values/objects
|
|
2082
2084
|
|
|
2083
2085
|
```json
|
|
@@ -2088,7 +2090,8 @@ components:
|
|
|
2088
2090
|
- Contains '{{' and '}}' pattern
|
|
2089
2091
|
- Evaluated by the AFE 2.0 handlebars template engine
|
|
2090
2092
|
- Can include logic, formatting, and computation
|
|
2091
|
-
- Access input record fields with {{record.fieldName}} notation
|
|
2093
|
+
- Access input record fields with {{record.fieldName}} notation; a grouped
|
|
2094
|
+
(array) record binds as `rows` instead — {{rows.0.fieldName}} / {{#each rows}}
|
|
2092
2095
|
- Examples: "{{record.firstName}} {{record.lastName}}", "{{#if record.isActive}}Active{{else}}Inactive{{/if}}"
|
|
2093
2096
|
- Valid on `object`, `objectarray`, and primitive-array dataTypes as
|
|
2094
2097
|
well as scalars — the rendered template output must parse into the
|
|
@@ -2099,7 +2102,7 @@ components:
|
|
|
2099
2102
|
```
|
|
2100
2103
|
|
|
2101
2104
|
**3. Hard-Coded Value (literal string)**
|
|
2102
|
-
- Does NOT start with '
|
|
2105
|
+
- Does NOT start with '$'
|
|
2103
2106
|
- Does NOT contain handlebars '{{' syntax
|
|
2104
2107
|
- System treats it as a literal string value
|
|
2105
2108
|
- VERY COMMON for setting static/constant values
|
|
@@ -2121,10 +2124,38 @@ components:
|
|
|
2121
2124
|
- The system maintains this context even in deeply nested mappings
|
|
2122
2125
|
- For object mappings without child mappings, extract should return a complete object
|
|
2123
2126
|
- When both extract and mappings are defined for objects, extract is applied first
|
|
2127
|
+
- The root is the record as it arrives: an object record roots at `$.field`; a
|
|
2128
|
+
grouped record (an array of rows — grouped exports, file key columns, NetSuite
|
|
2129
|
+
grouped saved searches) roots at the array, so its rows are addressed as
|
|
2130
|
+
`$[0].field` (one row) or `$[*].field` (every row). A root that contradicts the
|
|
2131
|
+
record's shape resolves to nothing without an error.
|
|
2124
2132
|
|
|
2125
2133
|
For most simple field-to-field mappings, prefer JSON path syntax for its clarity and performance.
|
|
2126
2134
|
For hard-coded values, simply use the literal string as the extract value.
|
|
2127
2135
|
x-celigo-ai-guidance:
|
|
2136
|
+
- |-
|
|
2137
|
+
## GROUPED (ARRAY) RECORDS
|
|
2138
|
+
Decide the JSONPath root from the record's shape before writing
|
|
2139
|
+
any extract. When the record is an array of rows, `$.field`,
|
|
2140
|
+
`$.properties.field` and `$.rows[*].field` all resolve to
|
|
2141
|
+
nothing — the processor still reports success and the request
|
|
2142
|
+
body ships as `{}`. Address rows as `$[0].field` (that row's
|
|
2143
|
+
value, typed) or `$[*].field` (every row: joined with commas
|
|
2144
|
+
into a `string` destination; rejected with
|
|
2145
|
+
`incompatible_destination_conversion` into a `number`
|
|
2146
|
+
destination). Column labels with spaces work as
|
|
2147
|
+
`$[*][Order Number]`, `$[*].[Order Number]`, or
|
|
2148
|
+
`$[*]['Order Number']`. For one destination element per row
|
|
2149
|
+
the two array kinds take different helper forms: a primitive
|
|
2150
|
+
array (`stringarray` / `numberarray`) uses `buildArrayHelper:
|
|
2151
|
+
[{"extract": "$[*].field"}]`; an `objectarray` uses
|
|
2152
|
+
`buildArrayHelper: [{"extract": "$[*]", "mappings": [...]}]`
|
|
2153
|
+
with the children addressing the row relatively (`$.field`,
|
|
2154
|
+
`{{rows.field}}`). An `extract` placed directly on the
|
|
2155
|
+
array-typed field yields nothing. Handlebars
|
|
2156
|
+
extracts bind the array record as `rows` (`{{rows.0.field}}`),
|
|
2157
|
+
an object record as `record`. The reverse holds too: `$[*]` on
|
|
2158
|
+
an object record iterates the object's values, not rows.
|
|
2128
2159
|
- |-
|
|
2129
2160
|
## SIZE LIMIT
|
|
2130
2161
|
The platform's import save validator caps this field at **1024
|
|
@@ -2382,7 +2413,11 @@ components:
|
|
|
2382
2413
|
(`$.items[*]`), `"$"` (the record root), or omission — a
|
|
2383
2414
|
constructed entry (child `mappings` with the extract omitted or
|
|
2384
2415
|
`"$"`; the two spellings are equivalent) contributes exactly one
|
|
2385
|
-
element, and entries append in order.
|
|
2416
|
+
element, and entries append in order. On a grouped (array)
|
|
2417
|
+
record the record itself is the array to iterate: `"$[*]"`
|
|
2418
|
+
yields one `objectarray` element per row (children address the
|
|
2419
|
+
row as `$.field`), and `"$[*].field"` yields one primitive-array
|
|
2420
|
+
value per row. Indexed or comma-joined
|
|
2386
2421
|
entry extracts (`"$[0]"`, `"$[0],$[0]"`) are not valid: the
|
|
2387
2422
|
processor renders the entire destination array as null with no
|
|
2388
2423
|
validation error. To emit a fixed number of static elements, add
|
|
@@ -2403,7 +2438,9 @@ components:
|
|
|
2403
2438
|
|
|
2404
2439
|
**For Simple Arrays (stringarray, numberarray, booleanarray)**
|
|
2405
2440
|
- Only the 'extract' field is used to pull values
|
|
2406
|
-
- JSON path with wildcards (e.g., $.items[*].name) returns multiple values
|
|
2441
|
+
- JSON path with wildcards (e.g., $.items[*].name) returns multiple values;
|
|
2442
|
+
on a grouped (array) record the record itself is the array, so the
|
|
2443
|
+
path roots at it ($[*].name — one value per row)
|
|
2407
2444
|
- Each result is converted to the appropriate primitive type
|
|
2408
2445
|
```json
|
|
2409
2446
|
{
|
|
@@ -2505,11 +2542,13 @@ components:
|
|
|
2505
2542
|
- When both extract and mappings are provided, the system creates special composite objects
|
|
2506
2543
|
that maintain hierarchical context during processing
|
|
2507
2544
|
- This enables accessing both the current array element AND its parent context
|
|
2508
|
-
- An ITERATING entry's extract MUST
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2545
|
+
- An ITERATING entry's extract MUST be a JSON path that iterates an array:
|
|
2546
|
+
'$.items[*]' when the array is a field of an object record, or '$[*]'
|
|
2547
|
+
(objectarray) / '$[*].field' (primitive arrays) when the record itself is a
|
|
2548
|
+
grouped array of rows. A CONSTRUCTED entry (child mappings building one
|
|
2549
|
+
element) instead omits extract or sets it to exactly "$" — never rewrite "$"
|
|
2550
|
+
into an indexed or comma-joined form ('$[0]', '$[0],$[0]'): those render the
|
|
2551
|
+
entire destination array as null without raising a validation error
|
|
2513
2552
|
- Each array helper entry acts independently, potentially adding multiple elements
|
|
2514
2553
|
|
|
2515
2554
|
The buildArrayHelper is the most complex part of the mappings system - always analyze the
|
|
@@ -2923,9 +2962,11 @@ components:
|
|
|
2923
2962
|
This field supports THREE DISTINCT PATTERNS that are easily distinguished:
|
|
2924
2963
|
|
|
2925
2964
|
**1. json Path Syntax**
|
|
2926
|
-
- MUST start with '
|
|
2965
|
+
- MUST start with '$' — the record root. An object record is addressed as
|
|
2966
|
+
'$.field'; a grouped (array) record as '$[0].field' / '$[*].field'
|
|
2927
2967
|
- Used for precisely targeting data in structured JSON objects
|
|
2928
|
-
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street'
|
|
2968
|
+
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street',
|
|
2969
|
+
'$[*].Tax' (every row of a grouped record)
|
|
2929
2970
|
- Wildcards like [*] extract multiple values/objects
|
|
2930
2971
|
|
|
2931
2972
|
```json
|
|
@@ -2936,7 +2977,8 @@ components:
|
|
|
2936
2977
|
- Contains '{{' and '}}' pattern
|
|
2937
2978
|
- Evaluated by the AFE 2.0 handlebars template engine
|
|
2938
2979
|
- Can include logic, formatting, and computation
|
|
2939
|
-
- Access input record fields with {{record.fieldName}} notation
|
|
2980
|
+
- Access input record fields with {{record.fieldName}} notation; a grouped
|
|
2981
|
+
(array) record binds as `rows` instead — {{rows.0.fieldName}} / {{#each rows}}
|
|
2940
2982
|
- Examples: "{{record.firstName}} {{record.lastName}}", "{{#if record.isActive}}Active{{else}}Inactive{{/if}}"
|
|
2941
2983
|
- Valid on `object`, `objectarray`, and primitive-array dataTypes as
|
|
2942
2984
|
well as scalars — the rendered template output must parse into the
|
|
@@ -2947,7 +2989,7 @@ components:
|
|
|
2947
2989
|
```
|
|
2948
2990
|
|
|
2949
2991
|
**3. Hard-Coded Value (literal string)**
|
|
2950
|
-
- Does NOT start with '
|
|
2992
|
+
- Does NOT start with '$'
|
|
2951
2993
|
- Does NOT contain handlebars '{{' syntax
|
|
2952
2994
|
- System treats it as a literal string value
|
|
2953
2995
|
- VERY COMMON for setting static/constant values
|
|
@@ -2969,10 +3011,38 @@ components:
|
|
|
2969
3011
|
- The system maintains this context even in deeply nested mappings
|
|
2970
3012
|
- For object mappings without child mappings, extract should return a complete object
|
|
2971
3013
|
- When both extract and mappings are defined for objects, extract is applied first
|
|
3014
|
+
- The root is the record as it arrives: an object record roots at `$.field`; a
|
|
3015
|
+
grouped record (an array of rows — grouped exports, file key columns, NetSuite
|
|
3016
|
+
grouped saved searches) roots at the array, so its rows are addressed as
|
|
3017
|
+
`$[0].field` (one row) or `$[*].field` (every row). A root that contradicts the
|
|
3018
|
+
record's shape resolves to nothing without an error.
|
|
2972
3019
|
|
|
2973
3020
|
For most simple field-to-field mappings, prefer JSON path syntax for its clarity and performance.
|
|
2974
3021
|
For hard-coded values, simply use the literal string as the extract value.
|
|
2975
3022
|
x-celigo-ai-guidance:
|
|
3023
|
+
- |-
|
|
3024
|
+
## GROUPED (ARRAY) RECORDS
|
|
3025
|
+
Decide the JSONPath root from the record's shape before writing
|
|
3026
|
+
any extract. When the record is an array of rows, `$.field`,
|
|
3027
|
+
`$.properties.field` and `$.rows[*].field` all resolve to
|
|
3028
|
+
nothing — the processor still reports success and the request
|
|
3029
|
+
body ships as `{}`. Address rows as `$[0].field` (that row's
|
|
3030
|
+
value, typed) or `$[*].field` (every row: joined with commas
|
|
3031
|
+
into a `string` destination; rejected with
|
|
3032
|
+
`incompatible_destination_conversion` into a `number`
|
|
3033
|
+
destination). Column labels with spaces work as
|
|
3034
|
+
`$[*][Order Number]`, `$[*].[Order Number]`, or
|
|
3035
|
+
`$[*]['Order Number']`. For one destination element per row
|
|
3036
|
+
the two array kinds take different helper forms: a primitive
|
|
3037
|
+
array (`stringarray` / `numberarray`) uses `buildArrayHelper:
|
|
3038
|
+
[{"extract": "$[*].field"}]`; an `objectarray` uses
|
|
3039
|
+
`buildArrayHelper: [{"extract": "$[*]", "mappings": [...]}]`
|
|
3040
|
+
with the children addressing the row relatively (`$.field`,
|
|
3041
|
+
`{{rows.field}}`). An `extract` placed directly on the
|
|
3042
|
+
array-typed field yields nothing. Handlebars
|
|
3043
|
+
extracts bind the array record as `rows` (`{{rows.0.field}}`),
|
|
3044
|
+
an object record as `record`. The reverse holds too: `$[*]` on
|
|
3045
|
+
an object record iterates the object's values, not rows.
|
|
2976
3046
|
- |-
|
|
2977
3047
|
## SIZE LIMIT
|
|
2978
3048
|
The platform's import save validator caps this field at **1024
|
|
@@ -3230,7 +3300,11 @@ components:
|
|
|
3230
3300
|
(`$.items[*]`), `"$"` (the record root), or omission — a
|
|
3231
3301
|
constructed entry (child `mappings` with the extract omitted or
|
|
3232
3302
|
`"$"`; the two spellings are equivalent) contributes exactly one
|
|
3233
|
-
element, and entries append in order.
|
|
3303
|
+
element, and entries append in order. On a grouped (array)
|
|
3304
|
+
record the record itself is the array to iterate: `"$[*]"`
|
|
3305
|
+
yields one `objectarray` element per row (children address the
|
|
3306
|
+
row as `$.field`), and `"$[*].field"` yields one primitive-array
|
|
3307
|
+
value per row. Indexed or comma-joined
|
|
3234
3308
|
entry extracts (`"$[0]"`, `"$[0],$[0]"`) are not valid: the
|
|
3235
3309
|
processor renders the entire destination array as null with no
|
|
3236
3310
|
validation error. To emit a fixed number of static elements, add
|
|
@@ -3251,7 +3325,9 @@ components:
|
|
|
3251
3325
|
|
|
3252
3326
|
**For Simple Arrays (stringarray, numberarray, booleanarray)**
|
|
3253
3327
|
- Only the 'extract' field is used to pull values
|
|
3254
|
-
- JSON path with wildcards (e.g., $.items[*].name) returns multiple values
|
|
3328
|
+
- JSON path with wildcards (e.g., $.items[*].name) returns multiple values;
|
|
3329
|
+
on a grouped (array) record the record itself is the array, so the
|
|
3330
|
+
path roots at it ($[*].name — one value per row)
|
|
3255
3331
|
- Each result is converted to the appropriate primitive type
|
|
3256
3332
|
```json
|
|
3257
3333
|
{
|
|
@@ -3353,11 +3429,13 @@ components:
|
|
|
3353
3429
|
- When both extract and mappings are provided, the system creates special composite objects
|
|
3354
3430
|
that maintain hierarchical context during processing
|
|
3355
3431
|
- This enables accessing both the current array element AND its parent context
|
|
3356
|
-
- An ITERATING entry's extract MUST
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
|
|
3432
|
+
- An ITERATING entry's extract MUST be a JSON path that iterates an array:
|
|
3433
|
+
'$.items[*]' when the array is a field of an object record, or '$[*]'
|
|
3434
|
+
(objectarray) / '$[*].field' (primitive arrays) when the record itself is a
|
|
3435
|
+
grouped array of rows. A CONSTRUCTED entry (child mappings building one
|
|
3436
|
+
element) instead omits extract or sets it to exactly "$" — never rewrite "$"
|
|
3437
|
+
into an indexed or comma-joined form ('$[0]', '$[0],$[0]'): those render the
|
|
3438
|
+
entire destination array as null without raising a validation error
|
|
3361
3439
|
- Each array helper entry acts independently, potentially adding multiple elements
|
|
3362
3440
|
|
|
3363
3441
|
The buildArrayHelper is the most complex part of the mappings system - always analyze the
|
|
@@ -4083,6 +4161,16 @@ components:
|
|
|
4083
4161
|
x-enumDescriptions:
|
|
4084
4162
|
create: Builds entirely new output records from inputs, ignoring unmapped fields.
|
|
4085
4163
|
modify: Makes targeted edits to existing records, preserving unmapped fields.
|
|
4164
|
+
x-celigo-ai-guidance:
|
|
4165
|
+
- |-
|
|
4166
|
+
On a grouped record (the export groups rows, so the record is an
|
|
4167
|
+
array) only `create` can author output — build it from the rows with
|
|
4168
|
+
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`.
|
|
4169
|
+
`modify` has no object to overlay onto an array: the record passes
|
|
4170
|
+
through untouched and the processor reports success. Either mode
|
|
4171
|
+
reshapes the inside of one record; neither changes how many records
|
|
4172
|
+
the page carries (that is the export's `preSavePage` hook) or whether
|
|
4173
|
+
the export groups at all (that is its grouping setting).
|
|
4086
4174
|
examples:
|
|
4087
4175
|
- create
|
|
4088
4176
|
- modify
|
|
@@ -9948,7 +10036,11 @@ components:
|
|
|
9948
10036
|
suiteAppInstalled:
|
|
9949
10037
|
type: boolean
|
|
9950
10038
|
readOnly: true
|
|
9951
|
-
description:
|
|
10039
|
+
description: |-
|
|
10040
|
+
When true, the Celigo integrator.io SuiteApp (SuiteScript 2.x) was detected in
|
|
10041
|
+
the connected NetSuite account the last time the connection authenticated. It
|
|
10042
|
+
says nothing about the legacy Celigo bundle; for a live check of both, use
|
|
10043
|
+
`GET /v1/connections/{_id}/distributedApps`.
|
|
9952
10044
|
salesforce:
|
|
9953
10045
|
description: Present when `type` is `salesforce`.
|
|
9954
10046
|
allOf:
|
|
@@ -10687,7 +10779,9 @@ components:
|
|
|
10687
10779
|
type: object
|
|
10688
10780
|
description: |-
|
|
10689
10781
|
Configuration for HTTP imports.
|
|
10690
|
-
Required whenever the connection referenced by _connectionId has type http
|
|
10782
|
+
Required whenever the connection referenced by _connectionId has type http, and on
|
|
10783
|
+
`NetSuiteHTTPImport` (NetSuite's REST APIs on a `netsuite` connection, where `nsDomainType`
|
|
10784
|
+
supplies the host).
|
|
10691
10785
|
x-celigo-ai-guidance:
|
|
10692
10786
|
- |-
|
|
10693
10787
|
IMPORTANT:
|
|
@@ -10695,6 +10789,11 @@ components:
|
|
|
10695
10789
|
this object MUST be populated for the import to function properly.
|
|
10696
10790
|
This is a required configuration for all HTTP based imports,
|
|
10697
10791
|
as determined by the connection associated with the import.
|
|
10792
|
+
- |-
|
|
10793
|
+
A `NetSuiteHTTPImport` uses this same object on a netsuite connection: each `relativeURI`
|
|
10794
|
+
entry carries the full path from `/services/rest/record/v1/<type>` (SuiteTalk) or
|
|
10795
|
+
`/app/site/hosting/restlet.nl?script=<id>&deploy=<n>` (custom RESTlet); the host and the
|
|
10796
|
+
token signature come from the connection.
|
|
10698
10797
|
properties:
|
|
10699
10798
|
sendPostMappedData:
|
|
10700
10799
|
type: boolean
|
|
@@ -20776,6 +20875,7 @@ components:
|
|
|
20776
20875
|
description: |-
|
|
20777
20876
|
Connection this import uses to reach the destination system. The connection's type must
|
|
20778
20877
|
be compatible with the import's `adaptorType` (e.g. an `HTTPImport` needs an `http`
|
|
20878
|
+
connection; `NetSuiteDistributedImport` and `NetSuiteHTTPImport` both need a `netsuite`
|
|
20779
20879
|
connection). Server-required — POST without it fails with 422 "Expected field:
|
|
20780
20880
|
_connectionId to be present" — except for the connection-less flavors (`ToolImport`,
|
|
20781
20881
|
`AiAgentImport`, `GuardrailImport`), which the server creates without one.
|
|
@@ -20808,9 +20908,15 @@ components:
|
|
|
20808
20908
|
Use HTTPImport for all REST/SOAP APIs unless a specialized adaptor exists for the
|
|
20809
20909
|
target system; always pair the adaptorType with its matching configuration object.
|
|
20810
20910
|
- |-
|
|
20811
|
-
For NetSuite,
|
|
20812
|
-
|
|
20813
|
-
|
|
20911
|
+
For NetSuite, use NetSuiteDistributedImport (with the netsuite_da object) when the
|
|
20912
|
+
Celigo SuiteApp or bundle is installed in the account — check with
|
|
20913
|
+
`GET /v1/connections/{_id}/distributedApps` (`suiteapp.success` / `bundle.success`).
|
|
20914
|
+
Use NetSuiteHTTPImport (with `nsDomainType` and the http object) when neither is
|
|
20915
|
+
installed or the user asks for NetSuite's REST APIs; the platform's SuiteTalk connector
|
|
20916
|
+
catalogs `POST /services/rest/record/v1/<type>` for inserts and
|
|
20917
|
+
`PATCH /services/rest/record/v1/<type>/{id}` for updates, and saving links the step to
|
|
20918
|
+
them. NetSuiteImport is a legacy adaptor for accounts without the Celigo SuiteApp 2.0 —
|
|
20919
|
+
do not use it unless explicitly requested.
|
|
20814
20920
|
- |-
|
|
20815
20921
|
Use RDBMSImport (with the rdbms object) for built-in database types such as SQL Server,
|
|
20816
20922
|
MySQL, PostgreSQL, Snowflake, Oracle, and MariaDB. Use JDBCImport (with the jdbc
|
|
@@ -20822,6 +20928,7 @@ components:
|
|
|
20822
20928
|
- S3Import
|
|
20823
20929
|
- NetSuiteImport
|
|
20824
20930
|
- NetSuiteDistributedImport
|
|
20931
|
+
- NetSuiteHTTPImport
|
|
20825
20932
|
- SalesforceImport
|
|
20826
20933
|
- JDBCImport
|
|
20827
20934
|
- RDBMSImport
|
|
@@ -20839,7 +20946,8 @@ components:
|
|
|
20839
20946
|
AS2Import: File import via AS2 (Applicability Statement 2) protocol.
|
|
20840
20947
|
S3Import: File import to Amazon S3 storage.
|
|
20841
20948
|
NetSuiteImport: Legacy NetSuite import for accounts without the Celigo SuiteApp 2.0.
|
|
20842
|
-
NetSuiteDistributedImport: NetSuite import using the distributed SuiteApp 2.0 adaptor (default for NetSuite).
|
|
20949
|
+
NetSuiteDistributedImport: NetSuite import using the distributed SuiteApp 2.0 adaptor (default for NetSuite when the SuiteApp or bundle is installed).
|
|
20950
|
+
NetSuiteHTTPImport: NetSuite import over its REST APIs — SuiteTalk REST record endpoints or a custom RESTlet — on a netsuite connection, without the Celigo SuiteApp or bundle.
|
|
20843
20951
|
SalesforceImport: Salesforce-specific import using SOAP, REST, Metadata, or Composite APIs.
|
|
20844
20952
|
JDBCImport: Database import via a generic JDBC connection (not for built-in RDBMS types).
|
|
20845
20953
|
RDBMSImport: Database import for built-in RDBMS types such as SQL Server, MySQL, PostgreSQL, Snowflake, and Oracle.
|
|
@@ -20854,10 +20962,38 @@ components:
|
|
|
20854
20962
|
examples:
|
|
20855
20963
|
- HTTPImport
|
|
20856
20964
|
- NetSuiteDistributedImport
|
|
20965
|
+
- NetSuiteHTTPImport
|
|
20857
20966
|
- SalesforceImport
|
|
20858
20967
|
- FTPImport
|
|
20859
20968
|
- AiAgentImport
|
|
20860
20969
|
- GuardrailImport
|
|
20970
|
+
nsDomainType:
|
|
20971
|
+
type: string
|
|
20972
|
+
enum:
|
|
20973
|
+
- suitetalk
|
|
20974
|
+
- restlet
|
|
20975
|
+
x-lowercase: true
|
|
20976
|
+
x-enumDescriptions:
|
|
20977
|
+
suitetalk: NetSuite SuiteTalk REST web services — record endpoints under /services/rest/record/v1
|
|
20978
|
+
restlet: A custom RESTlet script deployed in the NetSuite account, called at /app/site/hosting/restlet.nl?script=<id>&deploy=<n>
|
|
20979
|
+
description: |-
|
|
20980
|
+
Selects which NetSuite REST host a `NetSuiteHTTPImport` calls. The server derives the
|
|
20981
|
+
full base URL from the connection's NetSuite account
|
|
20982
|
+
(`https://<account>.suitetalk.api.netsuite.com` or `https://<account>.restlets.api.netsuite.com`)
|
|
20983
|
+
and signs each request with the connection's token-based credentials, so each
|
|
20984
|
+
`http.relativeURI` entry carries the complete path starting at `/services/rest/...` or
|
|
20985
|
+
`/app/site/hosting/restlet.nl`. Ignored on other adaptor types.
|
|
20986
|
+
x-celigo-ai-guidance:
|
|
20987
|
+
- |-
|
|
20988
|
+
Required on `NetSuiteHTTPImport`: omitting it fails the save with 422 "Path `nsDomainType`
|
|
20989
|
+
is required." The import's `_connectionId` must be a netsuite connection — an http
|
|
20990
|
+
connection fails with 422 invalid_connection_type.
|
|
20991
|
+
- |-
|
|
20992
|
+
With `suitetalk`, saving links `http._httpConnectorVersionId`, `_httpConnectorResourceId`
|
|
20993
|
+
and `_httpConnectorEndpointIds` to the platform's SuiteTalk connector from each
|
|
20994
|
+
`http.method` + `http.relativeURI` pair (for example `POST /services/rest/record/v1/customer`
|
|
20995
|
+
links to that record type's insert endpoint), so the UI's Simple view renders an
|
|
20996
|
+
API-authored step; `restlet` steps are not linked.
|
|
20861
20997
|
externalId:
|
|
20862
20998
|
type:
|
|
20863
20999
|
- string
|
|
@@ -21724,10 +21860,15 @@ components:
|
|
|
21724
21860
|
iterate ``{{#each rows}}``); hook code sees the array as the
|
|
21725
21861
|
record element and must not assume object shape.
|
|
21726
21862
|
- |-
|
|
21727
|
-
|
|
21728
|
-
|
|
21729
|
-
|
|
21730
|
-
|
|
21863
|
+
A grouped record is ONE record: Mapper 2.0 and Transform 2.0 root
|
|
21864
|
+
JSONPath at the array (``$[0].<field>`` / ``$[*].<field>``;
|
|
21865
|
+
``$.<field>`` resolves nothing), and a Transform 2.0 in ``mode:
|
|
21866
|
+
"create"`` reshapes it in place — header fields from ``$[0]``, a
|
|
21867
|
+
lines array from a ``buildArrayHelper`` over ``$[*]`` (``mode:
|
|
21868
|
+
"modify"`` has no object to overlay and passes the array through
|
|
21869
|
+
untouched). Changing how many records the page carries — each
|
|
21870
|
+
row becoming its own record for every downstream step — is the
|
|
21871
|
+
``preSavePage`` hook's job alone.
|
|
21731
21872
|
items:
|
|
21732
21873
|
type: string
|
|
21733
21874
|
examples:
|
|
@@ -26309,7 +26450,10 @@ components:
|
|
|
26309
26450
|
- \\NAS\Accounting\AP
|
|
26310
26451
|
Http-2:
|
|
26311
26452
|
type: object
|
|
26312
|
-
description:
|
|
26453
|
+
description: |-
|
|
26454
|
+
Configuration for HTTP exports. Required when the export's `_connectionId` references a
|
|
26455
|
+
connection of type `http`, and on `NetSuiteHTTPExport` (NetSuite's REST APIs on a `netsuite`
|
|
26456
|
+
connection, where `nsDomainType` supplies the host).
|
|
26313
26457
|
x-celigo-ai-guidance:
|
|
26314
26458
|
- |-
|
|
26315
26459
|
IMPORTANT:
|
|
@@ -26317,6 +26461,12 @@ components:
|
|
|
26317
26461
|
this object MUST be populated for the export to function properly.
|
|
26318
26462
|
This is a required configuration for all HTTP based exports,
|
|
26319
26463
|
as determined by the connection associated with the export.
|
|
26464
|
+
- |-
|
|
26465
|
+
A `NetSuiteHTTPExport` uses this same object on a netsuite connection: `relativeURI`
|
|
26466
|
+
carries the full path from `/services/rest/...` (SuiteTalk) or
|
|
26467
|
+
`/app/site/hosting/restlet.nl?script=<id>&deploy=<n>` (custom RESTlet), the host and the
|
|
26468
|
+
token signature come from the connection, and `type` must stay unset (file, blob and
|
|
26469
|
+
csvstream are rejected with 422 unsupported_type).
|
|
26320
26470
|
properties:
|
|
26321
26471
|
type:
|
|
26322
26472
|
type: string
|
|
@@ -26466,7 +26616,7 @@ components:
|
|
|
26466
26616
|
x-celigo-agent:
|
|
26467
26617
|
- handlebars
|
|
26468
26618
|
x-celigo-handlebars-context: pre-mapped
|
|
26469
|
-
description: 'Resource path appended to the connection''s `baseURI` to form the complete request URL. Path segments, query parameters, or the entire value can be built with handlebars expressions for endpoints determined at runtime. For lookup exports (`isLookup: true`) with mappings configured, handlebars always render against the original pre-mapped input record, so fields removed or renamed by mappings remain available for URI construction.'
|
|
26619
|
+
description: 'Resource path appended to the connection''s `baseURI` to form the complete request URL. Path segments, query parameters, or the entire value can be built with handlebars expressions for endpoints determined at runtime. For lookup exports (`isLookup: true`) with mappings configured, handlebars always render against the original pre-mapped input record, so fields removed or renamed by mappings remain available for URI construction. On `NetSuiteHTTPExport` the base URL is derived from the NetSuite connection and `nsDomainType`, so the path starts at `/services/rest/...` or `/app/site/hosting/restlet.nl`.'
|
|
26470
26620
|
x-celigo-ai-guidance:
|
|
26471
26621
|
- The resource path portion of the API endpoint used for this export.
|
|
26472
26622
|
- |-
|
|
@@ -33216,7 +33366,8 @@ components:
|
|
|
33216
33366
|
- 'null'
|
|
33217
33367
|
description: |-
|
|
33218
33368
|
Connection this export uses to reach the source system. The connection's type must be
|
|
33219
|
-
compatible with the export's `adaptorType` (e.g. an `HTTPExport` needs an `http` connection
|
|
33369
|
+
compatible with the export's `adaptorType` (e.g. an `HTTPExport` needs an `http` connection;
|
|
33370
|
+
`NetSuiteExport` and `NetSuiteHTTPExport` both need a `netsuite` connection).
|
|
33220
33371
|
Server-required unless `type` is `webhook` or `simple` (those receive data instead of fetching it).
|
|
33221
33372
|
examples:
|
|
33222
33373
|
- 60a2c4e6f321d800129a1a3c
|
|
@@ -33232,6 +33383,7 @@ components:
|
|
|
33232
33383
|
- AS2Export
|
|
33233
33384
|
- S3Export
|
|
33234
33385
|
- NetSuiteExport
|
|
33386
|
+
- NetSuiteHTTPExport
|
|
33235
33387
|
- SalesforceExport
|
|
33236
33388
|
- JDBCExport
|
|
33237
33389
|
- RDBMSExport
|
|
@@ -33247,7 +33399,8 @@ components:
|
|
|
33247
33399
|
FTPExport: Exports files from FTP or SFTP servers.
|
|
33248
33400
|
AS2Export: Exports data using the AS2 (Applicability Statement 2) secure file transfer protocol.
|
|
33249
33401
|
S3Export: Exports files from Amazon S3 cloud storage buckets.
|
|
33250
|
-
NetSuiteExport: Exports data from Oracle NetSuite
|
|
33402
|
+
NetSuiteExport: Exports data from Oracle NetSuite through the Celigo SuiteApp/bundle RESTlets (saved searches or search criteria), SOAP web services, real-time listeners, or the file cabinet.
|
|
33403
|
+
NetSuiteHTTPExport: Exports records from Oracle NetSuite over its REST APIs — SuiteTalk REST record endpoints and SuiteQL, or a custom RESTlet — on a netsuite connection, with no saved search and no Celigo SuiteApp involved.
|
|
33251
33404
|
SalesforceExport: Exports data from Salesforce using SOQL queries or real-time events.
|
|
33252
33405
|
JDBCExport: Exports data from databases using JDBC connections.
|
|
33253
33406
|
RDBMSExport: Exports data from relational databases using SQL queries.
|
|
@@ -33261,7 +33414,71 @@ components:
|
|
|
33261
33414
|
examples:
|
|
33262
33415
|
- HTTPExport
|
|
33263
33416
|
- NetSuiteExport
|
|
33417
|
+
- NetSuiteHTTPExport
|
|
33264
33418
|
- SalesforceExport
|
|
33419
|
+
x-celigo-ai-guidance:
|
|
33420
|
+
- |-
|
|
33421
|
+
On a netsuite connection, default to `NetSuiteHTTPExport` (with `nsDomainType` and an
|
|
33422
|
+
`http` object) for exports and lookups: it reads records over NetSuite's REST APIs with
|
|
33423
|
+
nothing to create in NetSuite first — SuiteQL for filtered or multi-table extracts, the
|
|
33424
|
+
record endpoint `GET /services/rest/record/v1/<type>/{id}` for one record. Choose
|
|
33425
|
+
`NetSuiteExport` when the user names an existing saved search or asks for one, for
|
|
33426
|
+
real-time listeners (`type: distributed`), and for file-cabinet exports; never convert an
|
|
33427
|
+
existing `NetSuiteExport` to `NetSuiteHTTPExport` unless asked.
|
|
33428
|
+
- |-
|
|
33429
|
+
When authoring a NetSuite REST export, send `adaptorType: "NetSuiteHTTPExport"` explicitly:
|
|
33430
|
+
on a netsuite connection the server otherwise infers `NetSuiteExport` and rejects the
|
|
33431
|
+
document with 422 "netsuite subschema not defined", even though `nsDomainType` and `http`
|
|
33432
|
+
are present.
|
|
33433
|
+
nsDomainType:
|
|
33434
|
+
type: string
|
|
33435
|
+
enum:
|
|
33436
|
+
- suitetalk
|
|
33437
|
+
- restlet
|
|
33438
|
+
x-lowercase: true
|
|
33439
|
+
x-enumDescriptions:
|
|
33440
|
+
suitetalk: NetSuite SuiteTalk REST web services — record endpoints under /services/rest/record/v1 and SuiteQL under /services/rest/query/v1
|
|
33441
|
+
restlet: A custom RESTlet script deployed in the NetSuite account, called at /app/site/hosting/restlet.nl?script=<id>&deploy=<n>
|
|
33442
|
+
description: |-
|
|
33443
|
+
Selects which NetSuite REST host a `NetSuiteHTTPExport` calls. The server derives the
|
|
33444
|
+
full base URL from the connection's NetSuite account
|
|
33445
|
+
(`https://<account>.suitetalk.api.netsuite.com` or `https://<account>.restlets.api.netsuite.com`)
|
|
33446
|
+
and signs each request with the connection's token-based credentials, so `http.relativeURI`
|
|
33447
|
+
carries the complete path starting at `/services/rest/...` or `/app/site/hosting/restlet.nl`.
|
|
33448
|
+
Ignored on other adaptor types.
|
|
33449
|
+
x-celigo-ai-guidance:
|
|
33450
|
+
- |-
|
|
33451
|
+
Required on `NetSuiteHTTPExport`: omitting it fails the save with 422 "Path `nsDomainType`
|
|
33452
|
+
is required." and any other value fails with 422 "is not a valid enum value for path
|
|
33453
|
+
`nsDomainType`". The export's `_connectionId` must be a netsuite connection — an http
|
|
33454
|
+
connection fails with 422 invalid_connection_type.
|
|
33455
|
+
- |-
|
|
33456
|
+
With `suitetalk`, saving links `http._httpConnectorVersionId`, `_httpConnectorResourceId`
|
|
33457
|
+
and `_httpConnectorEndpointId` to the platform's SuiteTalk connector from `http.method` +
|
|
33458
|
+
`http.relativeURI`, so the UI's Simple view renders an API-authored step; `restlet` steps
|
|
33459
|
+
are not linked.
|
|
33460
|
+
- |-
|
|
33461
|
+
The record list endpoint (`GET /services/rest/record/v1/<type>?limit=<n>&offset={{{export.http.paging.skip}}}`)
|
|
33462
|
+
returns only `{id, links}` per item, so it yields no business fields on its own. For
|
|
33463
|
+
records with fields use SuiteQL: `POST /services/rest/query/v1/suiteql?limit=<n>&offset={{{export.http.paging.skip}}}`,
|
|
33464
|
+
header `Prefer: transient`, `http.body` `{"q": "<SuiteQL>"}`, `http.paging.method: skip`,
|
|
33465
|
+
`http.response.resourcePath: items`; the response envelope carries `hasMore` and
|
|
33466
|
+
`totalResults`. SuiteQL column names are the Records Catalog names (lowercase, e.g.
|
|
33467
|
+
`entityid`, `lastmodifieddate`), not the REST record field names.
|
|
33468
|
+
- |-
|
|
33469
|
+
For incremental runs set `type: delta`, embed `{{lastExportDateTime}}` in the SuiteQL
|
|
33470
|
+
`WHERE` clause (or the record endpoint's `q` parameter) and set `delta.dateFormat` to the
|
|
33471
|
+
format the query compares against, e.g. `to_char(lastmodifieddate,'YYYY-MM-DD HH24:MI:SS') >= '{{lastExportDateTime}}'`
|
|
33472
|
+
with `delta.dateFormat: "YYYY-MM-DD HH:mm:ss"`. In a preview the placeholder renders
|
|
33473
|
+
empty, so preview results do not reflect the delta window.
|
|
33474
|
+
- |-
|
|
33475
|
+
NetSuite must have the REST Web Services feature enabled (Setup > Company > Enable
|
|
33476
|
+
Features > SuiteCloud); otherwise every SuiteTalk call fails with NetSuite 403
|
|
33477
|
+
FEATURE_DISABLED "The 'REST Web Services' feature is not enabled". Custom RESTlets do
|
|
33478
|
+
not need it.
|
|
33479
|
+
- |-
|
|
33480
|
+
`http.type` file, blob, and csvstream are each rejected with 422 unsupported_type
|
|
33481
|
+
("NetSuiteHTTPExport does not support type: <value>") — REST steps are record-based only.
|
|
33265
33482
|
type:
|
|
33266
33483
|
type:
|
|
33267
33484
|
- string
|
|
@@ -33533,8 +33750,8 @@ components:
|
|
|
33533
33750
|
description: |-
|
|
33534
33751
|
Field mappings applied to each incoming record before a lookup HTTP request is made,
|
|
33535
33752
|
reshaping the upstream record into the structure the lookup target API expects. Only
|
|
33536
|
-
supported when `isLookup` is true and `adaptorType` is `HTTPExport
|
|
33537
|
-
source exports or
|
|
33753
|
+
supported when `isLookup` is true and `adaptorType` is `HTTPExport` or
|
|
33754
|
+
`NetSuiteHTTPExport`; do not set it on source exports or other lookup adaptors.
|
|
33538
33755
|
allOf:
|
|
33539
33756
|
- $ref: '#/components/schemas/Mappings'
|
|
33540
33757
|
x-celigo-ai-guidance:
|
|
@@ -33547,8 +33764,9 @@ components:
|
|
|
33547
33764
|
1. ``isLookup`` is ``true`` (the export is being used as a
|
|
33548
33765
|
lookup step, not a source export), AND
|
|
33549
33766
|
2. ``adaptorType`` is ``"HTTPExport"`` (generic REST/SOAP
|
|
33550
|
-
HTTP lookup
|
|
33551
|
-
|
|
33767
|
+
HTTP lookup) or ``"NetSuiteHTTPExport"`` (NetSuite REST
|
|
33768
|
+
APIs) — not the saved-search NetSuite adaptor, Salesforce,
|
|
33769
|
+
RDBMS, file-based, or any other adaptor.
|
|
33552
33770
|
|
|
33553
33771
|
For any other combination (source exports, non-HTTP lookup
|
|
33554
33772
|
exports), do **not** emit this field. Explain the constraint
|