@celigo/api-specs 0.2.152 → 0.2.154
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 +58 -11
- package/dist/api.yml +21 -11
- package/dist/asynchelper.yml +58 -11
- package/dist/connection.yml +78 -22
- package/dist/enduser.yml +21 -11
- package/dist/export.yml +58 -11
- package/dist/guardrail.yml +1 -1
- package/dist/iclient.yml +10 -124
- package/dist/import.yml +91 -23
- package/dist/mcp-server.yml +21 -11
- package/dist/tool.yml +112 -34
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/ai-agent.yml
CHANGED
|
@@ -2410,6 +2410,12 @@ components:
|
|
|
2410
2410
|
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street',
|
|
2411
2411
|
'$[*].Tax' (every row of a grouped record)
|
|
2412
2412
|
- Wildcards like [*] extract multiple values/objects
|
|
2413
|
+
- A key that contains a dot needs bracket notation: `$['P.O. Number']` (or
|
|
2414
|
+
`$["P.O. Number"]`, `$.[P.O. Number]`). `$.P.O. Number` is read as a nested
|
|
2415
|
+
path: it maps nothing and the record still succeeds. Spaces, hyphens and `#`
|
|
2416
|
+
need no brackets (`$.Ship To Name`, `$.Tracking #`)
|
|
2417
|
+
- Filter expressions such as `$.items[?(@.active)]` fail the record with
|
|
2418
|
+
"Eval [?(expr)] prevented in JSONPath expression."
|
|
2413
2419
|
|
|
2414
2420
|
```json
|
|
2415
2421
|
"extract": "$.customer.addresses[*]" // Extracts all addresses
|
|
@@ -2598,6 +2604,12 @@ components:
|
|
|
2598
2604
|
**Usage**
|
|
2599
2605
|
|
|
2600
2606
|
The lookupName refers to a named lookup defined in the lookups array of the same resource.
|
|
2607
|
+
On an HTTP import that is `http.lookups`: a `lookups` array sent only at the top level
|
|
2608
|
+
is dropped on save. On an import, a name that matches no lookup fails every record
|
|
2609
|
+
with "Unable to find lookup in mapping configs - <name>", and a key the lookup
|
|
2610
|
+
doesn't hold follows the lookup's `allowFailures`: false fails the record; true, or
|
|
2611
|
+
the field left out, lets the record succeed with the lookup's `default`, or without
|
|
2612
|
+
the mapped field when there is none.
|
|
2601
2613
|
|
|
2602
2614
|
```json
|
|
2603
2615
|
{
|
|
@@ -2935,6 +2947,11 @@ components:
|
|
|
2935
2947
|
The system creates special composite objects during processing to maintain
|
|
2936
2948
|
hierarchical relationships, allowing easy access to both the current array item
|
|
2937
2949
|
and its parent contexts.
|
|
2950
|
+
|
|
2951
|
+
An iterating entry keeps the `[*]`: `$.line_items` without it yields one empty
|
|
2952
|
+
element per item, with no error. Child extracts drop the `[*]` but keep the
|
|
2953
|
+
array's path (`$.line_items.sku`); `$.line_items[*].sku` maps nothing, and an
|
|
2954
|
+
element-relative `$.sku` reads the record root instead of the element.
|
|
2938
2955
|
examples:
|
|
2939
2956
|
- $.items[*]
|
|
2940
2957
|
- $.order.lineItems[*]
|
|
@@ -3146,14 +3163,17 @@ components:
|
|
|
3146
3163
|
type: string
|
|
3147
3164
|
description: |
|
|
3148
3165
|
**Purpose**
|
|
3149
|
-
|
|
3166
|
+
Controls whether the mapping is applied. Send it on every mapping entry.
|
|
3150
3167
|
|
|
3151
3168
|
**Guidance**
|
|
3152
3169
|
Only `Active` rows run. `Draft` and `Inactive` rows keep their
|
|
3153
3170
|
configuration, are saved with minimal validation, and are skipped at
|
|
3154
3171
|
runtime and in preview; a non-Active parent skips its whole subtree
|
|
3155
|
-
whatever its children say.
|
|
3156
|
-
|
|
3172
|
+
whatever its children say. Imports (on save and in the mapper processor)
|
|
3173
|
+
and API response mappings reject a row missing this field (validation
|
|
3174
|
+
error: "Mapping object must have status field present."); a Tool's
|
|
3175
|
+
output mapping saves and runs one, which is why `required` doesn't
|
|
3176
|
+
list it.
|
|
3157
3177
|
x-celigo-ai-guidance:
|
|
3158
3178
|
- |-
|
|
3159
3179
|
Emit `"Active"` for mappings that should run; `"Draft"` is also
|
|
@@ -3476,6 +3496,12 @@ components:
|
|
|
3476
3496
|
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street',
|
|
3477
3497
|
'$[*].Tax' (every row of a grouped record)
|
|
3478
3498
|
- Wildcards like [*] extract multiple values/objects
|
|
3499
|
+
- A key that contains a dot needs bracket notation: `$['P.O. Number']` (or
|
|
3500
|
+
`$["P.O. Number"]`, `$.[P.O. Number]`). `$.P.O. Number` is read as a nested
|
|
3501
|
+
path: it maps nothing and the record still succeeds. Spaces, hyphens and `#`
|
|
3502
|
+
need no brackets (`$.Ship To Name`, `$.Tracking #`)
|
|
3503
|
+
- Filter expressions such as `$.items[?(@.active)]` fail the record with
|
|
3504
|
+
"Eval [?(expr)] prevented in JSONPath expression."
|
|
3479
3505
|
|
|
3480
3506
|
```json
|
|
3481
3507
|
"extract": "$.customer.addresses[*]" // Extracts all addresses
|
|
@@ -3664,6 +3690,12 @@ components:
|
|
|
3664
3690
|
**Usage**
|
|
3665
3691
|
|
|
3666
3692
|
The lookupName refers to a named lookup defined in the lookups array of the same resource.
|
|
3693
|
+
On an HTTP import that is `http.lookups`: a `lookups` array sent only at the top level
|
|
3694
|
+
is dropped on save. On an import, a name that matches no lookup fails every record
|
|
3695
|
+
with "Unable to find lookup in mapping configs - <name>", and a key the lookup
|
|
3696
|
+
doesn't hold follows the lookup's `allowFailures`: false fails the record; true, or
|
|
3697
|
+
the field left out, lets the record succeed with the lookup's `default`, or without
|
|
3698
|
+
the mapped field when there is none.
|
|
3667
3699
|
|
|
3668
3700
|
```json
|
|
3669
3701
|
{
|
|
@@ -4001,6 +4033,11 @@ components:
|
|
|
4001
4033
|
The system creates special composite objects during processing to maintain
|
|
4002
4034
|
hierarchical relationships, allowing easy access to both the current array item
|
|
4003
4035
|
and its parent contexts.
|
|
4036
|
+
|
|
4037
|
+
An iterating entry keeps the `[*]`: `$.line_items` without it yields one empty
|
|
4038
|
+
element per item, with no error. Child extracts drop the `[*]` but keep the
|
|
4039
|
+
array's path (`$.line_items.sku`); `$.line_items[*].sku` maps nothing, and an
|
|
4040
|
+
element-relative `$.sku` reads the record root instead of the element.
|
|
4004
4041
|
examples:
|
|
4005
4042
|
- $.items[*]
|
|
4006
4043
|
- $.order.lineItems[*]
|
|
@@ -4212,14 +4249,17 @@ components:
|
|
|
4212
4249
|
type: string
|
|
4213
4250
|
description: |
|
|
4214
4251
|
**Purpose**
|
|
4215
|
-
|
|
4252
|
+
Controls whether the mapping is applied. Send it on every mapping entry.
|
|
4216
4253
|
|
|
4217
4254
|
**Guidance**
|
|
4218
4255
|
Only `Active` rows run. `Draft` and `Inactive` rows keep their
|
|
4219
4256
|
configuration, are saved with minimal validation, and are skipped at
|
|
4220
4257
|
runtime and in preview; a non-Active parent skips its whole subtree
|
|
4221
|
-
whatever its children say.
|
|
4222
|
-
|
|
4258
|
+
whatever its children say. Imports (on save and in the mapper processor)
|
|
4259
|
+
and API response mappings reject a row missing this field (validation
|
|
4260
|
+
error: "Mapping object must have status field present."); a Tool's
|
|
4261
|
+
output mapping saves and runs one, which is why `required` doesn't
|
|
4262
|
+
list it.
|
|
4223
4263
|
x-celigo-ai-guidance:
|
|
4224
4264
|
- |-
|
|
4225
4265
|
Emit `"Active"` for mappings that should run; `"Draft"` is also
|
|
@@ -5213,8 +5253,8 @@ components:
|
|
|
5213
5253
|
- Original value indicators: "{Original Value}", "No mapping found"
|
|
5214
5254
|
- Neutral values: "Other", "N/A", "Miscellaneous"
|
|
5215
5255
|
|
|
5216
|
-
If allowFailures is false
|
|
5217
|
-
|
|
5256
|
+
If allowFailures is false, a record whose value is unmapped fails and the default
|
|
5257
|
+
is ignored.
|
|
5218
5258
|
examples:
|
|
5219
5259
|
- Unknown
|
|
5220
5260
|
- Other
|
|
@@ -5235,7 +5275,11 @@ components:
|
|
|
5235
5275
|
This field determines how the system handles source values that don't exist in the map:
|
|
5236
5276
|
|
|
5237
5277
|
- true: Use the default value for missing mappings and continue processing
|
|
5238
|
-
- false: Treat missing mappings as errors, failing the record
|
|
5278
|
+
- false: Treat missing mappings as errors, failing the record (`lookup_error` for a
|
|
5279
|
+
static map, `lookupcache_evaluation_failed` for a lookup cache)
|
|
5280
|
+
- omitted or null: the record doesn't fail either. On an import a static lookup writes
|
|
5281
|
+
its default if it has one, and a static or cache lookup without one leaves the
|
|
5282
|
+
mapped field out of the output, with no error
|
|
5239
5283
|
|
|
5240
5284
|
**Recommendation**
|
|
5241
5285
|
|
|
@@ -5249,11 +5293,14 @@ components:
|
|
|
5249
5293
|
- All possible source values are known and controlled
|
|
5250
5294
|
- Missing mappings indicate serious data problems that should be addressed
|
|
5251
5295
|
|
|
5252
|
-
|
|
5253
|
-
|
|
5296
|
+
A default raises no error: records that miss go out with the default value and
|
|
5297
|
+
nothing reports them. Use true only when that fallback is acceptable at the
|
|
5298
|
+
destination, and set false explicitly when a missing value must stop the record.
|
|
5254
5299
|
examples:
|
|
5255
5300
|
- true
|
|
5256
5301
|
- false
|
|
5302
|
+
x-celigo-ai-guidance:
|
|
5303
|
+
- 'Never leave this field out to mean "fail on a miss": on an import, an omitted or null value lets a missing key through without an error (with the default, or without the mapped field when there is none). Only an explicit false fails the record.'
|
|
5257
5304
|
Transform:
|
|
5258
5305
|
type: object
|
|
5259
5306
|
description: |
|
package/dist/api.yml
CHANGED
|
@@ -5258,7 +5258,7 @@ components:
|
|
|
5258
5258
|
connection's traffic counts against the referenced connection's limit instead of its own,
|
|
5259
5259
|
and its own concurrency and auto-recovery settings have no effect. One level only: the
|
|
5260
5260
|
referenced connection may not itself borrow, and a connection that others borrow from
|
|
5261
|
-
cannot start borrowing.
|
|
5261
|
+
cannot start borrowing. A connection cannot reference itself (422).
|
|
5262
5262
|
examples:
|
|
5263
5263
|
- 615dfa0742763671275b70ab
|
|
5264
5264
|
x-celigo-ai-guidance:
|
|
@@ -5295,16 +5295,21 @@ components:
|
|
|
5295
5295
|
type: boolean
|
|
5296
5296
|
description: |-
|
|
5297
5297
|
When true, the connection has been taken offline and is skipped during flow execution.
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
read it again a few
|
|
5298
|
+
It is set by the connection test a create or `PUT` runs: the result arrives in the
|
|
5299
|
+
write's response or, when the target is slow to answer, shortly afterwards (the audit
|
|
5300
|
+
log records a `system` change; `lastModified` doesn't move), so read it again a few
|
|
5301
|
+
seconds after the write. On an `http` connection the write runs the test only when
|
|
5302
|
+
`http.ping` is configured, and an `http` connection that was never tested has no
|
|
5303
|
+
`offline` key.
|
|
5301
5304
|
readOnly: true
|
|
5302
5305
|
needsAuthorization:
|
|
5303
5306
|
type: boolean
|
|
5304
5307
|
readOnly: true
|
|
5305
5308
|
description: |-
|
|
5306
5309
|
OAuth handshake state. Celigo's OAuth callback sets it to `false` once the user consents
|
|
5307
|
-
and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`).
|
|
5310
|
+
and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`). A connection that
|
|
5311
|
+
was never authorized usually has no `needsAuthorization` key, so its absence does not
|
|
5312
|
+
mean the connection is authorized.
|
|
5308
5313
|
_sourceId:
|
|
5309
5314
|
type: string
|
|
5310
5315
|
format: objectId
|
|
@@ -6279,15 +6284,18 @@ components:
|
|
|
6279
6284
|
clientId:
|
|
6280
6285
|
type: string
|
|
6281
6286
|
description: |
|
|
6282
|
-
OAuth client ID (application ID) registered with the API provider.
|
|
6283
|
-
|
|
6287
|
+
OAuth client ID (application ID) registered with the API provider. An `http`
|
|
6288
|
+
connection takes the app from a `custom_oauth2` iClient referenced by `http._iClientId`
|
|
6289
|
+
(an `mcp` connection from `mcp.http._iClientId`) and doesn't store this field: a create
|
|
6290
|
+
that sends `clientId` and `clientSecret` here answers 201 without either (and stores
|
|
6291
|
+
`useIClientFields: true` unless `false` is sent).
|
|
6284
6292
|
examples:
|
|
6285
6293
|
- 0oa1b2c3d4EXAMPLE5
|
|
6286
6294
|
clientSecret:
|
|
6287
6295
|
type: string
|
|
6288
6296
|
description: |
|
|
6289
|
-
OAuth client secret (encrypted at rest).
|
|
6290
|
-
|
|
6297
|
+
OAuth client secret (encrypted at rest). Not stored on an `http` connection: the secret
|
|
6298
|
+
belongs on the iClient (see `clientId`).
|
|
6291
6299
|
writeOnly: true
|
|
6292
6300
|
examples:
|
|
6293
6301
|
- cs_abc123EXAMPLE456secret
|
|
@@ -6503,9 +6511,11 @@ components:
|
|
|
6503
6511
|
- "authorizecode" — Authorization Code flow (browser-based user consent).
|
|
6504
6512
|
Requires authURI, tokenURI, and user authorization via browser.
|
|
6505
6513
|
- "clientcredentials" — Client Credentials flow (server-to-server, no user).
|
|
6506
|
-
Requires tokenURI
|
|
6514
|
+
Requires tokenURI.
|
|
6507
6515
|
- "password" — Resource Owner Password flow (username/password exchange).
|
|
6508
|
-
Requires tokenURI, username, password
|
|
6516
|
+
Requires tokenURI, username, password.
|
|
6517
|
+
- On an `http` connection the client ID and secret are never stored here: a
|
|
6518
|
+
`custom_oauth2` iClient referenced by `http._iClientId` supplies them.
|
|
6509
6519
|
JWT:
|
|
6510
6520
|
type: object
|
|
6511
6521
|
description: |-
|
package/dist/asynchelper.yml
CHANGED
|
@@ -619,6 +619,12 @@ components:
|
|
|
619
619
|
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street',
|
|
620
620
|
'$[*].Tax' (every row of a grouped record)
|
|
621
621
|
- Wildcards like [*] extract multiple values/objects
|
|
622
|
+
- A key that contains a dot needs bracket notation: `$['P.O. Number']` (or
|
|
623
|
+
`$["P.O. Number"]`, `$.[P.O. Number]`). `$.P.O. Number` is read as a nested
|
|
624
|
+
path: it maps nothing and the record still succeeds. Spaces, hyphens and `#`
|
|
625
|
+
need no brackets (`$.Ship To Name`, `$.Tracking #`)
|
|
626
|
+
- Filter expressions such as `$.items[?(@.active)]` fail the record with
|
|
627
|
+
"Eval [?(expr)] prevented in JSONPath expression."
|
|
622
628
|
|
|
623
629
|
```json
|
|
624
630
|
"extract": "$.customer.addresses[*]" // Extracts all addresses
|
|
@@ -807,6 +813,12 @@ components:
|
|
|
807
813
|
**Usage**
|
|
808
814
|
|
|
809
815
|
The lookupName refers to a named lookup defined in the lookups array of the same resource.
|
|
816
|
+
On an HTTP import that is `http.lookups`: a `lookups` array sent only at the top level
|
|
817
|
+
is dropped on save. On an import, a name that matches no lookup fails every record
|
|
818
|
+
with "Unable to find lookup in mapping configs - <name>", and a key the lookup
|
|
819
|
+
doesn't hold follows the lookup's `allowFailures`: false fails the record; true, or
|
|
820
|
+
the field left out, lets the record succeed with the lookup's `default`, or without
|
|
821
|
+
the mapped field when there is none.
|
|
810
822
|
|
|
811
823
|
```json
|
|
812
824
|
{
|
|
@@ -1144,6 +1156,11 @@ components:
|
|
|
1144
1156
|
The system creates special composite objects during processing to maintain
|
|
1145
1157
|
hierarchical relationships, allowing easy access to both the current array item
|
|
1146
1158
|
and its parent contexts.
|
|
1159
|
+
|
|
1160
|
+
An iterating entry keeps the `[*]`: `$.line_items` without it yields one empty
|
|
1161
|
+
element per item, with no error. Child extracts drop the `[*]` but keep the
|
|
1162
|
+
array's path (`$.line_items.sku`); `$.line_items[*].sku` maps nothing, and an
|
|
1163
|
+
element-relative `$.sku` reads the record root instead of the element.
|
|
1147
1164
|
examples:
|
|
1148
1165
|
- $.items[*]
|
|
1149
1166
|
- $.order.lineItems[*]
|
|
@@ -1355,14 +1372,17 @@ components:
|
|
|
1355
1372
|
type: string
|
|
1356
1373
|
description: |
|
|
1357
1374
|
**Purpose**
|
|
1358
|
-
|
|
1375
|
+
Controls whether the mapping is applied. Send it on every mapping entry.
|
|
1359
1376
|
|
|
1360
1377
|
**Guidance**
|
|
1361
1378
|
Only `Active` rows run. `Draft` and `Inactive` rows keep their
|
|
1362
1379
|
configuration, are saved with minimal validation, and are skipped at
|
|
1363
1380
|
runtime and in preview; a non-Active parent skips its whole subtree
|
|
1364
|
-
whatever its children say.
|
|
1365
|
-
|
|
1381
|
+
whatever its children say. Imports (on save and in the mapper processor)
|
|
1382
|
+
and API response mappings reject a row missing this field (validation
|
|
1383
|
+
error: "Mapping object must have status field present."); a Tool's
|
|
1384
|
+
output mapping saves and runs one, which is why `required` doesn't
|
|
1385
|
+
list it.
|
|
1366
1386
|
x-celigo-ai-guidance:
|
|
1367
1387
|
- |-
|
|
1368
1388
|
Emit `"Active"` for mappings that should run; `"Draft"` is also
|
|
@@ -1685,6 +1705,12 @@ components:
|
|
|
1685
1705
|
- Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street',
|
|
1686
1706
|
'$[*].Tax' (every row of a grouped record)
|
|
1687
1707
|
- Wildcards like [*] extract multiple values/objects
|
|
1708
|
+
- A key that contains a dot needs bracket notation: `$['P.O. Number']` (or
|
|
1709
|
+
`$["P.O. Number"]`, `$.[P.O. Number]`). `$.P.O. Number` is read as a nested
|
|
1710
|
+
path: it maps nothing and the record still succeeds. Spaces, hyphens and `#`
|
|
1711
|
+
need no brackets (`$.Ship To Name`, `$.Tracking #`)
|
|
1712
|
+
- Filter expressions such as `$.items[?(@.active)]` fail the record with
|
|
1713
|
+
"Eval [?(expr)] prevented in JSONPath expression."
|
|
1688
1714
|
|
|
1689
1715
|
```json
|
|
1690
1716
|
"extract": "$.customer.addresses[*]" // Extracts all addresses
|
|
@@ -1873,6 +1899,12 @@ components:
|
|
|
1873
1899
|
**Usage**
|
|
1874
1900
|
|
|
1875
1901
|
The lookupName refers to a named lookup defined in the lookups array of the same resource.
|
|
1902
|
+
On an HTTP import that is `http.lookups`: a `lookups` array sent only at the top level
|
|
1903
|
+
is dropped on save. On an import, a name that matches no lookup fails every record
|
|
1904
|
+
with "Unable to find lookup in mapping configs - <name>", and a key the lookup
|
|
1905
|
+
doesn't hold follows the lookup's `allowFailures`: false fails the record; true, or
|
|
1906
|
+
the field left out, lets the record succeed with the lookup's `default`, or without
|
|
1907
|
+
the mapped field when there is none.
|
|
1876
1908
|
|
|
1877
1909
|
```json
|
|
1878
1910
|
{
|
|
@@ -2210,6 +2242,11 @@ components:
|
|
|
2210
2242
|
The system creates special composite objects during processing to maintain
|
|
2211
2243
|
hierarchical relationships, allowing easy access to both the current array item
|
|
2212
2244
|
and its parent contexts.
|
|
2245
|
+
|
|
2246
|
+
An iterating entry keeps the `[*]`: `$.line_items` without it yields one empty
|
|
2247
|
+
element per item, with no error. Child extracts drop the `[*]` but keep the
|
|
2248
|
+
array's path (`$.line_items.sku`); `$.line_items[*].sku` maps nothing, and an
|
|
2249
|
+
element-relative `$.sku` reads the record root instead of the element.
|
|
2213
2250
|
examples:
|
|
2214
2251
|
- $.items[*]
|
|
2215
2252
|
- $.order.lineItems[*]
|
|
@@ -2421,14 +2458,17 @@ components:
|
|
|
2421
2458
|
type: string
|
|
2422
2459
|
description: |
|
|
2423
2460
|
**Purpose**
|
|
2424
|
-
|
|
2461
|
+
Controls whether the mapping is applied. Send it on every mapping entry.
|
|
2425
2462
|
|
|
2426
2463
|
**Guidance**
|
|
2427
2464
|
Only `Active` rows run. `Draft` and `Inactive` rows keep their
|
|
2428
2465
|
configuration, are saved with minimal validation, and are skipped at
|
|
2429
2466
|
runtime and in preview; a non-Active parent skips its whole subtree
|
|
2430
|
-
whatever its children say.
|
|
2431
|
-
|
|
2467
|
+
whatever its children say. Imports (on save and in the mapper processor)
|
|
2468
|
+
and API response mappings reject a row missing this field (validation
|
|
2469
|
+
error: "Mapping object must have status field present."); a Tool's
|
|
2470
|
+
output mapping saves and runs one, which is why `required` doesn't
|
|
2471
|
+
list it.
|
|
2432
2472
|
x-celigo-ai-guidance:
|
|
2433
2473
|
- |-
|
|
2434
2474
|
Emit `"Active"` for mappings that should run; `"Draft"` is also
|
|
@@ -2799,8 +2839,8 @@ components:
|
|
|
2799
2839
|
- Original value indicators: "{Original Value}", "No mapping found"
|
|
2800
2840
|
- Neutral values: "Other", "N/A", "Miscellaneous"
|
|
2801
2841
|
|
|
2802
|
-
If allowFailures is false
|
|
2803
|
-
|
|
2842
|
+
If allowFailures is false, a record whose value is unmapped fails and the default
|
|
2843
|
+
is ignored.
|
|
2804
2844
|
examples:
|
|
2805
2845
|
- Unknown
|
|
2806
2846
|
- Other
|
|
@@ -2821,7 +2861,11 @@ components:
|
|
|
2821
2861
|
This field determines how the system handles source values that don't exist in the map:
|
|
2822
2862
|
|
|
2823
2863
|
- true: Use the default value for missing mappings and continue processing
|
|
2824
|
-
- false: Treat missing mappings as errors, failing the record
|
|
2864
|
+
- false: Treat missing mappings as errors, failing the record (`lookup_error` for a
|
|
2865
|
+
static map, `lookupcache_evaluation_failed` for a lookup cache)
|
|
2866
|
+
- omitted or null: the record doesn't fail either. On an import a static lookup writes
|
|
2867
|
+
its default if it has one, and a static or cache lookup without one leaves the
|
|
2868
|
+
mapped field out of the output, with no error
|
|
2825
2869
|
|
|
2826
2870
|
**Recommendation**
|
|
2827
2871
|
|
|
@@ -2835,11 +2879,14 @@ components:
|
|
|
2835
2879
|
- All possible source values are known and controlled
|
|
2836
2880
|
- Missing mappings indicate serious data problems that should be addressed
|
|
2837
2881
|
|
|
2838
|
-
|
|
2839
|
-
|
|
2882
|
+
A default raises no error: records that miss go out with the default value and
|
|
2883
|
+
nothing reports them. Use true only when that fallback is acceptable at the
|
|
2884
|
+
destination, and set false explicitly when a missing value must stop the record.
|
|
2840
2885
|
examples:
|
|
2841
2886
|
- true
|
|
2842
2887
|
- false
|
|
2888
|
+
x-celigo-ai-guidance:
|
|
2889
|
+
- 'Never leave this field out to mean "fail on a miss": on an import, an omitted or null value lets a missing key through without an error (with the default, or without the mapped field when there is none). Only an explicit false fails the record.'
|
|
2843
2890
|
Transform:
|
|
2844
2891
|
type: object
|
|
2845
2892
|
description: |
|
package/dist/connection.yml
CHANGED
|
@@ -841,6 +841,11 @@ paths:
|
|
|
841
841
|
`ftp.concurrencyLevel` and `ftp.targetConcurrencyLevel` (the latter is unset whenever
|
|
842
842
|
`autoRecoverRateLimitErrors` is false). `connectionRole` is read-only here: a body carrying
|
|
843
843
|
`mcpChild` is rejected.
|
|
844
|
+
|
|
845
|
+
An OAuth connection's `http.auth.oauth.authURI` and `tokenURI` can't change: a body that
|
|
846
|
+
changes either is rejected with 422 "Updating the value in tokenURI is not allowed for oauth
|
|
847
|
+
connections due to security reasons. Please contact celigo support." (and the same for
|
|
848
|
+
`authURI`), and nothing is saved. To move to new OAuth URLs, create a new connection.
|
|
844
849
|
operationId: updateConnection
|
|
845
850
|
tags:
|
|
846
851
|
- Connections
|
|
@@ -1028,7 +1033,8 @@ paths:
|
|
|
1028
1033
|
borrowed-from connection must exist in the account and may not itself borrow
|
|
1029
1034
|
(422 `connection_borrows_from_another`), and a connection that others borrow
|
|
1030
1035
|
from cannot start borrowing (422 `connection_borrowed_by_another`). A
|
|
1031
|
-
connection
|
|
1036
|
+
connection can't borrow from itself: naming its own id is rejected with 422 ("… a
|
|
1037
|
+
connection cannot borrow concurrency from itself."), here and on `PUT`.
|
|
1032
1038
|
Settings-only changes are recorded in the connection's audit log.
|
|
1033
1039
|
operationId: patchConnection
|
|
1034
1040
|
tags:
|
|
@@ -1134,6 +1140,15 @@ paths:
|
|
|
1134
1140
|
Deletes a connection. The connection is soft-deleted and retained in the
|
|
1135
1141
|
recycle bin for 30 days before permanent removal. Use
|
|
1136
1142
|
`POST /v1/recycleBinTTL/connections/{_id}` to restore it during that window.
|
|
1143
|
+
|
|
1144
|
+
Rejected with 422 while anything still uses the connection; the message names each
|
|
1145
|
+
blocker — every export or import on it, the flows they are steps of, and any connection
|
|
1146
|
+
whose `_borrowConcurrencyFromConnectionId` points at it (clearing that field is enough).
|
|
1147
|
+
Registration on an integration does not block the delete, and neither do exports, imports
|
|
1148
|
+
or flows already in the recycle bin; but purging the connection early
|
|
1149
|
+
(`DELETE /v1/recycleBinTTL/connections/{_id}`) is rejected with 422 "this document is
|
|
1150
|
+
referenced by Export : …" while a binned export or import still points at it, so purge the
|
|
1151
|
+
flows, then the exports and imports, then the connection.
|
|
1137
1152
|
operationId: deleteConnection
|
|
1138
1153
|
tags:
|
|
1139
1154
|
- Connections
|
|
@@ -1161,7 +1176,7 @@ paths:
|
|
|
1161
1176
|
- |-
|
|
1162
1177
|
Soft-deletes the connection into the recycle bin (restorable for 30 days). Check
|
|
1163
1178
|
`GET /v1/connections/{_id}/dependencies` first — a connection still referenced by flows,
|
|
1164
|
-
exports, or
|
|
1179
|
+
exports, imports, or a borrowing connection is rejected with 422.
|
|
1165
1180
|
/v1/connections/{_id}/ping:
|
|
1166
1181
|
get:
|
|
1167
1182
|
x-internal: false
|
|
@@ -1170,7 +1185,8 @@ paths:
|
|
|
1170
1185
|
GET variant of the saved-connection ping — identical behavior to
|
|
1171
1186
|
`POST /v1/connections/{_id}/ping`, with no request body to send. Runs the adaptor's ping
|
|
1172
1187
|
routine against the connection identified by `_id` to verify its credentials and network
|
|
1173
|
-
configuration still work; no data is read, written, or modified.
|
|
1188
|
+
configuration still work; no data is read, written, or modified. An `http` connection with
|
|
1189
|
+
no `http.ping` answers `{code: 200}` without sending any request.
|
|
1174
1190
|
|
|
1175
1191
|
Inspect the response body, not the HTTP status, to determine the outcome: success and
|
|
1176
1192
|
adaptor-level failures both return HTTP 200 — success is `{code: 200}`, failures are
|
|
@@ -1243,16 +1259,20 @@ paths:
|
|
|
1243
1259
|
Behaves identically to POST /v1/connections/{_id}/ping and takes no request body — use
|
|
1244
1260
|
whichever verb the client supports. Both verbs return HTTP 200 with {code: 200} on
|
|
1245
1261
|
success and HTTP 200 with {errors: [...]} on adaptor-level failure, so inspect the body,
|
|
1246
|
-
not the status code.
|
|
1262
|
+
not the status code. On an `http` connection, {code: 200} shows reachability only once
|
|
1263
|
+
`http.ping` is set: with no ping configured, nothing is sent and the answer is always
|
|
1264
|
+
{code: 200}.
|
|
1247
1265
|
post:
|
|
1248
1266
|
x-internal: false
|
|
1249
1267
|
summary: Ping an existing connection
|
|
1250
1268
|
description: |-
|
|
1251
1269
|
Runs the adaptor's ping routine against a saved connection to verify its credentials and
|
|
1252
1270
|
network configuration still work; no data is read, written, or modified. The check is
|
|
1253
|
-
adaptor-specific (HTTP
|
|
1254
|
-
|
|
1255
|
-
|
|
1271
|
+
adaptor-specific (HTTP sends the `http.ping` request, RDBMS/JDBC open a driver session,
|
|
1272
|
+
MCP issues a tools/list, NetSuite/Salesforce do a token or session validation). An `http`
|
|
1273
|
+
connection with no `http.ping` passes with `{code: 200}` without sending any request, so
|
|
1274
|
+
the ping proves nothing about it until a ping is configured. The request body is optional
|
|
1275
|
+
and ignored.
|
|
1256
1276
|
|
|
1257
1277
|
Inspect the response body, not the HTTP status, to determine the outcome: success and
|
|
1258
1278
|
adaptor-level failures both return HTTP 200 — success is `{code: 200}`, failures are
|
|
@@ -1362,6 +1382,10 @@ paths:
|
|
|
1362
1382
|
- Test network connectivity
|
|
1363
1383
|
- Verify permissions for basic operations
|
|
1364
1384
|
- Return connection status and any error details
|
|
1385
|
+
|
|
1386
|
+
Exception: an `http` connection with no `http.ping` answers {code: 200} without sending
|
|
1387
|
+
any request, so it proves nothing until a ping (ideally one that needs the connection's
|
|
1388
|
+
credentials) is configured.
|
|
1365
1389
|
/v1/connections/{_id}/proxy:
|
|
1366
1390
|
post:
|
|
1367
1391
|
x-internal: false
|
|
@@ -2452,6 +2476,9 @@ paths:
|
|
|
2452
2476
|
The response is a plain-text stream (not JSON): each entry is a header line
|
|
2453
2477
|
(`timestamp traceKey resourceType resourceId`) followed by a single-line JSON payload,
|
|
2454
2478
|
entries separated by blank lines; paired request/response entries share a `traceKey`.
|
|
2479
|
+
A response payload carries only `headers` and `body` — no HTTP status code, so judge a
|
|
2480
|
+
failure by the body and by headers such as `Retry-After`. Connection tests are logged too:
|
|
2481
|
+
resource type `ping` with an empty `resourceId`, and `isPing: true` in the request payload.
|
|
2455
2482
|
Logs are shared across every flow using the connection (filter by `resourceId` client-side),
|
|
2456
2483
|
and sensitive header values are redacted (`"Authorization": "********"`). For execution logs
|
|
2457
2484
|
tied to a specific run, use `GET /v1/flows/{_id}/jobs/{_jobId}/logs` instead.
|
|
@@ -2916,6 +2943,13 @@ paths:
|
|
|
2916
2943
|
`/v1/connections/{_id}/oauth2` is an alias that answers identically. The URL's
|
|
2917
2944
|
`state` token is one-time and expires quickly, so request a fresh one if the flow is
|
|
2918
2945
|
interrupted, then poll `GET /v1/connections/{_id}` until `needsAuthorization` is `false`.
|
|
2946
|
+
|
|
2947
|
+
The URL's `redirect_uri` is the account's Celigo callback
|
|
2948
|
+
(`https://integrator.io/connection/oauth2callback` on North America), which the provider's
|
|
2949
|
+
app registration must list. On an `http` connection the client comes from the iClient in
|
|
2950
|
+
`http._iClientId`: with no iClient the request is rejected with 422 `unknown http authURI`,
|
|
2951
|
+
and an iClient whose `oauth2.validDomainNames` lacks the authorization URL's registrable
|
|
2952
|
+
domain is rejected as well (see the 422 examples).
|
|
2919
2953
|
parameters:
|
|
2920
2954
|
- name: _id
|
|
2921
2955
|
in: path
|
|
@@ -2959,9 +2993,11 @@ paths:
|
|
|
2959
2993
|
$ref: '#/components/responses/404-not-found'
|
|
2960
2994
|
'422':
|
|
2961
2995
|
description: |-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2996
|
+
The handshake pre-check failed: the connection has no `authURI` in its config (an FTP,
|
|
2997
|
+
S3, plain-auth or client-credentials HTTP connection — nothing to authorize in a
|
|
2998
|
+
browser); an `http` connection has no iClient (`unknown http authURI: "<registrable
|
|
2999
|
+
domain>"`); or its iClient's `oauth2.validDomainNames` doesn't list the authorization
|
|
3000
|
+
URL's registrable domain.
|
|
2965
3001
|
content:
|
|
2966
3002
|
application/json:
|
|
2967
3003
|
schema:
|
|
@@ -2974,6 +3010,16 @@ paths:
|
|
|
2974
3010
|
- code: missing_required_field
|
|
2975
3011
|
message: 'Expected field: authURI in the Connection to be present.'
|
|
2976
3012
|
source: connector
|
|
3013
|
+
noIClient:
|
|
3014
|
+
summary: HTTP connection with no iClient
|
|
3015
|
+
value:
|
|
3016
|
+
errors:
|
|
3017
|
+
- message: 'unknown http authURI: "example.com"'
|
|
3018
|
+
domainNotListed:
|
|
3019
|
+
summary: The iClient's validDomainNames lacks the authorization URL's domain
|
|
3020
|
+
value:
|
|
3021
|
+
errors:
|
|
3022
|
+
- message: The domain of request url should be present in iClient.oauth2.validDomainNames
|
|
2977
3023
|
/v1/connections/{_id}/dependencies:
|
|
2978
3024
|
get:
|
|
2979
3025
|
x-internal: false
|
|
@@ -4088,7 +4134,7 @@ components:
|
|
|
4088
4134
|
connection's traffic counts against the referenced connection's limit instead of its own,
|
|
4089
4135
|
and its own concurrency and auto-recovery settings have no effect. One level only: the
|
|
4090
4136
|
referenced connection may not itself borrow, and a connection that others borrow from
|
|
4091
|
-
cannot start borrowing.
|
|
4137
|
+
cannot start borrowing. A connection cannot reference itself (422).
|
|
4092
4138
|
examples:
|
|
4093
4139
|
- 615dfa0742763671275b70ab
|
|
4094
4140
|
x-celigo-ai-guidance:
|
|
@@ -4125,16 +4171,21 @@ components:
|
|
|
4125
4171
|
type: boolean
|
|
4126
4172
|
description: |-
|
|
4127
4173
|
When true, the connection has been taken offline and is skipped during flow execution.
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
read it again a few
|
|
4174
|
+
It is set by the connection test a create or `PUT` runs: the result arrives in the
|
|
4175
|
+
write's response or, when the target is slow to answer, shortly afterwards (the audit
|
|
4176
|
+
log records a `system` change; `lastModified` doesn't move), so read it again a few
|
|
4177
|
+
seconds after the write. On an `http` connection the write runs the test only when
|
|
4178
|
+
`http.ping` is configured, and an `http` connection that was never tested has no
|
|
4179
|
+
`offline` key.
|
|
4131
4180
|
readOnly: true
|
|
4132
4181
|
needsAuthorization:
|
|
4133
4182
|
type: boolean
|
|
4134
4183
|
readOnly: true
|
|
4135
4184
|
description: |-
|
|
4136
4185
|
OAuth handshake state. Celigo's OAuth callback sets it to `false` once the user consents
|
|
4137
|
-
and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`).
|
|
4186
|
+
and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`). A connection that
|
|
4187
|
+
was never authorized usually has no `needsAuthorization` key, so its absence does not
|
|
4188
|
+
mean the connection is authorized.
|
|
4138
4189
|
_sourceId:
|
|
4139
4190
|
type: string
|
|
4140
4191
|
format: objectId
|
|
@@ -5109,15 +5160,18 @@ components:
|
|
|
5109
5160
|
clientId:
|
|
5110
5161
|
type: string
|
|
5111
5162
|
description: |
|
|
5112
|
-
OAuth client ID (application ID) registered with the API provider.
|
|
5113
|
-
|
|
5163
|
+
OAuth client ID (application ID) registered with the API provider. An `http`
|
|
5164
|
+
connection takes the app from a `custom_oauth2` iClient referenced by `http._iClientId`
|
|
5165
|
+
(an `mcp` connection from `mcp.http._iClientId`) and doesn't store this field: a create
|
|
5166
|
+
that sends `clientId` and `clientSecret` here answers 201 without either (and stores
|
|
5167
|
+
`useIClientFields: true` unless `false` is sent).
|
|
5114
5168
|
examples:
|
|
5115
5169
|
- 0oa1b2c3d4EXAMPLE5
|
|
5116
5170
|
clientSecret:
|
|
5117
5171
|
type: string
|
|
5118
5172
|
description: |
|
|
5119
|
-
OAuth client secret (encrypted at rest).
|
|
5120
|
-
|
|
5173
|
+
OAuth client secret (encrypted at rest). Not stored on an `http` connection: the secret
|
|
5174
|
+
belongs on the iClient (see `clientId`).
|
|
5121
5175
|
writeOnly: true
|
|
5122
5176
|
examples:
|
|
5123
5177
|
- cs_abc123EXAMPLE456secret
|
|
@@ -5333,9 +5387,11 @@ components:
|
|
|
5333
5387
|
- "authorizecode" — Authorization Code flow (browser-based user consent).
|
|
5334
5388
|
Requires authURI, tokenURI, and user authorization via browser.
|
|
5335
5389
|
- "clientcredentials" — Client Credentials flow (server-to-server, no user).
|
|
5336
|
-
Requires tokenURI
|
|
5390
|
+
Requires tokenURI.
|
|
5337
5391
|
- "password" — Resource Owner Password flow (username/password exchange).
|
|
5338
|
-
Requires tokenURI, username, password
|
|
5392
|
+
Requires tokenURI, username, password.
|
|
5393
|
+
- On an `http` connection the client ID and secret are never stored here: a
|
|
5394
|
+
`custom_oauth2` iClient referenced by `http._iClientId` supplies them.
|
|
5339
5395
|
JWT:
|
|
5340
5396
|
type: object
|
|
5341
5397
|
description: |-
|
|
@@ -9560,7 +9616,7 @@ components:
|
|
|
9560
9616
|
connection's traffic counts against the referenced connection's limit instead of its own,
|
|
9561
9617
|
and its own concurrency and auto-recovery settings have no effect. One level only: the
|
|
9562
9618
|
referenced connection may not itself borrow, and a connection that others borrow from
|
|
9563
|
-
cannot start borrowing.
|
|
9619
|
+
cannot start borrowing. A connection cannot reference itself (422).
|
|
9564
9620
|
examples:
|
|
9565
9621
|
- 615dfa0742763671275b70ab
|
|
9566
9622
|
x-celigo-ai-guidance:
|