@celigo/api-specs 0.2.206 → 0.2.208

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/tool.yml CHANGED
@@ -7835,10 +7835,12 @@ components:
7835
7835
  `targetConcurrencyLevel`. While true, `targetConcurrencyLevel` is the throughput lever: a
7836
7836
  `concurrencyLevel` sent in a PUT is ignored, and one sent in a PATCH is stored but the
7837
7837
  recovery machinery moves it back toward the target. Recovery never runs on `ftp`
7838
- connections: FTP errors aren't treated as rate limits.
7838
+ connections: FTP errors aren't treated as rate limits. A rate limit hit by a Tool
7839
+ invocation (`POST /v1/tools/{_id}/invoke`) or an export preview
7840
+ (`POST /v1/exports/preview`) leaves the connection's concurrency as it is.
7839
7841
  x-celigo-ai-guidance:
7840
7842
  - To change throughput while this is true, write `targetConcurrencyLevel`; a `concurrencyLevel` sent in a PUT returns 200 and changes nothing.
7841
- - Turning it on copies `concurrencyLevel` into `targetConcurrencyLevel`; turning it off unsets the target and leaves `concurrencyLevel` at its current value, which may be below the old target if a recovery was in progress. A `targetConcurrencyLevel` written while this is false is unset by the save.
7843
+ - Turning it on copies `concurrencyLevel` into `targetConcurrencyLevel`; turning it off unsets the target and leaves `concurrencyLevel` at its current value, which may be below the old target if a recovery was in progress. A `targetConcurrencyLevel` sent on a create that sets this false, or with the write that turns this off, is dropped; on a connection where this is already false, writing one fails with 422 `invalid_concurrency_level`.
7842
7844
  - These four settings (`concurrencyLevel`, `targetConcurrencyLevel`, `_borrowConcurrencyFromConnectionId`, this flag) accept a credential-free `PATCH /v1/connections/{_id}`. A PUT replaces the whole document, so send each secret back as its masked `******` value (that keeps it) or as a new value, and never drop one to keep it — an omitted password or `http.encrypted` is cleared, and a static token left out (with no `refreshMethod`) fails the PUT with 422.
7843
7845
  - On a create, while this is true, set the level with `targetConcurrencyLevel`: on `http`, `ftp`, `rdbms` and `mongodb` connections the save stores the target sent, or the adaptor's default without one (1 for `ftp`, 5 for `rdbms` and `mongodb`, 25 for `http` where the license's `concurrency` is at least 25), as both fields, whatever `concurrencyLevel` the body carried. A create that sends this as `false` keeps its `concurrencyLevel`.
7844
7846
  - On an `ftp` connection recovery never runs, and transfer threads are `ftp.multiThreadCount`.
@@ -8475,8 +8477,10 @@ components:
8475
8477
  While `autoRecoverRateLimitErrors` is true, a create sets `concurrencyLevel` to this value, and a
8476
8478
  create that omits it gets 1 for both. Auto-recovery never runs on FTP connections (FTP errors
8477
8479
  aren't treated as rate limits), so nothing climbs back to it.
8478
- Kept on a `PUT` that omits it, like `concurrencyLevel`; unset by the save while
8479
- `autoRecoverRateLimitErrors` is false.
8480
+ Kept on a `PUT` that omits it, like `concurrencyLevel`. A create that sends
8481
+ `autoRecoverRateLimitErrors` false, or a write that turns it off, drops it; on a connection
8482
+ where the flag is already false, sending it fails with 422 `invalid_concurrency_level`
8483
+ ("cannot be set when autoRecoverRateLimitErrors is false").
8480
8484
  minimum: 1
8481
8485
  maximum: 50
8482
8486
  examples:
@@ -9217,9 +9221,10 @@ components:
9217
9221
  Higher values increase throughput but may trigger API rate limits.
9218
9222
  Set this based on the target API's rate limit documentation.
9219
9223
  Send no more than the account's licensed maximum (25 standard, 50 with an Environments license).
9220
- A decimal is rejected with 422 `invalid_field_value` on every write (the same rule applies to every
9221
- adaptor's `concurrencyLevel` and `targetConcurrencyLevel`, and to `ftp.multiThreadCount`).
9222
- Platform-managed while `autoRecoverRateLimitErrors` is true — a create or PUT ignores the value (a create without `targetConcurrencyLevel` stores 25 where the license's `concurrency` is at least 25) and the recovery machinery moves it toward the target; set `targetConcurrencyLevel` instead.
9224
+ A create, a PATCH, and a PUT while `autoRecoverRateLimitErrors` is false reject a decimal with 422
9225
+ `invalid_field_value` and a boolean or a non-numeric string with 422 `invalid_concurrency_level`
9226
+ ("must be an integer").
9227
+ Platform-managed while `autoRecoverRateLimitErrors` is true — a create still checks the value but stores the target in its place (25 without a `targetConcurrencyLevel`, where the license's `concurrency` is at least 25), a PUT ignores it without checking it, and the recovery machinery moves it toward the target; set `targetConcurrencyLevel` instead.
9223
9228
  At level 1 an import's pages run one at a time, so a record's existence lookup and write finish before the next record's start (measured on a single import); the import's `idLockTemplate` serializes only same-key records and leaves the rest parallel.
9224
9229
  minimum: 1
9225
9230
  maximum: 50
@@ -9232,7 +9237,9 @@ components:
9232
9237
  Ceiling the platform climbs back to after rate-limit recovery, in steps of 25% of this value.
9233
9238
  Writing it also sets `concurrencyLevel` to the same value and stops any recovery in progress.
9234
9239
 
9235
- Honored only while `autoRecoverRateLimitErrors` is true; ignored, and unset, when it is false.
9240
+ Honored only while `autoRecoverRateLimitErrors` is true. A create that sends the flag as false, or a
9241
+ write that turns it off, drops it; on a connection where the flag is already false, sending it fails with 422
9242
+ `invalid_concurrency_level` ("cannot be set when autoRecoverRateLimitErrors is false").
9236
9243
  minimum: 1
9237
9244
  maximum: 50
9238
9245
  examples:
@@ -10003,6 +10010,26 @@ components:
10003
10010
  examples:
10004
10011
  - - rate_limit_exceeded
10005
10012
  - too_many_requests
10013
+ failHeaders:
10014
+ type: array
10015
+ description: |
10016
+ Response-header rules for detecting rate limiting, each a header `name` with an
10017
+ optional `value`. A rule with an empty `name` fails the save with 422
10018
+ `invalid_header_format`.
10019
+ items:
10020
+ type: object
10021
+ required:
10022
+ - name
10023
+ properties:
10024
+ name:
10025
+ type: string
10026
+ description: Response header the rule checks.
10027
+ value:
10028
+ type: string
10029
+ description: Header value the rule checks; omit to check the header alone.
10030
+ examples:
10031
+ - - name: X-RateLimit-Remaining
10032
+ value: '0'
10006
10033
  limit:
10007
10034
  type: number
10008
10035
  minimum: 1
@@ -10631,9 +10658,21 @@ components:
10631
10658
  - COMPUTE_WH
10632
10659
  schema:
10633
10660
  type: string
10634
- description: |
10635
- Default Snowflake schema. If omitted, queries must fully-qualify table names
10636
- (e.g., DATABASE.SCHEMA.TABLE).
10661
+ description: |-
10662
+ Default schema for the session: unqualified table names in queries resolve here, and
10663
+ optimized bulk load imports create their temporary staging table here even when the
10664
+ destination table is schema-qualified — so the connection's role must be able to
10665
+ create that table in it. When blank, optimized bulk load uses PUBLIC.
10666
+ x-celigo-ai-guidance:
10667
+ - |-
10668
+ When this names a schema the session cannot resolve — Snowflake reports it as not
10669
+ existing or not authorized for the role, and the session is left without a current
10670
+ schema — every optimized bulk load fails at the staging step with code `query_fail`
10671
+ and the message "Failed to run the bulk load query. Err: [TempTableQuery] The
10672
+ provided schema is invalid: <this value>" (the connector's rewrite of Snowflake's
10673
+ "This session does not have a current schema"). Fix: set this to a schema the role
10674
+ can create the staging table in — normally the destination table's own schema — or
10675
+ point the import at a second Snowflake connection with that default schema.
10637
10676
  examples:
10638
10677
  - PUBLIC
10639
10678
  role:
@@ -17529,6 +17568,7 @@ components:
17529
17568
  description: |-
17530
17569
  Target table for the bulk load.
17531
17570
  Must reference an existing table accessible with the connection's credentials; schema-qualified names are supported.
17571
+ On Snowflake, the temporary staging table that precedes the load is created in the connection's default schema (`rdbms.snowflake.schema` on the connection), not in this table's schema.
17532
17572
  x-celigo-ai-guidance:
17533
17573
  - |-
17534
17574
  The name of the target table within the relational database management system
@@ -20415,9 +20455,23 @@ components:
20415
20455
  description: |-
20416
20456
  Tool resource this import executes. The tool supplies the input schema, routing, page
20417
20457
  processors, and output mapping; the import runs that tool when records reach it. Required —
20418
- a `ToolImport` has no behavior without a tool to run.
20458
+ a `ToolImport` has no behavior without a tool to run. Saving the import fails with 422 when the
20459
+ tool has no routers, a step still being set up, or a branch that does not merge back; the
20460
+ message names the tool.
20419
20461
  x-celigo-ai-guidance:
20420
20462
  - Reference to the Celigo Tool resource this wrapper invokes.
20463
+ - |-
20464
+ Finish the tool before saving its wrapper: a create or update of this import fails with 422
20465
+ tool_empty_router when the tool has no `routers` (missing or empty; the message reads "…has
20466
+ no steps. Add at least one step to the tool, then save again."), router_setup_in_progress
20467
+ when a step is still being set up (setupInProgress), and tool_dangling_branch when a branch
20468
+ has no nextRouterId ("outputRouter" ends the tool). Fix the tool with PUT /v1/tools/{_id},
20469
+ then save the import again.
20470
+ - |-
20471
+ A save that passes doesn't mean the tool runs: a branch with empty `pageProcessors` passes
20472
+ it, and the tool then fails at invoke with 400 tool_empty_router. Creating a parent tool, or
20473
+ a disabled flow, whose step is this wrapper is not checked either: both saved while the
20474
+ wrapped tool had no routers.
20421
20475
  - |-
20422
20476
  Required.
20423
20477
  The Tool must already exist;
@@ -20821,16 +20875,20 @@ components:
20821
20875
  The `key` + `batchSize` combination has not been probed (it needs a B2B Manager
20822
20876
  account) — treat it as unverified, neither allowed nor forbidden.
20823
20877
  encrypt:
20824
- type: boolean
20825
- description: |-
20826
- Whether to encrypt the output file.
20827
-
20828
- **Values**
20829
- - `true`: Encrypt the file (requires PGP configuration)
20830
- - `false`: No encryption
20831
-
20832
- **Default:** `false`
20833
- default: false
20878
+ type: string
20879
+ enum:
20880
+ - pgp
20881
+ x-enumDescriptions:
20882
+ pgp: Encrypt the file with PGP before it is written.
20883
+ description: |-
20884
+ Encrypts the output file; omit it for an unencrypted file. `pgp` requires
20885
+ `pgp.symmetricKeyAlgorithm` and a connection holding the recipient's public key
20886
+ (`pgp.publicKey`) — without either the save fails with 422 `missing_required_field`.
20887
+ The public-key check runs first: on a connection without one, any `encrypt` value,
20888
+ `false` included, fails with 422 `missing_required_field` "pgp publicKey is required
20889
+ when encrypt is selected to perform file encryption." before the value is checked.
20890
+ Blob (file-transfer) imports follow the same rule and return `encrypt` and `pgp` even
20891
+ without `file.type`.
20834
20892
  csv:
20835
20893
  type: object
20836
20894
  description: CSV-specific configuration. Only used when `type` is `"csv"`.
@@ -20997,8 +21055,8 @@ components:
20997
21055
  pgp:
20998
21056
  type: object
20999
21057
  description: |-
21000
- PGP encryption settings applied when encrypt is true; selects the symmetric cipher and the
21001
- signing hash. The connection must hold the recipient's public key.
21058
+ PGP encryption settings applied when `encrypt` is `pgp`; selects the symmetric cipher and
21059
+ the signing hash. The connection must hold the recipient's public key.
21002
21060
  properties:
21003
21061
  symmetricKeyAlgorithm:
21004
21062
  type: string
@@ -21015,9 +21073,10 @@ components:
21015
21073
  3des: Triple DES block cipher (legacy).
21016
21074
  aes128: AES with a 128-bit key.
21017
21075
  aes192: AES with a 192-bit key.
21018
- aes256: AES with a 256-bit key (default, recommended).
21019
- default: aes256
21020
- description: Symmetric cipher used to encrypt the file body; aes256 unless the recipient requires another.
21076
+ aes256: AES with a 256-bit key (recommended).
21077
+ description: |-
21078
+ Symmetric cipher used to encrypt the file body; required when `encrypt` is `pgp` (no
21079
+ server default). Use aes256 unless the recipient requires another.
21021
21080
  examples:
21022
21081
  - aes256
21023
21082
  - 3des
@@ -27589,6 +27648,21 @@ components:
27589
27648
  - shopify
27590
27649
  - stripe
27591
27650
  - custom
27651
+ formType:
27652
+ type: string
27653
+ enum:
27654
+ - simple
27655
+ - webhook
27656
+ x-enumDescriptions:
27657
+ simple: Simple form, the default for a named provider (e.g. `shopify`, `stripe`).
27658
+ webhook: Full webhook form, the default when `provider` is `custom` or omitted.
27659
+ description: |-
27660
+ Which webhook export form the UI uses to edit this listener. A value sent on create or
27661
+ update wins (case-insensitive — `Simple` is stored as `simple`); a PUT that omits it
27662
+ keeps the stored value, and a new export without one gets the default for its
27663
+ `provider`. Every webhook export GET carries it.
27664
+ examples:
27665
+ - webhook
27592
27666
  verify:
27593
27667
  type: string
27594
27668
  x-celigo-ui-override: Required by the webhook export form (verify is required:true). Encoded to mirror the form so builders produce connectable configurations.
@@ -31391,6 +31465,8 @@ components:
31391
31465
  A stream export that resolves no snapshot mode — neither `snapshotMode` nor a
31392
31466
  `snapshot.mode` entry in `properties` — is rejected 422 ("Expected field: snapshotMode
31393
31467
  to be present").
31468
+ required:
31469
+ - paths
31394
31470
  properties:
31395
31471
  captureMode:
31396
31472
  type: string
@@ -31500,13 +31576,13 @@ components:
31500
31576
  - Never author or modify this field — the platform owns the stream position.
31501
31577
  paths:
31502
31578
  type: array
31579
+ minItems: 1
31503
31580
  items:
31504
31581
  type: string
31505
31582
  description: |-
31506
- Dot-notation paths within each raw change event to retain in the emitted record. MongoDB
31507
- listeners default to `["payload"]` (the whole change document); SQL Server, PostgreSQL and
31508
- MySQL listeners commonly select `payload.after`, `payload.op`, and related fields to expose
31509
- the changed row and operation type. The MySQL listener form offers `payload.after`,
31583
+ Dot-notation paths within each raw change event to retain in the emitted record, such as
31584
+ `payload.after` (the changed row or document) and `payload.op` (the operation type).
31585
+ The MySQL listener form offers `payload.after`,
31510
31586
  `payload.before`, `schema`, `payload.source`, `payload.op`, `payload.transaction`,
31511
31587
  `payload.ts_ms`, `payload.ts_us` and `payload.ts_ns`, preselecting `payload.after`; it has
31512
31588
  no `updateDescription`-derived options and no `payload.id`. The MySQL listener
@@ -31514,8 +31590,9 @@ components:
31514
31590
  as the row before an update or delete (needs `binlog_row_image=FULL`), `op` as `c` / `u` /
31515
31591
  `d` / `r` (insert / update / delete / snapshot read) and `source` as the database, table,
31516
31592
  binlog file and position.
31593
+ x-celigo-ui-override: 'Required by every listener form (MongoDB, SQL Server, PostgreSQL, and MySQL: cdc.paths is a required:true multiselect with defaultValue [''payload.after'']). Encoded here to mirror the forms so builders produce complete listener configurations.'
31517
31594
  examples:
31518
- - - payload
31595
+ - - payload.after
31519
31596
  - - payload.after
31520
31597
  - payload.op
31521
31598
  - - payload.after
@@ -31543,7 +31620,9 @@ components:
31543
31620
  serialized first, followed by optional keys such as `field.exclude.list`,
31544
31621
  `column.include.list`, or `snapshot.collection.filter.overrides.<db>.<collection>`.
31545
31622
  On save the API also lifts `snapshot.mode` / `capture.mode` entries into the typed
31546
- `snapshotMode` / `captureMode` fields.
31623
+ `snapshotMode` / `captureMode` fields. When one body carries both with different values,
31624
+ the `snapshot.mode` entry wins on SQL Server, PostgreSQL and MySQL listeners, and the typed
31625
+ `snapshotMode` wins on a MongoDB listener.
31547
31626
 
31548
31627
  The MySQL listener form offers six keys: `snapshot.mode` (preselected `no_data`) and five
31549
31628
  optional comma-separated regular-expression lists — `table.exclude.list` (matched on
@@ -31558,6 +31637,11 @@ components:
31558
31637
  The API persists any key sent here without validating it against the connector, so a
31559
31638
  MongoDB or PostgreSQL key on a MySQL listener saves cleanly and does nothing — author only
31560
31639
  the keys the listener's form offers.
31640
+ - |-
31641
+ On SQL Server, PostgreSQL, and MySQL listeners every save appends one more
31642
+ `snapshot.mode` entry that repeats the resolved mode, so a GET response lists it twice
31643
+ and each GET-then-PUT round trip adds another copy. Send a single `snapshot.mode`
31644
+ entry: drop the trailing repeats before you PUT a fetched export back.
31561
31645
  items:
31562
31646
  type: object
31563
31647
  required:
@@ -37544,7 +37628,7 @@ components:
37544
37628
  {
37545
37629
  "type": "stream",
37546
37630
  "rdbms": { "tables": "public.orders,public.customers" },
37547
- "cdc": { "properties": [{ "name": "snapshot.mode", "value": "no_data" }] }
37631
+ "cdc": { "properties": [{ "name": "snapshot.mode", "value": "no_data" }], "paths": ["payload.after"] }
37548
37632
  }
37549
37633
  ```
37550
37634
  A MySQL listener names its tables as `database.table` (MySQL has no schema layer):
@@ -38168,7 +38252,9 @@ components:
38168
38252
  `POST /v1/exports/preview` reads the `mockOutput` in its request body, not the saved one. For
38169
38253
  an export the preview supports (an HTTP export, for example), a body that carries it (as an
38170
38254
  export read back with GET does) returns that snapshot as a lone `parse` stage without calling
38171
- the source; remove `mockOutput` from the body to preview live records.
38255
+ the source; remove `mockOutput` from the body to preview live records. A body mock with an
38256
+ empty or missing `page_of_records` still skips the source and returns 200 with empty `data`
38257
+ and an empty `parse` stage.
38172
38258
 
38173
38259
  **Limitations**
38174
38260
 
@@ -38453,7 +38539,9 @@ components:
38453
38539
  `stream` is accepted only on MongoDB and RDBMS exports (SQL Server,
38454
38540
  PostgreSQL or MySQL connections) and on Event Streams listeners
38455
38541
  (`adaptorType: TopicExport`); every other adaptor rejects the save
38456
- with `unsupported_export_type`. A MongoDB or RDBMS stream export
38542
+ with `unsupported_export_type`, and a MariaDB connection is rejected
38543
+ with 422 `missing_required_field` on `type` ("RDBMS stream export not
38544
+ supported for mariadb"). A MongoDB or RDBMS stream export
38457
38545
  must carry `cdc.snapshotMode` (and `cdc.captureMode` on MongoDB) —
38458
38546
  omitting them fails with 422 `missing_required_field` on those paths.
38459
38547
  enum:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.206",
3
+ "version": "0.2.208",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [