@celigo/api-specs 0.2.213 → 0.2.215

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
@@ -6276,12 +6276,16 @@ components:
6276
6276
  - |-
6277
6277
  On a grouped record (the export groups rows, so the record is an
6278
6278
  array) only `create` can author output — build it from the rows with
6279
- `$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`.
6279
+ `$[0].field`, `$[*].field`, or a `buildArrayHelper` over `$[*]`
6280
+ (`$.rows[0].field` and `$.rows[*]` with `inputContext: envelope`).
6280
6281
  `modify` has no object to overlay onto an array: the record passes
6281
- through untouched and the processor reports success. Either mode
6282
- reshapes the inside of one record; neither changes how many records
6283
- the page carries (that is the export's `preSavePage` hook) or whether
6284
- the export groups at all (that is its grouping setting).
6282
+ through untouched and the processor reports success. Paths written
6283
+ for one object record (`$.field`, an entry `$.lines[*]`) resolve
6284
+ nothing there, so `create` returns `{}` for each record, also with
6285
+ no error (live, 2026-10-30). Either mode reshapes the inside of one
6286
+ record; neither changes how many records the page carries (that is
6287
+ the export's `preSavePage` hook) or whether the export groups at all
6288
+ (that is its grouping setting).
6285
6289
  examples:
6286
6290
  - create
6287
6291
  - modify
@@ -6346,8 +6350,8 @@ components:
6346
6350
  - record
6347
6351
  - envelope
6348
6352
  x-enumDescriptions:
6349
- record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment) — the default when absent.
6350
- envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
6353
+ record: The transform processor evaluates `mappings[].extract` JSONPath against the flat record itself (`$.field`, no `record.` segment; a grouped record is the array of rows, `$[0].field`) — the default when absent.
6354
+ envelope: The transform processor evaluates JSONPath against the wrapped runtime envelope `{record, job, testMode, settings, headers, queryParams}` (file-provider steps also carry `fileMeta`) — record fields need the `record.` segment (`$.record.field`), and a grouped record sits under `rows` instead (`$.rows[0].field`), while `headers` and `queryParams` sit beside `record` (`$.headers['X-Id']`, `$.queryParams.src`).
6351
6355
  description: |
6352
6356
  Controls the JSON shape the transformTwoDotZero processor
6353
6357
  evaluates `mappings[].extract` JSONPath values against at
@@ -6363,24 +6367,38 @@ components:
6363
6367
  processor sees the FLAT record as its evaluation root.
6364
6368
  `mappings[].extract` JSONPath MUST anchor directly at
6365
6369
  `$` with NO `record.` segment — e.g. `"$.orderId"`,
6366
- `"$.customer.email"`; PLACEHOLDER extracts use
6370
+ `"$.customer.email"` on an object record, `"$[0].orderId"`
6371
+ on a grouped one; PLACEHOLDER extracts use
6367
6372
  `"$.PLACEHOLDER_<field>"`.
6368
6373
  This is the dominant Celigo idiom and the right choice for new transforms.
6369
6374
  - `envelope`: the processor sees a wrapped object
6370
6375
  `{record: {...}, job, testMode, settings, headers,
6371
6376
  queryParams}` (plus `fileMeta` on file-provider steps).
6372
6377
  `mappings[].extract` JSONPath MUST include the
6373
- `record.` segment for record fields — e.g.
6374
- `"$.record.orderId"` — and reads `headers` and
6378
+ `record.` segment for an object record's fields — e.g.
6379
+ `"$.record.orderId"`; a grouped record sits under `rows`
6380
+ instead (`"$.rows[0].orderId"`) — and reads `headers` and
6375
6381
  `queryParams` beside it (`$.headers['X-Id']`);
6376
6382
  PLACEHOLDER extracts use `"$.record.PLACEHOLDER_<field>"`.
6377
6383
  Pick this only when the transform was authored against
6378
6384
  the envelope shape on purpose.
6379
6385
  - |-
6380
- Handlebars expressions inside `extract`
6381
- (`{{record.field}}`, `{{dateFormat ... record.field}}`)
6382
- ALWAYS reference the `record` root regardless of
6386
+ Handlebars expressions inside `extract` reference the
6387
+ `record` root on an object record (`{{record.field}}`,
6388
+ `{{dateFormat ... record.field}}`) and `rows` on a
6389
+ grouped one (`{{rows.0.field}}`), regardless of
6383
6390
  `inputContext` — only JSONPath anchoring flips.
6391
+ - |-
6392
+ ## Grouped records
6393
+
6394
+ When the export groups rows, each record is an array of
6395
+ rows. In `record` mode JSONPath roots at that array
6396
+ (`$[0].field`, `$[*]`); `envelope` binds it as `rows`,
6397
+ not `record` — `$.rows[0].field`, and an entry
6398
+ `$.rows[*]` whose children read `$.rows.field` — while
6399
+ `$.record[0].field` and `$.record[*]` resolve nothing,
6400
+ with no error (live, 2026-10-30). Handlebars extracts
6401
+ read it as `rows` in both modes (`{{rows.0.field}}`).
6384
6402
  - |-
6385
6403
  In `envelope` mode the output is still a bare record: a
6386
6404
  `modify` transform returns the record with its mapped
@@ -6401,7 +6419,8 @@ components:
6401
6419
  ``mappings[].extract`` JSONPath values MUST anchor
6402
6420
  directly at ``$`` with NO ``record.`` segment — for
6403
6421
  example ``"$.orderId"`` or
6404
- ``"$.customer.email"``. PLACEHOLDER extracts use
6422
+ ``"$.customer.email"`` on an object record, and
6423
+ ``"$[0].orderId"`` on a grouped one. PLACEHOLDER extracts use
6405
6424
  ``"$.PLACEHOLDER_<field>"``. This is the dominant
6406
6425
  Celigo idiom and the right choice for new transforms.
6407
6426
 
@@ -6413,9 +6432,10 @@ components:
6413
6432
  ``record``) — the
6414
6433
  same runtime-context envelope Handlebars / SQL /
6415
6434
  GraphQL templates render against. ``mappings[].extract``
6416
- JSONPath values for record fields MUST include the
6435
+ JSONPath values for an object record's fields MUST include the
6417
6436
  ``record.`` segment — for example ``"$.record.orderId"``
6418
- or ``"$.record.customer.email"`` — while ``headers`` and
6437
+ or ``"$.record.customer.email"``; a grouped record's rows
6438
+ sit under ``rows`` instead (``"$.rows[0].orderId"``) — while ``headers`` and
6419
6439
  ``queryParams`` are read beside it
6420
6440
  (``"$.headers['X-Id']"``). PLACEHOLDER extracts
6421
6441
  use ``"$.record.PLACEHOLDER_<field>"``. Pick this
@@ -6428,8 +6448,9 @@ components:
6428
6448
 
6429
6449
  Handlebars expressions inside ``extract``
6430
6450
  (``{{record.field}}``,
6431
- ``{{dateFormat ... record.field}}``, etc.) ALWAYS
6432
- reference the runtime context's ``record`` root
6451
+ ``{{dateFormat ... record.field}}``, etc.) reference the
6452
+ runtime context's ``record`` root on an object record,
6453
+ and ``rows`` (``{{rows.0.field}}``) on a grouped one,
6433
6454
  regardless of ``inputContext`` — the Handlebars runtime
6434
6455
  always sees the wrapped envelope. Only JSONPath
6435
6456
  behavior flips with this field.
@@ -7709,11 +7730,22 @@ components:
7709
7730
  format: objectId
7710
7731
  x-celigo-refModel: agents
7711
7732
  description: |
7712
- Reference to a Celigo on-premise Agent. Required for connection types that need
7713
- local network or filesystem access (JDBC, filesystem, Oracle RDBMS, and on-premise MongoDB).
7733
+ Reference to a Celigo on-premise Agent. Connection types that need local network or
7734
+ filesystem access (JDBC, filesystem, Oracle RDBMS, and on-premise MongoDB) carry one
7735
+ binding — this agent, or an agent group in `_agentGroupId`; never both.
7714
7736
  The agent establishes a secure tunnel between the on-premise environment and integrator.io.
7715
7737
  examples:
7716
7738
  - 5f8d43a1b9e5a80011a35f2c
7739
+ _agentGroupId:
7740
+ type: string
7741
+ format: objectId
7742
+ x-celigo-refModel: agentgroups
7743
+ description: |-
7744
+ On-premise agent group serving this connection, when one is bound
7745
+ instead of a single `_agentId`. Absent on connections that use a
7746
+ single agent or none.
7747
+ examples:
7748
+ - 6650a1b2c3d4e5f60718293a
7717
7749
  _borrowConcurrencyFromConnectionId:
7718
7750
  type: string
7719
7751
  format: objectId
@@ -10491,8 +10523,10 @@ components:
10491
10523
  x-celigo-ai-guidance:
10492
10524
  - The POST is rejected with 422 if type-specific required fields are missing (see the per-type conditional rules).
10493
10525
  - |-
10494
- For Oracle, a placeholder connection cannot be created without a real connection-level _agentId
10495
- (validator error agent_mode_only) — direct the user to install a Celigo Agent first. All other
10526
+ For Oracle, a placeholder connection cannot be created without a real on-premise binding — a
10527
+ connection-level _agentId, or an agent group through _agentGroupId (validator error
10528
+ agent_mode_only with neither; live-verified that a POST carrying only _agentGroupId is not
10529
+ answered with it) — direct the user to install a Celigo Agent first. All other
10496
10530
  RDBMS types accept placeholder credentials that satisfy the per-type required fields.
10497
10531
  - |-
10498
10532
  Celigo has native support for these database systems:
@@ -10543,16 +10577,17 @@ components:
10543
10577
  `_iClientId` with `basic` auth is rejected. Both types share the
10544
10578
  `mssql` sub-object; `azuresynapse` is cloud-only, and the SQL Server
10545
10579
  connection form offers service-principal auth in Cloud mode only — it
10546
- saves `basic` for an on-premise connection (`_agentId` set).
10547
- - **Oracle** — runs in agent mode only, so requires `_agentId` on the
10548
- parent connection object. Uses `serviceName` instead of `database`.
10580
+ saves `basic` for an on-premise connection (`_agentId` or `_agentGroupId` set).
10581
+ - **Oracle** — runs in agent mode only, so requires an on-premise binding on
10582
+ the parent connection object: `_agentId`, or an agent group's `_agentGroupId`
10583
+ (one of the two, never both). Uses `serviceName` instead of `database`.
10549
10584
  Optionally also takes `serverType` and `instanceName`.
10550
10585
 
10551
10586
  ## PLACEHOLDER / DUMMY RDBMS CONNECTIONS
10552
10587
 
10553
10588
  For Oracle, placeholder connections cannot be created without a real
10554
- `_agentId` — the validator will reject them. Direct the user to install
10555
- a Celigo Agent first. For all other RDBMS types, a placeholder can be
10589
+ `_agentId` or `_agentGroupId` — the validator will reject them. Direct the
10590
+ user to install a Celigo Agent first. For all other RDBMS types, a placeholder can be
10556
10591
  created with dummy credentials matching the rules above.
10557
10592
  x-celigo-ui-override: 'Several requireds mirror the connection form rather than the API: snowflake.warehouse, redshift.clusterIdentifier, redshift.user, and mssql version. The API creates connections without them (live-verified 201), but the form requires them and a functional connection needs them. For mysql, postgresql, and mariadb the form makes password conditional — not required when a full SSL client certificate (ssl.ca, ssl.key, ssl.cert) is supplied instead; the conditional below keeps password required for the common (non-SSL) path, which is the only path the API enforces.'
10558
10593
  required:
@@ -10575,7 +10610,7 @@ components:
10575
10610
  postgresql: PostgreSQL database (default port 5432).
10576
10611
  mssql: Microsoft SQL Server (default port 1433).
10577
10612
  snowflake: Snowflake Data Cloud (requires snowflake.warehouse).
10578
- oracle: Oracle Database; runs in agent mode and requires a connection-level _agentId (default port 1521, uses serviceName instead of database).
10613
+ oracle: Oracle Database; runs in agent mode and requires a connection-level _agentId or _agentGroupId (default port 1521, uses serviceName instead of database).
10579
10614
  bigquery: Google BigQuery; requires service account credentials in the bigquery sub-object.
10580
10615
  redshift: Amazon Redshift — provisioned clusters or Redshift Serverless; authenticates with static access keys or an AWS IAM role iClient (redshift.authType).
10581
10616
  mariadb: MariaDB database (default port 3306).
@@ -10800,7 +10835,7 @@ components:
10800
10835
  iClient — a client secret, or on SQL Server a certificate — and
10801
10836
  `_iClientId` must reference it. The SQL Server connection form
10802
10837
  offers `azure-service-principal` in Cloud mode only and saves
10803
- `basic` for an on-premise connection (`_agentId` set).
10838
+ `basic` for an on-premise connection (`_agentId` or `_agentGroupId` set).
10804
10839
  default: basic
10805
10840
  examples:
10806
10841
  - basic
@@ -11266,9 +11301,9 @@ components:
11266
11301
  422 "Expected field: <field> to be present" if any of the three is missing. database is not
11267
11302
  required; when omitted, set it per operation instead.
11268
11303
  - |-
11269
- For an on-premise MongoDB instance, set the connection-level _agentId (the form's "On-premise"
11270
- mode) so traffic routes through a Celigo Agent. Cloud-reachable instances (including Atlas)
11271
- need no agent.
11304
+ For an on-premise MongoDB instance, bind the connection to one agent (connection-level
11305
+ _agentId) or to one agent group (_agentGroupId) — the form's "On-premise" mode — so traffic
11306
+ routes through a Celigo Agent. Cloud-reachable instances (including Atlas) need no agent.
11272
11307
  - |-
11273
11308
  ## AUTHENTICATION
11274
11309
  Username and password are optional — only required when the MongoDB server has
@@ -11968,8 +12003,8 @@ components:
11968
12003
  description: |-
11969
12004
  Configuration for filesystem connections. Used when the connection type is "filesystem".
11970
12005
  Provides access to directories on a Celigo on-premise Agent's host or mounted network
11971
- drives, so a connection-level `_agentId` is required — cloud-only deployments cannot use
11972
- this type. File-based PGP encryption/decryption is configured through the connection-level
12006
+ drives, so an on-premise binding is required — a connection-level `_agentId`, or an agent
12007
+ group through `_agentGroupId` — and cloud-only deployments cannot use this type. File-based PGP encryption/decryption is configured through the connection-level
11973
12008
  `pgp` object.
11974
12009
  properties:
11975
12010
  ping:
@@ -12015,9 +12050,10 @@ components:
12015
12050
  mounted network drives.
12016
12051
 
12017
12052
  ## AGENT REQUIREMENT
12018
- A Celigo Agent is REQUIRED for filesystem connections (set _agentId on the parent
12019
- connection object). The agent provides the filesystem access — cloud-only
12020
- deployments cannot use this connection type.
12053
+ A Celigo Agent is REQUIRED for filesystem connections: bind the parent connection
12054
+ object to one agent (_agentId) or to one agent group (_agentGroupId) — one of the
12055
+ two, never both. The agent provides the filesystem access — cloud-only deployments
12056
+ cannot use this connection type.
12021
12057
  token:
12022
12058
  type: object
12023
12059
  description: |
@@ -12491,13 +12527,17 @@ components:
12491
12527
  Configuration for JDBC (Java Database Connectivity) connections. Used when the connection
12492
12528
  type is "jdbc". Provides access through Java JDBC drivers to databases not covered by the
12493
12529
  rdbms type — such as NetSuite SuiteAnalytics, Databricks, DB2, and Workday. The driver runs
12494
- on a Celigo on-premise Agent, so most jdbc connections need a connection-level _agentId.
12530
+ on a Celigo on-premise Agent, so most jdbc connections need an on-premise binding — a
12531
+ connection-level _agentId, or an agent group through _agentGroupId.
12495
12532
  x-celigo-ai-guidance:
12496
12533
  - The POST is rejected with 422 if type-specific required fields are missing (see the per-type conditional rules).
12497
12534
  - |-
12498
- The agent and activedirectory types require a real connection-level _agentId: the POST fails with
12499
- 422 "The JDBC connection requires Agent. Expected field: _agentId to be present in the connection
12500
- doc." A placeholder cannot be created without one, so the user should install a Celigo Agent first.
12535
+ The agent and activedirectory types require a real on-premise binding — a connection-level
12536
+ _agentId, or an agent group through _agentGroupId (one of the two, never both; the agent-mode
12537
+ check accepts either — live-verified for both agent and activedirectory: a POST carrying only
12538
+ _agentGroupId is not answered with agent_mode_only): with neither, the POST fails with 422 "The JDBC
12539
+ connection requires Agent. Expected field: _agentId to be present in the connection doc." A
12540
+ placeholder cannot be created without one, so the user should install a Celigo Agent first.
12501
12541
  Other types commonly run on an agent too, but only these two are validator-enforced (live-verified
12502
12542
  celigo-labs-2 2026-06-11).
12503
12543
  x-celigo-ui-override: 'Two activedirectory requireds mirror the connection form rather than the API: password and port (default 389). The API creates an activedirectory connection without them (it auto-defaults port to 389), but the form requires both, so they are encoded to mirror the form. The workday user and password requireds are NOT form overrides — they are enforced by the API itself (POST returns 422 "Expected field: user/password to be present"). Per-type forms also require named entries inside jdbc.properties (netsuitejdbc AccountID + ServerDataSource; db2 AuthScheme; workday tenant/connectionType/authScheme; activedirectory LDAPVersion/BaseDN) — documented in prose since they live in the properties name/value array.'
@@ -38493,8 +38533,8 @@ components:
38493
38533
  **Structure**
38494
38534
 
38495
38535
  The mock output must follow the integrator.io canonical format, which consists of a
38496
- `page_of_records` array containing record objects. Each record object has a `record`
38497
- property that contains the actual data fields.
38536
+ `page_of_records` array of items. On an export that does not group rows, each item has a
38537
+ `record` property that contains the actual data fields:
38498
38538
 
38499
38539
  ```json
38500
38540
  {
@@ -38511,6 +38551,19 @@ components:
38511
38551
  }
38512
38552
  ```
38513
38553
 
38554
+ An export that groups rows (`groupByFields`) produces records that are arrays of rows, and
38555
+ each item then carries `rows` instead of `record`, holding the rows of one grouped record. A
38556
+ flow test run saves a grouped export's records in this form:
38557
+
38558
+ ```json
38559
+ {
38560
+ "page_of_records": [
38561
+ { "rows": [ { "field1": "value1" }, { "field1": "value2" } ] },
38562
+ ...
38563
+ ]
38564
+ }
38565
+ ```
38566
+
38514
38567
  **Usage**
38515
38568
 
38516
38569
  In a flow test run, and for an upstream lookup during a page-processor preview
@@ -38543,7 +38596,8 @@ components:
38543
38596
 
38544
38597
  - Maximum of 10 records
38545
38598
  - Maximum size of 1 MB
38546
- - Must follow the canonical format shown above
38599
+ - Must follow one of the canonical formats shown above: every item `{"record": {...}}`, or
38600
+ on a grouped export every item `{"rows": [...]}`
38547
38601
 
38548
38602
  Mock output can be populated automatically from preview data (which is the parsed response,
38549
38603
  before `transform` / `filter`) or entered manually.
@@ -38585,6 +38639,22 @@ components:
38585
38639
  categories:
38586
38640
  - Electronics
38587
38641
  - Accessories
38642
+ rows:
38643
+ type: array
38644
+ description: |
38645
+ The rows of one grouped record, present instead of `record` when the export
38646
+ groups rows (`groupByFields`). Every item of a grouped export's mock carries
38647
+ `rows`.
38648
+ items:
38649
+ type: object
38650
+ additionalProperties: true
38651
+ example:
38652
+ - orderId: SO-1001
38653
+ sku: SKU-100
38654
+ quantity: 2
38655
+ - orderId: SO-1001
38656
+ sku: SKU-200
38657
+ quantity: 1
38588
38658
  example:
38589
38659
  page_of_records:
38590
38660
  - record:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.213",
3
+ "version": "0.2.215",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [