@celigo/api-specs 0.2.133 → 0.2.135

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 CHANGED
@@ -5015,6 +5015,12 @@ components:
5015
5015
  type: boolean
5016
5016
  description: When true, the connection has been taken offline and is skipped during flow execution.
5017
5017
  readOnly: true
5018
+ needsAuthorization:
5019
+ type: boolean
5020
+ readOnly: true
5021
+ description: |-
5022
+ OAuth handshake state. Celigo's OAuth callback sets it to `false` once the user consents
5023
+ and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`).
5018
5024
  _sourceId:
5019
5025
  type: string
5020
5026
  format: objectId
@@ -6071,7 +6077,7 @@ components:
6071
6077
  OAuth 2.0 redirect URI (callback URL) registered with the API provider.
6072
6078
  Must exactly match the redirect URI configured in the OAuth application registration.
6073
6079
  examples:
6074
- - https://api.integrator.io/connection/oauth2callback
6080
+ - https://integrator.io/connection/oauth2callback
6075
6081
  useIClientFields:
6076
6082
  type: boolean
6077
6083
  description: |
@@ -9927,7 +9933,7 @@ components:
9927
9933
 
9928
9934
  ## REQUIRED FIELDS
9929
9935
  - pingFunction (name of the function that tests connection health)
9930
- - _stackId (set on the parent connection object — references the Celigo Stack)
9936
+ - _stackId (inside this object, as `wrapper._stackId` — references the Celigo Stack)
9931
9937
 
9932
9938
  ## CUSTOM FIELDS
9933
9939
  Use encrypted/unencrypted fields to store connection-specific configuration.
@@ -2438,7 +2438,8 @@ paths:
2438
2438
  Returns the buffered debug log stream for the connection — request/response pairs from
2439
2439
  recent exports, imports, and lookups that used it. Capture is gated by the connection's
2440
2440
  `debugDate`: logs are recorded only while `debugDate` is in the future, so enable it first
2441
- via `PUT /v1/connections/{_id}` or the buffer stays empty.
2441
+ with `PATCH /v1/connections/{_id}` on `/debugDate` (credential-safe, unlike a full `PUT`)
2442
+ or the buffer stays empty.
2442
2443
 
2443
2444
  The response is a plain-text stream (not JSON): each entry is a header line
2444
2445
  (`timestamp traceKey resourceType resourceId`) followed by a single-line JSON payload,
@@ -2494,11 +2495,11 @@ paths:
2494
2495
 
2495
2496
  Idempotent — works whether the buffer held entries, was already empty, or the given
2496
2497
  connection id does not exist. Does **not** clear the connection's `debugDate` — debug
2497
- capture remains enabled until `debugDate` expires or is removed via a PUT.
2498
+ capture remains enabled until `debugDate` expires or is removed.
2498
2499
 
2499
2500
  Useful between test runs to isolate logs for a single scenario. To fully
2500
- disable debug capture, also `PUT /v1/connections/{_id}` with `debugDate`
2501
- removed from the body.
2501
+ disable debug capture, also send `PATCH /v1/connections/{_id}` with a `remove`
2502
+ operation on `/debugDate`.
2502
2503
  parameters:
2503
2504
  - name: _id
2504
2505
  in: path
@@ -4126,6 +4127,12 @@ components:
4126
4127
  type: boolean
4127
4128
  description: When true, the connection has been taken offline and is skipped during flow execution.
4128
4129
  readOnly: true
4130
+ needsAuthorization:
4131
+ type: boolean
4132
+ readOnly: true
4133
+ description: |-
4134
+ OAuth handshake state. Celigo's OAuth callback sets it to `false` once the user consents
4135
+ and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`).
4129
4136
  _sourceId:
4130
4137
  type: string
4131
4138
  format: objectId
@@ -5182,7 +5189,7 @@ components:
5182
5189
  OAuth 2.0 redirect URI (callback URL) registered with the API provider.
5183
5190
  Must exactly match the redirect URI configured in the OAuth application registration.
5184
5191
  examples:
5185
- - https://api.integrator.io/connection/oauth2callback
5192
+ - https://integrator.io/connection/oauth2callback
5186
5193
  useIClientFields:
5187
5194
  type: boolean
5188
5195
  description: |
@@ -9038,7 +9045,7 @@ components:
9038
9045
 
9039
9046
  ## REQUIRED FIELDS
9040
9047
  - pingFunction (name of the function that tests connection health)
9041
- - _stackId (set on the parent connection object — references the Celigo Stack)
9048
+ - _stackId (inside this object, as `wrapper._stackId` — references the Celigo Stack)
9042
9049
 
9043
9050
  ## CUSTOM FIELDS
9044
9051
  Use encrypted/unencrypted fields to store connection-specific configuration.
@@ -10441,7 +10448,7 @@ components:
10441
10448
  Embeds a one-time token in the `state` query parameter that expires quickly and is
10442
10449
  invalidated after a single use.
10443
10450
  examples:
10444
- - https://login.example.com/oauth2/authorize?response_type=code&client_id=0oa1b2c3d4EXAMPLE5&redirect_uri=https%3A%2F%2Fapi.integrator.io%2Fconnection%2Foauth2callback&scope=read+write&state=eyJfY29ubmVjdGlvbklkIjoiNjE1ZGZhMDc0Mjc2MzY3MTI3NWI3MGFiIn0
10451
+ - https://login.example.com/oauth2/authorize?response_type=code&client_id=0oa1b2c3d4EXAMPLE5&redirect_uri=https%3A%2F%2Fintegrator.io%2Fconnection%2Foauth2callback&scope=read+write&state=eyJfY29ubmVjdGlvbklkIjoiNjE1ZGZhMDc0Mjc2MzY3MTI3NWI3MGFiIn0
10445
10452
  DependencyEntry:
10446
10453
  type: object
10447
10454
  description: A single resource that depends on the queried resource.
package/dist/enduser.yml CHANGED
@@ -2227,6 +2227,12 @@ components:
2227
2227
  type: boolean
2228
2228
  description: When true, the connection has been taken offline and is skipped during flow execution.
2229
2229
  readOnly: true
2230
+ needsAuthorization:
2231
+ type: boolean
2232
+ readOnly: true
2233
+ description: |-
2234
+ OAuth handshake state. Celigo's OAuth callback sets it to `false` once the user consents
2235
+ and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`).
2230
2236
  _sourceId:
2231
2237
  type: string
2232
2238
  format: objectId
@@ -3283,7 +3289,7 @@ components:
3283
3289
  OAuth 2.0 redirect URI (callback URL) registered with the API provider.
3284
3290
  Must exactly match the redirect URI configured in the OAuth application registration.
3285
3291
  examples:
3286
- - https://api.integrator.io/connection/oauth2callback
3292
+ - https://integrator.io/connection/oauth2callback
3287
3293
  useIClientFields:
3288
3294
  type: boolean
3289
3295
  description: |
@@ -7139,7 +7145,7 @@ components:
7139
7145
 
7140
7146
  ## REQUIRED FIELDS
7141
7147
  - pingFunction (name of the function that tests connection health)
7142
- - _stackId (set on the parent connection object — references the Celigo Stack)
7148
+ - _stackId (inside this object, as `wrapper._stackId` — references the Celigo Stack)
7143
7149
 
7144
7150
  ## CUSTOM FIELDS
7145
7151
  Use encrypted/unencrypted fields to store connection-specific configuration.
package/dist/export.yml CHANGED
@@ -360,8 +360,9 @@ paths:
360
360
  x-internal: false
361
361
  summary: Clone an export
362
362
  description: |
363
- Creates a copy of an existing export.
364
- Supports optionally remapping referenced connections (via connectionMap).
363
+ Creates a copy of an existing export, remapping its connection through `connectionMap`.
364
+ For an export that uses a connection, omitting the map or sending an empty one fails with
365
+ 400 `invalid_connectionMap`; map the connection to itself to keep it.
365
366
  operationId: cloneExport
366
367
  tags:
367
368
  - Exports
@@ -500,7 +501,11 @@ paths:
500
501
  description: |-
501
502
  Full export document (mirror of `POST /v1/exports` body shape),
502
503
  optionally with `test.limit` to cap preview record count. Omit
503
- `_id` when previewing a not-yet-saved export.
504
+ `_id` when previewing a not-yet-saved export. For an export this
505
+ endpoint previews (an HTTP export, for example), a `mockOutput` in
506
+ the body is returned as a lone `parse` stage instead of a live read,
507
+ so remove it from a document read back with GET to sample the
508
+ source.
504
509
  additionalProperties: true
505
510
  examples:
506
511
  http_preview:
@@ -528,9 +533,9 @@ paths:
528
533
  '400':
529
534
  description: |-
530
535
  The export type does not support preview. Virtual (unsaved) previews
531
- are rejected for `simple` and other virtual export types — only
532
- builder-style exports (e.g. HTTP, RDBMS) can be previewed via this
533
- endpoint.
536
+ are rejected for `simple`, `webhook` and other virtual export types —
537
+ only builder-style exports (e.g. HTTP, RDBMS) can be previewed via
538
+ this endpoint.
534
539
  content:
535
540
  application/json:
536
541
  schema:
@@ -633,8 +638,9 @@ paths:
633
638
  validation (bad ID, missing auth).
634
639
 
635
640
  This endpoint executes the export against the live source system.
636
- `POST /v1/exports/preview` also queries the live source (reads only,
637
- no job) — prefer it when you only need to inspect fetched records.
641
+ `POST /v1/exports/preview` also queries the live source when its body
642
+ carries no `mockOutput` (reads only, no job) — prefer it when you only
643
+ need to inspect fetched records.
638
644
  parameters:
639
645
  - in: path
640
646
  name: _id
@@ -5485,7 +5491,7 @@ components:
5485
5491
  Selects which files are processed: files matching the filter criteria are exported,
5486
5492
  and non-matching files are skipped entirely before processing begins. Filterable
5487
5493
  fields come from each file's metadata — most providers expose filename, filesize,
5488
- and lastmodified (e.g. ["endswith", ["extract", "filename"], ".csv"]).
5494
+ and lastmodified (e.g. ["endswith", ["string", ["extract", "filename"]], ".csv"]).
5489
5495
  allOf:
5490
5496
  - $ref: '#/components/schemas/Filter'
5491
5497
  x-celigo-ai-guidance:
@@ -5500,7 +5506,7 @@ components:
5500
5506
 
5501
5507
  1. **filename**: The name of the file (with extension)
5502
5508
  - Example filter: Match files with specific extensions or naming patterns
5503
- - Usage: `["endswith", ["extract", "filename"], ".csv"]`
5509
+ - Usage: `["endswith", ["string", ["extract", "filename"]], ".csv"]`
5504
5510
 
5505
5511
  2. **filesize**: The size of the file in bytes
5506
5512
  - Example filter: Skip files that are too large or too small
@@ -5508,7 +5514,7 @@ components:
5508
5514
 
5509
5515
  3. **lastmodified**: The last modification timestamp of the file
5510
5516
  - Example filter: Process only files created/modified within a specific date range
5511
- - Usage: `["greaterthan", ["extract", "lastmodified"], "2023-01-01T00:00:00Z"]`
5517
+ - Usage: `["greaterthan", ["epochtime", ["extract", "lastmodified"]], 1672531200000]` (2023-01-01T00:00:00Z in epoch milliseconds)
5512
5518
  backupPath:
5513
5519
  type: string
5514
5520
  description: Path where backup copies of source files are stored before processing.
@@ -5769,38 +5775,10 @@ components:
5769
5775
  bearerToken:
5770
5776
  type: string
5771
5777
  description: |-
5772
- Bearer token used to authenticate inbound distributed export requests. Optional — most
5773
- distributed listeners (NetSuite, Salesforce real-time) use no token. Write-only and stored
5774
- encrypted; treat it as a sensitive credential.
5775
- x-celigo-ai-guidance:
5776
- - |-
5777
- ## FIELD BEHAVIOR
5778
-
5779
- This token provides authentication for the distributed export:
5780
-
5781
- - Required for secure access to distributed endpoints
5782
- - Must be a valid bearer token format
5783
- - Used in Authorization header as "Bearer {token}"
5784
- - Should be kept secure and rotated regularly
5785
- - |-
5786
- ## IMPLEMENTATION GUIDANCE
5787
-
5788
- ### Token management
5789
-
5790
- - Store tokens securely (encrypted at rest)
5791
- - Implement token rotation policies
5792
- - Monitor token expiration dates
5793
- - Use environment variables for token storage
5794
-
5795
- ### Security considerations
5796
-
5797
- - Never log bearer tokens in plain text
5798
- - Implement proper access controls
5799
- - Use HTTPS for all token transmissions
5800
- - Validate tokens on each request
5801
-
5802
- IMPORTANT: Bearer tokens provide full access to the distributed export.
5803
- Treat them as sensitive credentials.
5778
+ Bearer token that a system pushing data into this export sends as
5779
+ `Authorization: Bearer <token>`. Optional — most distributed listeners (NetSuite,
5780
+ Salesforce real-time) use no token. Write-only and stored encrypted; treat it as a
5781
+ sensitive credential.
5804
5782
  format: password
5805
5783
  examples:
5806
5784
  - eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
@@ -15640,9 +15618,10 @@ components:
15640
15618
 
15641
15619
  In a flow test run, and for an upstream lookup during a page-processor preview
15642
15620
  (`previewPageProcessor`), integrator.io substitutes this mock output for the export's live
15643
- response instead of calling the source. It is not substituted anywhere else: a target lookup
15644
- in that preview runs its live query, `POST /v1/exports/preview` calls the source, and real
15645
- runs ignore it. This allows you to:
15621
+ response instead of calling the source. A saved mock is not read anywhere else: a target
15622
+ lookup in that preview runs its live query, invoking the export
15623
+ (`POST /v1/exports/{_id}/invoke`) reads the source, and real runs ignore it. This allows you
15624
+ to:
15646
15625
  - Test mappings with representative data
15647
15626
  - Configure downstream flow steps without waiting for real data
15648
15627
  - Simulate various data scenarios
@@ -15651,6 +15630,11 @@ components:
15651
15630
  `transform` and output `filter` still run on top of them, so downstream steps — and a
15652
15631
  lookup's results mapping — see the transformed, filtered records, not the shape stored here.
15653
15632
 
15633
+ `POST /v1/exports/preview` reads the `mockOutput` in its request body, not the saved one. For
15634
+ an export the preview supports (an HTTP export, for example), a body that carries it (as an
15635
+ export read back with GET does) returns that snapshot as a lone `parse` stage without calling
15636
+ the source; remove `mockOutput` from the body to preview live records.
15637
+
15654
15638
  **Limitations**
15655
15639
 
15656
15640
  - Maximum of 10 records
@@ -15668,8 +15652,8 @@ components:
15668
15652
  the stored shape walks paths that do not exist at runtime.
15669
15653
  - |-
15670
15654
  A saved mockOutput is read in exactly two places — a flow test run, and an upstream lookup
15671
- during a page-processor preview. A target lookup's preview, `POST /v1/exports/preview` and
15672
- every real run call the source and never read it.
15655
+ during a page-processor preview. A target lookup's preview, `POST /v1/exports/{_id}/invoke`
15656
+ and every real run call the source and never read it.
15673
15657
  properties:
15674
15658
  page_of_records:
15675
15659
  type: array
@@ -16181,9 +16165,9 @@ components:
16181
16165
  x-celigo-agent:
16182
16166
  - filter
16183
16167
  description: |-
16184
- Filter applied to records immediately after they are retrieved from the source.
16185
- Records that match continue through the flow; records that don't are silently dropped.
16186
- Filter expressions reference the exported record's own fields.
16168
+ Filter applied to each record after the export's transform and before its preSavePage
16169
+ hook. Records that match continue through the flow; records that don't are silently
16170
+ dropped. Filter expressions reference the transformed record's fields.
16187
16171
  allOf:
16188
16172
  - $ref: '#/components/schemas/Filter'
16189
16173
  x-celigo-ai-guidance:
@@ -16193,13 +16177,13 @@ components:
16193
16177
 
16194
16178
  ## FILTER BEHAVIOR
16195
16179
 
16196
- When configured, the filter is applied immediately after records are retrieved from the source system:
16180
+ When configured, the filter is applied to each record after the export's transform and before the preSavePage hook:
16197
16181
  - Records that match the filter criteria continue through the flow
16198
16182
  - Records that don't match are silently dropped
16199
16183
  - No partial record processing is performed
16200
16184
 
16201
16185
  ## AVAILABLE FILTER FIELDS
16202
- The fields available for filtering are the data fields from each record retrieved by the export.
16186
+ The fields available for filtering are those of each record as the export's transform leaves it (the retrieved record when no transform is set).
16203
16187
  inputFilter:
16204
16188
  x-celigo-agent:
16205
16189
  - filter
@@ -16312,9 +16296,12 @@ components:
16312
16296
  x-celigo-agent:
16313
16297
  - script
16314
16298
  description: |-
16315
- Hook that runs after each page of records is retrieved from the source but before it
16316
- is sent to downstream steps. Commonly used to flatten structures, drop unwanted
16317
- records, or add computed fields.
16299
+ Hook that runs on each page of records after the export's transform and output
16300
+ filter, before the page is sent to downstream steps; commonly used to flatten
16301
+ structures, drop unwanted records, or add computed fields. It receives the page as
16302
+ `options.data` (with `errors`, `pageIndex`, `configuration` and `settings`) and returns
16303
+ `{data, errors, abort, newErrorsAndRetryData}`. An exception thrown here fails every
16304
+ record on that page, each with its own retry data, and later pages still run.
16318
16305
  properties:
16319
16306
  function:
16320
16307
  type: string
@@ -17114,8 +17101,10 @@ components:
17114
17101
  connectionMap:
17115
17102
  type: object
17116
17103
  description: |
17117
- Optional mapping of original connection ids to replacement connection ids.
17104
+ Mapping of original connection ids to replacement connection ids.
17118
17105
  Keys are source connection ids on the original resource; values are target connection ids.
17106
+ For an export that uses a connection, omitting the map or sending an empty one fails
17107
+ with 400 `invalid_connectionMap`; map the connection to itself to reuse it in the clone.
17119
17108
  additionalProperties:
17120
17109
  type: string
17121
17110
  example:
@@ -17155,6 +17144,7 @@ components:
17155
17144
  Final sampled records produced by the preview — the output of the last
17156
17145
  stage. Identical in practice to the last `stages[].data` entry, exposed
17157
17146
  here as a convenience for callers that only care about the end result.
17147
+ Absent from the zero-record answers described under `stages`.
17158
17148
  items: {}
17159
17149
  dataURIs:
17160
17150
  type: array
@@ -17177,10 +17167,15 @@ components:
17177
17167
  runs through parsing only — the export's transform, output filter,
17178
17168
  and preSavePage hook are NOT applied here (they run in flow
17179
17169
  previews, test runs, and real runs). Observed stage names: `parse`
17180
- always; `request` and `raw` for HTTP exports; `group` when the
17181
- export groups records (grouped records are bare arrays of the
17182
- grouped rows). Each stage carries its `data[]` output and any
17183
- `errors[]` raised at that stage.
17170
+ for a live read that returned records, and as the only stage when a
17171
+ `mockOutput` in the request body answers; `request` and `raw` for HTTP
17172
+ exports; `group` when the export groups records (grouped records are
17173
+ bare arrays of the grouped rows). Each stage carries its `data[]`
17174
+ output and any `errors[]` raised at that stage. A live read that
17175
+ selects no records has been observed without a `parse` stage or
17176
+ top-level `data` on two adaptors: an HTTP export returns only `request`
17177
+ and `raw`, and a NetSuite RESTlet search returns an empty object. Treat
17178
+ those as zero records, not as a failed preview.
17184
17179
  items:
17185
17180
  type: object
17186
17181
  description: One pipeline stage's diagnostic and output envelope.
package/dist/flow.yml CHANGED
@@ -8249,6 +8249,7 @@ components:
8249
8249
  Final sampled records produced by the preview — the output of the last
8250
8250
  stage. Identical in practice to the last `stages[].data` entry, exposed
8251
8251
  here as a convenience for callers that only care about the end result.
8252
+ Absent from the zero-record answers described under `stages`.
8252
8253
  items: {}
8253
8254
  dataURIs:
8254
8255
  type: array
@@ -8271,10 +8272,15 @@ components:
8271
8272
  runs through parsing only — the export's transform, output filter,
8272
8273
  and preSavePage hook are NOT applied here (they run in flow
8273
8274
  previews, test runs, and real runs). Observed stage names: `parse`
8274
- always; `request` and `raw` for HTTP exports; `group` when the
8275
- export groups records (grouped records are bare arrays of the
8276
- grouped rows). Each stage carries its `data[]` output and any
8277
- `errors[]` raised at that stage.
8275
+ for a live read that returned records, and as the only stage when a
8276
+ `mockOutput` in the request body answers; `request` and `raw` for HTTP
8277
+ exports; `group` when the export groups records (grouped records are
8278
+ bare arrays of the grouped rows). Each stage carries its `data[]`
8279
+ output and any `errors[]` raised at that stage. A live read that
8280
+ selects no records has been observed without a `parse` stage or
8281
+ top-level `data` on two adaptors: an HTTP export returns only `request`
8282
+ and `raw`, and a NetSuite RESTlet search returns an empty object. Treat
8283
+ those as zero records, not as a failed preview.
8278
8284
  items:
8279
8285
  type: object
8280
8286
  description: One pipeline stage's diagnostic and output envelope.
package/dist/iclient.yml CHANGED
@@ -324,7 +324,9 @@ paths:
324
324
  account: every update must include the full JSON key. An Azure
325
325
  service principal keeps its stored `clientSecret` or `certificate`
326
326
  when the field is omitted — only a new value replaces it, and
327
- `certificate` is never returned.
327
+ `certificate` is never returned. Connections work the other way:
328
+ re-sending the mask on `PUT /v1/connections/{_id}` clears the stored
329
+ credential.
328
330
  operationId: updateIClient
329
331
  tags:
330
332
  - iClients
@@ -487,8 +489,9 @@ paths:
487
489
  x-internal: false
488
490
  summary: Delete an iClient
489
491
  description: |-
490
- Permanently deletes an iClient. Blocked if the iClient is still
491
- referenced by a connection.
492
+ Permanently deletes an iClient. Blocked while any connection references
493
+ it, including a deleted connection still in the recycle bin: purge that
494
+ connection with `DELETE /v1/recycleBinTTL/connections/{_id}` first.
492
495
  operationId: deleteIClient
493
496
  tags:
494
497
  - iClients
@@ -508,7 +511,20 @@ paths:
508
511
  '404':
509
512
  $ref: '#/components/responses/404-not-found'
510
513
  '422':
511
- $ref: '#/components/responses/422-unprocessable-entity'
514
+ description: |-
515
+ A connection still references the iClient. A deleted connection in the
516
+ recycle bin counts until it is purged.
517
+ content:
518
+ application/json:
519
+ schema:
520
+ $ref: '#/components/schemas/Error'
521
+ examples:
522
+ referencedByBinnedConnection:
523
+ summary: A deleted connection still in the recycle bin references the iClient
524
+ value:
525
+ errors:
526
+ - code: delete_not_allowed
527
+ message: 'this document is referenced by Connection : 6a1b2c3d4e5f60718293a4b5'
512
528
  /v1/iclients/{_id}/dependencies:
513
529
  get:
514
530
  x-internal: false
@@ -1366,7 +1382,7 @@ components:
1366
1382
  It is used in OAuth 2.0 authorization flows to receive authorization codes or
1367
1383
  access tokens securely.
1368
1384
  examples:
1369
- - https://api.integrator.io/connection/oauth2callback
1385
+ - https://integrator.io/connection/oauth2callback
1370
1386
  - https://client.example.com/callback
1371
1387
  - https://app.example.com/oauth2/callback
1372
1388
  - https://localhost:8080/auth/callback
@@ -2165,7 +2181,7 @@ components:
2165
2181
  - |-
2166
2182
  ## IMPLEMENTATION GUIDANCE:
2167
2183
  - Provide the plain password value here to set/update it.
2168
- - To keep the existing password unchanged during an update, omit this field (or keep `"******"` as-is if returned).
2184
+ - To keep the stored password on a PUT, re-send `"******"` (the masked value GET returns) unchanged; never omit this field to keep it.
2169
2185
  - |-
2170
2186
  Use `password` for the OAuth2 password value used with the password grant;
2171
2187
  this is the value provided to configure or update the iClient,
@@ -3166,7 +3182,7 @@ components:
3166
3182
  - |-
3167
3183
  ## IMPLEMENTATION GUIDANCE:
3168
3184
  - Provide the plaintext consumer key here to set/update it.
3169
- - To keep the existing value unchanged during an update, omit this field (or keep `"******"` as-is if returned).
3185
+ - To keep the stored value on a PUT, re-send `"******"` (the masked value GET returns) unchanged; never omit this field to keep it.
3170
3186
  - |-
3171
3187
  Set the NetSuite consumer key value used for authentication;
3172
3188
  provide this value to configure or update the iClient.
@@ -3192,7 +3208,7 @@ components:
3192
3208
  - |-
3193
3209
  ## IMPLEMENTATION GUIDANCE:
3194
3210
  - Provide the plaintext consumer secret here to set/update it.
3195
- - To keep the existing value unchanged during an update, omit this field (or keep `"******"` as-is if returned).
3211
+ - To keep the stored value on a PUT, re-send `"******"` (the masked value GET returns) unchanged; never omit this field to keep it.
3196
3212
  - |-
3197
3213
  The NetSuite consumer secret value used for authentication;
3198
3214
  provide this value to configure or update the iClient.
@@ -3336,7 +3352,7 @@ components:
3336
3352
  - |-
3337
3353
  ## IMPLEMENTATION GUIDANCE:
3338
3354
  - Provide the plain client secret value here to set/update it.
3339
- - To keep the existing secret unchanged during an update, omit this field (or keep `"******"` as-is if returned).
3355
+ - To keep the stored secret on a PUT, re-send `"******"` (the masked value GET returns) unchanged; never omit this field to keep it.
3340
3356
  - |-
3341
3357
  Use the Salesforce OAuth **client secret** value to configure or update the Salesforce iClient;
3342
3358
  integrator.io stores this secret encrypted at rest internally (for example as
@@ -3425,7 +3441,7 @@ components:
3425
3441
  - |-
3426
3442
  ## IMPLEMENTATION GUIDANCE:
3427
3443
  - Provide the plaintext private key value here to set/update it (often PEM formatted).
3428
- - To keep the existing private key unchanged during an update, omit this field (or keep `"******"` as-is if returned).
3444
+ - To keep the stored private key on a PUT, re-send `"******"` (the masked value GET returns) unchanged; never omit this field to keep it.
3429
3445
  - |-
3430
3446
  Set the Salesforce private key value used for authentication flows such as JWT
3431
3447
  bearer token OAuth;
@@ -3693,7 +3709,7 @@ components:
3693
3709
  - |-
3694
3710
  ## IMPLEMENTATION GUIDANCE:
3695
3711
  - Provide the plaintext certificate ID value here to set/update it.
3696
- - To keep the existing value unchanged during an update, omit this field (or keep `"******"` as-is if returned).
3712
+ - To keep the stored value on a PUT, re-send `"******"` (the masked value GET returns) unchanged; never omit this field to keep it.
3697
3713
  - |-
3698
3714
  Use the eBay certificate ID value for authentication;
3699
3715
  this is the value you provide to configure or update the iClient. integrator.io
@@ -3906,7 +3922,7 @@ components:
3906
3922
  - |-
3907
3923
  ## IMPLEMENTATION GUIDANCE:
3908
3924
  - Provide the plaintext secret key value here to set/update it.
3909
- - To keep the existing value unchanged during an update, omit this field (or keep `"******"` as-is if returned).
3925
+ - To keep the stored value on a PUT, re-send `"******"` (the masked value GET returns) unchanged; never omit this field to keep it.
3910
3926
  - |-
3911
3927
  Use the Amazon MWS secret key value for authentication;
3912
3928
  provide this value to configure or update the iClient.
@@ -4555,18 +4571,5 @@ components:
4555
4571
  errors:
4556
4572
  - code: not_found
4557
4573
  message: The requested resource was not found.
4558
- 422-unprocessable-entity:
4559
- description: |
4560
- Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
4561
- content:
4562
- application/json:
4563
- schema:
4564
- $ref: '#/components/schemas/Error'
4565
- examples:
4566
- default:
4567
- value:
4568
- errors:
4569
- - code: unprocessable_entity
4570
- message: The request could not be processed due to a semantic error.
4571
4574
  x-enable-proxy: true
4572
4575
  x-internal: false
package/dist/import.yml CHANGED
@@ -372,8 +372,9 @@ paths:
372
372
  x-internal: false
373
373
  summary: Clone an import
374
374
  description: |
375
- Creates a copy of an existing import.
376
- Supports optionally remapping referenced connections (via connectionMap).
375
+ Creates a copy of an existing import, remapping its connection through `connectionMap`.
376
+ For an import that uses a connection, an empty map fails with 400 `invalid_connectionMap`;
377
+ map the connection to itself to keep it.
377
378
  operationId: cloneImport
378
379
  tags:
379
380
  - Imports
@@ -17136,8 +17137,11 @@ components:
17136
17137
  connectionMap:
17137
17138
  type: object
17138
17139
  description: |
17139
- Optional mapping of original connection ids to replacement connection ids.
17140
+ Mapping of original connection ids to replacement connection ids.
17140
17141
  Keys are source connection ids on the original resource; values are target connection ids.
17142
+ For an import that uses a connection, an empty map fails with 400
17143
+ `invalid_connectionMap`, as it does for an export; map the connection to itself to reuse
17144
+ it in the clone.
17141
17145
  additionalProperties:
17142
17146
  type: string
17143
17147
  example:
@@ -4052,6 +4052,12 @@ components:
4052
4052
  type: boolean
4053
4053
  description: When true, the connection has been taken offline and is skipped during flow execution.
4054
4054
  readOnly: true
4055
+ needsAuthorization:
4056
+ type: boolean
4057
+ readOnly: true
4058
+ description: |-
4059
+ OAuth handshake state. Celigo's OAuth callback sets it to `false` once the user consents
4060
+ and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`).
4055
4061
  _sourceId:
4056
4062
  type: string
4057
4063
  format: objectId
@@ -5108,7 +5114,7 @@ components:
5108
5114
  OAuth 2.0 redirect URI (callback URL) registered with the API provider.
5109
5115
  Must exactly match the redirect URI configured in the OAuth application registration.
5110
5116
  examples:
5111
- - https://api.integrator.io/connection/oauth2callback
5117
+ - https://integrator.io/connection/oauth2callback
5112
5118
  useIClientFields:
5113
5119
  type: boolean
5114
5120
  description: |
@@ -8964,7 +8970,7 @@ components:
8964
8970
 
8965
8971
  ## REQUIRED FIELDS
8966
8972
  - pingFunction (name of the function that tests connection health)
8967
- - _stackId (set on the parent connection object — references the Celigo Stack)
8973
+ - _stackId (inside this object, as `wrapper._stackId` — references the Celigo Stack)
8968
8974
 
8969
8975
  ## CUSTOM FIELDS
8970
8976
  Use encrypted/unencrypted fields to store connection-specific configuration.
package/dist/tool.yml CHANGED
@@ -7380,6 +7380,12 @@ components:
7380
7380
  type: boolean
7381
7381
  description: When true, the connection has been taken offline and is skipped during flow execution.
7382
7382
  readOnly: true
7383
+ needsAuthorization:
7384
+ type: boolean
7385
+ readOnly: true
7386
+ description: |-
7387
+ OAuth handshake state. Celigo's OAuth callback sets it to `false` once the user consents
7388
+ and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`).
7383
7389
  _sourceId:
7384
7390
  type: string
7385
7391
  format: objectId
@@ -8436,7 +8442,7 @@ components:
8436
8442
  OAuth 2.0 redirect URI (callback URL) registered with the API provider.
8437
8443
  Must exactly match the redirect URI configured in the OAuth application registration.
8438
8444
  examples:
8439
- - https://api.integrator.io/connection/oauth2callback
8445
+ - https://integrator.io/connection/oauth2callback
8440
8446
  useIClientFields:
8441
8447
  type: boolean
8442
8448
  description: |
@@ -12292,7 +12298,7 @@ components:
12292
12298
 
12293
12299
  ## REQUIRED FIELDS
12294
12300
  - pingFunction (name of the function that tests connection health)
12295
- - _stackId (set on the parent connection object — references the Celigo Stack)
12301
+ - _stackId (inside this object, as `wrapper._stackId` — references the Celigo Stack)
12296
12302
 
12297
12303
  ## CUSTOM FIELDS
12298
12304
  Use encrypted/unencrypted fields to store connection-specific configuration.
@@ -29813,7 +29819,7 @@ components:
29813
29819
  Selects which files are processed: files matching the filter criteria are exported,
29814
29820
  and non-matching files are skipped entirely before processing begins. Filterable
29815
29821
  fields come from each file's metadata — most providers expose filename, filesize,
29816
- and lastmodified (e.g. ["endswith", ["extract", "filename"], ".csv"]).
29822
+ and lastmodified (e.g. ["endswith", ["string", ["extract", "filename"]], ".csv"]).
29817
29823
  allOf:
29818
29824
  - $ref: '#/components/schemas/Filter'
29819
29825
  x-celigo-ai-guidance:
@@ -29828,7 +29834,7 @@ components:
29828
29834
 
29829
29835
  1. **filename**: The name of the file (with extension)
29830
29836
  - Example filter: Match files with specific extensions or naming patterns
29831
- - Usage: `["endswith", ["extract", "filename"], ".csv"]`
29837
+ - Usage: `["endswith", ["string", ["extract", "filename"]], ".csv"]`
29832
29838
 
29833
29839
  2. **filesize**: The size of the file in bytes
29834
29840
  - Example filter: Skip files that are too large or too small
@@ -29836,7 +29842,7 @@ components:
29836
29842
 
29837
29843
  3. **lastmodified**: The last modification timestamp of the file
29838
29844
  - Example filter: Process only files created/modified within a specific date range
29839
- - Usage: `["greaterthan", ["extract", "lastmodified"], "2023-01-01T00:00:00Z"]`
29845
+ - Usage: `["greaterthan", ["epochtime", ["extract", "lastmodified"]], 1672531200000]` (2023-01-01T00:00:00Z in epoch milliseconds)
29840
29846
  backupPath:
29841
29847
  type: string
29842
29848
  description: Path where backup copies of source files are stored before processing.
@@ -30097,38 +30103,10 @@ components:
30097
30103
  bearerToken:
30098
30104
  type: string
30099
30105
  description: |-
30100
- Bearer token used to authenticate inbound distributed export requests. Optional — most
30101
- distributed listeners (NetSuite, Salesforce real-time) use no token. Write-only and stored
30102
- encrypted; treat it as a sensitive credential.
30103
- x-celigo-ai-guidance:
30104
- - |-
30105
- ## FIELD BEHAVIOR
30106
-
30107
- This token provides authentication for the distributed export:
30108
-
30109
- - Required for secure access to distributed endpoints
30110
- - Must be a valid bearer token format
30111
- - Used in Authorization header as "Bearer {token}"
30112
- - Should be kept secure and rotated regularly
30113
- - |-
30114
- ## IMPLEMENTATION GUIDANCE
30115
-
30116
- ### Token management
30117
-
30118
- - Store tokens securely (encrypted at rest)
30119
- - Implement token rotation policies
30120
- - Monitor token expiration dates
30121
- - Use environment variables for token storage
30122
-
30123
- ### Security considerations
30124
-
30125
- - Never log bearer tokens in plain text
30126
- - Implement proper access controls
30127
- - Use HTTPS for all token transmissions
30128
- - Validate tokens on each request
30129
-
30130
- IMPORTANT: Bearer tokens provide full access to the distributed export.
30131
- Treat them as sensitive credentials.
30106
+ Bearer token that a system pushing data into this export sends as
30107
+ `Authorization: Bearer <token>`. Optional — most distributed listeners (NetSuite,
30108
+ Salesforce real-time) use no token. Write-only and stored encrypted; treat it as a
30109
+ sensitive credential.
30132
30110
  format: password
30133
30111
  examples:
30134
30112
  - eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
@@ -36701,9 +36679,10 @@ components:
36701
36679
 
36702
36680
  In a flow test run, and for an upstream lookup during a page-processor preview
36703
36681
  (`previewPageProcessor`), integrator.io substitutes this mock output for the export's live
36704
- response instead of calling the source. It is not substituted anywhere else: a target lookup
36705
- in that preview runs its live query, `POST /v1/exports/preview` calls the source, and real
36706
- runs ignore it. This allows you to:
36682
+ response instead of calling the source. A saved mock is not read anywhere else: a target
36683
+ lookup in that preview runs its live query, invoking the export
36684
+ (`POST /v1/exports/{_id}/invoke`) reads the source, and real runs ignore it. This allows you
36685
+ to:
36707
36686
  - Test mappings with representative data
36708
36687
  - Configure downstream flow steps without waiting for real data
36709
36688
  - Simulate various data scenarios
@@ -36712,6 +36691,11 @@ components:
36712
36691
  `transform` and output `filter` still run on top of them, so downstream steps — and a
36713
36692
  lookup's results mapping — see the transformed, filtered records, not the shape stored here.
36714
36693
 
36694
+ `POST /v1/exports/preview` reads the `mockOutput` in its request body, not the saved one. For
36695
+ an export the preview supports (an HTTP export, for example), a body that carries it (as an
36696
+ export read back with GET does) returns that snapshot as a lone `parse` stage without calling
36697
+ the source; remove `mockOutput` from the body to preview live records.
36698
+
36715
36699
  **Limitations**
36716
36700
 
36717
36701
  - Maximum of 10 records
@@ -36729,8 +36713,8 @@ components:
36729
36713
  the stored shape walks paths that do not exist at runtime.
36730
36714
  - |-
36731
36715
  A saved mockOutput is read in exactly two places — a flow test run, and an upstream lookup
36732
- during a page-processor preview. A target lookup's preview, `POST /v1/exports/preview` and
36733
- every real run call the source and never read it.
36716
+ during a page-processor preview. A target lookup's preview, `POST /v1/exports/{_id}/invoke`
36717
+ and every real run call the source and never read it.
36734
36718
  properties:
36735
36719
  page_of_records:
36736
36720
  type: array
@@ -37172,9 +37156,9 @@ components:
37172
37156
  x-celigo-agent:
37173
37157
  - filter
37174
37158
  description: |-
37175
- Filter applied to records immediately after they are retrieved from the source.
37176
- Records that match continue through the flow; records that don't are silently dropped.
37177
- Filter expressions reference the exported record's own fields.
37159
+ Filter applied to each record after the export's transform and before its preSavePage
37160
+ hook. Records that match continue through the flow; records that don't are silently
37161
+ dropped. Filter expressions reference the transformed record's fields.
37178
37162
  allOf:
37179
37163
  - $ref: '#/components/schemas/Filter'
37180
37164
  x-celigo-ai-guidance:
@@ -37184,13 +37168,13 @@ components:
37184
37168
 
37185
37169
  ## FILTER BEHAVIOR
37186
37170
 
37187
- When configured, the filter is applied immediately after records are retrieved from the source system:
37171
+ When configured, the filter is applied to each record after the export's transform and before the preSavePage hook:
37188
37172
  - Records that match the filter criteria continue through the flow
37189
37173
  - Records that don't match are silently dropped
37190
37174
  - No partial record processing is performed
37191
37175
 
37192
37176
  ## AVAILABLE FILTER FIELDS
37193
- The fields available for filtering are the data fields from each record retrieved by the export.
37177
+ The fields available for filtering are those of each record as the export's transform leaves it (the retrieved record when no transform is set).
37194
37178
  inputFilter:
37195
37179
  x-celigo-agent:
37196
37180
  - filter
@@ -37303,9 +37287,12 @@ components:
37303
37287
  x-celigo-agent:
37304
37288
  - script
37305
37289
  description: |-
37306
- Hook that runs after each page of records is retrieved from the source but before it
37307
- is sent to downstream steps. Commonly used to flatten structures, drop unwanted
37308
- records, or add computed fields.
37290
+ Hook that runs on each page of records after the export's transform and output
37291
+ filter, before the page is sent to downstream steps; commonly used to flatten
37292
+ structures, drop unwanted records, or add computed fields. It receives the page as
37293
+ `options.data` (with `errors`, `pageIndex`, `configuration` and `settings`) and returns
37294
+ `{data, errors, abort, newErrorsAndRetryData}`. An exception thrown here fails every
37295
+ record on that page, each with its own retry data, and later pages still run.
37309
37296
  properties:
37310
37297
  function:
37311
37298
  type: string
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.133",
3
+ "version": "0.2.135",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [
package/schemas.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "provenance": {
3
3
  "repo": "celigo/integrator-api-specs",
4
- "iasCommit": "60c8d128",
4
+ "iasCommit": "db3dbe3d",
5
5
  "generatedAt": "2026-10-21"
6
6
  },
7
7
  "roots": {
@@ -2275,6 +2275,7 @@
2275
2275
  "lastModified": 1,
2276
2276
  "microServices": 224,
2277
2277
  "name": 1,
2278
+ "needsAuthorization": 9,
2278
2279
  "offline": 9,
2279
2280
  "pgp": 220,
2280
2281
  "queues": 226,
@@ -3626,6 +3627,7 @@
3626
3627
  "microServices": 224,
3627
3628
  "mongodb": 291,
3628
3629
  "name": 1,
3630
+ "needsAuthorization": 9,
3629
3631
  "netsuite": 232,
3630
3632
  "offline": 9,
3631
3633
  "pgp": 220,