@celigo/api-specs 0.2.176 → 0.2.177

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/export.yml CHANGED
@@ -5608,31 +5608,37 @@ components:
5608
5608
  description: |-
5609
5609
  Selects which files are processed: files matching the filter criteria are exported,
5610
5610
  and non-matching files are skipped entirely before processing begins. Filterable
5611
- fields come from each file's metadata — most providers expose filename, filesize,
5612
- and lastmodified (e.g. ["endswith", ["string", ["extract", "filename"]], ".csv"]).
5611
+ fields come from each file's listing entry: the name as `fileName`, the size as
5612
+ `filesize`, and the modified time as `lastModifiedTime` on FTP, SFTP and S3 or
5613
+ `modifiedTime` on cloud-storage folders (`http.type: "file"`)
5614
+ (e.g. ["endswith", ["string", ["extract", "fileName"]], ".csv"]). There is no
5615
+ `lastmodified` key.
5613
5616
  allOf:
5614
5617
  - $ref: '#/components/schemas/Filter'
5615
5618
  x-celigo-ai-guidance:
5616
5619
  - |-
5617
5620
  ## AVAILABLE FILTER FIELDS
5618
5621
 
5619
- The specific fields available for file filtering are the contained in the `fileMeta` property.
5622
+ The fields a file filter reads are on each file's listing entry, before the file is
5623
+ downloaded. They are not the records' `fileMeta`, though some names match.
5620
5624
 
5621
5625
  ### Common Filter Fields
5622
5626
 
5623
5627
  These are the most commonly available fields across most file providers:
5624
5628
 
5625
- 1. **filename**: The name of the file (with extension)
5629
+ 1. **fileName**: The name of the file (with extension)
5626
5630
  - Example filter: Match files with specific extensions or naming patterns
5627
- - Usage: `["endswith", ["string", ["extract", "filename"]], ".csv"]`
5631
+ - Usage: `["endswith", ["string", ["extract", "fileName"]], ".csv"]`
5628
5632
 
5629
5633
  2. **filesize**: The size of the file in bytes
5630
5634
  - Example filter: Skip files that are too large or too small
5631
5635
  - Usage: `["lessthan", ["number", ["extract", "filesize"]], 1000000]`
5632
5636
 
5633
- 3. **lastmodified**: The last modification timestamp of the file
5637
+ 3. **lastModifiedTime** (FTP, SFTP, S3) or **modifiedTime** (cloud-storage folders): The
5638
+ last modification timestamp of the file. There is no `lastmodified` key.
5634
5639
  - Example filter: Process only files created/modified within a specific date range
5635
- - Usage: `["greaterthan", ["epochtime", ["extract", "lastmodified"]], 1672531200000]` (2023-01-01T00:00:00Z in epoch milliseconds)
5640
+ - Usage (FTP, SFTP, S3): `["greaterthan", ["epochtime", ["extract", "lastModifiedTime"]], 1672531200000]` (2023-01-01T00:00:00Z in epoch milliseconds)
5641
+ - Usage (cloud-storage folders): `["greaterthan", ["epochtime", ["extract", "modifiedTime"]], 1672531200000]`
5636
5642
  backupPath:
5637
5643
  type: string
5638
5644
  description: Path where backup copies of source files are stored before processing.
@@ -6636,7 +6642,10 @@ components:
6636
6642
  - async_helper
6637
6643
  once:
6638
6644
  type: object
6639
- description: Callback configuration for once exports, used to mark records as exported in the source system after successful processing.
6645
+ description: |-
6646
+ Callback configuration for once exports, used to mark records as exported in the source system after successful processing.
6647
+ Called only while the export's `type` is `once`: an export with no `type` keeps a saved `once` and never calls it, so every
6648
+ run reads every record again (live-verified 2026-10-22).
6640
6649
  properties:
6641
6650
  relativeURI:
6642
6651
  type: string
package/dist/flow.yml CHANGED
@@ -7208,7 +7208,10 @@ components:
7208
7208
  - retry
7209
7209
  - bulk_retry
7210
7210
  x-enumDescriptions:
7211
- export: A child job for an export step within a flow run.
7211
+ export: |-
7212
+ A child job for an export step within a flow run: the flow's source export, or a
7213
+ lookup step (an export with `isLookup`), whose job counts the pages it looked up in
7214
+ `numPagesProcessed`.
7212
7215
  import: A child job for an import step within a flow run.
7213
7216
  flow: A parent flow-run job that orchestrates the full pipeline.
7214
7217
  retry: A retry of a single failed record from a previous job.
@@ -7438,8 +7441,9 @@ components:
7438
7441
  type: integer
7439
7442
  readOnly: true
7440
7443
  description: |-
7441
- Number of records skipped, by a filter or by an import's ignore-existing or ignore-missing
7442
- rule. Records an import's filter skips count in that import's child job; records an export's
7444
+ Number of records skipped: by a filter, by an import's ignore-existing or ignore-missing
7445
+ rule, by an import's preMap hook that returned no data for the record, or by a lookup step's
7446
+ input filter (the record continues without the lookup's data). Records an import's filter skips count in that import's child job; records an export's
7443
7447
  output filter drops count in the export's child job, whose `numSuccess` then counts only the
7444
7448
  records that passed (an export that read 6 records and dropped 3 reads `numSuccess` 3,
7445
7449
  `numIgnore` 3; live-verified 2026-10-22). Filtered records raise no error.
@@ -7466,7 +7470,10 @@ components:
7466
7470
  numPagesProcessed:
7467
7471
  type: integer
7468
7472
  readOnly: true
7469
- description: Number of pages processed by downstream imports.
7473
+ description: |-
7474
+ Number of pages processed by downstream steps: imports and lookup steps. A source export's
7475
+ child job reads 0, a lookup step's and an import's count the pages they processed, and a
7476
+ parent flow job sums its children.
7470
7477
  examples:
7471
7478
  - 10
7472
7479
  oIndex:
@@ -8080,11 +8087,13 @@ components:
8080
8087
  enum:
8081
8088
  - success
8082
8089
  - error
8083
- - ignored
8090
+ - ignore
8084
8091
  x-enumDescriptions:
8085
8092
  success: The record was processed successfully at this step.
8086
8093
  error: The record encountered an error during processing.
8087
- ignored: The record was skipped by a filter or routing rule.
8094
+ ignore: |-
8095
+ The step skipped the record: its filter, a preMap hook that returned no data for the
8096
+ record, or an ignore-existing or ignore-missing rule. `stage` names which.
8088
8097
  timeTaken:
8089
8098
  type: integer
8090
8099
  description: Milliseconds spent at this step for this record.
@@ -8106,8 +8115,14 @@ components:
8106
8115
  Pipeline stage at which this step entry was recorded. Observed values include `apiCall`
8107
8116
  (the adaptor invocation itself). Useful for filtering metadata responses when a step has
8108
8117
  multiple stage entries across a single record's pass.
8118
+
8119
+ On an entry with `status: ignore`, the stage that skipped the record, recorded even on a run
8120
+ logged at `basic` (whose stage data is empty): `inputFilter` for the step's filter,
8121
+ `preMapHook` for a preMap hook that returned no data for the record, and an empty string for
8122
+ an ignore-existing rule.
8109
8123
  examples:
8110
8124
  - apiCall
8125
+ - inputFilter
8111
8126
  ExecutionLogMetadataResponse:
8112
8127
  type: object
8113
8128
  description: |-
package/dist/import.yml CHANGED
@@ -5418,7 +5418,7 @@ components:
5418
5418
  - bulk_load
5419
5419
  x-enumDescriptions:
5420
5420
  INSERT: Legacy value for insert operations; use bulk_insert or per_record instead.
5421
- UPDATE: Legacy value for update operations; use per_record instead.
5421
+ UPDATE: Legacy value for update operations; use per_page or per_record instead.
5422
5422
  bulk_insert: Batch INSERT via multi-row VALUES clause for efficient bulk data loading.
5423
5423
  per_record: Execute one SQL statement per record, giving full control over individual record SQL.
5424
5424
  per_page: Execute one SQL statement per page (batch) of records.
@@ -5428,7 +5428,7 @@ components:
5428
5428
  description: |-
5429
5429
  Execution strategy for the SQL operation, which determines the required companion field: per_record, per_page, and first_page require `query`; bulk_insert requires `bulkInsert`; bulk_load requires `bulkLoad`.
5430
5430
  Prefer the highest-performance type the operation supports: bulk_load (Snowflake, Google BigQuery, Microsoft SQL Server on a cloud connection, Azure Synapse and Amazon Redshift — handles INSERT, upsert via `bulkLoad.primaryKeys`, and custom merge or ignore-existing logic via `bulkLoad.overrideMergeQuery`), then bulk_insert for pure INSERTs, then per_page, then per_record only when the logic cannot be expressed as a batch operation.
5431
- For UPDATE, UPSERT, or ignore-existing logic on databases without bulk_load support, use per_page or per_record with `query` — bulk_insert has no duplicate-checking logic.
5431
+ For UPDATE, UPSERT, or ignore-existing logic on databases without bulk_load support, use per_page or per_record with `query` — bulk_insert has no duplicate-checking logic. Prefer per_page when the statement can loop `batch_of_records`, and use per_record when the SQL can't be written as one batch statement.
5432
5432
  Set a single value; do not combine types or use the legacy INSERT and UPDATE values.
5433
5433
  per_page statements render against the whole batch (`batch_of_records`) rather than a single record — loop with `{{#each batch_of_records}}...{{record.fieldName}}...{{/each}}`, with the same quoting as `query` (double braces for strings, triple for numbers).
5434
5434
 
@@ -5490,9 +5490,10 @@ components:
5490
5490
  ### UPDATE Operation
5491
5491
  Prompt: "Update inventory counts"
5492
5492
  ```json
5493
- "queryType": ["per_record"],
5494
- "query": ["UPDATE inventory SET qty = {{{record.qty}}} WHERE sku = {{record.sku}}"]
5493
+ "queryType": ["per_page"],
5494
+ "query": ["{{#each batch_of_records}}UPDATE inventory SET qty = {{{record.qty}}} WHERE sku = {{record.sku}};{{/each}}"]
5495
5495
  ```
5496
+ Use `"queryType": ["per_record"]` with `"query": ["UPDATE inventory SET qty = {{{record.qty}}} WHERE sku = {{record.sku}}"]` when the SQL can't be written as one batch statement.
5496
5497
 
5497
5498
  ### Run Once Per Page
5498
5499
  Prompt: "Execute this stored procedure for each page of results"
@@ -5510,7 +5511,7 @@ components:
5510
5511
  type: object
5511
5512
  description: |-
5512
5513
  Configuration for batch INSERTs via a multi-row VALUES clause; required when queryType is `["bulk_insert"]` and must not be set otherwise.
5513
- Only suited to pure INSERTs — for UPDATE, UPSERT, or ignore-existing/skip-duplicates logic, use queryType `["per_record"]` with the `query` field instead.
5514
+ Only suited to pure INSERTs — for UPDATE or UPSERT, use queryType `["per_page"]` (a statement that loops `batch_of_records`) or `["per_record"]` with the `query` field instead, and for ignore-existing/skip-duplicates logic `["per_record"]`.
5514
5515
  x-celigo-ai-guidance:
5515
5516
  - |-
5516
5517
  **CRITICAL: This object is ONLY used when `queryType` is `["bulk_insert"]`.**
@@ -5520,7 +5521,7 @@ components:
5520
5521
  - Pure INSERT operation with NO ignoreExisting/duplicate checking
5521
5522
 
5522
5523
  ❌ **DO NOT SET THIS** when:
5523
- - `queryType` is `["per_record"]` (use `query` field instead)
5524
+ - `queryType` is `["per_page"]` or `["per_record"]` (use the `query` field instead)
5524
5525
  - Operation involves UPDATE, UPSERT, or ignoreExisting logic
5525
5526
 
5526
5527
  If the prompt mentions "ignore existing", "skip duplicates", or "match on field",
package/dist/job.yml CHANGED
@@ -1341,7 +1341,10 @@ components:
1341
1341
  - retry
1342
1342
  - bulk_retry
1343
1343
  x-enumDescriptions:
1344
- export: A child job for an export step within a flow run.
1344
+ export: |-
1345
+ A child job for an export step within a flow run: the flow's source export, or a
1346
+ lookup step (an export with `isLookup`), whose job counts the pages it looked up in
1347
+ `numPagesProcessed`.
1345
1348
  import: A child job for an import step within a flow run.
1346
1349
  flow: A parent flow-run job that orchestrates the full pipeline.
1347
1350
  retry: A retry of a single failed record from a previous job.
@@ -1571,8 +1574,9 @@ components:
1571
1574
  type: integer
1572
1575
  readOnly: true
1573
1576
  description: |-
1574
- Number of records skipped, by a filter or by an import's ignore-existing or ignore-missing
1575
- rule. Records an import's filter skips count in that import's child job; records an export's
1577
+ Number of records skipped: by a filter, by an import's ignore-existing or ignore-missing
1578
+ rule, by an import's preMap hook that returned no data for the record, or by a lookup step's
1579
+ input filter (the record continues without the lookup's data). Records an import's filter skips count in that import's child job; records an export's
1576
1580
  output filter drops count in the export's child job, whose `numSuccess` then counts only the
1577
1581
  records that passed (an export that read 6 records and dropped 3 reads `numSuccess` 3,
1578
1582
  `numIgnore` 3; live-verified 2026-10-22). Filtered records raise no error.
@@ -1599,7 +1603,10 @@ components:
1599
1603
  numPagesProcessed:
1600
1604
  type: integer
1601
1605
  readOnly: true
1602
- description: Number of pages processed by downstream imports.
1606
+ description: |-
1607
+ Number of pages processed by downstream steps: imports and lookup steps. A source export's
1608
+ child job reads 0, a lookup step's and an import's count the pages they processed, and a
1609
+ parent flow job sums its children.
1603
1610
  examples:
1604
1611
  - 10
1605
1612
  oIndex:
package/dist/tool.yml CHANGED
@@ -16996,7 +16996,7 @@ components:
16996
16996
  - bulk_load
16997
16997
  x-enumDescriptions:
16998
16998
  INSERT: Legacy value for insert operations; use bulk_insert or per_record instead.
16999
- UPDATE: Legacy value for update operations; use per_record instead.
16999
+ UPDATE: Legacy value for update operations; use per_page or per_record instead.
17000
17000
  bulk_insert: Batch INSERT via multi-row VALUES clause for efficient bulk data loading.
17001
17001
  per_record: Execute one SQL statement per record, giving full control over individual record SQL.
17002
17002
  per_page: Execute one SQL statement per page (batch) of records.
@@ -17006,7 +17006,7 @@ components:
17006
17006
  description: |-
17007
17007
  Execution strategy for the SQL operation, which determines the required companion field: per_record, per_page, and first_page require `query`; bulk_insert requires `bulkInsert`; bulk_load requires `bulkLoad`.
17008
17008
  Prefer the highest-performance type the operation supports: bulk_load (Snowflake, Google BigQuery, Microsoft SQL Server on a cloud connection, Azure Synapse and Amazon Redshift — handles INSERT, upsert via `bulkLoad.primaryKeys`, and custom merge or ignore-existing logic via `bulkLoad.overrideMergeQuery`), then bulk_insert for pure INSERTs, then per_page, then per_record only when the logic cannot be expressed as a batch operation.
17009
- For UPDATE, UPSERT, or ignore-existing logic on databases without bulk_load support, use per_page or per_record with `query` — bulk_insert has no duplicate-checking logic.
17009
+ For UPDATE, UPSERT, or ignore-existing logic on databases without bulk_load support, use per_page or per_record with `query` — bulk_insert has no duplicate-checking logic. Prefer per_page when the statement can loop `batch_of_records`, and use per_record when the SQL can't be written as one batch statement.
17010
17010
  Set a single value; do not combine types or use the legacy INSERT and UPDATE values.
17011
17011
  per_page statements render against the whole batch (`batch_of_records`) rather than a single record — loop with `{{#each batch_of_records}}...{{record.fieldName}}...{{/each}}`, with the same quoting as `query` (double braces for strings, triple for numbers).
17012
17012
 
@@ -17068,9 +17068,10 @@ components:
17068
17068
  ### UPDATE Operation
17069
17069
  Prompt: "Update inventory counts"
17070
17070
  ```json
17071
- "queryType": ["per_record"],
17072
- "query": ["UPDATE inventory SET qty = {{{record.qty}}} WHERE sku = {{record.sku}}"]
17071
+ "queryType": ["per_page"],
17072
+ "query": ["{{#each batch_of_records}}UPDATE inventory SET qty = {{{record.qty}}} WHERE sku = {{record.sku}};{{/each}}"]
17073
17073
  ```
17074
+ Use `"queryType": ["per_record"]` with `"query": ["UPDATE inventory SET qty = {{{record.qty}}} WHERE sku = {{record.sku}}"]` when the SQL can't be written as one batch statement.
17074
17075
 
17075
17076
  ### Run Once Per Page
17076
17077
  Prompt: "Execute this stored procedure for each page of results"
@@ -17088,7 +17089,7 @@ components:
17088
17089
  type: object
17089
17090
  description: |-
17090
17091
  Configuration for batch INSERTs via a multi-row VALUES clause; required when queryType is `["bulk_insert"]` and must not be set otherwise.
17091
- Only suited to pure INSERTs — for UPDATE, UPSERT, or ignore-existing/skip-duplicates logic, use queryType `["per_record"]` with the `query` field instead.
17092
+ Only suited to pure INSERTs — for UPDATE or UPSERT, use queryType `["per_page"]` (a statement that loops `batch_of_records`) or `["per_record"]` with the `query` field instead, and for ignore-existing/skip-duplicates logic `["per_record"]`.
17092
17093
  x-celigo-ai-guidance:
17093
17094
  - |-
17094
17095
  **CRITICAL: This object is ONLY used when `queryType` is `["bulk_insert"]`.**
@@ -17098,7 +17099,7 @@ components:
17098
17099
  - Pure INSERT operation with NO ignoreExisting/duplicate checking
17099
17100
 
17100
17101
  ❌ **DO NOT SET THIS** when:
17101
- - `queryType` is `["per_record"]` (use `query` field instead)
17102
+ - `queryType` is `["per_page"]` or `["per_record"]` (use the `query` field instead)
17102
17103
  - Operation involves UPDATE, UPSERT, or ignoreExisting logic
17103
17104
 
17104
17105
  If the prompt mentions "ignore existing", "skip duplicates", or "match on field",
@@ -30621,31 +30622,37 @@ components:
30621
30622
  description: |-
30622
30623
  Selects which files are processed: files matching the filter criteria are exported,
30623
30624
  and non-matching files are skipped entirely before processing begins. Filterable
30624
- fields come from each file's metadata — most providers expose filename, filesize,
30625
- and lastmodified (e.g. ["endswith", ["string", ["extract", "filename"]], ".csv"]).
30625
+ fields come from each file's listing entry: the name as `fileName`, the size as
30626
+ `filesize`, and the modified time as `lastModifiedTime` on FTP, SFTP and S3 or
30627
+ `modifiedTime` on cloud-storage folders (`http.type: "file"`)
30628
+ (e.g. ["endswith", ["string", ["extract", "fileName"]], ".csv"]). There is no
30629
+ `lastmodified` key.
30626
30630
  allOf:
30627
30631
  - $ref: '#/components/schemas/Filter'
30628
30632
  x-celigo-ai-guidance:
30629
30633
  - |-
30630
30634
  ## AVAILABLE FILTER FIELDS
30631
30635
 
30632
- The specific fields available for file filtering are the contained in the `fileMeta` property.
30636
+ The fields a file filter reads are on each file's listing entry, before the file is
30637
+ downloaded. They are not the records' `fileMeta`, though some names match.
30633
30638
 
30634
30639
  ### Common Filter Fields
30635
30640
 
30636
30641
  These are the most commonly available fields across most file providers:
30637
30642
 
30638
- 1. **filename**: The name of the file (with extension)
30643
+ 1. **fileName**: The name of the file (with extension)
30639
30644
  - Example filter: Match files with specific extensions or naming patterns
30640
- - Usage: `["endswith", ["string", ["extract", "filename"]], ".csv"]`
30645
+ - Usage: `["endswith", ["string", ["extract", "fileName"]], ".csv"]`
30641
30646
 
30642
30647
  2. **filesize**: The size of the file in bytes
30643
30648
  - Example filter: Skip files that are too large or too small
30644
30649
  - Usage: `["lessthan", ["number", ["extract", "filesize"]], 1000000]`
30645
30650
 
30646
- 3. **lastmodified**: The last modification timestamp of the file
30651
+ 3. **lastModifiedTime** (FTP, SFTP, S3) or **modifiedTime** (cloud-storage folders): The
30652
+ last modification timestamp of the file. There is no `lastmodified` key.
30647
30653
  - Example filter: Process only files created/modified within a specific date range
30648
- - Usage: `["greaterthan", ["epochtime", ["extract", "lastmodified"]], 1672531200000]` (2023-01-01T00:00:00Z in epoch milliseconds)
30654
+ - Usage (FTP, SFTP, S3): `["greaterthan", ["epochtime", ["extract", "lastModifiedTime"]], 1672531200000]` (2023-01-01T00:00:00Z in epoch milliseconds)
30655
+ - Usage (cloud-storage folders): `["greaterthan", ["epochtime", ["extract", "modifiedTime"]], 1672531200000]`
30649
30656
  backupPath:
30650
30657
  type: string
30651
30658
  description: Path where backup copies of source files are stored before processing.
@@ -31649,7 +31656,10 @@ components:
31649
31656
  - async_helper
31650
31657
  once:
31651
31658
  type: object
31652
- description: Callback configuration for once exports, used to mark records as exported in the source system after successful processing.
31659
+ description: |-
31660
+ Callback configuration for once exports, used to mark records as exported in the source system after successful processing.
31661
+ Called only while the export's `type` is `once`: an export with no `type` keeps a saved `once` and never calls it, so every
31662
+ run reads every record again (live-verified 2026-10-22).
31653
31663
  properties:
31654
31664
  relativeURI:
31655
31665
  type: string
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.176",
3
+ "version": "0.2.177",
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": "06b10943",
4
+ "iasCommit": "35c59e78",
5
5
  "generatedAt": "2026-10-22"
6
6
  },
7
7
  "roots": {