@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/export.yml
CHANGED
|
@@ -904,10 +904,15 @@ components:
|
|
|
904
904
|
iterate ``{{#each rows}}``); hook code sees the array as the
|
|
905
905
|
record element and must not assume object shape.
|
|
906
906
|
- |-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
907
|
+
A grouped record is ONE record: Mapper 2.0 and Transform 2.0 root
|
|
908
|
+
JSONPath at the array (``$[0].<field>`` / ``$[*].<field>``;
|
|
909
|
+
``$.<field>`` resolves nothing), and a Transform 2.0 in ``mode:
|
|
910
|
+
"create"`` reshapes it in place — header fields from ``$[0]``, a
|
|
911
|
+
lines array from a ``buildArrayHelper`` over ``$[*]`` (``mode:
|
|
912
|
+
"modify"`` has no object to overlay and passes the array through
|
|
913
|
+
untouched). Changing how many records the page carries — each
|
|
914
|
+
row becoming its own record for every downstream step — is the
|
|
915
|
+
``preSavePage`` hook's job alone.
|
|
911
916
|
items:
|
|
912
917
|
type: string
|
|
913
918
|
examples:
|
|
@@ -5906,7 +5911,10 @@ components:
|
|
|
5906
5911
|
- \\NAS\Accounting\AP
|
|
5907
5912
|
Http:
|
|
5908
5913
|
type: object
|
|
5909
|
-
description:
|
|
5914
|
+
description: |-
|
|
5915
|
+
Configuration for HTTP exports. Required when the export's `_connectionId` references a
|
|
5916
|
+
connection of type `http`, and on `NetSuiteHTTPExport` (NetSuite's REST APIs on a `netsuite`
|
|
5917
|
+
connection, where `nsDomainType` supplies the host).
|
|
5910
5918
|
x-celigo-ai-guidance:
|
|
5911
5919
|
- |-
|
|
5912
5920
|
IMPORTANT:
|
|
@@ -5914,6 +5922,12 @@ components:
|
|
|
5914
5922
|
this object MUST be populated for the export to function properly.
|
|
5915
5923
|
This is a required configuration for all HTTP based exports,
|
|
5916
5924
|
as determined by the connection associated with the export.
|
|
5925
|
+
- |-
|
|
5926
|
+
A `NetSuiteHTTPExport` uses this same object on a netsuite connection: `relativeURI`
|
|
5927
|
+
carries the full path from `/services/rest/...` (SuiteTalk) or
|
|
5928
|
+
`/app/site/hosting/restlet.nl?script=<id>&deploy=<n>` (custom RESTlet), the host and the
|
|
5929
|
+
token signature come from the connection, and `type` must stay unset (file, blob and
|
|
5930
|
+
csvstream are rejected with 422 unsupported_type).
|
|
5917
5931
|
properties:
|
|
5918
5932
|
type:
|
|
5919
5933
|
type: string
|
|
@@ -6063,7 +6077,7 @@ components:
|
|
|
6063
6077
|
x-celigo-agent:
|
|
6064
6078
|
- handlebars
|
|
6065
6079
|
x-celigo-handlebars-context: pre-mapped
|
|
6066
|
-
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.'
|
|
6080
|
+
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`.'
|
|
6067
6081
|
x-celigo-ai-guidance:
|
|
6068
6082
|
- The resource path portion of the API endpoint used for this export.
|
|
6069
6083
|
- |-
|
|
@@ -12801,9 +12815,11 @@ components:
|
|
|
12801
12815
|
This field supports THREE DISTINCT PATTERNS that are easily distinguished:
|
|
12802
12816
|
|
|
12803
12817
|
**1. json Path Syntax**
|
|
12804
|
-
- MUST start with '
|
|
12818
|
+
- MUST start with '$' — the record root. An object record is addressed as
|
|
12819
|
+
'$.field'; a grouped (array) record as '$[0].field' / '$[*].field'
|
|
12805
12820
|
- Used for precisely targeting data in structured JSON objects
|
|
12806
|
-
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street'
|
|
12821
|
+
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street',
|
|
12822
|
+
'$[*].Tax' (every row of a grouped record)
|
|
12807
12823
|
- Wildcards like [*] extract multiple values/objects
|
|
12808
12824
|
|
|
12809
12825
|
```json
|
|
@@ -12814,7 +12830,8 @@ components:
|
|
|
12814
12830
|
- Contains '{{' and '}}' pattern
|
|
12815
12831
|
- Evaluated by the AFE 2.0 handlebars template engine
|
|
12816
12832
|
- Can include logic, formatting, and computation
|
|
12817
|
-
- Access input record fields with {{record.fieldName}} notation
|
|
12833
|
+
- Access input record fields with {{record.fieldName}} notation; a grouped
|
|
12834
|
+
(array) record binds as `rows` instead — {{rows.0.fieldName}} / {{#each rows}}
|
|
12818
12835
|
- Examples: "{{record.firstName}} {{record.lastName}}", "{{#if record.isActive}}Active{{else}}Inactive{{/if}}"
|
|
12819
12836
|
- Valid on `object`, `objectarray`, and primitive-array dataTypes as
|
|
12820
12837
|
well as scalars — the rendered template output must parse into the
|
|
@@ -12825,7 +12842,7 @@ components:
|
|
|
12825
12842
|
```
|
|
12826
12843
|
|
|
12827
12844
|
**3. Hard-Coded Value (literal string)**
|
|
12828
|
-
- Does NOT start with '
|
|
12845
|
+
- Does NOT start with '$'
|
|
12829
12846
|
- Does NOT contain handlebars '{{' syntax
|
|
12830
12847
|
- System treats it as a literal string value
|
|
12831
12848
|
- VERY COMMON for setting static/constant values
|
|
@@ -12847,10 +12864,38 @@ components:
|
|
|
12847
12864
|
- The system maintains this context even in deeply nested mappings
|
|
12848
12865
|
- For object mappings without child mappings, extract should return a complete object
|
|
12849
12866
|
- When both extract and mappings are defined for objects, extract is applied first
|
|
12867
|
+
- The root is the record as it arrives: an object record roots at `$.field`; a
|
|
12868
|
+
grouped record (an array of rows — grouped exports, file key columns, NetSuite
|
|
12869
|
+
grouped saved searches) roots at the array, so its rows are addressed as
|
|
12870
|
+
`$[0].field` (one row) or `$[*].field` (every row). A root that contradicts the
|
|
12871
|
+
record's shape resolves to nothing without an error.
|
|
12850
12872
|
|
|
12851
12873
|
For most simple field-to-field mappings, prefer JSON path syntax for its clarity and performance.
|
|
12852
12874
|
For hard-coded values, simply use the literal string as the extract value.
|
|
12853
12875
|
x-celigo-ai-guidance:
|
|
12876
|
+
- |-
|
|
12877
|
+
## GROUPED (ARRAY) RECORDS
|
|
12878
|
+
Decide the JSONPath root from the record's shape before writing
|
|
12879
|
+
any extract. When the record is an array of rows, `$.field`,
|
|
12880
|
+
`$.properties.field` and `$.rows[*].field` all resolve to
|
|
12881
|
+
nothing — the processor still reports success and the request
|
|
12882
|
+
body ships as `{}`. Address rows as `$[0].field` (that row's
|
|
12883
|
+
value, typed) or `$[*].field` (every row: joined with commas
|
|
12884
|
+
into a `string` destination; rejected with
|
|
12885
|
+
`incompatible_destination_conversion` into a `number`
|
|
12886
|
+
destination). Column labels with spaces work as
|
|
12887
|
+
`$[*][Order Number]`, `$[*].[Order Number]`, or
|
|
12888
|
+
`$[*]['Order Number']`. For one destination element per row
|
|
12889
|
+
the two array kinds take different helper forms: a primitive
|
|
12890
|
+
array (`stringarray` / `numberarray`) uses `buildArrayHelper:
|
|
12891
|
+
[{"extract": "$[*].field"}]`; an `objectarray` uses
|
|
12892
|
+
`buildArrayHelper: [{"extract": "$[*]", "mappings": [...]}]`
|
|
12893
|
+
with the children addressing the row relatively (`$.field`,
|
|
12894
|
+
`{{rows.field}}`). An `extract` placed directly on the
|
|
12895
|
+
array-typed field yields nothing. Handlebars
|
|
12896
|
+
extracts bind the array record as `rows` (`{{rows.0.field}}`),
|
|
12897
|
+
an object record as `record`. The reverse holds too: `$[*]` on
|
|
12898
|
+
an object record iterates the object's values, not rows.
|
|
12854
12899
|
- |-
|
|
12855
12900
|
## SIZE LIMIT
|
|
12856
12901
|
The platform's import save validator caps this field at **1024
|
|
@@ -13108,7 +13153,11 @@ components:
|
|
|
13108
13153
|
(`$.items[*]`), `"$"` (the record root), or omission — a
|
|
13109
13154
|
constructed entry (child `mappings` with the extract omitted or
|
|
13110
13155
|
`"$"`; the two spellings are equivalent) contributes exactly one
|
|
13111
|
-
element, and entries append in order.
|
|
13156
|
+
element, and entries append in order. On a grouped (array)
|
|
13157
|
+
record the record itself is the array to iterate: `"$[*]"`
|
|
13158
|
+
yields one `objectarray` element per row (children address the
|
|
13159
|
+
row as `$.field`), and `"$[*].field"` yields one primitive-array
|
|
13160
|
+
value per row. Indexed or comma-joined
|
|
13112
13161
|
entry extracts (`"$[0]"`, `"$[0],$[0]"`) are not valid: the
|
|
13113
13162
|
processor renders the entire destination array as null with no
|
|
13114
13163
|
validation error. To emit a fixed number of static elements, add
|
|
@@ -13129,7 +13178,9 @@ components:
|
|
|
13129
13178
|
|
|
13130
13179
|
**For Simple Arrays (stringarray, numberarray, booleanarray)**
|
|
13131
13180
|
- Only the 'extract' field is used to pull values
|
|
13132
|
-
- JSON path with wildcards (e.g., $.items[*].name) returns multiple values
|
|
13181
|
+
- JSON path with wildcards (e.g., $.items[*].name) returns multiple values;
|
|
13182
|
+
on a grouped (array) record the record itself is the array, so the
|
|
13183
|
+
path roots at it ($[*].name — one value per row)
|
|
13133
13184
|
- Each result is converted to the appropriate primitive type
|
|
13134
13185
|
```json
|
|
13135
13186
|
{
|
|
@@ -13231,11 +13282,13 @@ components:
|
|
|
13231
13282
|
- When both extract and mappings are provided, the system creates special composite objects
|
|
13232
13283
|
that maintain hierarchical context during processing
|
|
13233
13284
|
- This enables accessing both the current array element AND its parent context
|
|
13234
|
-
- An ITERATING entry's extract MUST
|
|
13235
|
-
|
|
13236
|
-
|
|
13237
|
-
|
|
13238
|
-
|
|
13285
|
+
- An ITERATING entry's extract MUST be a JSON path that iterates an array:
|
|
13286
|
+
'$.items[*]' when the array is a field of an object record, or '$[*]'
|
|
13287
|
+
(objectarray) / '$[*].field' (primitive arrays) when the record itself is a
|
|
13288
|
+
grouped array of rows. A CONSTRUCTED entry (child mappings building one
|
|
13289
|
+
element) instead omits extract or sets it to exactly "$" — never rewrite "$"
|
|
13290
|
+
into an indexed or comma-joined form ('$[0]', '$[0],$[0]'): those render the
|
|
13291
|
+
entire destination array as null without raising a validation error
|
|
13239
13292
|
- Each array helper entry acts independently, potentially adding multiple elements
|
|
13240
13293
|
|
|
13241
13294
|
The buildArrayHelper is the most complex part of the mappings system - always analyze the
|
|
@@ -13649,9 +13702,11 @@ components:
|
|
|
13649
13702
|
This field supports THREE DISTINCT PATTERNS that are easily distinguished:
|
|
13650
13703
|
|
|
13651
13704
|
**1. json Path Syntax**
|
|
13652
|
-
- MUST start with '
|
|
13705
|
+
- MUST start with '$' — the record root. An object record is addressed as
|
|
13706
|
+
'$.field'; a grouped (array) record as '$[0].field' / '$[*].field'
|
|
13653
13707
|
- Used for precisely targeting data in structured JSON objects
|
|
13654
|
-
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street'
|
|
13708
|
+
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street',
|
|
13709
|
+
'$[*].Tax' (every row of a grouped record)
|
|
13655
13710
|
- Wildcards like [*] extract multiple values/objects
|
|
13656
13711
|
|
|
13657
13712
|
```json
|
|
@@ -13662,7 +13717,8 @@ components:
|
|
|
13662
13717
|
- Contains '{{' and '}}' pattern
|
|
13663
13718
|
- Evaluated by the AFE 2.0 handlebars template engine
|
|
13664
13719
|
- Can include logic, formatting, and computation
|
|
13665
|
-
- Access input record fields with {{record.fieldName}} notation
|
|
13720
|
+
- Access input record fields with {{record.fieldName}} notation; a grouped
|
|
13721
|
+
(array) record binds as `rows` instead — {{rows.0.fieldName}} / {{#each rows}}
|
|
13666
13722
|
- Examples: "{{record.firstName}} {{record.lastName}}", "{{#if record.isActive}}Active{{else}}Inactive{{/if}}"
|
|
13667
13723
|
- Valid on `object`, `objectarray`, and primitive-array dataTypes as
|
|
13668
13724
|
well as scalars — the rendered template output must parse into the
|
|
@@ -13673,7 +13729,7 @@ components:
|
|
|
13673
13729
|
```
|
|
13674
13730
|
|
|
13675
13731
|
**3. Hard-Coded Value (literal string)**
|
|
13676
|
-
- Does NOT start with '
|
|
13732
|
+
- Does NOT start with '$'
|
|
13677
13733
|
- Does NOT contain handlebars '{{' syntax
|
|
13678
13734
|
- System treats it as a literal string value
|
|
13679
13735
|
- VERY COMMON for setting static/constant values
|
|
@@ -13695,10 +13751,38 @@ components:
|
|
|
13695
13751
|
- The system maintains this context even in deeply nested mappings
|
|
13696
13752
|
- For object mappings without child mappings, extract should return a complete object
|
|
13697
13753
|
- When both extract and mappings are defined for objects, extract is applied first
|
|
13754
|
+
- The root is the record as it arrives: an object record roots at `$.field`; a
|
|
13755
|
+
grouped record (an array of rows — grouped exports, file key columns, NetSuite
|
|
13756
|
+
grouped saved searches) roots at the array, so its rows are addressed as
|
|
13757
|
+
`$[0].field` (one row) or `$[*].field` (every row). A root that contradicts the
|
|
13758
|
+
record's shape resolves to nothing without an error.
|
|
13698
13759
|
|
|
13699
13760
|
For most simple field-to-field mappings, prefer JSON path syntax for its clarity and performance.
|
|
13700
13761
|
For hard-coded values, simply use the literal string as the extract value.
|
|
13701
13762
|
x-celigo-ai-guidance:
|
|
13763
|
+
- |-
|
|
13764
|
+
## GROUPED (ARRAY) RECORDS
|
|
13765
|
+
Decide the JSONPath root from the record's shape before writing
|
|
13766
|
+
any extract. When the record is an array of rows, `$.field`,
|
|
13767
|
+
`$.properties.field` and `$.rows[*].field` all resolve to
|
|
13768
|
+
nothing — the processor still reports success and the request
|
|
13769
|
+
body ships as `{}`. Address rows as `$[0].field` (that row's
|
|
13770
|
+
value, typed) or `$[*].field` (every row: joined with commas
|
|
13771
|
+
into a `string` destination; rejected with
|
|
13772
|
+
`incompatible_destination_conversion` into a `number`
|
|
13773
|
+
destination). Column labels with spaces work as
|
|
13774
|
+
`$[*][Order Number]`, `$[*].[Order Number]`, or
|
|
13775
|
+
`$[*]['Order Number']`. For one destination element per row
|
|
13776
|
+
the two array kinds take different helper forms: a primitive
|
|
13777
|
+
array (`stringarray` / `numberarray`) uses `buildArrayHelper:
|
|
13778
|
+
[{"extract": "$[*].field"}]`; an `objectarray` uses
|
|
13779
|
+
`buildArrayHelper: [{"extract": "$[*]", "mappings": [...]}]`
|
|
13780
|
+
with the children addressing the row relatively (`$.field`,
|
|
13781
|
+
`{{rows.field}}`). An `extract` placed directly on the
|
|
13782
|
+
array-typed field yields nothing. Handlebars
|
|
13783
|
+
extracts bind the array record as `rows` (`{{rows.0.field}}`),
|
|
13784
|
+
an object record as `record`. The reverse holds too: `$[*]` on
|
|
13785
|
+
an object record iterates the object's values, not rows.
|
|
13702
13786
|
- |-
|
|
13703
13787
|
## SIZE LIMIT
|
|
13704
13788
|
The platform's import save validator caps this field at **1024
|
|
@@ -13956,7 +14040,11 @@ components:
|
|
|
13956
14040
|
(`$.items[*]`), `"$"` (the record root), or omission — a
|
|
13957
14041
|
constructed entry (child `mappings` with the extract omitted or
|
|
13958
14042
|
`"$"`; the two spellings are equivalent) contributes exactly one
|
|
13959
|
-
element, and entries append in order.
|
|
14043
|
+
element, and entries append in order. On a grouped (array)
|
|
14044
|
+
record the record itself is the array to iterate: `"$[*]"`
|
|
14045
|
+
yields one `objectarray` element per row (children address the
|
|
14046
|
+
row as `$.field`), and `"$[*].field"` yields one primitive-array
|
|
14047
|
+
value per row. Indexed or comma-joined
|
|
13960
14048
|
entry extracts (`"$[0]"`, `"$[0],$[0]"`) are not valid: the
|
|
13961
14049
|
processor renders the entire destination array as null with no
|
|
13962
14050
|
validation error. To emit a fixed number of static elements, add
|
|
@@ -13977,7 +14065,9 @@ components:
|
|
|
13977
14065
|
|
|
13978
14066
|
**For Simple Arrays (stringarray, numberarray, booleanarray)**
|
|
13979
14067
|
- Only the 'extract' field is used to pull values
|
|
13980
|
-
- JSON path with wildcards (e.g., $.items[*].name) returns multiple values
|
|
14068
|
+
- JSON path with wildcards (e.g., $.items[*].name) returns multiple values;
|
|
14069
|
+
on a grouped (array) record the record itself is the array, so the
|
|
14070
|
+
path roots at it ($[*].name — one value per row)
|
|
13981
14071
|
- Each result is converted to the appropriate primitive type
|
|
13982
14072
|
```json
|
|
13983
14073
|
{
|
|
@@ -14079,11 +14169,13 @@ components:
|
|
|
14079
14169
|
- When both extract and mappings are provided, the system creates special composite objects
|
|
14080
14170
|
that maintain hierarchical context during processing
|
|
14081
14171
|
- This enables accessing both the current array element AND its parent context
|
|
14082
|
-
- An ITERATING entry's extract MUST
|
|
14083
|
-
|
|
14084
|
-
|
|
14085
|
-
|
|
14086
|
-
|
|
14172
|
+
- An ITERATING entry's extract MUST be a JSON path that iterates an array:
|
|
14173
|
+
'$.items[*]' when the array is a field of an object record, or '$[*]'
|
|
14174
|
+
(objectarray) / '$[*].field' (primitive arrays) when the record itself is a
|
|
14175
|
+
grouped array of rows. A CONSTRUCTED entry (child mappings building one
|
|
14176
|
+
element) instead omits extract or sets it to exactly "$" — never rewrite "$"
|
|
14177
|
+
into an indexed or comma-joined form ('$[0]', '$[0],$[0]'): those render the
|
|
14178
|
+
entire destination array as null without raising a validation error
|
|
14087
14179
|
- Each array helper entry acts independently, potentially adding multiple elements
|
|
14088
14180
|
|
|
14089
14181
|
The buildArrayHelper is the most complex part of the mappings system - always analyze the
|
|
@@ -14809,6 +14901,16 @@ components:
|
|
|
14809
14901
|
x-enumDescriptions:
|
|
14810
14902
|
create: Builds entirely new output records from inputs, ignoring unmapped fields.
|
|
14811
14903
|
modify: Makes targeted edits to existing records, preserving unmapped fields.
|
|
14904
|
+
x-celigo-ai-guidance:
|
|
14905
|
+
- |-
|
|
14906
|
+
On a grouped record (the export groups rows, so the record is an
|
|
14907
|
+
array) only `create` can author output — build it from the rows with
|
|
14908
|
+
`$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`.
|
|
14909
|
+
`modify` has no object to overlay onto an array: the record passes
|
|
14910
|
+
through untouched and the processor reports success. Either mode
|
|
14911
|
+
reshapes the inside of one record; neither changes how many records
|
|
14912
|
+
the page carries (that is the export's `preSavePage` hook) or whether
|
|
14913
|
+
the export groups at all (that is its grouping setting).
|
|
14812
14914
|
examples:
|
|
14813
14915
|
- create
|
|
14814
14916
|
- modify
|
|
@@ -15787,7 +15889,8 @@ components:
|
|
|
15787
15889
|
- 'null'
|
|
15788
15890
|
description: |-
|
|
15789
15891
|
Connection this export uses to reach the source system. The connection's type must be
|
|
15790
|
-
compatible with the export's `adaptorType` (e.g. an `HTTPExport` needs an `http` connection
|
|
15892
|
+
compatible with the export's `adaptorType` (e.g. an `HTTPExport` needs an `http` connection;
|
|
15893
|
+
`NetSuiteExport` and `NetSuiteHTTPExport` both need a `netsuite` connection).
|
|
15791
15894
|
Server-required unless `type` is `webhook` or `simple` (those receive data instead of fetching it).
|
|
15792
15895
|
examples:
|
|
15793
15896
|
- 60a2c4e6f321d800129a1a3c
|
|
@@ -15803,6 +15906,7 @@ components:
|
|
|
15803
15906
|
- AS2Export
|
|
15804
15907
|
- S3Export
|
|
15805
15908
|
- NetSuiteExport
|
|
15909
|
+
- NetSuiteHTTPExport
|
|
15806
15910
|
- SalesforceExport
|
|
15807
15911
|
- JDBCExport
|
|
15808
15912
|
- RDBMSExport
|
|
@@ -15818,7 +15922,8 @@ components:
|
|
|
15818
15922
|
FTPExport: Exports files from FTP or SFTP servers.
|
|
15819
15923
|
AS2Export: Exports data using the AS2 (Applicability Statement 2) secure file transfer protocol.
|
|
15820
15924
|
S3Export: Exports files from Amazon S3 cloud storage buckets.
|
|
15821
|
-
NetSuiteExport: Exports data from Oracle NetSuite
|
|
15925
|
+
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.
|
|
15926
|
+
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.
|
|
15822
15927
|
SalesforceExport: Exports data from Salesforce using SOQL queries or real-time events.
|
|
15823
15928
|
JDBCExport: Exports data from databases using JDBC connections.
|
|
15824
15929
|
RDBMSExport: Exports data from relational databases using SQL queries.
|
|
@@ -15832,7 +15937,71 @@ components:
|
|
|
15832
15937
|
examples:
|
|
15833
15938
|
- HTTPExport
|
|
15834
15939
|
- NetSuiteExport
|
|
15940
|
+
- NetSuiteHTTPExport
|
|
15835
15941
|
- SalesforceExport
|
|
15942
|
+
x-celigo-ai-guidance:
|
|
15943
|
+
- |-
|
|
15944
|
+
On a netsuite connection, default to `NetSuiteHTTPExport` (with `nsDomainType` and an
|
|
15945
|
+
`http` object) for exports and lookups: it reads records over NetSuite's REST APIs with
|
|
15946
|
+
nothing to create in NetSuite first — SuiteQL for filtered or multi-table extracts, the
|
|
15947
|
+
record endpoint `GET /services/rest/record/v1/<type>/{id}` for one record. Choose
|
|
15948
|
+
`NetSuiteExport` when the user names an existing saved search or asks for one, for
|
|
15949
|
+
real-time listeners (`type: distributed`), and for file-cabinet exports; never convert an
|
|
15950
|
+
existing `NetSuiteExport` to `NetSuiteHTTPExport` unless asked.
|
|
15951
|
+
- |-
|
|
15952
|
+
When authoring a NetSuite REST export, send `adaptorType: "NetSuiteHTTPExport"` explicitly:
|
|
15953
|
+
on a netsuite connection the server otherwise infers `NetSuiteExport` and rejects the
|
|
15954
|
+
document with 422 "netsuite subschema not defined", even though `nsDomainType` and `http`
|
|
15955
|
+
are present.
|
|
15956
|
+
nsDomainType:
|
|
15957
|
+
type: string
|
|
15958
|
+
enum:
|
|
15959
|
+
- suitetalk
|
|
15960
|
+
- restlet
|
|
15961
|
+
x-lowercase: true
|
|
15962
|
+
x-enumDescriptions:
|
|
15963
|
+
suitetalk: NetSuite SuiteTalk REST web services — record endpoints under /services/rest/record/v1 and SuiteQL under /services/rest/query/v1
|
|
15964
|
+
restlet: A custom RESTlet script deployed in the NetSuite account, called at /app/site/hosting/restlet.nl?script=<id>&deploy=<n>
|
|
15965
|
+
description: |-
|
|
15966
|
+
Selects which NetSuite REST host a `NetSuiteHTTPExport` calls. The server derives the
|
|
15967
|
+
full base URL from the connection's NetSuite account
|
|
15968
|
+
(`https://<account>.suitetalk.api.netsuite.com` or `https://<account>.restlets.api.netsuite.com`)
|
|
15969
|
+
and signs each request with the connection's token-based credentials, so `http.relativeURI`
|
|
15970
|
+
carries the complete path starting at `/services/rest/...` or `/app/site/hosting/restlet.nl`.
|
|
15971
|
+
Ignored on other adaptor types.
|
|
15972
|
+
x-celigo-ai-guidance:
|
|
15973
|
+
- |-
|
|
15974
|
+
Required on `NetSuiteHTTPExport`: omitting it fails the save with 422 "Path `nsDomainType`
|
|
15975
|
+
is required." and any other value fails with 422 "is not a valid enum value for path
|
|
15976
|
+
`nsDomainType`". The export's `_connectionId` must be a netsuite connection — an http
|
|
15977
|
+
connection fails with 422 invalid_connection_type.
|
|
15978
|
+
- |-
|
|
15979
|
+
With `suitetalk`, saving links `http._httpConnectorVersionId`, `_httpConnectorResourceId`
|
|
15980
|
+
and `_httpConnectorEndpointId` to the platform's SuiteTalk connector from `http.method` +
|
|
15981
|
+
`http.relativeURI`, so the UI's Simple view renders an API-authored step; `restlet` steps
|
|
15982
|
+
are not linked.
|
|
15983
|
+
- |-
|
|
15984
|
+
The record list endpoint (`GET /services/rest/record/v1/<type>?limit=<n>&offset={{{export.http.paging.skip}}}`)
|
|
15985
|
+
returns only `{id, links}` per item, so it yields no business fields on its own. For
|
|
15986
|
+
records with fields use SuiteQL: `POST /services/rest/query/v1/suiteql?limit=<n>&offset={{{export.http.paging.skip}}}`,
|
|
15987
|
+
header `Prefer: transient`, `http.body` `{"q": "<SuiteQL>"}`, `http.paging.method: skip`,
|
|
15988
|
+
`http.response.resourcePath: items`; the response envelope carries `hasMore` and
|
|
15989
|
+
`totalResults`. SuiteQL column names are the Records Catalog names (lowercase, e.g.
|
|
15990
|
+
`entityid`, `lastmodifieddate`), not the REST record field names.
|
|
15991
|
+
- |-
|
|
15992
|
+
For incremental runs set `type: delta`, embed `{{lastExportDateTime}}` in the SuiteQL
|
|
15993
|
+
`WHERE` clause (or the record endpoint's `q` parameter) and set `delta.dateFormat` to the
|
|
15994
|
+
format the query compares against, e.g. `to_char(lastmodifieddate,'YYYY-MM-DD HH24:MI:SS') >= '{{lastExportDateTime}}'`
|
|
15995
|
+
with `delta.dateFormat: "YYYY-MM-DD HH:mm:ss"`. In a preview the placeholder renders
|
|
15996
|
+
empty, so preview results do not reflect the delta window.
|
|
15997
|
+
- |-
|
|
15998
|
+
NetSuite must have the REST Web Services feature enabled (Setup > Company > Enable
|
|
15999
|
+
Features > SuiteCloud); otherwise every SuiteTalk call fails with NetSuite 403
|
|
16000
|
+
FEATURE_DISABLED "The 'REST Web Services' feature is not enabled". Custom RESTlets do
|
|
16001
|
+
not need it.
|
|
16002
|
+
- |-
|
|
16003
|
+
`http.type` file, blob, and csvstream are each rejected with 422 unsupported_type
|
|
16004
|
+
("NetSuiteHTTPExport does not support type: <value>") — REST steps are record-based only.
|
|
15836
16005
|
type:
|
|
15837
16006
|
type:
|
|
15838
16007
|
- string
|
|
@@ -16104,8 +16273,8 @@ components:
|
|
|
16104
16273
|
description: |-
|
|
16105
16274
|
Field mappings applied to each incoming record before a lookup HTTP request is made,
|
|
16106
16275
|
reshaping the upstream record into the structure the lookup target API expects. Only
|
|
16107
|
-
supported when `isLookup` is true and `adaptorType` is `HTTPExport
|
|
16108
|
-
source exports or
|
|
16276
|
+
supported when `isLookup` is true and `adaptorType` is `HTTPExport` or
|
|
16277
|
+
`NetSuiteHTTPExport`; do not set it on source exports or other lookup adaptors.
|
|
16109
16278
|
allOf:
|
|
16110
16279
|
- $ref: '#/components/schemas/Mappings'
|
|
16111
16280
|
x-celigo-ai-guidance:
|
|
@@ -16118,8 +16287,9 @@ components:
|
|
|
16118
16287
|
1. ``isLookup`` is ``true`` (the export is being used as a
|
|
16119
16288
|
lookup step, not a source export), AND
|
|
16120
16289
|
2. ``adaptorType`` is ``"HTTPExport"`` (generic REST/SOAP
|
|
16121
|
-
HTTP lookup
|
|
16122
|
-
|
|
16290
|
+
HTTP lookup) or ``"NetSuiteHTTPExport"`` (NetSuite REST
|
|
16291
|
+
APIs) — not the saved-search NetSuite adaptor, Salesforce,
|
|
16292
|
+
RDBMS, file-based, or any other adaptor.
|
|
16123
16293
|
|
|
16124
16294
|
For any other combination (source exports, non-HTTP lookup
|
|
16125
16295
|
exports), do **not** emit this field. Explain the constraint
|
|
@@ -16643,92 +16813,103 @@ components:
|
|
|
16643
16813
|
if:
|
|
16644
16814
|
properties:
|
|
16645
16815
|
adaptorType:
|
|
16646
|
-
const:
|
|
16816
|
+
const: NetSuiteHTTPExport
|
|
16647
16817
|
required:
|
|
16648
16818
|
- adaptorType
|
|
16649
16819
|
then:
|
|
16650
16820
|
required:
|
|
16651
|
-
-
|
|
16821
|
+
- http
|
|
16822
|
+
- nsDomainType
|
|
16652
16823
|
else:
|
|
16653
16824
|
if:
|
|
16654
16825
|
properties:
|
|
16655
16826
|
adaptorType:
|
|
16656
|
-
const:
|
|
16827
|
+
const: SalesforceExport
|
|
16657
16828
|
required:
|
|
16658
16829
|
- adaptorType
|
|
16659
16830
|
then:
|
|
16660
16831
|
required:
|
|
16661
|
-
-
|
|
16832
|
+
- salesforce
|
|
16662
16833
|
else:
|
|
16663
16834
|
if:
|
|
16664
16835
|
properties:
|
|
16665
16836
|
adaptorType:
|
|
16666
|
-
const:
|
|
16837
|
+
const: JDBCExport
|
|
16667
16838
|
required:
|
|
16668
16839
|
- adaptorType
|
|
16669
16840
|
then:
|
|
16670
16841
|
required:
|
|
16671
|
-
-
|
|
16842
|
+
- jdbc
|
|
16672
16843
|
else:
|
|
16673
16844
|
if:
|
|
16674
16845
|
properties:
|
|
16675
16846
|
adaptorType:
|
|
16676
|
-
const:
|
|
16847
|
+
const: RDBMSExport
|
|
16677
16848
|
required:
|
|
16678
16849
|
- adaptorType
|
|
16679
16850
|
then:
|
|
16680
16851
|
required:
|
|
16681
|
-
-
|
|
16852
|
+
- rdbms
|
|
16682
16853
|
else:
|
|
16683
16854
|
if:
|
|
16684
16855
|
properties:
|
|
16685
16856
|
adaptorType:
|
|
16686
|
-
const:
|
|
16857
|
+
const: MongodbExport
|
|
16687
16858
|
required:
|
|
16688
16859
|
- adaptorType
|
|
16689
16860
|
then:
|
|
16690
16861
|
required:
|
|
16691
|
-
-
|
|
16862
|
+
- mongodb
|
|
16692
16863
|
else:
|
|
16693
16864
|
if:
|
|
16694
16865
|
properties:
|
|
16695
16866
|
adaptorType:
|
|
16696
|
-
const:
|
|
16867
|
+
const: DynamodbExport
|
|
16697
16868
|
required:
|
|
16698
16869
|
- adaptorType
|
|
16699
16870
|
then:
|
|
16700
16871
|
required:
|
|
16701
|
-
-
|
|
16872
|
+
- dynamodb
|
|
16702
16873
|
else:
|
|
16703
16874
|
if:
|
|
16704
16875
|
properties:
|
|
16705
16876
|
adaptorType:
|
|
16706
|
-
const:
|
|
16877
|
+
const: WrapperExport
|
|
16707
16878
|
required:
|
|
16708
16879
|
- adaptorType
|
|
16709
16880
|
then:
|
|
16710
16881
|
required:
|
|
16711
|
-
-
|
|
16882
|
+
- wrapper
|
|
16712
16883
|
else:
|
|
16713
16884
|
if:
|
|
16714
16885
|
properties:
|
|
16715
16886
|
adaptorType:
|
|
16716
|
-
const:
|
|
16887
|
+
const: WebhookExport
|
|
16717
16888
|
required:
|
|
16718
16889
|
- adaptorType
|
|
16719
16890
|
then:
|
|
16720
16891
|
required:
|
|
16721
|
-
-
|
|
16892
|
+
- webhook
|
|
16722
16893
|
else:
|
|
16723
16894
|
if:
|
|
16724
16895
|
properties:
|
|
16725
16896
|
adaptorType:
|
|
16726
|
-
const:
|
|
16897
|
+
const: FileSystemExport
|
|
16727
16898
|
required:
|
|
16728
16899
|
- adaptorType
|
|
16729
16900
|
then:
|
|
16730
16901
|
required:
|
|
16731
|
-
-
|
|
16902
|
+
- filesystem
|
|
16903
|
+
else:
|
|
16904
|
+
if:
|
|
16905
|
+
properties:
|
|
16906
|
+
adaptorType:
|
|
16907
|
+
const: RESTExport
|
|
16908
|
+
required:
|
|
16909
|
+
- adaptorType
|
|
16910
|
+
then:
|
|
16911
|
+
required:
|
|
16912
|
+
- http
|
|
16732
16913
|
Error:
|
|
16733
16914
|
type: object
|
|
16734
16915
|
description: Standard error response envelope returned by integrator.io APIs.
|