@celigo/api-specs 0.2.150 → 0.2.152
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/api.yml +17 -4
- package/dist/connection.yml +17 -4
- package/dist/enduser.yml +17 -4
- package/dist/export.yml +111 -61
- package/dist/flow.yml +17 -8
- package/dist/guardrail.yml +23 -16
- package/dist/import.yml +23 -16
- package/dist/mcp-server.yml +17 -4
- package/dist/tool.yml +140 -76
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/api.yml
CHANGED
|
@@ -6366,7 +6366,12 @@ components:
|
|
|
6366
6366
|
type: boolean
|
|
6367
6367
|
description: |
|
|
6368
6368
|
When true, uses iClient-managed OAuth credentials (clientId/clientSecret)
|
|
6369
|
-
instead of the values in this configuration.
|
|
6369
|
+
instead of the values in this configuration. The iClient is the connection's
|
|
6370
|
+
`_iClientId` — on an HTTP connection `http._iClientId`, beside `auth`, not inside it —
|
|
6371
|
+
and it also supplies the grant type and the authorization and token endpoints, so a
|
|
6372
|
+
create needs only `auth.type: "oauth"`, `auth.oauth.useIClientFields: true` and the
|
|
6373
|
+
iClient id. The connection holds no tokens until a person completes the authorization
|
|
6374
|
+
in a browser.
|
|
6370
6375
|
oauth1:
|
|
6371
6376
|
type: object
|
|
6372
6377
|
description: |-
|
|
@@ -6495,7 +6500,7 @@ components:
|
|
|
6495
6500
|
x-celigo-ai-guidance:
|
|
6496
6501
|
- |-
|
|
6497
6502
|
## OAUTH 2.0 GRANT TYPES
|
|
6498
|
-
- "
|
|
6503
|
+
- "authorizecode" — Authorization Code flow (browser-based user consent).
|
|
6499
6504
|
Requires authURI, tokenURI, and user authorization via browser.
|
|
6500
6505
|
- "clientcredentials" — Client Credentials flow (server-to-server, no user).
|
|
6501
6506
|
Requires tokenURI, clientId, clientSecret.
|
|
@@ -7086,7 +7091,11 @@ components:
|
|
|
7086
7091
|
description: |
|
|
7087
7092
|
The API key or bearer token value (encrypted at rest); returned masked as `"******"`.
|
|
7088
7093
|
On update, the mask sent back keeps the stored token; a new value replaces it.
|
|
7089
|
-
Required unless automatic token refresh is configured
|
|
7094
|
+
Required unless automatic token refresh is configured: a token block without a
|
|
7095
|
+
token must carry a `refreshMethod`, so a create or update that sends neither fails
|
|
7096
|
+
with 422 `Expected field: refreshMethod to be present.` To create a static-token
|
|
7097
|
+
connection before the real token is available, send a placeholder value and
|
|
7098
|
+
replace it later.
|
|
7090
7099
|
examples:
|
|
7091
7100
|
- my-api-token-EXAMPLE
|
|
7092
7101
|
location:
|
|
@@ -9292,7 +9301,11 @@ components:
|
|
|
9292
9301
|
description: |
|
|
9293
9302
|
The API key or bearer token value (encrypted at rest); returned masked as `"******"`.
|
|
9294
9303
|
On update, the mask sent back keeps the stored token; a new value replaces it.
|
|
9295
|
-
Required unless automatic token refresh is configured
|
|
9304
|
+
Required unless automatic token refresh is configured: a token block without a
|
|
9305
|
+
token must carry a `refreshMethod`, so a create or update that sends neither fails
|
|
9306
|
+
with 422 `Expected field: refreshMethod to be present.` To create a static-token
|
|
9307
|
+
connection before the real token is available, send a placeholder value and
|
|
9308
|
+
replace it later.
|
|
9296
9309
|
examples:
|
|
9297
9310
|
- my-api-token-EXAMPLE
|
|
9298
9311
|
location:
|
package/dist/connection.yml
CHANGED
|
@@ -5196,7 +5196,12 @@ components:
|
|
|
5196
5196
|
type: boolean
|
|
5197
5197
|
description: |
|
|
5198
5198
|
When true, uses iClient-managed OAuth credentials (clientId/clientSecret)
|
|
5199
|
-
instead of the values in this configuration.
|
|
5199
|
+
instead of the values in this configuration. The iClient is the connection's
|
|
5200
|
+
`_iClientId` — on an HTTP connection `http._iClientId`, beside `auth`, not inside it —
|
|
5201
|
+
and it also supplies the grant type and the authorization and token endpoints, so a
|
|
5202
|
+
create needs only `auth.type: "oauth"`, `auth.oauth.useIClientFields: true` and the
|
|
5203
|
+
iClient id. The connection holds no tokens until a person completes the authorization
|
|
5204
|
+
in a browser.
|
|
5200
5205
|
oauth1:
|
|
5201
5206
|
type: object
|
|
5202
5207
|
description: |-
|
|
@@ -5325,7 +5330,7 @@ components:
|
|
|
5325
5330
|
x-celigo-ai-guidance:
|
|
5326
5331
|
- |-
|
|
5327
5332
|
## OAUTH 2.0 GRANT TYPES
|
|
5328
|
-
- "
|
|
5333
|
+
- "authorizecode" — Authorization Code flow (browser-based user consent).
|
|
5329
5334
|
Requires authURI, tokenURI, and user authorization via browser.
|
|
5330
5335
|
- "clientcredentials" — Client Credentials flow (server-to-server, no user).
|
|
5331
5336
|
Requires tokenURI, clientId, clientSecret.
|
|
@@ -5916,7 +5921,11 @@ components:
|
|
|
5916
5921
|
description: |
|
|
5917
5922
|
The API key or bearer token value (encrypted at rest); returned masked as `"******"`.
|
|
5918
5923
|
On update, the mask sent back keeps the stored token; a new value replaces it.
|
|
5919
|
-
Required unless automatic token refresh is configured
|
|
5924
|
+
Required unless automatic token refresh is configured: a token block without a
|
|
5925
|
+
token must carry a `refreshMethod`, so a create or update that sends neither fails
|
|
5926
|
+
with 422 `Expected field: refreshMethod to be present.` To create a static-token
|
|
5927
|
+
connection before the real token is available, send a placeholder value and
|
|
5928
|
+
replace it later.
|
|
5920
5929
|
examples:
|
|
5921
5930
|
- my-api-token-EXAMPLE
|
|
5922
5931
|
location:
|
|
@@ -8122,7 +8131,11 @@ components:
|
|
|
8122
8131
|
description: |
|
|
8123
8132
|
The API key or bearer token value (encrypted at rest); returned masked as `"******"`.
|
|
8124
8133
|
On update, the mask sent back keeps the stored token; a new value replaces it.
|
|
8125
|
-
Required unless automatic token refresh is configured
|
|
8134
|
+
Required unless automatic token refresh is configured: a token block without a
|
|
8135
|
+
token must carry a `refreshMethod`, so a create or update that sends neither fails
|
|
8136
|
+
with 422 `Expected field: refreshMethod to be present.` To create a static-token
|
|
8137
|
+
connection before the real token is available, send a placeholder value and
|
|
8138
|
+
replace it later.
|
|
8126
8139
|
examples:
|
|
8127
8140
|
- my-api-token-EXAMPLE
|
|
8128
8141
|
location:
|
package/dist/enduser.yml
CHANGED
|
@@ -3308,7 +3308,12 @@ components:
|
|
|
3308
3308
|
type: boolean
|
|
3309
3309
|
description: |
|
|
3310
3310
|
When true, uses iClient-managed OAuth credentials (clientId/clientSecret)
|
|
3311
|
-
instead of the values in this configuration.
|
|
3311
|
+
instead of the values in this configuration. The iClient is the connection's
|
|
3312
|
+
`_iClientId` — on an HTTP connection `http._iClientId`, beside `auth`, not inside it —
|
|
3313
|
+
and it also supplies the grant type and the authorization and token endpoints, so a
|
|
3314
|
+
create needs only `auth.type: "oauth"`, `auth.oauth.useIClientFields: true` and the
|
|
3315
|
+
iClient id. The connection holds no tokens until a person completes the authorization
|
|
3316
|
+
in a browser.
|
|
3312
3317
|
oauth1:
|
|
3313
3318
|
type: object
|
|
3314
3319
|
description: |-
|
|
@@ -3437,7 +3442,7 @@ components:
|
|
|
3437
3442
|
x-celigo-ai-guidance:
|
|
3438
3443
|
- |-
|
|
3439
3444
|
## OAUTH 2.0 GRANT TYPES
|
|
3440
|
-
- "
|
|
3445
|
+
- "authorizecode" — Authorization Code flow (browser-based user consent).
|
|
3441
3446
|
Requires authURI, tokenURI, and user authorization via browser.
|
|
3442
3447
|
- "clientcredentials" — Client Credentials flow (server-to-server, no user).
|
|
3443
3448
|
Requires tokenURI, clientId, clientSecret.
|
|
@@ -4028,7 +4033,11 @@ components:
|
|
|
4028
4033
|
description: |
|
|
4029
4034
|
The API key or bearer token value (encrypted at rest); returned masked as `"******"`.
|
|
4030
4035
|
On update, the mask sent back keeps the stored token; a new value replaces it.
|
|
4031
|
-
Required unless automatic token refresh is configured
|
|
4036
|
+
Required unless automatic token refresh is configured: a token block without a
|
|
4037
|
+
token must carry a `refreshMethod`, so a create or update that sends neither fails
|
|
4038
|
+
with 422 `Expected field: refreshMethod to be present.` To create a static-token
|
|
4039
|
+
connection before the real token is available, send a placeholder value and
|
|
4040
|
+
replace it later.
|
|
4032
4041
|
examples:
|
|
4033
4042
|
- my-api-token-EXAMPLE
|
|
4034
4043
|
location:
|
|
@@ -6234,7 +6243,11 @@ components:
|
|
|
6234
6243
|
description: |
|
|
6235
6244
|
The API key or bearer token value (encrypted at rest); returned masked as `"******"`.
|
|
6236
6245
|
On update, the mask sent back keeps the stored token; a new value replaces it.
|
|
6237
|
-
Required unless automatic token refresh is configured
|
|
6246
|
+
Required unless automatic token refresh is configured: a token block without a
|
|
6247
|
+
token must carry a `refreshMethod`, so a create or update that sends neither fails
|
|
6248
|
+
with 422 `Expected field: refreshMethod to be present.` To create a static-token
|
|
6249
|
+
connection before the real token is available, send a placeholder value and
|
|
6250
|
+
replace it later.
|
|
6238
6251
|
examples:
|
|
6239
6252
|
- my-api-token-EXAMPLE
|
|
6240
6253
|
location:
|
package/dist/export.yml
CHANGED
|
@@ -982,36 +982,40 @@ components:
|
|
|
982
982
|
Delta:
|
|
983
983
|
type: object
|
|
984
984
|
description: |-
|
|
985
|
-
Configures incremental exports that retrieve only records created or modified since the
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
{{lastExportDateTime}} is the run's own timestamp
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
985
|
+
Configures incremental exports that retrieve only records created or modified since the
|
|
986
|
+
flow's delta checkpoint; omit it for other export types. Adaptors that compare a record field
|
|
987
|
+
name it in `dateField`, while HTTP exports and SQL queries carry {{lastExportDateTime}} in the
|
|
988
|
+
request and save without a delta object. Each run's window runs from {{lastExportDateTime}}
|
|
989
|
+
(the checkpoint) to {{currentExportDateTime}} (the time the run started). A first run is not a
|
|
990
|
+
full export: with no `startDate`, its {{lastExportDateTime}} is the run's own timestamp, so it
|
|
991
|
+
picks up no earlier changes. The checkpoint moves to a run's window end only when the run
|
|
992
|
+
exports records, so a run that exports nothing leaves it where it was, and after a failed run
|
|
993
|
+
the next run reuses the last checkpoint. On success, when `POST /v1/flows/{_id}/run` sends
|
|
994
|
+
`export.endDate`, the flow's checkpoint is left at that value, so an end date in the past
|
|
995
|
+
moves the next run's lower bound back.
|
|
994
996
|
x-celigo-ai-guidance:
|
|
995
997
|
- |-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
+
Omit this object for export types other than "delta". An HTTP export with type
|
|
999
|
+
"delta" saves without it, since the request carries {{lastExportDateTime}}, but
|
|
1000
|
+
set ``startDate`` anyway: without it the first run's window is empty.
|
|
998
1001
|
Delta exports are designed for efficient synchronization by retrieving only
|
|
999
1002
|
records that have been created or modified since the last execution.
|
|
1000
1003
|
- |-
|
|
1001
1004
|
## REQUIRED FIELDS
|
|
1002
1005
|
- ``startDate`` -- the initial cutoff timestamp the platform uses on the
|
|
1003
1006
|
first run (and as the floor for ``{{lastExportDateTime}}`` thereafter).
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
delta
|
|
1007
|
+
Without it, a new flow's first run renders ``{{lastExportDateTime}}`` as
|
|
1008
|
+
the run's own time, so the first run exports nothing (verified on HTTP
|
|
1009
|
+
and RDBMS delta exports). Adapter-specific validators (e.g. NetSuite's
|
|
1010
|
+
``transformTwoDotZero``) reject delta configs that omit ``startDate``
|
|
1011
|
+
with ``missing_delta_startDate``, so set it on every delta export.
|
|
1008
1012
|
- |-
|
|
1009
1013
|
## DEFAULT CUTOFF BEHAVIOR (NO USER-SUPPLIED CUTOFF)
|
|
1010
1014
|
When the user prompt does not specify an explicit cutoff timestamp,
|
|
1011
1015
|
default ``startDate`` to **today at midnight UTC** in ISO-8601 format
|
|
1012
1016
|
(e.g. ``"2026-05-14T00:00:00.000Z"``). This means the first run picks
|
|
1013
1017
|
up records changed today; subsequent runs use the platform-managed
|
|
1014
|
-
``{{lastExportDateTime}}`` (the last
|
|
1018
|
+
``{{lastExportDateTime}}`` (the end of the last run that exported records).
|
|
1015
1019
|
|
|
1016
1020
|
- First run: filters records changed since ``startDate``.
|
|
1017
1021
|
- Subsequent runs: uses ``{{lastExportDateTime}}`` as the lower bound;
|
|
@@ -1024,18 +1028,28 @@ components:
|
|
|
1024
1028
|
- For HTTP exports: Use {{lastExportDateTime}} variable in relativeURI or body
|
|
1025
1029
|
- For specific application adapters: Use dateField to specify timestamp fields
|
|
1026
1030
|
|
|
1027
|
-
2. The system automatically maintains the
|
|
1031
|
+
2. The system automatically maintains the checkpoint
|
|
1028
1032
|
- No need to store or manage timestamps in your own code
|
|
1029
1033
|
- A first run without ``startDate`` fetches nothing older than the run itself
|
|
1030
|
-
-
|
|
1034
|
+
- A run that exports records moves the checkpoint to its window end
|
|
1035
|
+
({{currentExportDateTime}}), where the next run starts
|
|
1036
|
+
- Use {{lastExportDateTime}} as the lower bound; {{currentExportDateTime}} as the
|
|
1037
|
+
lower bound asks for records changed after the run started, so every run exports nothing
|
|
1031
1038
|
|
|
1032
1039
|
3. Error handling and recovery:
|
|
1033
1040
|
- If an export fails, the next run uses the last successful timestamp
|
|
1034
1041
|
- Records created/modified during a failed run will be included in the next run
|
|
1042
|
+
- A run that exports nothing leaves the checkpoint where it was, so after a stretch of
|
|
1043
|
+
empty runs the next run that finds records reaches back to the last run that exported
|
|
1044
|
+
any: once the cause is fixed, no backfill run is needed
|
|
1045
|
+
- A run given its own window (export.startDate / export.endDate on
|
|
1046
|
+
POST /v1/flows/{_id}/run) that exports records leaves the checkpoint at endDate,
|
|
1047
|
+
even a past one, so the next run re-reads everything after it
|
|
1035
1048
|
- The lagOffset field can be used to handle edge cases
|
|
1036
1049
|
- |-
|
|
1037
|
-
|
|
1038
|
-
|
|
1050
|
+
Omit this object for export types other than "delta". An HTTP export with type
|
|
1051
|
+
"delta" saves without it, since the request carries {{lastExportDateTime}}, but
|
|
1052
|
+
set ``startDate`` anyway: without it the first run's window is empty.
|
|
1039
1053
|
Delta exports are designed for efficient synchronization by retrieving only
|
|
1040
1054
|
records that have been created or modified since the last execution.
|
|
1041
1055
|
properties:
|
|
@@ -1051,8 +1065,9 @@ components:
|
|
|
1051
1065
|
If the flow's own downstream steps update the exported records, add export criteria
|
|
1052
1066
|
that exclude already-processed records (or use a creation-time field for process-once
|
|
1053
1067
|
flows) so each run doesn't re-export what the previous run wrote. Not supported on
|
|
1054
|
-
HTTP exports: embed {{lastExportDateTime}} in the relativeURI or body instead;
|
|
1055
|
-
|
|
1068
|
+
HTTP exports: embed {{lastExportDateTime}} in the relativeURI or body instead; an HTTP
|
|
1069
|
+
export saved with dateField is refused with 422 "Unsupported dateField in
|
|
1070
|
+
export.delta.dateField". For Salesforce this
|
|
1056
1071
|
field is required and defaults to the standard timestamp fields (LastModifiedDate,
|
|
1057
1072
|
CreatedDate, SystemModstamp, LastActivityDate, LastViewedDate, LastReferencedDate) plus
|
|
1058
1073
|
any custom timestamp fields.
|
|
@@ -1091,7 +1106,8 @@ components:
|
|
|
1091
1106
|
###CRITICAL ADAPTOR-SPECIFIC INSTRUCTION:
|
|
1092
1107
|
- The adaptor type is HTTP. For HTTP exports, the "dateField" property MUST NOT be included in the delta configuration.
|
|
1093
1108
|
- HTTP exports use the {{lastExportDateTime}} variable directly in the relativeURI or body instead of dateField.
|
|
1094
|
-
- DO NOT include "dateField" in your response. If you include it, the
|
|
1109
|
+
- DO NOT include "dateField" in your response. If you include it, the save is refused with
|
|
1110
|
+
422 "Unsupported dateField in export.delta.dateField".
|
|
1095
1111
|
|
|
1096
1112
|
Example HTTP query with implicit delta:
|
|
1097
1113
|
```
|
|
@@ -1151,10 +1167,10 @@ components:
|
|
|
1151
1167
|
dateFormat:
|
|
1152
1168
|
type: string
|
|
1153
1169
|
description: |-
|
|
1154
|
-
Moment.js format string applied to
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
widening the filter window.
|
|
1170
|
+
Moment.js format string applied to both delta variables, {{lastExportDateTime}} and
|
|
1171
|
+
{{currentExportDateTime}}, in HTTP requests and SQL queries alike. Leave unset unless the
|
|
1172
|
+
source system requires a non-ISO8601 format; by default both render as ISO 8601 UTC with
|
|
1173
|
+
milliseconds. Date-only formats truncate the time portion, widening the filter window.
|
|
1158
1174
|
x-celigo-ai-guidance:
|
|
1159
1175
|
- Defines the date/time format expected by the source system's API.
|
|
1160
1176
|
- |-
|
|
@@ -1165,7 +1181,8 @@ components:
|
|
|
1165
1181
|
- OPTIONAL: Only needed when the source system doesn't support ISO8601
|
|
1166
1182
|
- Default: ISO8601 format (YYYY-MM-DDTHH:mm:ss.sssZ)
|
|
1167
1183
|
- Uses Moment.js formatting tokens
|
|
1168
|
-
-
|
|
1184
|
+
- Formats both {{lastExportDateTime}} and {{currentExportDateTime}}, in HTTP requests and in
|
|
1185
|
+
SQL queries (an RDBMS delta query receives the formatted value as a quoted literal)
|
|
1169
1186
|
- |-
|
|
1170
1187
|
## IMPLEMENTATION PATTERNS
|
|
1171
1188
|
|
|
@@ -1249,13 +1266,15 @@ components:
|
|
|
1249
1266
|
format: date-time
|
|
1250
1267
|
description: |-
|
|
1251
1268
|
Lower-bound cutoff for the first run. Omitting it doesn't export history: the first run
|
|
1252
|
-
then starts at its own timestamp. Set it to the earliest change the first
|
|
1253
|
-
up.
|
|
1269
|
+
then starts at its own timestamp, an empty window. Set it to the earliest change the first
|
|
1270
|
+
run should pick up. Later runs start from the flow's checkpoint, the end of the last run
|
|
1271
|
+
that exported records.
|
|
1254
1272
|
x-celigo-ai-guidance:
|
|
1255
1273
|
- |-
|
|
1256
1274
|
Initial cutoff timestamp for the first export run, in ISO-8601 UTC format (e.g.
|
|
1257
1275
|
``"2026-05-14T00:00:00.000Z"``).
|
|
1258
|
-
|
|
1276
|
+
Set it on every delta export: without it the first run's window is empty (verified
|
|
1277
|
+
on HTTP and RDBMS delta exports), and adapter-specific validators reject delta
|
|
1259
1278
|
configs without it (e.g.
|
|
1260
1279
|
NetSuite returns ``missing_delta_startDate`` from the ``transformTwoDotZero`` processor).
|
|
1261
1280
|
- |-
|
|
@@ -1267,10 +1286,11 @@ components:
|
|
|
1267
1286
|
flow is being authored.
|
|
1268
1287
|
- |-
|
|
1269
1288
|
## SUBSEQUENT RUNS
|
|
1270
|
-
After the first
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1289
|
+
After the first run that exports records, the platform keeps the
|
|
1290
|
+
flow's checkpoint at the end of the last run that exported records
|
|
1291
|
+
and exposes it as ``{{lastExportDateTime}}``; runs that export
|
|
1292
|
+
nothing leave it unchanged. ``startDate`` becomes the floor used
|
|
1293
|
+
only when the platform timestamp is absent (e.g. after a reset).
|
|
1274
1294
|
- |-
|
|
1275
1295
|
## EXAMPLES
|
|
1276
1296
|
- ``"2026-05-14T00:00:00.000Z"`` -- today at midnight UTC.
|
|
@@ -1279,7 +1299,8 @@ components:
|
|
|
1279
1299
|
- |-
|
|
1280
1300
|
Initial cutoff timestamp for the first export run, in ISO-8601 UTC format (e.g.
|
|
1281
1301
|
``"2026-05-14T00:00:00.000Z"``).
|
|
1282
|
-
|
|
1302
|
+
Set it on every delta export: without it the first run's window is empty (verified
|
|
1303
|
+
on HTTP and RDBMS delta exports), and adapter-specific validators reject delta
|
|
1283
1304
|
configs without it (e.g.
|
|
1284
1305
|
NetSuite returns ``missing_delta_startDate`` from the ``transformTwoDotZero`` processor).
|
|
1285
1306
|
examples:
|
|
@@ -1420,7 +1441,7 @@ components:
|
|
|
1420
1441
|
- exported_to_netsuite
|
|
1421
1442
|
Webhook:
|
|
1422
1443
|
type: object
|
|
1423
|
-
description: Configuration for webhook listeners that receive data through incoming HTTP requests. Required when the export's `type` is `webhook`; omit for other export types.
|
|
1444
|
+
description: Configuration for webhook listeners that receive data through incoming HTTP requests. Required when the export's `type` is `webhook`; omit for other export types. Senders POST to the export's listener URL, `https://api.integrator.io/v1/exports/{_id}/data` (or the same path on the account's regional API host); the platform validates each request using the configured `verify` method, passes the payload to subsequent flow steps, and returns a configurable HTTP response to the caller. A request is answered 204 by default when accepted, 401 when it fails verification, and 403 `unable_to_run_flows` while every flow the export feeds is disabled; a refused request is not queued, so the sender must resend it.
|
|
1424
1445
|
x-celigo-ai-guidance:
|
|
1425
1446
|
- Configuration object for real-time event listeners that receive data via incoming HTTP requests.
|
|
1426
1447
|
- |-
|
|
@@ -1794,7 +1815,7 @@ components:
|
|
|
1794
1815
|
- sha1
|
|
1795
1816
|
encoding:
|
|
1796
1817
|
type: string
|
|
1797
|
-
description: Encoding of the HMAC signature value when `verify` is `hmac`. Must match the encoding the webhook sender uses — a mismatch causes requests to be rejected even when the signature is otherwise correct.
|
|
1818
|
+
description: 'Encoding of the HMAC signature value when `verify` is `hmac`. Must match the encoding the webhook sender uses — a mismatch causes requests to be rejected with a 401 even when the signature is otherwise correct. With `provider: custom`, `hex` is compared as lowercase hex: an uppercase hex signature is rejected.'
|
|
1798
1819
|
x-celigo-ai-guidance:
|
|
1799
1820
|
- Specifies the encoding format used for the HMAC signature in webhook requests.
|
|
1800
1821
|
- |-
|
|
@@ -1890,7 +1911,7 @@ components:
|
|
|
1890
1911
|
- 9d1a5c6b3e7d9f2a1c5b8e3aEXAMPLE
|
|
1891
1912
|
header:
|
|
1892
1913
|
type: string
|
|
1893
|
-
description: Name of the request header that carries the HMAC signature when `verify` is `hmac`. Must match the header name the webhook sender uses (header names are case-insensitive); requests without this header are rejected with a 401.
|
|
1914
|
+
description: 'Name of the request header that carries the HMAC signature when `verify` is `hmac`. Must match the header name the webhook sender uses (header names are case-insensitive); requests without this header are rejected with a 401. With `provider: custom` the header value must be the bare digest in the configured `encoding`: a value with a `sha256=` prefix is rejected with a 401.'
|
|
1894
1915
|
x-celigo-ai-guidance:
|
|
1895
1916
|
- Specifies the HTTP header name that contains the signature for HMAC verification.
|
|
1896
1917
|
- |-
|
|
@@ -1936,8 +1957,9 @@ components:
|
|
|
1936
1957
|
|
|
1937
1958
|
- The system will look for this exact header name in incoming requests
|
|
1938
1959
|
- If the header is not found, the request will be rejected with a 401 error
|
|
1939
|
-
- Some platforms
|
|
1940
|
-
|
|
1960
|
+
- Some platforms include a prefix in the header value (e.g., "sha256="). With
|
|
1961
|
+
provider "custom" it is not stripped: a prefixed signature is rejected with a 401,
|
|
1962
|
+
so the sender must send the bare digest
|
|
1941
1963
|
|
|
1942
1964
|
IMPORTANT: This must exactly match the header name used by the webhook sender.
|
|
1943
1965
|
If you're unsure about the correct header name, consult the sender's documentation
|
|
@@ -3452,11 +3474,12 @@ components:
|
|
|
3452
3474
|
- metadata
|
|
3453
3475
|
skipDelete:
|
|
3454
3476
|
type: boolean
|
|
3477
|
+
default: false
|
|
3455
3478
|
description: |-
|
|
3456
3479
|
When true, source files remain on the file server after processing; when false (the
|
|
3457
3480
|
default), files are deleted after successful processing. Files that fail processing are
|
|
3458
3481
|
never deleted, regardless of this setting. Enable retention when files must be processed
|
|
3459
|
-
by other flows or kept for compliance.
|
|
3482
|
+
by other flows or systems, or kept for compliance.
|
|
3460
3483
|
x-celigo-ai-guidance:
|
|
3461
3484
|
- |-
|
|
3462
3485
|
Controls whether source files are retained or deleted after successful processing.
|
|
@@ -4129,8 +4152,10 @@ components:
|
|
|
4129
4152
|
type: string
|
|
4130
4153
|
description: |-
|
|
4131
4154
|
Character sequence separating fields within each row; comma when omitted. Use "\t"
|
|
4132
|
-
for tab-delimited files; European-locale exports often use semicolons.
|
|
4133
|
-
delimiter
|
|
4155
|
+
for tab-delimited files; European-locale exports often use semicolons. A wrong
|
|
4156
|
+
delimiter doesn't fail the parse: with a header row, each row becomes one field named
|
|
4157
|
+
after the whole header line (`{"order_id;sku;qty": "1001;TEE-M;2"}`), so the failure
|
|
4158
|
+
shows up in later steps.
|
|
4134
4159
|
x-celigo-ai-guidance:
|
|
4135
4160
|
- |-
|
|
4136
4161
|
Specifies the character sequence that separates individual fields (columns)
|
|
@@ -6590,6 +6615,8 @@ components:
|
|
|
6590
6615
|
Controls how the export requests subsequent pages when the API returns multi-page responses. The `method` field determines which companion fields are required and how each next page is requested. For the page, skip, and token methods, reference the matching pagination variable (`{{export.http.paging.page}}`, `{{export.http.paging.skip}}`, or `{{export.http.paging.token}}`) in the relative URI or request body — misconfigured pagination is a common cause of incomplete data retrieval.
|
|
6591
6616
|
|
|
6592
6617
|
When this export is the first lookup of a builder-mode API with `pagination.enabled` set, it is that API's volume driver: saving the export (even unchanged) invalidates the API's issued cursors, so a caller mid-walk gets an empty final page, and removing `paging` is accepted on save but makes every call to the API fail with `400 api_pagination_source_not_paged` until paging is restored or the API's flag is turned off.
|
|
6618
|
+
|
|
6619
|
+
When a next page's response is identical to the previous one, paging stops: the export records an open error with code `page_response_error` ("Identical response received from next page request. No more page requests will be made.") and the run completes with the pages already read, so later pages are never exported. A request that doesn't change between pages produces this, as observed with `method: page` and the pagination variable missing from the relative URI and body; reference the variable so each request asks for the next page.
|
|
6593
6620
|
x-celigo-ai-guidance:
|
|
6594
6621
|
- Configuration object for navigating through multi-page API responses.
|
|
6595
6622
|
- |-
|
|
@@ -9560,19 +9587,25 @@ components:
|
|
|
9560
9587
|
description: |-
|
|
9561
9588
|
Directory on the same server where files are moved after successful export, giving you
|
|
9562
9589
|
an independent backup; if omitted, files are simply deleted from the source directory
|
|
9563
|
-
after successful export (Celigo also keeps its own copy
|
|
9564
|
-
period). Supports static paths or handlebars templates.
|
|
9590
|
+
after successful export unless `file.skipDelete` is true (Celigo also keeps its own copy
|
|
9591
|
+
of processed files for a set period). Supports static paths or handlebars templates.
|
|
9565
9592
|
x-celigo-ai-guidance:
|
|
9566
9593
|
- Optional directory where files are moved before deletion.
|
|
9567
9594
|
- |-
|
|
9568
9595
|
IMPORTANT:
|
|
9569
|
-
Celigo automatically deletes files from the source directory after successful export
|
|
9596
|
+
Celigo automatically deletes files from the source directory after successful export,
|
|
9597
|
+
unless `file.skipDelete` is true. Moving them to a backup directory also takes them out
|
|
9598
|
+
of the source directory, so when another system still reads them there, set
|
|
9599
|
+
`file.skipDelete: true` instead.
|
|
9570
9600
|
The backup directory is for users who want to maintain their own independent
|
|
9571
9601
|
backup of exported files.
|
|
9572
9602
|
Celigo also maintains its own backup of processed files for a set period of time.
|
|
9573
9603
|
- |-
|
|
9574
9604
|
IMPORTANT:
|
|
9575
|
-
Celigo automatically deletes files from the source directory after successful export
|
|
9605
|
+
Celigo automatically deletes files from the source directory after successful export,
|
|
9606
|
+
unless `file.skipDelete` is true. Moving them to a backup directory also takes them out
|
|
9607
|
+
of the source directory, so when another system still reads them there, set
|
|
9608
|
+
`file.skipDelete: true` instead.
|
|
9576
9609
|
The backup directory is for users who want to maintain their own independent
|
|
9577
9610
|
backup of exported files.
|
|
9578
9611
|
Celigo also maintains its own backup of processed files for a set period of time.
|
|
@@ -12044,19 +12077,26 @@ components:
|
|
|
12044
12077
|
description: |-
|
|
12045
12078
|
Bucket in the same region where files are moved after successful export, giving you an
|
|
12046
12079
|
independent backup; if omitted, files are simply deleted from the source bucket after
|
|
12047
|
-
successful export (Celigo also keeps its own copy of
|
|
12048
|
-
The connection's AWS credentials must have
|
|
12080
|
+
successful export unless `file.skipDelete` is true (Celigo also keeps its own copy of
|
|
12081
|
+
processed files for a set period). The connection's AWS credentials must have
|
|
12082
|
+
s3:PutObject permission on this bucket.
|
|
12049
12083
|
x-celigo-ai-guidance:
|
|
12050
12084
|
- Optional destination bucket where files are moved before deletion.
|
|
12051
12085
|
- |-
|
|
12052
12086
|
IMPORTANT:
|
|
12053
|
-
Celigo automatically deletes files from the source bucket after successful export
|
|
12087
|
+
Celigo automatically deletes files from the source bucket after successful export,
|
|
12088
|
+
unless `file.skipDelete` is true. Moving them to a backup bucket also takes them out of
|
|
12089
|
+
the source bucket, so when another system still reads them there, set
|
|
12090
|
+
`file.skipDelete: true` instead.
|
|
12054
12091
|
The backup bucket is for users who want to maintain their own independent backup
|
|
12055
12092
|
of exported files.
|
|
12056
12093
|
Celigo also maintains its own backup of processed files for a set period of time.
|
|
12057
12094
|
- |-
|
|
12058
12095
|
IMPORTANT:
|
|
12059
|
-
Celigo automatically deletes files from the source bucket after successful export
|
|
12096
|
+
Celigo automatically deletes files from the source bucket after successful export,
|
|
12097
|
+
unless `file.skipDelete` is true. Moving them to a backup bucket also takes them out of
|
|
12098
|
+
the source bucket, so when another system still reads them there, set
|
|
12099
|
+
`file.skipDelete: true` instead.
|
|
12060
12100
|
The backup bucket is for users who want to maintain their own independent backup
|
|
12061
12101
|
of exported files.
|
|
12062
12102
|
Celigo also maintains its own backup of processed files for a set period of time.
|
|
@@ -15914,7 +15954,9 @@ components:
|
|
|
15914
15954
|
`NetSuiteExport` and `NetSuiteHTTPExport` both need a `netsuite` connection).
|
|
15915
15955
|
Server-required unless `type` is `webhook` or `simple` (those receive data instead of
|
|
15916
15956
|
fetching it) or `adaptorType` is `TopicExport` (Event Streams listeners are delivered
|
|
15917
|
-
by the platform itself and must omit it).
|
|
15957
|
+
by the platform itself and must omit it). A `WebhookExport` saved without `type: webhook`
|
|
15958
|
+
is refused with 422 "_connectionId is required unless type is [webhook|simple]"; a webhook
|
|
15959
|
+
export that does carry a connection saves and updates normally.
|
|
15918
15960
|
examples:
|
|
15919
15961
|
- 60a2c4e6f321d800129a1a3c
|
|
15920
15962
|
adaptorType:
|
|
@@ -16035,9 +16077,11 @@ components:
|
|
|
16035
16077
|
description: |-
|
|
16036
16078
|
Operational mode of the export. When omitted, the export retrieves all available records —
|
|
16037
16079
|
the standard batch mode, which is also the right choice for parsing structured files
|
|
16038
|
-
(CSV/XML/JSON) into records.
|
|
16039
|
-
|
|
16040
|
-
|
|
16080
|
+
(CSV/XML/JSON) into records. Most modes take their matching configuration object (e.g. a
|
|
16081
|
+
`webhook` object when `type` is `webhook`); an HTTP or SQL `delta` export saves without a
|
|
16082
|
+
`delta` object because its request carries `{{lastExportDateTime}}`, though
|
|
16083
|
+
`delta.startDate` sets its first window. Use `blob` only to transfer raw files without
|
|
16084
|
+
parsing their contents.
|
|
16041
16085
|
x-celigo-ai-guidance:
|
|
16042
16086
|
- |-
|
|
16043
16087
|
## HOW TO PICK THE TYPE VALUE
|
|
@@ -17332,16 +17376,22 @@ components:
|
|
|
17332
17376
|
properties:
|
|
17333
17377
|
postData:
|
|
17334
17378
|
type: object
|
|
17335
|
-
description:
|
|
17379
|
+
description: |-
|
|
17380
|
+
Delta window for this preview. Without it, a document preview renders
|
|
17381
|
+
`{{lastExportDateTime}}` and `{{currentExportDateTime}}` as empty strings (observed on
|
|
17382
|
+
HTTP and RDBMS exports), so the preview doesn't reflect the export's delta window. On an
|
|
17383
|
+
HTTP export these strings are substituted exactly as given; other adaptors weren't
|
|
17384
|
+
checked. On an export without `delta.dateFormat`, a real run renders both as ISO 8601 UTC
|
|
17385
|
+
with milliseconds, so pass them in that form to preview the request such a run would send.
|
|
17336
17386
|
properties:
|
|
17337
17387
|
currentExportDateTime:
|
|
17338
17388
|
type: string
|
|
17339
|
-
description:
|
|
17340
|
-
example: '
|
|
17389
|
+
description: Value `{{currentExportDateTime}}` renders as in this preview (the window's end).
|
|
17390
|
+
example: '2026-01-16T00:00:00.000Z'
|
|
17341
17391
|
lastExportDateTime:
|
|
17342
17392
|
type: string
|
|
17343
|
-
description:
|
|
17344
|
-
example: '
|
|
17393
|
+
description: Value `{{lastExportDateTime}}` renders as in this preview (the window's start).
|
|
17394
|
+
example: '2026-01-15T00:00:00.000Z'
|
|
17345
17395
|
PreviewResponse:
|
|
17346
17396
|
type: object
|
|
17347
17397
|
description: Response body for export data preview
|
package/dist/flow.yml
CHANGED
|
@@ -824,9 +824,10 @@ paths:
|
|
|
824
824
|
|
|
825
825
|
The request body is optional. When omitted, the flow runs with its configured schedule behavior —
|
|
826
826
|
for delta flows this means using the current `lastExportDateTime` as the lower bound. Pass
|
|
827
|
-
`export.startDate` / `export.endDate` to set this run's delta window
|
|
828
|
-
`
|
|
829
|
-
|
|
827
|
+
`export.startDate` / `export.endDate` to set this run's delta window (they render as
|
|
828
|
+
`{{lastExportDateTime}}` / `{{currentExportDateTime}}`). On success, when `export.endDate` is
|
|
829
|
+
sent, the flow's checkpoint is left at that value, so an end date in the past moves the next
|
|
830
|
+
run's lower bound back. Pass `_exportIds` to limit execution to a subset of the flow's
|
|
830
831
|
generators (useful for flows with many independent sources).
|
|
831
832
|
|
|
832
833
|
Flow-level preconditions enforced by the platform:
|
|
@@ -838,7 +839,9 @@ paths:
|
|
|
838
839
|
`_jobId` with the execution-log endpoints. For delta backfills, prefer passing explicit
|
|
839
840
|
`startDate`/`endDate` over editing the export's `lastExportDateTime`, and read the checkpoint
|
|
840
841
|
first (`GET /v1/flows/{_id}/lastExportDateTime`): the override doesn't stay with one run, since
|
|
841
|
-
a successful run that sends `endDate` leaves the checkpoint there.
|
|
842
|
+
a successful run that sends `endDate` leaves the checkpoint there. Runs that export nothing
|
|
843
|
+
leave the checkpoint alone, so a stretch of empty runs needs no backfill once its cause is
|
|
844
|
+
fixed. A flow runs one instance at a time: a run requested while another
|
|
842
845
|
instance is queued or running is refused with `409 job_already_queued` ("Another instance
|
|
843
846
|
for this flow is already queued or running"), and a run-next-flow trigger that arrives in
|
|
844
847
|
that state is dropped rather than queued.
|
|
@@ -862,7 +865,7 @@ paths:
|
|
|
862
865
|
summary: Default run (use configured delta window)
|
|
863
866
|
value: {}
|
|
864
867
|
delta_window:
|
|
865
|
-
summary:
|
|
868
|
+
summary: Set this run's delta window (the checkpoint follows endDate)
|
|
866
869
|
value:
|
|
867
870
|
export:
|
|
868
871
|
startDate: '2026-04-01T00:00:00Z'
|
|
@@ -1082,7 +1085,9 @@ paths:
|
|
|
1082
1085
|
generators (exports) in the flow. This value is what gets substituted into the `{{lastExportDateTime}}`
|
|
1083
1086
|
Handlebars variable on the next delta run of any export in the flow.
|
|
1084
1087
|
|
|
1085
|
-
|
|
1088
|
+
A run moves the checkpoint to its window end (`{{currentExportDateTime}}`) only when it exports
|
|
1089
|
+
records. A run that exports nothing leaves it where it was, so after a stretch of empty runs the
|
|
1090
|
+
next run that finds records reaches back to the last run that exported any. On success, when
|
|
1086
1091
|
`POST /v1/flows/{_id}/run` sends `export.endDate`, the checkpoint is left at that value, so an end
|
|
1087
1092
|
date in the past moves the next run's lower bound back.
|
|
1088
1093
|
|
|
@@ -6302,7 +6307,8 @@ components:
|
|
|
6302
6307
|
type: object
|
|
6303
6308
|
description: |-
|
|
6304
6309
|
Delta-window override. When present, the run uses these dates in place of the flow's own
|
|
6305
|
-
`lastExportDateTime` / `currentExportDateTime`. Both fields are optional individually.
|
|
6310
|
+
`lastExportDateTime` / `currentExportDateTime`. Both fields are optional individually. The
|
|
6311
|
+
override outlasts the run: a run that exports records leaves the flow's checkpoint at `endDate`.
|
|
6306
6312
|
properties:
|
|
6307
6313
|
startDate:
|
|
6308
6314
|
type: string
|
|
@@ -6313,7 +6319,10 @@ components:
|
|
|
6313
6319
|
endDate:
|
|
6314
6320
|
type: string
|
|
6315
6321
|
format: date-time
|
|
6316
|
-
description:
|
|
6322
|
+
description: |-
|
|
6323
|
+
ISO-8601 end of the delta window (maps to `currentExportDateTime`). When the run exports
|
|
6324
|
+
records, the flow's checkpoint is left here, even when it is in the past, so the next run
|
|
6325
|
+
starts from it.
|
|
6317
6326
|
examples:
|
|
6318
6327
|
- '2026-01-15T23:59:59.000Z'
|
|
6319
6328
|
_exportIds:
|