@celigo/api-specs 0.2.196 → 0.2.198

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
@@ -3919,7 +3919,9 @@ components:
3919
3919
  - statusMapping
3920
3920
  - departmentCodes
3921
3921
  hardCodedValue:
3922
- type: string
3922
+ type:
3923
+ - string
3924
+ - 'null'
3923
3925
  description: |
3924
3926
  Constant written to the destination instead of an extracted value. On a primitive
3925
3927
  array (`stringarray`, `numberarray`, `booleanarray`) the string is split on commas,
@@ -3927,6 +3929,8 @@ components:
3927
3929
  On an `object` it must be a JSON object string and on an `objectarray` a JSON array
3928
3930
  string (an object string becomes one element); the save parses it and refuses non-JSON
3929
3931
  or the wrong shape with 422, and an array row with a constant needs no `buildArrayHelper`.
3932
+ JSON `null` writes the destination field as null; it is what the mapper saves for its
3933
+ hard-coded "Use null as default value" choice.
3930
3934
  examples:
3931
3935
  - USD
3932
3936
  - A,B
@@ -5013,7 +5017,9 @@ components:
5013
5017
  - statusMapping
5014
5018
  - departmentCodes
5015
5019
  hardCodedValue:
5016
- type: string
5020
+ type:
5021
+ - string
5022
+ - 'null'
5017
5023
  description: |
5018
5024
  Constant written to the destination instead of an extracted value. On a primitive
5019
5025
  array (`stringarray`, `numberarray`, `booleanarray`) the string is split on commas,
@@ -5021,6 +5027,8 @@ components:
5021
5027
  On an `object` it must be a JSON object string and on an `objectarray` a JSON array
5022
5028
  string (an object string becomes one element); the save parses it and refuses non-JSON
5023
5029
  or the wrong shape with 422, and an array row with a constant needs no `buildArrayHelper`.
5030
+ JSON `null` writes the destination field as null; it is what the mapper saves for its
5031
+ hard-coded "Use null as default value" choice.
5024
5032
  examples:
5025
5033
  - USD
5026
5034
  - A,B
@@ -31239,12 +31247,22 @@ components:
31239
31247
  description: |-
31240
31248
  Change-data-capture configuration for real-time listener exports (the "Listen for real-time
31241
31249
  data" source step). Present only when `type` is `stream`. Set on `MongodbExport` (MongoDB change
31242
- streams) and `RDBMSExport` (SQL Server CDC and PostgreSQL logical replication); the listener
31243
- streams change events continuously instead of fetching records on a schedule.
31250
+ streams) and `RDBMSExport` (SQL Server CDC, PostgreSQL logical replication, and MySQL binary-log
31251
+ CDC); the listener streams change events continuously instead of fetching records on a schedule.
31244
31252
 
31245
31253
  On save the API normalizes the `properties` grid into the typed fields: a `snapshot.mode`
31246
31254
  entry populates `snapshotMode` and a `capture.mode` entry populates `captureMode`. Every
31247
31255
  stream export must resolve a snapshot mode from one of those two places.
31256
+
31257
+ The prerequisites live on the database, not on the export: a listener saves (201) on a
31258
+ connection whose database host is unreachable, so a successful save does not confirm them.
31259
+ The platform's listener documentation requires: for PostgreSQL, logical replication
31260
+ (`wal_level=logical`) and a replication-capable user; for SQL Server, CDC enabled on the
31261
+ database and tables; for MongoDB change streams, a replica set; for MySQL, binary logging in
31262
+ row format (`log_bin=ON`, `binlog_format=ROW`, `binlog_row_image=FULL`) and a connection user
31263
+ holding `REPLICATION SLAVE`, `REPLICATION CLIENT` and `SELECT` on the captured tables
31264
+ (`RELOAD` is not needed on Amazon RDS or Aurora, where the listener takes no global read
31265
+ lock).
31248
31266
  x-celigo-ai-guidance:
31249
31267
  - |-
31250
31268
  A stream export that resolves no snapshot mode — neither `snapshotMode` nor a
@@ -31263,7 +31281,13 @@ components:
31263
31281
  description: |-
31264
31282
  How MongoDB change-stream events are materialized into records. Use
31265
31283
  `change_streams_update_full_with_pre_image` when downstream steps need the document's prior
31266
- state. MongoDB listeners only — `RDBMSExport` (SQL Server CDC, PostgreSQL) does not set this.
31284
+ state. MongoDB listeners only — `RDBMSExport` (SQL Server CDC, PostgreSQL, MySQL) does not
31285
+ set this.
31286
+ x-celigo-ai-guidance:
31287
+ - |-
31288
+ Never author this on an `RDBMSExport`: the API stores it on a MySQL stream export without
31289
+ rejecting it (unlike `slotName`, it is not gated per adaptor), so nothing at save time
31290
+ catches the mistake and the dead setting rides on the document.
31267
31291
  examples:
31268
31292
  - change_streams_update_full
31269
31293
  - change_streams_update_full_with_pre_image
@@ -31281,13 +31305,17 @@ components:
31281
31305
  initial_only: Takes the initial snapshot and then stops, without streaming ongoing changes.
31282
31306
  default: no_data
31283
31307
  description: |-
31284
- Whether the listener seeds existing rows before streaming changes. Use `initial` to backfill
31285
- existing data on the first run; `no_data` to stream only new changes.
31308
+ Whether the listener seeds existing rows before streaming changes. `no_data` streams only
31309
+ new changes; `initial` backfills existing data on the first run where the listener form
31310
+ offers it (MongoDB, SQL Server). The PostgreSQL and MySQL forms offer `no_data` and
31311
+ `when_needed` only; the MySQL listener documentation describes `when_needed` as a one-time
31312
+ read of the captured tables when no stream position is stored or the stored position is no
31313
+ longer on the server.
31286
31314
  x-celigo-ai-guidance:
31287
31315
  - |-
31288
- The PostgreSQL listener form offers only `no_data` and `when_needed`. The API stores other
31289
- values on a PostgreSQL export without rejecting them, but they are outside the supported
31290
- PostgreSQL matrix — stay within the form's subset.
31316
+ The PostgreSQL and MySQL listener forms offer only `no_data` and `when_needed`. The API
31317
+ stores other values on those exports without rejecting them, but they are outside the
31318
+ supported matrix — stay within the form's subset.
31291
31319
  examples:
31292
31320
  - initial
31293
31321
  - no_data
@@ -31302,8 +31330,9 @@ components:
31302
31330
  underscore).
31303
31331
  x-celigo-ai-guidance:
31304
31332
  - |-
31305
- PostgreSQL connections only: on any other connection the save is rejected 422
31306
- `not_allowed` ("CDC slotName can only be used with postgresql adaptor type").
31333
+ PostgreSQL connections only: on any other connection — SQL Server, MySQL — the save is
31334
+ rejected 422 `not_allowed` ("CDC slotName can only be used with postgresql adaptor type").
31335
+ MySQL CDC reads the binary log directly; it has no replication slot.
31307
31336
  - |-
31308
31337
  The identifier pattern is enforced server-side — an invalid name (uppercase, dashes) is
31309
31338
  rejected 422 `invalid_field_value` at save time.
@@ -31323,17 +31352,27 @@ components:
31323
31352
  sent, so nothing catches the ambiguity at save time — the exclusivity is the listener
31324
31353
  form's rule (publication wins as the sole table filter).
31325
31354
  - |-
31326
- PostgreSQL connections only: rejected 422 `not_allowed` on other connections, and the
31327
- identifier pattern is enforced server-side like `slotName`.
31355
+ PostgreSQL connections only: rejected 422 `not_allowed` on other connections (SQL Server,
31356
+ MySQL — "CDC publicationName can only be used with postgresql adaptor type"), and the
31357
+ identifier pattern is enforced server-side like `slotName`. A MySQL listener scopes
31358
+ tables only through `rdbms.tables` and the include / exclude `properties`.
31359
+ - |-
31360
+ On a PostgreSQL connection one of this field or `rdbms.tables` must be present: a stream
31361
+ export carrying neither is rejected 422 `missing_required_field` on both paths
31362
+ ("publicationName is required when tables is not provided." / "tables is required when
31363
+ publicationName is not provided."). SQL Server and MySQL listeners save without either.
31328
31364
  examples:
31329
31365
  - celigo_pub
31330
31366
  - orders_publication
31331
31367
  cursor:
31332
31368
  type: string
31333
31369
  description: |-
31334
- Server-managed stream position marker (where the listener resumes reading change events).
31370
+ Server-managed stream position marker (where the listener resumes reading change events;
31371
+ the MySQL listener documentation describes it as the binlog file and position last saved).
31335
31372
  Maintained by the platform as events are consumed; the UI exposes a reset workflow for it
31336
- under Cursor Management.
31373
+ under Cursor Management, which appears once a cursor exists. The form's reset is a full save that omits `cursor` and carries the
31374
+ top-level request flag `pendingCursorReset: true`; the API accepts the flag and does not
31375
+ store it on the document.
31337
31376
  x-celigo-ai-guidance:
31338
31377
  - Never author or modify this field — the platform owns the stream position.
31339
31378
  paths:
@@ -31342,17 +31381,33 @@ components:
31342
31381
  type: string
31343
31382
  description: |-
31344
31383
  Dot-notation paths within each raw change event to retain in the emitted record. MongoDB
31345
- listeners default to `["payload"]` (the whole change document); SQL Server and PostgreSQL
31346
- listeners commonly select `payload.after`, `payload.op`, and related fields to expose the
31347
- changed row and operation type.
31384
+ listeners default to `["payload"]` (the whole change document); SQL Server, PostgreSQL and
31385
+ MySQL listeners commonly select `payload.after`, `payload.op`, and related fields to expose
31386
+ the changed row and operation type. The MySQL listener form offers `payload.after`,
31387
+ `payload.before`, `schema`, `payload.source`, `payload.op`, `payload.transaction`,
31388
+ `payload.ts_ms`, `payload.ts_us` and `payload.ts_ns`, preselecting `payload.after`; it has
31389
+ no `updateDescription`-derived options and no `payload.id`. The MySQL listener
31390
+ documentation describes `after` as the row after the change (empty on a delete), `before`
31391
+ as the row before an update or delete (needs `binlog_row_image=FULL`), `op` as `c` / `u` /
31392
+ `d` / `r` (insert / update / delete / snapshot read) and `source` as the database, table,
31393
+ binlog file and position.
31348
31394
  examples:
31349
31395
  - - payload
31350
31396
  - - payload.after
31351
31397
  - payload.op
31398
+ - - payload.after
31399
+ - payload.before
31400
+ - payload.op
31352
31401
  intervalTime:
31353
31402
  type: integer
31354
31403
  default: 300
31355
- description: Polling interval, in seconds, at which the listener checks the source for new change events.
31404
+ minimum: 30
31405
+ x-celigo-ui-override: The minimum mirrors the listener forms, which label this field Max wait time and reject a value under 30 ("Max wait time must be at least 30 seconds."); the API itself stores a lower value.
31406
+ description: |-
31407
+ Interval, in seconds, that bounds how long the listener holds change events before sending
31408
+ a page downstream. The listener forms label it Max wait time, and the platform's listener
31409
+ documentation describes it as the longest a page waits when fewer than `pageSize` events
31410
+ have arrived — a full page is sent as soon as it fills.
31356
31411
  examples:
31357
31412
  - 300
31358
31413
  - 30
@@ -31361,11 +31416,25 @@ components:
31361
31416
  description: |-
31362
31417
  Connector-engine settings passed through to the underlying CDC connector as name/value
31363
31418
  pairs. Mirrors the form's additional-properties grid: the required keys (`capture.mode`
31364
- and `snapshot.mode` for MongoDB, `snapshot.mode` for SQL Server and PostgreSQL) are
31419
+ and `snapshot.mode` for MongoDB, `snapshot.mode` for SQL Server, PostgreSQL and MySQL) are
31365
31420
  serialized first, followed by optional keys such as `field.exclude.list`,
31366
31421
  `column.include.list`, or `snapshot.collection.filter.overrides.<db>.<collection>`.
31367
31422
  On save the API also lifts `snapshot.mode` / `capture.mode` entries into the typed
31368
31423
  `snapshotMode` / `captureMode` fields.
31424
+
31425
+ The MySQL listener form offers six keys: `snapshot.mode` (preselected `no_data`) and five
31426
+ optional comma-separated regular-expression lists — `table.exclude.list` (matched on
31427
+ `database.table`), `database.include.list`, `database.exclude.list`,
31428
+ `column.include.list` and `column.exclude.list` (matched on `database.table.column`).
31429
+ MySQL has no schema layer, so there are no `schema.include.list` / `schema.exclude.list`
31430
+ keys, and the MongoDB keys (`capture.mode`, `collection.exclude.list`,
31431
+ `field.exclude.list`) do not apply. The MySQL listener documentation describes a blank
31432
+ watch list as every table the connection's user can read, trimmed by `table.exclude.list`.
31433
+ x-celigo-ai-guidance:
31434
+ - |-
31435
+ The API persists any key sent here without validating it against the connector, so a
31436
+ MongoDB or PostgreSQL key on a MySQL listener saves cleanly and does nothing — author only
31437
+ the keys the listener's form offers.
31369
31438
  items:
31370
31439
  type: object
31371
31440
  required:
@@ -37290,8 +37359,8 @@ components:
37290
37359
  for other connection types. For query-type exports (standard, delta, once) it is REQUIRED
37291
37360
  when the _connectionId field references an RDBMS database connection and holds the SQL
37292
37361
  query. For real-time stream listeners (`type: "stream"`) it holds the CDC watch list
37293
- (`tables`) instead — and a PostgreSQL listener scoped by a publication
37294
- (`cdc.publicationName`) may omit this object entirely.
37362
+ (`tables`) instead — and a SQL Server or MySQL listener with no watch list, or a PostgreSQL
37363
+ listener scoped by a publication (`cdc.publicationName`), may omit this object entirely.
37295
37364
 
37296
37365
  **Rdbms export capabilities**
37297
37366
  - Execute custom SQL SELECT statements
@@ -37345,8 +37414,8 @@ components:
37345
37414
  ```
37346
37415
 
37347
37416
  **Real-time CDC listener exports (type: "stream")**
37348
- SQL Server and PostgreSQL connections support change-data-capture listeners that stream row
37349
- changes continuously (the `cdc` object holds the listener settings). A stream export has NO
37417
+ SQL Server, PostgreSQL and MySQL connections support change-data-capture listeners that stream
37418
+ row changes continuously (the `cdc` object holds the listener settings). A stream export has NO
37350
37419
  `query` — it watches `tables`:
37351
37420
  ```json
37352
37421
  {
@@ -37355,9 +37424,26 @@ components:
37355
37424
  "cdc": { "properties": [{ "name": "snapshot.mode", "value": "no_data" }] }
37356
37425
  }
37357
37426
  ```
37427
+ A MySQL listener names its tables as `database.table` (MySQL has no schema layer):
37428
+ ```json
37429
+ {
37430
+ "type": "stream",
37431
+ "rdbms": { "tables": "sales.orders,sales.order_lines" },
37432
+ "cdc": {
37433
+ "properties": [{ "name": "snapshot.mode", "value": "no_data" }],
37434
+ "paths": ["payload.after", "payload.op"]
37435
+ }
37436
+ }
37437
+ ```
37358
37438
  A PostgreSQL listener can instead scope tables through a publication
37359
37439
  (`cdc.publicationName`), in which case `tables` stays unset and the `rdbms` object may be
37360
- omitted entirely.
37440
+ omitted entirely; on PostgreSQL one of the two must be present. SQL Server and MySQL
37441
+ listeners save with no `tables` and no `rdbms` object at all (a blank `tables` string is
37442
+ dropped on save); the MySQL listener documentation describes that as every table the
37443
+ connection's user can read, trimmed by the `table.exclude.list` property.
37444
+ `POST /v1/exports/preview` rejects a stream export both with `rdbms.tables` sent and with
37445
+ no `rdbms` object at all, with the same 422 `missing_required_field` ("rdbms subschema not
37446
+ defined") — listeners have no preview.
37361
37447
  properties:
37362
37448
  tables:
37363
37449
  type: string
@@ -37365,16 +37451,26 @@ components:
37365
37451
  Comma-separated list of tables the CDC listener watches for changes. Used only by real-time
37366
37452
  listener exports (`type` is `stream`); standard SQL exports use `query` instead. SQL Server
37367
37453
  listeners use fully-qualified three-part names (`database.schema.table`); PostgreSQL
37368
- listeners use two-part names (`schema.table`).
37454
+ listeners use two-part names (`schema.table`); MySQL listeners use two-part
37455
+ `database.table` names, since MySQL has no schema layer between the database and the
37456
+ table. A PostgreSQL listener must carry this field or `cdc.publicationName`; SQL Server
37457
+ and MySQL listeners may leave it out (for MySQL the listener documentation describes that
37458
+ as every table the connection's user can read, trimmed by `table.exclude.list`).
37369
37459
  x-celigo-ai-guidance:
37370
37460
  - |-
37371
37461
  For a PostgreSQL listener, author EITHER this field OR `cdc.publicationName`, never both —
37372
37462
  when a publication is set it is the sole table filter and the listener form clears this
37373
37463
  field (the API stores both if sent, so nothing catches the conflict at save time).
37464
+ - |-
37465
+ The API does not validate the names against the engine — a three-part name on a MySQL
37466
+ listener saves cleanly — so nothing at save time catches the wrong form. Use the engine's
37467
+ own: `database.table` on MySQL, `schema.table` on PostgreSQL, `database.schema.table` on
37468
+ SQL Server.
37374
37469
  examples:
37375
37470
  - UKGODS.dbo.UKG_MetadataStaging
37376
37471
  - dbo.WorkOrderT,dbo.OrderLineT
37377
37472
  - public.orders,public.customers
37473
+ - sales.orders,sales.order_lines
37378
37474
  query:
37379
37475
  type: string
37380
37476
  x-celigo-agent:
@@ -38206,8 +38302,8 @@ components:
38206
38302
  - **Listen for inbound events from NetSuite or Salesforce**
38207
38303
  -> `distributed`
38208
38304
  - **Stream database changes in real time as they happen**
38209
- (change data capture from MongoDB, SQL Server, or
38210
- PostgreSQL — "when a row changes", "listen to my table")
38305
+ (change data capture from MongoDB, SQL Server, PostgreSQL
38306
+ or MySQL — "when a row changes", "listen to my table")
38211
38307
  -> `stream`, configured via the `cdc` object
38212
38308
  - **Subscribe to an Event Streams topic** ("listen to topic X",
38213
38309
  "consume messages published to …") -> `stream` with
@@ -38231,8 +38327,8 @@ components:
38231
38327
  delta config is a separate concern that scopes how you fill in
38232
38328
  the chosen config, not whether to use it.
38233
38329
  - |-
38234
- `stream` is accepted only on MongoDB and RDBMS exports (SQL Server
38235
- or PostgreSQL connections) and on Event Streams listeners
38330
+ `stream` is accepted only on MongoDB and RDBMS exports (SQL Server,
38331
+ PostgreSQL or MySQL connections) and on Event Streams listeners
38236
38332
  (`adaptorType: TopicExport`); every other adaptor rejects the save
38237
38333
  with `unsupported_export_type`. A MongoDB or RDBMS stream export
38238
38334
  must carry `cdc.snapshotMode` (and `cdc.captureMode` on MongoDB) —
@@ -38257,7 +38353,7 @@ components:
38257
38353
  simple: Allows manual file uploads through the data loader UI.
38258
38354
  blob: Retrieves raw files without parsing them into structured data records.
38259
38355
  distributed: Listens for real-time events from NetSuite or Salesforce.
38260
- stream: Streams events in real time — database change data capture (MongoDB change streams, SQL Server CDC, PostgreSQL logical replication) configured through the `cdc` object, or an Event Streams topic subscription (`TopicExport`) configured through `topic`.
38356
+ stream: Streams events in real time — database change data capture (MongoDB change streams, SQL Server CDC, PostgreSQL logical replication, MySQL binary log) configured through the `cdc` object, or an Event Streams topic subscription (`TopicExport`) configured through `topic`.
38261
38357
  all: Explicitly retrieves all available records — equivalent to omitting `type`.
38262
38358
  examples:
38263
38359
  - webhook
@@ -38384,6 +38480,21 @@ components:
38384
38480
  $ref: '#/components/schemas/Distributed'
38385
38481
  cdc:
38386
38482
  $ref: '#/components/schemas/Cdc'
38483
+ pendingCursorReset:
38484
+ type: boolean
38485
+ writeOnly: true
38486
+ description: |-
38487
+ When true on a save of a stream listener, requests a reset of the listener's stored stream
38488
+ position — the Cursor Management reset the listener form sends, with `cdc.cursor` omitted
38489
+ from the same document; the listener documentation describes the save as clearing the
38490
+ stored cursor and restarting the listener. Accepted on the request and not stored on the
38491
+ export.
38492
+ x-celigo-ai-guidance:
38493
+ - |-
38494
+ Never author this flag — like `cdc.cursor`, the stream position is the platform's, and
38495
+ the reset is the listener form's Cursor Management action. The API accepts it silently
38496
+ (200) and the readback carries no trace that it was sent, so a save that carried it by
38497
+ mistake cannot be seen afterwards on the export.
38387
38498
  topic:
38388
38499
  $ref: '#/components/schemas/Topic-2'
38389
38500
  filesystem:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.196",
3
+ "version": "0.2.198",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [