@celigo/api-specs 0.2.152 → 0.2.154

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
@@ -3638,6 +3638,12 @@ components:
3638
3638
  - Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street',
3639
3639
  '$[*].Tax' (every row of a grouped record)
3640
3640
  - Wildcards like [*] extract multiple values/objects
3641
+ - A key that contains a dot needs bracket notation: `$['P.O. Number']` (or
3642
+ `$["P.O. Number"]`, `$.[P.O. Number]`). `$.P.O. Number` is read as a nested
3643
+ path: it maps nothing and the record still succeeds. Spaces, hyphens and `#`
3644
+ need no brackets (`$.Ship To Name`, `$.Tracking #`)
3645
+ - Filter expressions such as `$.items[?(@.active)]` fail the record with
3646
+ "Eval [?(expr)] prevented in JSONPath expression."
3641
3647
 
3642
3648
  ```json
3643
3649
  "extract": "$.customer.addresses[*]" // Extracts all addresses
@@ -3826,6 +3832,12 @@ components:
3826
3832
  **Usage**
3827
3833
 
3828
3834
  The lookupName refers to a named lookup defined in the lookups array of the same resource.
3835
+ On an HTTP import that is `http.lookups`: a `lookups` array sent only at the top level
3836
+ is dropped on save. On an import, a name that matches no lookup fails every record
3837
+ with "Unable to find lookup in mapping configs - <name>", and a key the lookup
3838
+ doesn't hold follows the lookup's `allowFailures`: false fails the record; true, or
3839
+ the field left out, lets the record succeed with the lookup's `default`, or without
3840
+ the mapped field when there is none.
3829
3841
 
3830
3842
  ```json
3831
3843
  {
@@ -4163,6 +4175,11 @@ components:
4163
4175
  The system creates special composite objects during processing to maintain
4164
4176
  hierarchical relationships, allowing easy access to both the current array item
4165
4177
  and its parent contexts.
4178
+
4179
+ An iterating entry keeps the `[*]`: `$.line_items` without it yields one empty
4180
+ element per item, with no error. Child extracts drop the `[*]` but keep the
4181
+ array's path (`$.line_items.sku`); `$.line_items[*].sku` maps nothing, and an
4182
+ element-relative `$.sku` reads the record root instead of the element.
4166
4183
  examples:
4167
4184
  - $.items[*]
4168
4185
  - $.order.lineItems[*]
@@ -4374,14 +4391,17 @@ components:
4374
4391
  type: string
4375
4392
  description: |
4376
4393
  **Purpose**
4377
- Required on every mapping entry. Controls whether the mapping is applied.
4394
+ Controls whether the mapping is applied. Send it on every mapping entry.
4378
4395
 
4379
4396
  **Guidance**
4380
4397
  Only `Active` rows run. `Draft` and `Inactive` rows keep their
4381
4398
  configuration, are saved with minimal validation, and are skipped at
4382
4399
  runtime and in preview; a non-Active parent skips its whole subtree
4383
- whatever its children say. The API rejects a mapping missing this field
4384
- (validation error: "Mapping object must have status field present.").
4400
+ whatever its children say. Imports (on save and in the mapper processor)
4401
+ and API response mappings reject a row missing this field (validation
4402
+ error: "Mapping object must have status field present."); a Tool's
4403
+ output mapping saves and runs one, which is why `required` doesn't
4404
+ list it.
4385
4405
  x-celigo-ai-guidance:
4386
4406
  - |-
4387
4407
  Emit `"Active"` for mappings that should run; `"Draft"` is also
@@ -4704,6 +4724,12 @@ components:
4704
4724
  - Examples: '$.customer.firstName', '$.items[0].price', '$.addresses[*].street',
4705
4725
  '$[*].Tax' (every row of a grouped record)
4706
4726
  - Wildcards like [*] extract multiple values/objects
4727
+ - A key that contains a dot needs bracket notation: `$['P.O. Number']` (or
4728
+ `$["P.O. Number"]`, `$.[P.O. Number]`). `$.P.O. Number` is read as a nested
4729
+ path: it maps nothing and the record still succeeds. Spaces, hyphens and `#`
4730
+ need no brackets (`$.Ship To Name`, `$.Tracking #`)
4731
+ - Filter expressions such as `$.items[?(@.active)]` fail the record with
4732
+ "Eval [?(expr)] prevented in JSONPath expression."
4707
4733
 
4708
4734
  ```json
4709
4735
  "extract": "$.customer.addresses[*]" // Extracts all addresses
@@ -4892,6 +4918,12 @@ components:
4892
4918
  **Usage**
4893
4919
 
4894
4920
  The lookupName refers to a named lookup defined in the lookups array of the same resource.
4921
+ On an HTTP import that is `http.lookups`: a `lookups` array sent only at the top level
4922
+ is dropped on save. On an import, a name that matches no lookup fails every record
4923
+ with "Unable to find lookup in mapping configs - <name>", and a key the lookup
4924
+ doesn't hold follows the lookup's `allowFailures`: false fails the record; true, or
4925
+ the field left out, lets the record succeed with the lookup's `default`, or without
4926
+ the mapped field when there is none.
4895
4927
 
4896
4928
  ```json
4897
4929
  {
@@ -5229,6 +5261,11 @@ components:
5229
5261
  The system creates special composite objects during processing to maintain
5230
5262
  hierarchical relationships, allowing easy access to both the current array item
5231
5263
  and its parent contexts.
5264
+
5265
+ An iterating entry keeps the `[*]`: `$.line_items` without it yields one empty
5266
+ element per item, with no error. Child extracts drop the `[*]` but keep the
5267
+ array's path (`$.line_items.sku`); `$.line_items[*].sku` maps nothing, and an
5268
+ element-relative `$.sku` reads the record root instead of the element.
5232
5269
  examples:
5233
5270
  - $.items[*]
5234
5271
  - $.order.lineItems[*]
@@ -5440,14 +5477,17 @@ components:
5440
5477
  type: string
5441
5478
  description: |
5442
5479
  **Purpose**
5443
- Required on every mapping entry. Controls whether the mapping is applied.
5480
+ Controls whether the mapping is applied. Send it on every mapping entry.
5444
5481
 
5445
5482
  **Guidance**
5446
5483
  Only `Active` rows run. `Draft` and `Inactive` rows keep their
5447
5484
  configuration, are saved with minimal validation, and are skipped at
5448
5485
  runtime and in preview; a non-Active parent skips its whole subtree
5449
- whatever its children say. The API rejects a mapping missing this field
5450
- (validation error: "Mapping object must have status field present.").
5486
+ whatever its children say. Imports (on save and in the mapper processor)
5487
+ and API response mappings reject a row missing this field (validation
5488
+ error: "Mapping object must have status field present."); a Tool's
5489
+ output mapping saves and runs one, which is why `required` doesn't
5490
+ list it.
5451
5491
  x-celigo-ai-guidance:
5452
5492
  - |-
5453
5493
  Emit `"Active"` for mappings that should run; `"Draft"` is also
@@ -5818,8 +5858,8 @@ components:
5818
5858
  - Original value indicators: "{Original Value}", "No mapping found"
5819
5859
  - Neutral values: "Other", "N/A", "Miscellaneous"
5820
5860
 
5821
- If allowFailures is false and no default is specified, the flow will fail
5822
- when encountering unmapped values.
5861
+ If allowFailures is false, a record whose value is unmapped fails and the default
5862
+ is ignored.
5823
5863
  examples:
5824
5864
  - Unknown
5825
5865
  - Other
@@ -5840,7 +5880,11 @@ components:
5840
5880
  This field determines how the system handles source values that don't exist in the map:
5841
5881
 
5842
5882
  - true: Use the default value for missing mappings and continue processing
5843
- - false: Treat missing mappings as errors, failing the record
5883
+ - false: Treat missing mappings as errors, failing the record (`lookup_error` for a
5884
+ static map, `lookupcache_evaluation_failed` for a lookup cache)
5885
+ - omitted or null: the record doesn't fail either. On an import a static lookup writes
5886
+ its default if it has one, and a static or cache lookup without one leaves the
5887
+ mapped field out of the output, with no error
5844
5888
 
5845
5889
  **Recommendation**
5846
5890
 
@@ -5854,11 +5898,14 @@ components:
5854
5898
  - All possible source values are known and controlled
5855
5899
  - Missing mappings indicate serious data problems that should be addressed
5856
5900
 
5857
- The best practice is typically to set allowFailures to true with a meaningful
5858
- default value, so flows remain operational while alerting you to missing mappings.
5901
+ A default raises no error: records that miss go out with the default value and
5902
+ nothing reports them. Use true only when that fallback is acceptable at the
5903
+ destination, and set false explicitly when a missing value must stop the record.
5859
5904
  examples:
5860
5905
  - true
5861
5906
  - false
5907
+ x-celigo-ai-guidance:
5908
+ - 'Never leave this field out to mean "fail on a miss": on an import, an omitted or null value lets a missing key through without an error (with the default, or without the mapped field when there is none). Only an explicit false fails the record.'
5862
5909
  Transform:
5863
5910
  type: object
5864
5911
  description: |
@@ -7435,7 +7482,7 @@ components:
7435
7482
  connection's traffic counts against the referenced connection's limit instead of its own,
7436
7483
  and its own concurrency and auto-recovery settings have no effect. One level only: the
7437
7484
  referenced connection may not itself borrow, and a connection that others borrow from
7438
- cannot start borrowing.
7485
+ cannot start borrowing. A connection cannot reference itself (422).
7439
7486
  examples:
7440
7487
  - 615dfa0742763671275b70ab
7441
7488
  x-celigo-ai-guidance:
@@ -7472,16 +7519,21 @@ components:
7472
7519
  type: boolean
7473
7520
  description: |-
7474
7521
  When true, the connection has been taken offline and is skipped during flow execution.
7475
- The platform tests the connection after a create or `PUT` and updates this shortly
7476
- afterwards (the audit log records a `system` change; `lastModified` doesn't move), so
7477
- read it again a few seconds after the write.
7522
+ It is set by the connection test a create or `PUT` runs: the result arrives in the
7523
+ write's response or, when the target is slow to answer, shortly afterwards (the audit
7524
+ log records a `system` change; `lastModified` doesn't move), so read it again a few
7525
+ seconds after the write. On an `http` connection the write runs the test only when
7526
+ `http.ping` is configured, and an `http` connection that was never tested has no
7527
+ `offline` key.
7478
7528
  readOnly: true
7479
7529
  needsAuthorization:
7480
7530
  type: boolean
7481
7531
  readOnly: true
7482
7532
  description: |-
7483
7533
  OAuth handshake state. Celigo's OAuth callback sets it to `false` once the user consents
7484
- and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`).
7534
+ and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`). A connection that
7535
+ was never authorized usually has no `needsAuthorization` key, so its absence does not
7536
+ mean the connection is authorized.
7485
7537
  _sourceId:
7486
7538
  type: string
7487
7539
  format: objectId
@@ -8456,15 +8508,18 @@ components:
8456
8508
  clientId:
8457
8509
  type: string
8458
8510
  description: |
8459
- OAuth client ID (application ID) registered with the API provider.
8460
- Required for all OAuth 2.0 grant types.
8511
+ OAuth client ID (application ID) registered with the API provider. An `http`
8512
+ connection takes the app from a `custom_oauth2` iClient referenced by `http._iClientId`
8513
+ (an `mcp` connection from `mcp.http._iClientId`) and doesn't store this field: a create
8514
+ that sends `clientId` and `clientSecret` here answers 201 without either (and stores
8515
+ `useIClientFields: true` unless `false` is sent).
8461
8516
  examples:
8462
8517
  - 0oa1b2c3d4EXAMPLE5
8463
8518
  clientSecret:
8464
8519
  type: string
8465
8520
  description: |
8466
- OAuth client secret (encrypted at rest).
8467
- Required for "authorizecode" and "clientcredentials" grant types.
8521
+ OAuth client secret (encrypted at rest). Not stored on an `http` connection: the secret
8522
+ belongs on the iClient (see `clientId`).
8468
8523
  writeOnly: true
8469
8524
  examples:
8470
8525
  - cs_abc123EXAMPLE456secret
@@ -8680,9 +8735,11 @@ components:
8680
8735
  - "authorizecode" — Authorization Code flow (browser-based user consent).
8681
8736
  Requires authURI, tokenURI, and user authorization via browser.
8682
8737
  - "clientcredentials" — Client Credentials flow (server-to-server, no user).
8683
- Requires tokenURI, clientId, clientSecret.
8738
+ Requires tokenURI.
8684
8739
  - "password" — Resource Owner Password flow (username/password exchange).
8685
- Requires tokenURI, username, password, clientId, clientSecret.
8740
+ Requires tokenURI, username, password.
8741
+ - On an `http` connection the client ID and secret are never stored here: a
8742
+ `custom_oauth2` iClient referenced by `http._iClientId` supplies them.
8686
8743
  JWT:
8687
8744
  type: object
8688
8745
  description: |-
@@ -14411,7 +14468,9 @@ components:
14411
14468
 
14412
14469
  - **Field mappings** — a mapping entry sets
14413
14470
  ``lookupName: "<name>"`` to resolve a field's value through
14414
- the lookup.
14471
+ the lookup. A ``lookupName`` that matches no entry in this
14472
+ array fails every record with ``Unable to find lookup in
14473
+ mapping configs - <name>``.
14415
14474
  - **Handlebars expressions** — anywhere handlebars is
14416
14475
  evaluated (relativeURI, headers, body), ``{{lookup "name"
14417
14476
  value}}`` calls the lookup with ``value`` as input.
@@ -14425,9 +14484,13 @@ components:
14425
14484
  ## Mirror invariant
14426
14485
 
14427
14486
  The Celigo platform persists lookups in TWO locations on an HTTP
14428
- import: top-level ``lookups`` and ``http.lookups``. Both arrays
14429
- MUST hold byte-for-byte identical content, so write both on
14430
- every save.
14487
+ import: top-level ``lookups`` and ``http.lookups``, and
14488
+ ``http.lookups`` is the copy that counts. A save keeps
14489
+ ``http.lookups`` and mirrors it to the top level, overwriting a
14490
+ top-level copy that differs; a ``lookups`` array sent only at the
14491
+ top level is dropped with no error, on create and on PUT, and both
14492
+ arrays read back null. Write ``http.lookups`` on every save;
14493
+ sending the same array at the top level too is harmless.
14431
14494
  - |-
14432
14495
  ## Static vs dynamic vs cached
14433
14496
 
@@ -14477,12 +14540,13 @@ components:
14477
14540
  - handlebars
14478
14541
  description: |
14479
14542
  Request body template for POST / PUT / PATCH lookup methods, typically
14480
- a JSON string with Handlebars placeholders (``{"email":"{{{email}}}"}``);
14543
+ a JSON string with Handlebars placeholders (``{"email":"{{email}}"}``);
14481
14544
  ignored for GET / DELETE. The record's fields sit at the top level:
14482
14545
  ``{{email}}`` renders the record's value, while ``{{record.email}}``
14483
14546
  renders empty.
14484
14547
  x-celigo-ai-guidance:
14485
14548
  - 'Put the lookup''s request template here, not in ``postBody``: a ``postBody`` saves without an error but is not kept under ``http.lookups``, so the lookup goes out with no body and the run reports no error.'
14549
+ - 'Write string values with double braces inside the quotes (``"{{email}}"``): they are JSON-escaped at runtime. With triple braces a value holding a double quote breaks the request body, and the lookup quietly finds nothing, so an existence check writes the record as new.'
14486
14550
  headers:
14487
14551
  type: array
14488
14552
  items:
@@ -14538,10 +14602,17 @@ components:
14538
14602
  - boolean
14539
14603
  - 'null'
14540
14604
  description: |
14541
- When true, a lookup miss (no matching response and no
14542
- ``default``) resolves to ``null`` and the import continues.
14543
- When false (default), a miss halts the record. May be
14544
- stored as null (treated as unset).
14605
+ When true, a lookup miss uses ``default`` (or leaves the mapped
14606
+ field out when there is none) and the record continues. When
14607
+ false, a miss fails the record: ``lookup_error`` ("Could not find
14608
+ value for static lookup: …") for a static ``map``,
14609
+ ``lookupcache_evaluation_failed`` for a cache. Omitted or null,
14610
+ a miss doesn't fail the record either: a static lookup writes
14611
+ its ``default`` if it has one, and a lookup without one (static,
14612
+ cache, or a live request that matches nothing or fails) leaves
14613
+ the mapped field out.
14614
+ x-celigo-ai-guidance:
14615
+ - Set false explicitly when a miss must stop the record. Leaving the field out lets the record through with the default or without the looked-up value, so a destination that needs the real value gets a request without it and nothing errors.
14545
14616
  useDefaultOnMultipleMatches:
14546
14617
  type: boolean
14547
14618
  description: |
@@ -24058,7 +24129,7 @@ components:
24058
24129
  description: When true, the mapped value cannot be overwritten by later mapping steps.
24059
24130
  lookupName:
24060
24131
  type: string
24061
- description: Name of an entry in the import's `lookups` array used to translate the value.
24132
+ description: Name of an entry in the import's `lookups` array (`http.lookups` on an HTTP import) used to translate the value.
24062
24133
  x-celigo-ai-guidance:
24063
24134
  - |-
24064
24135
  Name of a lookup defined on ``resource.lookups`` whose result
@@ -25510,8 +25581,9 @@ components:
25510
25581
 
25511
25582
  Lookups referenced by ``lookupName`` live on the top-level
25512
25583
  ``resource.lookups`` array (mirrored under the adaptor key for
25513
- adaptors that maintain their own copy — see the mirror invariant
25514
- on ``lookups``). Lookups are independent of this
25584
+ adaptors that maintain their own copy; on an HTTP import that
25585
+ copy, ``http.lookups``, is the one a save keeps — see the mirror
25586
+ invariant on ``lookups``). Lookups are independent of this
25515
25587
  mapping: they are neither created nor cleared automatically when
25516
25588
  this mapping changes.
25517
25589
  properties:
@@ -25630,6 +25702,12 @@ components:
25630
25702
 
25631
25703
  Both arrays MUST hold byte-for-byte identical content: write
25632
25704
  both on every save and treat them as a single logical field.
25705
+ On an HTTP import the adaptor copy decides: a save keeps
25706
+ ``http.lookups`` and mirrors it here, overwriting a copy here
25707
+ that differs, and an array sent only here is dropped on create
25708
+ and on PUT with no error. A mapping row that names one of its
25709
+ lookups then fails every record with ``Unable to find lookup in
25710
+ mapping configs - <name>``.
25633
25711
  - |-
25634
25712
  ## Shape
25635
25713
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.152",
3
+ "version": "0.2.154",
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": "6336cc85",
4
+ "iasCommit": "6baefd4f",
5
5
  "generatedAt": "2026-10-21"
6
6
  },
7
7
  "roots": {