@celigo/api-specs 0.2.149 → 0.2.151
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 +11 -3
- package/dist/api.yml +80 -37
- package/dist/connection.yml +17 -4
- package/dist/enduser.yml +17 -4
- package/dist/export.yml +98 -56
- package/dist/filedefinition.yml +35 -4
- package/dist/flow.yml +17 -8
- package/dist/guardrail.yml +75 -24
- package/dist/import.yml +42 -22
- package/dist/integration.yml +9 -3
- package/dist/mcp-server.yml +17 -4
- package/dist/template.yml +16 -5
- package/dist/tool.yml +204 -105
- package/dist/user.yml +8 -1
- package/package.json +1 -1
- package/schemas.json +3 -1
package/dist/tool.yml
CHANGED
|
@@ -1124,7 +1124,13 @@ paths:
|
|
|
1124
1124
|
properties:
|
|
1125
1125
|
connections:
|
|
1126
1126
|
type: array
|
|
1127
|
-
description:
|
|
1127
|
+
description: |-
|
|
1128
|
+
Connection bindings, one per connection the Tool's steps reference. Name the
|
|
1129
|
+
connection to run with in `_id`: a binding with only `_abstractId`, or with
|
|
1130
|
+
the connection in `_connectionId` instead, is refused with 422 "Invalid
|
|
1131
|
+
override at overrides.connections[0]. Connection override must include at
|
|
1132
|
+
least one of: _id, _borrowConcurrencyFromConnectionId,
|
|
1133
|
+
requiresEndUserCredentials."
|
|
1128
1134
|
items:
|
|
1129
1135
|
type: object
|
|
1130
1136
|
required:
|
|
@@ -1224,9 +1230,12 @@ paths:
|
|
|
1224
1230
|
$ref: '#/components/responses/404-not-found'
|
|
1225
1231
|
'422':
|
|
1226
1232
|
description: |-
|
|
1227
|
-
A step failed, or the Tool was refused before any step ran
|
|
1228
|
-
|
|
1229
|
-
`
|
|
1233
|
+
A step failed, or the Tool was refused before any step ran: a connection binding is
|
|
1234
|
+
missing (`connection_not_overridden`) or has no `_id`, or its branches don't all merge
|
|
1235
|
+
back (`tool_dangling_branch`). A failed step answers 422 even when it has
|
|
1236
|
+
`proceedOnFailure: true`: the later steps still run, but the response carries the error,
|
|
1237
|
+
not the output. Either way the response includes `invocationId` when logging is active,
|
|
1238
|
+
so the run can be opened in the run history.
|
|
1230
1239
|
content:
|
|
1231
1240
|
application/json:
|
|
1232
1241
|
schema:
|
|
@@ -1256,6 +1265,11 @@ paths:
|
|
|
1256
1265
|
code: connection_not_overridden
|
|
1257
1266
|
message: 'Missing connection overrides. The following connection IDs must be overridden: 6ab1f5657b3d01a9084253a5.'
|
|
1258
1267
|
invocationId: 6ab1f5877cd5cdd66da1cc8b
|
|
1268
|
+
binding_without_id:
|
|
1269
|
+
summary: A connection binding without `_id`
|
|
1270
|
+
value:
|
|
1271
|
+
errors:
|
|
1272
|
+
- message: 'Invalid override at overrides.connections[0]. Connection override must include at least one of: _id, _borrowConcurrencyFromConnectionId, requiresEndUserCredentials.'
|
|
1259
1273
|
/v1/tools/{_id}/invocations:
|
|
1260
1274
|
get:
|
|
1261
1275
|
x-internal: false
|
|
@@ -2399,10 +2413,16 @@ paths:
|
|
|
2399
2413
|
`GET /v1/tools/{_id}/test/run/{runId}/{_stepId}` to inspect stage-by-stage
|
|
2400
2414
|
results. The run id for follow-up calls is the `flowJob._id` value.
|
|
2401
2415
|
|
|
2402
|
-
A test run is not free of outside calls:
|
|
2403
|
-
|
|
2404
|
-
(
|
|
2405
|
-
|
|
2416
|
+
A test run is not free of outside calls: a lookup export with no saved `mockOutput` calls
|
|
2417
|
+
its source live, and the run then saves that response on the export as its `mockOutput`
|
|
2418
|
+
(the export's `lastModified` changes). Every later test run that uses the export, from any
|
|
2419
|
+
Tool or API and whatever its input, answers that lookup from the saved `mockOutput` instead
|
|
2420
|
+
of calling the source: the lookup's `request` stage shows the request rendered from the new
|
|
2421
|
+
input, and its `response` stage holds the saved records. Remove `mockOutput` from the export
|
|
2422
|
+
to call the source again. `POST /v1/tools/{_id}/invoke` neither reads nor writes it. Imports
|
|
2423
|
+
never send; each returns its saved `mockResponse`, or a placeholder response when none is
|
|
2424
|
+
saved (see `mockResponse` on imports). A second test run started while one is still running
|
|
2425
|
+
is refused with `test_run_not_allowed`.
|
|
2406
2426
|
|
|
2407
2427
|
Test runs are a separate, short-lived history from normal runs — capture
|
|
2408
2428
|
any follow-up step or log details soon after the run completes.
|
|
@@ -6373,10 +6393,9 @@ components:
|
|
|
6373
6393
|
mockInput:
|
|
6374
6394
|
type: object
|
|
6375
6395
|
description: |
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
without requiring live data. Maximum size: 1MB.
|
|
6396
|
+
Sample input saved with the tool. `POST /v1/tools/{_id}/test/run` doesn't read it:
|
|
6397
|
+
send it as that call's `input`, or the run starts from an empty record. Maximum
|
|
6398
|
+
size: 1MB.
|
|
6380
6399
|
additionalProperties: true
|
|
6381
6400
|
Output:
|
|
6382
6401
|
type: object
|
|
@@ -6720,16 +6739,19 @@ components:
|
|
|
6720
6739
|
items: {}
|
|
6721
6740
|
examples:
|
|
6722
6741
|
- - equals
|
|
6723
|
-
- -
|
|
6724
|
-
-
|
|
6742
|
+
- - string
|
|
6743
|
+
- - extract
|
|
6744
|
+
- customerType
|
|
6725
6745
|
- premium
|
|
6726
6746
|
- - and
|
|
6727
|
-
- -
|
|
6728
|
-
- -
|
|
6729
|
-
-
|
|
6730
|
-
|
|
6731
|
-
|
|
6732
|
-
|
|
6747
|
+
- - notempty
|
|
6748
|
+
- - string
|
|
6749
|
+
- - extract
|
|
6750
|
+
- orderId
|
|
6751
|
+
- - greaterthan
|
|
6752
|
+
- - number
|
|
6753
|
+
- - extract
|
|
6754
|
+
- amount
|
|
6733
6755
|
- 1000
|
|
6734
6756
|
nextRouterId:
|
|
6735
6757
|
type: string
|
|
@@ -6780,9 +6802,11 @@ components:
|
|
|
6780
6802
|
- 60a2c4e6f321d800129a1a3c
|
|
6781
6803
|
proceedOnFailure:
|
|
6782
6804
|
type: boolean
|
|
6783
|
-
description:
|
|
6784
|
-
|
|
6785
|
-
processor fails.
|
|
6805
|
+
description: |-
|
|
6806
|
+
When true, the later steps and the output stage still run after this
|
|
6807
|
+
processor fails; when false, they're skipped. Either way a direct
|
|
6808
|
+
`POST /v1/tools/{_id}/invoke` answers 422 with the failed step's error,
|
|
6809
|
+
without the output.
|
|
6786
6810
|
setupInProgress:
|
|
6787
6811
|
type: boolean
|
|
6788
6812
|
description: |
|
|
@@ -8519,7 +8543,12 @@ components:
|
|
|
8519
8543
|
type: boolean
|
|
8520
8544
|
description: |
|
|
8521
8545
|
When true, uses iClient-managed OAuth credentials (clientId/clientSecret)
|
|
8522
|
-
instead of the values in this configuration.
|
|
8546
|
+
instead of the values in this configuration. The iClient is the connection's
|
|
8547
|
+
`_iClientId` — on an HTTP connection `http._iClientId`, beside `auth`, not inside it —
|
|
8548
|
+
and it also supplies the grant type and the authorization and token endpoints, so a
|
|
8549
|
+
create needs only `auth.type: "oauth"`, `auth.oauth.useIClientFields: true` and the
|
|
8550
|
+
iClient id. The connection holds no tokens until a person completes the authorization
|
|
8551
|
+
in a browser.
|
|
8523
8552
|
oauth1:
|
|
8524
8553
|
type: object
|
|
8525
8554
|
description: |-
|
|
@@ -8648,7 +8677,7 @@ components:
|
|
|
8648
8677
|
x-celigo-ai-guidance:
|
|
8649
8678
|
- |-
|
|
8650
8679
|
## OAUTH 2.0 GRANT TYPES
|
|
8651
|
-
- "
|
|
8680
|
+
- "authorizecode" — Authorization Code flow (browser-based user consent).
|
|
8652
8681
|
Requires authURI, tokenURI, and user authorization via browser.
|
|
8653
8682
|
- "clientcredentials" — Client Credentials flow (server-to-server, no user).
|
|
8654
8683
|
Requires tokenURI, clientId, clientSecret.
|
|
@@ -9239,7 +9268,11 @@ components:
|
|
|
9239
9268
|
description: |
|
|
9240
9269
|
The API key or bearer token value (encrypted at rest); returned masked as `"******"`.
|
|
9241
9270
|
On update, the mask sent back keeps the stored token; a new value replaces it.
|
|
9242
|
-
Required unless automatic token refresh is configured
|
|
9271
|
+
Required unless automatic token refresh is configured: a token block without a
|
|
9272
|
+
token must carry a `refreshMethod`, so a create or update that sends neither fails
|
|
9273
|
+
with 422 `Expected field: refreshMethod to be present.` To create a static-token
|
|
9274
|
+
connection before the real token is available, send a placeholder value and
|
|
9275
|
+
replace it later.
|
|
9243
9276
|
examples:
|
|
9244
9277
|
- my-api-token-EXAMPLE
|
|
9245
9278
|
location:
|
|
@@ -11445,7 +11478,11 @@ components:
|
|
|
11445
11478
|
description: |
|
|
11446
11479
|
The API key or bearer token value (encrypted at rest); returned masked as `"******"`.
|
|
11447
11480
|
On update, the mask sent back keeps the stored token; a new value replaces it.
|
|
11448
|
-
Required unless automatic token refresh is configured
|
|
11481
|
+
Required unless automatic token refresh is configured: a token block without a
|
|
11482
|
+
token must carry a `refreshMethod`, so a create or update that sends neither fails
|
|
11483
|
+
with 422 `Expected field: refreshMethod to be present.` To create a static-token
|
|
11484
|
+
connection before the real token is available, send a placeholder value and
|
|
11485
|
+
replace it later.
|
|
11449
11486
|
examples:
|
|
11450
11487
|
- my-api-token-EXAMPLE
|
|
11451
11488
|
location:
|
|
@@ -22356,12 +22393,17 @@ components:
|
|
|
22356
22393
|
run at `default` regardless of what's set here.
|
|
22357
22394
|
output:
|
|
22358
22395
|
type: object
|
|
22359
|
-
description:
|
|
22396
|
+
description: |-
|
|
22397
|
+
Output format configuration. A guardrail stores `format` but doesn't use it: the
|
|
22398
|
+
request to the model always carries the guardrail's own `validation_result` JSON
|
|
22399
|
+
schema (`flagged`, `reasoning`, `confidence`), and the result returns `flagged` and
|
|
22400
|
+
`reasoning` whatever `format` holds.
|
|
22360
22401
|
properties:
|
|
22361
22402
|
format:
|
|
22362
22403
|
type: object
|
|
22363
22404
|
description: |
|
|
22364
|
-
|
|
22405
|
+
Stored output structure. The request to the model uses the guardrail's own
|
|
22406
|
+
verdict schema instead (see `output`).
|
|
22365
22407
|
properties:
|
|
22366
22408
|
type:
|
|
22367
22409
|
type: string
|
|
@@ -22370,10 +22412,10 @@ components:
|
|
|
22370
22412
|
- json_schema
|
|
22371
22413
|
- blob
|
|
22372
22414
|
x-enumDescriptions:
|
|
22373
|
-
text:
|
|
22374
|
-
json_schema:
|
|
22375
|
-
blob:
|
|
22376
|
-
description: Output format type.
|
|
22415
|
+
text: Stored format type; the model request still uses the guardrail's verdict schema.
|
|
22416
|
+
json_schema: A stored JSON schema (`jsonSchema`); the model request still uses the guardrail's verdict schema.
|
|
22417
|
+
blob: Stored format type; the model request still uses the guardrail's verdict schema.
|
|
22418
|
+
description: Output format type, as stored.
|
|
22377
22419
|
schemaMode:
|
|
22378
22420
|
type: string
|
|
22379
22421
|
enum:
|
|
@@ -22383,9 +22425,9 @@ components:
|
|
|
22383
22425
|
manual: The schema editor opens `jsonSchema` in the visual field-by-field view
|
|
22384
22426
|
json: The schema editor opens `jsonSchema` in the raw JSON view
|
|
22385
22427
|
description: |-
|
|
22386
|
-
Which view a schema editor opens `jsonSchema` in
|
|
22387
|
-
|
|
22388
|
-
|
|
22428
|
+
Which view a schema editor opens `jsonSchema` in. Stored and echoed on
|
|
22429
|
+
guardrails for parity with the AI-agent format block — the guardrail form
|
|
22430
|
+
does not set it today, and neither view changes the model request.
|
|
22389
22431
|
x-celigo-ai-guidance:
|
|
22390
22432
|
- |-
|
|
22391
22433
|
Resend the stored value on every update — a full PUT that omits the field
|
|
@@ -22397,18 +22439,20 @@ components:
|
|
|
22397
22439
|
x-celigo-ui-override: Required by the AI agent form when output format type is json_schema. Encoded here to mirror the form so builders produce connectable configurations.
|
|
22398
22440
|
strict:
|
|
22399
22441
|
type: boolean
|
|
22400
|
-
description:
|
|
22442
|
+
description: Stored strict-validation flag for `jsonSchema`. A guardrail's model request uses its own verdict schema, so this doesn't apply there.
|
|
22401
22443
|
x-celigo-ai-guidance:
|
|
22402
|
-
-
|
|
22444
|
+
- Stored only on a guardrail; it doesn't change the guardrail's verdict.
|
|
22403
22445
|
jsonSchema:
|
|
22404
22446
|
type: object
|
|
22405
22447
|
description: |
|
|
22406
|
-
JSON Schema
|
|
22448
|
+
Stored JSON Schema. Required when `format.type` is "json_schema". A guardrail
|
|
22449
|
+
doesn't send it to the model; the request carries the `validation_result`
|
|
22450
|
+
verdict schema instead.
|
|
22407
22451
|
x-celigo-ui-override: Required by the AI agent form when output format type is json_schema. Encoded here to mirror the form so builders produce connectable configurations.
|
|
22408
22452
|
properties:
|
|
22409
22453
|
type:
|
|
22410
22454
|
type: string
|
|
22411
|
-
description: Root
|
|
22455
|
+
description: Root type of the stored JSON Schema.
|
|
22412
22456
|
enum:
|
|
22413
22457
|
- object
|
|
22414
22458
|
- array
|
|
@@ -22426,15 +22470,15 @@ components:
|
|
|
22426
22470
|
properties:
|
|
22427
22471
|
type: object
|
|
22428
22472
|
additionalProperties: true
|
|
22429
|
-
description:
|
|
22473
|
+
description: Field definitions in the stored JSON Schema.
|
|
22430
22474
|
required:
|
|
22431
22475
|
type: array
|
|
22432
|
-
description: Property names the
|
|
22476
|
+
description: Property names the stored JSON Schema marks as required.
|
|
22433
22477
|
items:
|
|
22434
22478
|
type: string
|
|
22435
22479
|
additionalproperties:
|
|
22436
22480
|
type: boolean
|
|
22437
|
-
description:
|
|
22481
|
+
description: Whether the stored JSON Schema allows properties beyond those in `properties`.
|
|
22438
22482
|
schema:
|
|
22439
22483
|
type: object
|
|
22440
22484
|
readOnly: true
|
|
@@ -23242,10 +23286,15 @@ components:
|
|
|
23242
23286
|
type: boolean
|
|
23243
23287
|
default: false
|
|
23244
23288
|
description: |-
|
|
23245
|
-
When true,
|
|
23246
|
-
|
|
23289
|
+
When true, the result also carries `masked`: the evaluated input with each detected
|
|
23290
|
+
value replaced by asterisks. The record itself is unchanged. With whole-record input
|
|
23291
|
+
(no `mapping`, and no top-level `text` field on the record), `masked` is the record
|
|
23292
|
+
serialized as one JSON string. When false, PII is flagged only.
|
|
23247
23293
|
x-celigo-ai-guidance:
|
|
23248
|
-
-
|
|
23294
|
+
- |-
|
|
23295
|
+
Masking doesn't rewrite the record. To pass masked text on, select the field as the
|
|
23296
|
+
`text` input (`mapping`) and response-map `masked` back onto that field on the
|
|
23297
|
+
guardrail's flow step (`{"extract": "masked", "generate": "<field>"}`).
|
|
23249
23298
|
moderation:
|
|
23250
23299
|
type: object
|
|
23251
23300
|
required:
|
|
@@ -23880,19 +23929,27 @@ components:
|
|
|
23880
23929
|
properties:
|
|
23881
23930
|
function:
|
|
23882
23931
|
type: string
|
|
23883
|
-
description:
|
|
23932
|
+
description: |-
|
|
23933
|
+
Function to invoke: one in the script named by `_scriptId`, or one the code deployed on
|
|
23934
|
+
the stack named by `_stackId` exposes.
|
|
23884
23935
|
examples:
|
|
23885
23936
|
- transformRecords
|
|
23886
23937
|
_scriptId:
|
|
23887
23938
|
type: string
|
|
23888
23939
|
format: objectId
|
|
23889
23940
|
x-celigo-refModel: scripts
|
|
23890
|
-
description: Script containing the hook function named in `function`.
|
|
23941
|
+
description: Script containing the hook function named in `function`. Send this or `_stackId`, not both.
|
|
23891
23942
|
_stackId:
|
|
23892
23943
|
type: string
|
|
23893
23944
|
format: objectId
|
|
23894
23945
|
x-celigo-refModel: stacks
|
|
23895
|
-
description:
|
|
23946
|
+
description: |-
|
|
23947
|
+
Stack that hosts the hook logic, used instead of a script for stack-based deployments.
|
|
23948
|
+
The API doesn't enforce the either/or: a save carrying both `_scriptId` and `_stackId`
|
|
23949
|
+
answers 200 and stores both, and the script and the stack then each list the step as a
|
|
23950
|
+
dependent.
|
|
23951
|
+
x-celigo-ai-guidance:
|
|
23952
|
+
- When moving a hook onto a stack, remove `_scriptId` and set `function` to the stack's function in the same update.
|
|
23896
23953
|
configuration:
|
|
23897
23954
|
type:
|
|
23898
23955
|
- object
|
|
@@ -25840,36 +25897,40 @@ components:
|
|
|
25840
25897
|
Delta:
|
|
25841
25898
|
type: object
|
|
25842
25899
|
description: |-
|
|
25843
|
-
Configures incremental exports that retrieve only records created or modified since the
|
|
25844
|
-
|
|
25845
|
-
|
|
25846
|
-
|
|
25847
|
-
|
|
25848
|
-
{{lastExportDateTime}} is the run's own timestamp
|
|
25849
|
-
|
|
25850
|
-
|
|
25851
|
-
|
|
25900
|
+
Configures incremental exports that retrieve only records created or modified since the
|
|
25901
|
+
flow's delta checkpoint; omit it for other export types. Adaptors that compare a record field
|
|
25902
|
+
name it in `dateField`, while HTTP exports and SQL queries carry {{lastExportDateTime}} in the
|
|
25903
|
+
request and save without a delta object. Each run's window runs from {{lastExportDateTime}}
|
|
25904
|
+
(the checkpoint) to {{currentExportDateTime}} (the time the run started). A first run is not a
|
|
25905
|
+
full export: with no `startDate`, its {{lastExportDateTime}} is the run's own timestamp, so it
|
|
25906
|
+
picks up no earlier changes. The checkpoint moves to a run's window end only when the run
|
|
25907
|
+
exports records, so a run that exports nothing leaves it where it was, and after a failed run
|
|
25908
|
+
the next run reuses the last checkpoint. On success, when `POST /v1/flows/{_id}/run` sends
|
|
25909
|
+
`export.endDate`, the flow's checkpoint is left at that value, so an end date in the past
|
|
25910
|
+
moves the next run's lower bound back.
|
|
25852
25911
|
x-celigo-ai-guidance:
|
|
25853
25912
|
- |-
|
|
25854
|
-
|
|
25855
|
-
|
|
25913
|
+
Omit this object for export types other than "delta". An HTTP export with type
|
|
25914
|
+
"delta" saves without it, since the request carries {{lastExportDateTime}}, but
|
|
25915
|
+
set ``startDate`` anyway: without it the first run's window is empty.
|
|
25856
25916
|
Delta exports are designed for efficient synchronization by retrieving only
|
|
25857
25917
|
records that have been created or modified since the last execution.
|
|
25858
25918
|
- |-
|
|
25859
25919
|
## REQUIRED FIELDS
|
|
25860
25920
|
- ``startDate`` -- the initial cutoff timestamp the platform uses on the
|
|
25861
25921
|
first run (and as the floor for ``{{lastExportDateTime}}`` thereafter).
|
|
25862
|
-
|
|
25863
|
-
|
|
25864
|
-
|
|
25865
|
-
delta
|
|
25922
|
+
Without it, a new flow's first run renders ``{{lastExportDateTime}}`` as
|
|
25923
|
+
the run's own time, so the first run exports nothing (verified on HTTP
|
|
25924
|
+
and RDBMS delta exports). Adapter-specific validators (e.g. NetSuite's
|
|
25925
|
+
``transformTwoDotZero``) reject delta configs that omit ``startDate``
|
|
25926
|
+
with ``missing_delta_startDate``, so set it on every delta export.
|
|
25866
25927
|
- |-
|
|
25867
25928
|
## DEFAULT CUTOFF BEHAVIOR (NO USER-SUPPLIED CUTOFF)
|
|
25868
25929
|
When the user prompt does not specify an explicit cutoff timestamp,
|
|
25869
25930
|
default ``startDate`` to **today at midnight UTC** in ISO-8601 format
|
|
25870
25931
|
(e.g. ``"2026-05-14T00:00:00.000Z"``). This means the first run picks
|
|
25871
25932
|
up records changed today; subsequent runs use the platform-managed
|
|
25872
|
-
``{{lastExportDateTime}}`` (the last
|
|
25933
|
+
``{{lastExportDateTime}}`` (the end of the last run that exported records).
|
|
25873
25934
|
|
|
25874
25935
|
- First run: filters records changed since ``startDate``.
|
|
25875
25936
|
- Subsequent runs: uses ``{{lastExportDateTime}}`` as the lower bound;
|
|
@@ -25882,18 +25943,28 @@ components:
|
|
|
25882
25943
|
- For HTTP exports: Use {{lastExportDateTime}} variable in relativeURI or body
|
|
25883
25944
|
- For specific application adapters: Use dateField to specify timestamp fields
|
|
25884
25945
|
|
|
25885
|
-
2. The system automatically maintains the
|
|
25946
|
+
2. The system automatically maintains the checkpoint
|
|
25886
25947
|
- No need to store or manage timestamps in your own code
|
|
25887
25948
|
- A first run without ``startDate`` fetches nothing older than the run itself
|
|
25888
|
-
-
|
|
25949
|
+
- A run that exports records moves the checkpoint to its window end
|
|
25950
|
+
({{currentExportDateTime}}), where the next run starts
|
|
25951
|
+
- Use {{lastExportDateTime}} as the lower bound; {{currentExportDateTime}} as the
|
|
25952
|
+
lower bound asks for records changed after the run started, so every run exports nothing
|
|
25889
25953
|
|
|
25890
25954
|
3. Error handling and recovery:
|
|
25891
25955
|
- If an export fails, the next run uses the last successful timestamp
|
|
25892
25956
|
- Records created/modified during a failed run will be included in the next run
|
|
25957
|
+
- A run that exports nothing leaves the checkpoint where it was, so after a stretch of
|
|
25958
|
+
empty runs the next run that finds records reaches back to the last run that exported
|
|
25959
|
+
any: once the cause is fixed, no backfill run is needed
|
|
25960
|
+
- A run given its own window (export.startDate / export.endDate on
|
|
25961
|
+
POST /v1/flows/{_id}/run) that exports records leaves the checkpoint at endDate,
|
|
25962
|
+
even a past one, so the next run re-reads everything after it
|
|
25893
25963
|
- The lagOffset field can be used to handle edge cases
|
|
25894
25964
|
- |-
|
|
25895
|
-
|
|
25896
|
-
|
|
25965
|
+
Omit this object for export types other than "delta". An HTTP export with type
|
|
25966
|
+
"delta" saves without it, since the request carries {{lastExportDateTime}}, but
|
|
25967
|
+
set ``startDate`` anyway: without it the first run's window is empty.
|
|
25897
25968
|
Delta exports are designed for efficient synchronization by retrieving only
|
|
25898
25969
|
records that have been created or modified since the last execution.
|
|
25899
25970
|
properties:
|
|
@@ -25909,8 +25980,9 @@ components:
|
|
|
25909
25980
|
If the flow's own downstream steps update the exported records, add export criteria
|
|
25910
25981
|
that exclude already-processed records (or use a creation-time field for process-once
|
|
25911
25982
|
flows) so each run doesn't re-export what the previous run wrote. Not supported on
|
|
25912
|
-
HTTP exports: embed {{lastExportDateTime}} in the relativeURI or body instead;
|
|
25913
|
-
|
|
25983
|
+
HTTP exports: embed {{lastExportDateTime}} in the relativeURI or body instead; an HTTP
|
|
25984
|
+
export saved with dateField is refused with 422 "Unsupported dateField in
|
|
25985
|
+
export.delta.dateField". For Salesforce this
|
|
25914
25986
|
field is required and defaults to the standard timestamp fields (LastModifiedDate,
|
|
25915
25987
|
CreatedDate, SystemModstamp, LastActivityDate, LastViewedDate, LastReferencedDate) plus
|
|
25916
25988
|
any custom timestamp fields.
|
|
@@ -25949,7 +26021,8 @@ components:
|
|
|
25949
26021
|
###CRITICAL ADAPTOR-SPECIFIC INSTRUCTION:
|
|
25950
26022
|
- The adaptor type is HTTP. For HTTP exports, the "dateField" property MUST NOT be included in the delta configuration.
|
|
25951
26023
|
- HTTP exports use the {{lastExportDateTime}} variable directly in the relativeURI or body instead of dateField.
|
|
25952
|
-
- DO NOT include "dateField" in your response. If you include it, the
|
|
26024
|
+
- DO NOT include "dateField" in your response. If you include it, the save is refused with
|
|
26025
|
+
422 "Unsupported dateField in export.delta.dateField".
|
|
25953
26026
|
|
|
25954
26027
|
Example HTTP query with implicit delta:
|
|
25955
26028
|
```
|
|
@@ -26009,10 +26082,10 @@ components:
|
|
|
26009
26082
|
dateFormat:
|
|
26010
26083
|
type: string
|
|
26011
26084
|
description: |-
|
|
26012
|
-
Moment.js format string applied to
|
|
26013
|
-
|
|
26014
|
-
|
|
26015
|
-
widening the filter window.
|
|
26085
|
+
Moment.js format string applied to both delta variables, {{lastExportDateTime}} and
|
|
26086
|
+
{{currentExportDateTime}}, in HTTP requests and SQL queries alike. Leave unset unless the
|
|
26087
|
+
source system requires a non-ISO8601 format; by default both render as ISO 8601 UTC with
|
|
26088
|
+
milliseconds. Date-only formats truncate the time portion, widening the filter window.
|
|
26016
26089
|
x-celigo-ai-guidance:
|
|
26017
26090
|
- Defines the date/time format expected by the source system's API.
|
|
26018
26091
|
- |-
|
|
@@ -26023,7 +26096,8 @@ components:
|
|
|
26023
26096
|
- OPTIONAL: Only needed when the source system doesn't support ISO8601
|
|
26024
26097
|
- Default: ISO8601 format (YYYY-MM-DDTHH:mm:ss.sssZ)
|
|
26025
26098
|
- Uses Moment.js formatting tokens
|
|
26026
|
-
-
|
|
26099
|
+
- Formats both {{lastExportDateTime}} and {{currentExportDateTime}}, in HTTP requests and in
|
|
26100
|
+
SQL queries (an RDBMS delta query receives the formatted value as a quoted literal)
|
|
26027
26101
|
- |-
|
|
26028
26102
|
## IMPLEMENTATION PATTERNS
|
|
26029
26103
|
|
|
@@ -26107,13 +26181,15 @@ components:
|
|
|
26107
26181
|
format: date-time
|
|
26108
26182
|
description: |-
|
|
26109
26183
|
Lower-bound cutoff for the first run. Omitting it doesn't export history: the first run
|
|
26110
|
-
then starts at its own timestamp. Set it to the earliest change the first
|
|
26111
|
-
up.
|
|
26184
|
+
then starts at its own timestamp, an empty window. Set it to the earliest change the first
|
|
26185
|
+
run should pick up. Later runs start from the flow's checkpoint, the end of the last run
|
|
26186
|
+
that exported records.
|
|
26112
26187
|
x-celigo-ai-guidance:
|
|
26113
26188
|
- |-
|
|
26114
26189
|
Initial cutoff timestamp for the first export run, in ISO-8601 UTC format (e.g.
|
|
26115
26190
|
``"2026-05-14T00:00:00.000Z"``).
|
|
26116
|
-
|
|
26191
|
+
Set it on every delta export: without it the first run's window is empty (verified
|
|
26192
|
+
on HTTP and RDBMS delta exports), and adapter-specific validators reject delta
|
|
26117
26193
|
configs without it (e.g.
|
|
26118
26194
|
NetSuite returns ``missing_delta_startDate`` from the ``transformTwoDotZero`` processor).
|
|
26119
26195
|
- |-
|
|
@@ -26125,10 +26201,11 @@ components:
|
|
|
26125
26201
|
flow is being authored.
|
|
26126
26202
|
- |-
|
|
26127
26203
|
## SUBSEQUENT RUNS
|
|
26128
|
-
After the first
|
|
26129
|
-
|
|
26130
|
-
|
|
26131
|
-
|
|
26204
|
+
After the first run that exports records, the platform keeps the
|
|
26205
|
+
flow's checkpoint at the end of the last run that exported records
|
|
26206
|
+
and exposes it as ``{{lastExportDateTime}}``; runs that export
|
|
26207
|
+
nothing leave it unchanged. ``startDate`` becomes the floor used
|
|
26208
|
+
only when the platform timestamp is absent (e.g. after a reset).
|
|
26132
26209
|
- |-
|
|
26133
26210
|
## EXAMPLES
|
|
26134
26211
|
- ``"2026-05-14T00:00:00.000Z"`` -- today at midnight UTC.
|
|
@@ -26137,7 +26214,8 @@ components:
|
|
|
26137
26214
|
- |-
|
|
26138
26215
|
Initial cutoff timestamp for the first export run, in ISO-8601 UTC format (e.g.
|
|
26139
26216
|
``"2026-05-14T00:00:00.000Z"``).
|
|
26140
|
-
|
|
26217
|
+
Set it on every delta export: without it the first run's window is empty (verified
|
|
26218
|
+
on HTTP and RDBMS delta exports), and adapter-specific validators reject delta
|
|
26141
26219
|
configs without it (e.g.
|
|
26142
26220
|
NetSuite returns ``missing_delta_startDate`` from the ``transformTwoDotZero`` processor).
|
|
26143
26221
|
examples:
|
|
@@ -26278,7 +26356,7 @@ components:
|
|
|
26278
26356
|
- exported_to_netsuite
|
|
26279
26357
|
Webhook:
|
|
26280
26358
|
type: object
|
|
26281
|
-
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.
|
|
26359
|
+
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.
|
|
26282
26360
|
x-celigo-ai-guidance:
|
|
26283
26361
|
- Configuration object for real-time event listeners that receive data via incoming HTTP requests.
|
|
26284
26362
|
- |-
|
|
@@ -26652,7 +26730,7 @@ components:
|
|
|
26652
26730
|
- sha1
|
|
26653
26731
|
encoding:
|
|
26654
26732
|
type: string
|
|
26655
|
-
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.
|
|
26733
|
+
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.'
|
|
26656
26734
|
x-celigo-ai-guidance:
|
|
26657
26735
|
- Specifies the encoding format used for the HMAC signature in webhook requests.
|
|
26658
26736
|
- |-
|
|
@@ -26748,7 +26826,7 @@ components:
|
|
|
26748
26826
|
- 9d1a5c6b3e7d9f2a1c5b8e3aEXAMPLE
|
|
26749
26827
|
header:
|
|
26750
26828
|
type: string
|
|
26751
|
-
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.
|
|
26829
|
+
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.'
|
|
26752
26830
|
x-celigo-ai-guidance:
|
|
26753
26831
|
- Specifies the HTTP header name that contains the signature for HMAC verification.
|
|
26754
26832
|
- |-
|
|
@@ -26794,8 +26872,9 @@ components:
|
|
|
26794
26872
|
|
|
26795
26873
|
- The system will look for this exact header name in incoming requests
|
|
26796
26874
|
- If the header is not found, the request will be rejected with a 401 error
|
|
26797
|
-
- Some platforms
|
|
26798
|
-
|
|
26875
|
+
- Some platforms include a prefix in the header value (e.g., "sha256="). With
|
|
26876
|
+
provider "custom" it is not stripped: a prefixed signature is rejected with a 401,
|
|
26877
|
+
so the sender must send the bare digest
|
|
26799
26878
|
|
|
26800
26879
|
IMPORTANT: This must exactly match the header name used by the webhook sender.
|
|
26801
26880
|
If you're unsure about the correct header name, consult the sender's documentation
|
|
@@ -27870,11 +27949,12 @@ components:
|
|
|
27870
27949
|
- metadata
|
|
27871
27950
|
skipDelete:
|
|
27872
27951
|
type: boolean
|
|
27952
|
+
default: false
|
|
27873
27953
|
description: |-
|
|
27874
27954
|
When true, source files remain on the file server after processing; when false (the
|
|
27875
27955
|
default), files are deleted after successful processing. Files that fail processing are
|
|
27876
27956
|
never deleted, regardless of this setting. Enable retention when files must be processed
|
|
27877
|
-
by other flows or kept for compliance.
|
|
27957
|
+
by other flows or systems, or kept for compliance.
|
|
27878
27958
|
x-celigo-ai-guidance:
|
|
27879
27959
|
- |-
|
|
27880
27960
|
Controls whether source files are retained or deleted after successful processing.
|
|
@@ -28547,8 +28627,10 @@ components:
|
|
|
28547
28627
|
type: string
|
|
28548
28628
|
description: |-
|
|
28549
28629
|
Character sequence separating fields within each row; comma when omitted. Use "\t"
|
|
28550
|
-
for tab-delimited files; European-locale exports often use semicolons.
|
|
28551
|
-
delimiter
|
|
28630
|
+
for tab-delimited files; European-locale exports often use semicolons. A wrong
|
|
28631
|
+
delimiter doesn't fail the parse: with a header row, each row becomes one field named
|
|
28632
|
+
after the whole header line (`{"order_id;sku;qty": "1001;TEE-M;2"}`), so the failure
|
|
28633
|
+
shows up in later steps.
|
|
28552
28634
|
x-celigo-ai-guidance:
|
|
28553
28635
|
- |-
|
|
28554
28636
|
Specifies the character sequence that separates individual fields (columns)
|
|
@@ -33978,19 +34060,25 @@ components:
|
|
|
33978
34060
|
description: |-
|
|
33979
34061
|
Directory on the same server where files are moved after successful export, giving you
|
|
33980
34062
|
an independent backup; if omitted, files are simply deleted from the source directory
|
|
33981
|
-
after successful export (Celigo also keeps its own copy
|
|
33982
|
-
period). Supports static paths or handlebars templates.
|
|
34063
|
+
after successful export unless `file.skipDelete` is true (Celigo also keeps its own copy
|
|
34064
|
+
of processed files for a set period). Supports static paths or handlebars templates.
|
|
33983
34065
|
x-celigo-ai-guidance:
|
|
33984
34066
|
- Optional directory where files are moved before deletion.
|
|
33985
34067
|
- |-
|
|
33986
34068
|
IMPORTANT:
|
|
33987
|
-
Celigo automatically deletes files from the source directory after successful export
|
|
34069
|
+
Celigo automatically deletes files from the source directory after successful export,
|
|
34070
|
+
unless `file.skipDelete` is true. Moving them to a backup directory also takes them out
|
|
34071
|
+
of the source directory, so when another system still reads them there, set
|
|
34072
|
+
`file.skipDelete: true` instead.
|
|
33988
34073
|
The backup directory is for users who want to maintain their own independent
|
|
33989
34074
|
backup of exported files.
|
|
33990
34075
|
Celigo also maintains its own backup of processed files for a set period of time.
|
|
33991
34076
|
- |-
|
|
33992
34077
|
IMPORTANT:
|
|
33993
|
-
Celigo automatically deletes files from the source directory after successful export
|
|
34078
|
+
Celigo automatically deletes files from the source directory after successful export,
|
|
34079
|
+
unless `file.skipDelete` is true. Moving them to a backup directory also takes them out
|
|
34080
|
+
of the source directory, so when another system still reads them there, set
|
|
34081
|
+
`file.skipDelete: true` instead.
|
|
33994
34082
|
The backup directory is for users who want to maintain their own independent
|
|
33995
34083
|
backup of exported files.
|
|
33996
34084
|
Celigo also maintains its own backup of processed files for a set period of time.
|
|
@@ -36462,19 +36550,26 @@ components:
|
|
|
36462
36550
|
description: |-
|
|
36463
36551
|
Bucket in the same region where files are moved after successful export, giving you an
|
|
36464
36552
|
independent backup; if omitted, files are simply deleted from the source bucket after
|
|
36465
|
-
successful export (Celigo also keeps its own copy of
|
|
36466
|
-
The connection's AWS credentials must have
|
|
36553
|
+
successful export unless `file.skipDelete` is true (Celigo also keeps its own copy of
|
|
36554
|
+
processed files for a set period). The connection's AWS credentials must have
|
|
36555
|
+
s3:PutObject permission on this bucket.
|
|
36467
36556
|
x-celigo-ai-guidance:
|
|
36468
36557
|
- Optional destination bucket where files are moved before deletion.
|
|
36469
36558
|
- |-
|
|
36470
36559
|
IMPORTANT:
|
|
36471
|
-
Celigo automatically deletes files from the source bucket after successful export
|
|
36560
|
+
Celigo automatically deletes files from the source bucket after successful export,
|
|
36561
|
+
unless `file.skipDelete` is true. Moving them to a backup bucket also takes them out of
|
|
36562
|
+
the source bucket, so when another system still reads them there, set
|
|
36563
|
+
`file.skipDelete: true` instead.
|
|
36472
36564
|
The backup bucket is for users who want to maintain their own independent backup
|
|
36473
36565
|
of exported files.
|
|
36474
36566
|
Celigo also maintains its own backup of processed files for a set period of time.
|
|
36475
36567
|
- |-
|
|
36476
36568
|
IMPORTANT:
|
|
36477
|
-
Celigo automatically deletes files from the source bucket after successful export
|
|
36569
|
+
Celigo automatically deletes files from the source bucket after successful export,
|
|
36570
|
+
unless `file.skipDelete` is true. Moving them to a backup bucket also takes them out of
|
|
36571
|
+
the source bucket, so when another system still reads them there, set
|
|
36572
|
+
`file.skipDelete: true` instead.
|
|
36478
36573
|
The backup bucket is for users who want to maintain their own independent backup
|
|
36479
36574
|
of exported files.
|
|
36480
36575
|
Celigo also maintains its own backup of processed files for a set period of time.
|
|
@@ -36930,7 +37025,9 @@ components:
|
|
|
36930
37025
|
`NetSuiteExport` and `NetSuiteHTTPExport` both need a `netsuite` connection).
|
|
36931
37026
|
Server-required unless `type` is `webhook` or `simple` (those receive data instead of
|
|
36932
37027
|
fetching it) or `adaptorType` is `TopicExport` (Event Streams listeners are delivered
|
|
36933
|
-
by the platform itself and must omit it).
|
|
37028
|
+
by the platform itself and must omit it). A `WebhookExport` saved without `type: webhook`
|
|
37029
|
+
is refused with 422 "_connectionId is required unless type is [webhook|simple]"; a webhook
|
|
37030
|
+
export that does carry a connection saves and updates normally.
|
|
36934
37031
|
examples:
|
|
36935
37032
|
- 60a2c4e6f321d800129a1a3c
|
|
36936
37033
|
adaptorType:
|
|
@@ -37051,9 +37148,11 @@ components:
|
|
|
37051
37148
|
description: |-
|
|
37052
37149
|
Operational mode of the export. When omitted, the export retrieves all available records —
|
|
37053
37150
|
the standard batch mode, which is also the right choice for parsing structured files
|
|
37054
|
-
(CSV/XML/JSON) into records.
|
|
37055
|
-
|
|
37056
|
-
|
|
37151
|
+
(CSV/XML/JSON) into records. Most modes take their matching configuration object (e.g. a
|
|
37152
|
+
`webhook` object when `type` is `webhook`); an HTTP or SQL `delta` export saves without a
|
|
37153
|
+
`delta` object because its request carries `{{lastExportDateTime}}`, though
|
|
37154
|
+
`delta.startDate` sets its first window. Use `blob` only to transfer raw files without
|
|
37155
|
+
parsing their contents.
|
|
37057
37156
|
x-celigo-ai-guidance:
|
|
37058
37157
|
- |-
|
|
37059
37158
|
## HOW TO PICK THE TYPE VALUE
|