@celigo/api-specs 0.2.66 → 0.2.68

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/api.yml CHANGED
@@ -2708,6 +2708,15 @@ components:
2708
2708
  description: |-
2709
2709
  Conditional routing within a builder-mode API. Unlike flows, APIs only
2710
2710
  support `first_matching_branch` routing.
2711
+
2712
+ A router comes in two shapes, told apart by whether `routeRecordsTo` and
2713
+ `routeRecordsUsing` are set: a **branching router** sets both and has two or
2714
+ more branches, each taking the requests its `inputFilter` (or the router's
2715
+ `script`) matches — the node you see in the API builder; a **pass-through
2716
+ router** sets neither and has exactly one branch that every request goes
2717
+ straight through — not drawn, it holds the steps before the first branching
2718
+ router and merges branches back into shared steps (branches rejoin only by
2719
+ pointing `nextRouterId` at the same router).
2711
2720
  properties:
2712
2721
  id:
2713
2722
  type: string
@@ -2727,10 +2736,15 @@ components:
2727
2736
  - first_matching_branch
2728
2737
  x-enumDescriptions:
2729
2738
  first_matching_branch: Routes the request to the first branch whose criteria match.
2730
- description: Routing strategy. APIs only support `first_matching_branch`.
2731
- default: first_matching_branch
2739
+ description: |-
2740
+ Routing strategy; APIs only support `first_matching_branch`. Set together with
2741
+ `routeRecordsUsing` on a branching router; leave both unset on a one-branch
2742
+ pass-through router.
2732
2743
  examples:
2733
2744
  - first_matching_branch
2745
+ x-celigo-ai-guidance:
2746
+ - Set this and `routeRecordsUsing` together on every router that decides between branches; setting only one of the two is rejected with 422 `invalid_flow_router_config`.
2747
+ - Leave both unset on a one-branch pass-through router (the steps before the first branching router, or a merge point). Setting them there still runs, but the builder shows a router node with one branch and no rules. A router with neither field and more than one branch is rejected with 422 `invalid_flow_router_branch`.
2734
2748
  routeRecordsUsing:
2735
2749
  type: string
2736
2750
  enum:
@@ -2739,10 +2753,13 @@ components:
2739
2753
  x-enumDescriptions:
2740
2754
  input_filters: Evaluate routing criteria using declarative filter expressions.
2741
2755
  script: Evaluate routing criteria using a custom JavaScript function.
2742
- description: Method used to evaluate routing criteria.
2743
- default: input_filters
2756
+ description: |-
2757
+ How a branching router decides which branch a request matches. Set together with
2758
+ `routeRecordsTo`; leave both unset on a one-branch pass-through router.
2744
2759
  examples:
2745
2760
  - input_filters
2761
+ x-celigo-ai-guidance:
2762
+ - Set this and `routeRecordsTo` together on every router that decides between branches, and leave both unset on a one-branch pass-through router; the rejections for a half-set pair or a multi-branch pass-through are listed on `routeRecordsTo`.
2746
2763
  script:
2747
2764
  type: object
2748
2765
  description: |
package/dist/export.yml CHANGED
@@ -5954,9 +5954,25 @@ components:
5954
5954
  with their defaults when they are omitted.
5955
5955
  x-celigo-ai-guidance:
5956
5956
  - |-
5957
- Send `type: "stream"` together with this object, as the listener form always does; the
5958
- save also succeeds without `type`, so nothing catches the omission at save time. Sending
5959
- this object without `adaptorType` is enough for the server to infer `TopicExport`.
5957
+ Send `type: "stream"` together with this object, as the listener form always does. The
5958
+ save also succeeds without `type`, and the listener then runs as a batch export: its flow
5959
+ never starts when a message is published, a manual run re-reads every retained message
5960
+ without committing a position, and `GET /v1/topics/{_id}/exports/{_exportId}/offsets`
5961
+ reports `hasCursor: false`. `PATCH` cannot add the type afterwards (`/type` is not a
5962
+ whitelisted property): `PUT` the full document with `type: "stream"`, then disable and
5963
+ enable the flow. Sending this object without `adaptorType` is enough for the server to
5964
+ infer `TopicExport`.
5965
+ - |-
5966
+ The subscription is created when the listener's flow goes from disabled to enabled (a
5967
+ `PATCH` or `PUT` that changes `disabled`); the first run after a publish follows within
5968
+ about a minute. A flow created with `disabled: false` in one request has not subscribed,
5969
+ and a save that leaves `disabled` unchanged (a rename) does not subscribe it — toggle the
5970
+ flow. Under `startPosition: latest`, messages published before the subscription exists
5971
+ are skipped. A disabled flow keeps its position and resumes from it when enabled again.
5972
+ - |-
5973
+ A topic listener cannot be a lookup: `isLookup: true` with `type: "stream"` fails the save
5974
+ with 422 `not_supported` ("Lookup functionality is not available for Stream Export"), and a
5975
+ lookup-shaped TopicExport saved without `type` never runs.
5960
5976
  - |-
5961
5977
  Never add a `_connectionId`: the server then validates the document as that connection's
5962
5978
  adaptor instead (an http connection fails with 422 missing_required_field "http subschema
@@ -16358,6 +16374,12 @@ components:
16358
16374
  response for the record, up to 5 MB, so `pageSize` does not limit or extend what a lookup
16359
16375
  returns. A lookup that must return more than that is better modeled as a standalone
16360
16376
  export step.
16377
+ x-celigo-ai-guidance:
16378
+ - |-
16379
+ Not supported together with `type: "stream"`: a topic listener (`adaptorType:
16380
+ TopicExport`) with `isLookup: true` fails the save with 422 `not_supported`
16381
+ ("Lookup functionality is not available for Stream Export"). Enrich from a topic by
16382
+ listening to it in its own flow.
16361
16383
  examples:
16362
16384
  - true
16363
16385
  - false
package/dist/flow.yml CHANGED
@@ -4356,14 +4356,11 @@ components:
4356
4356
  name:
4357
4357
  type: string
4358
4358
  description: |
4359
- Unique name for this branch within the router.
4360
-
4361
- Used for:
4362
- - Identification in logs and monitoring
4363
- - Reference in custom routing scripts
4364
- - Display in the UI
4365
-
4366
- Should be descriptive of the branch's purpose or criteria.
4359
+ Label for the branch, unique within the router. On a branching router it is shown on
4360
+ the Flow Builder canvas, appears in logs, and is the value a routing script returns to
4361
+ pick the branch — make it describe the branch's purpose. The single branch of a
4362
+ pass-through router has no visible label; the server stores an empty string when the
4363
+ name is omitted.
4367
4364
  examples:
4368
4365
  - enterprise_customers
4369
4366
  - high_priority
@@ -4385,7 +4382,7 @@ components:
4385
4382
  description: |
4386
4383
  Filter criteria that determines which records match this branch.
4387
4384
 
4388
- Only used when the router's routeRecordsUsing="inputFilter".
4385
+ Only used when the router's `routeRecordsUsing` is `input_filters`.
4389
4386
  Records matching these criteria will be routed to this branch.
4390
4387
  properties:
4391
4388
  version:
@@ -4468,15 +4465,19 @@ components:
4468
4465
  the server when omitted; a client-supplied value is kept as-is.
4469
4466
  examples:
4470
4467
  - El8lWTezixy
4471
- required:
4472
- - name
4473
4468
  Router:
4474
4469
  type: object
4475
4470
  description: |
4476
- Configuration for conditional routing that directs records to different processing branches.
4477
-
4478
- Routers evaluate each record against defined criteria and route them to appropriate branches
4479
- for specialized processing. This enables complex business logic and conditional workflows.
4471
+ Directs records into branches. A router comes in two shapes, told apart by whether
4472
+ `routeRecordsTo` and `routeRecordsUsing` are set: a **branching router** sets both and has two
4473
+ or more branches, each taking the records its `inputFilter` (or the router's `script`)
4474
+ matches — the router node you see in Flow Builder; a **pass-through router** sets neither and
4475
+ has exactly one branch that every record goes straight through — not drawn in Flow Builder,
4476
+ it is the joint that holds the steps before the first branching router and that merges
4477
+ branches back into shared steps (branches rejoin only by pointing `nextRouterId` at the same
4478
+ router). A flow with no branching needs no routers — its steps go in top-level
4479
+ `pageProcessors` — unless it is abstract (`isAbstract`), where top-level `pageProcessors` are
4480
+ rejected and the chain sits in one pass-through router.
4480
4481
  properties:
4481
4482
  id:
4482
4483
  type: string
@@ -4499,28 +4500,35 @@ components:
4499
4500
  - Order Status Router
4500
4501
  routeRecordsTo:
4501
4502
  type: string
4502
- description: Strategy for routing records to branches.
4503
+ description: |-
4504
+ How many branches a record may continue down. Set together with `routeRecordsUsing` on a
4505
+ branching router; leave both unset on a one-branch pass-through router.
4503
4506
  enum:
4504
4507
  - first_matching_branch
4505
4508
  - all_matching_branches
4506
4509
  x-enumDescriptions:
4507
4510
  first_matching_branch: Routes each record to only the first branch whose criteria match.
4508
4511
  all_matching_branches: Routes each record to every branch whose criteria match, creating copies.
4509
- default: first_matching_branch
4510
4512
  examples:
4511
4513
  - first_matching_branch
4514
+ x-celigo-ai-guidance:
4515
+ - Set this and `routeRecordsUsing` together on every router that decides between branches; setting only one of the two is rejected with 422 `invalid_flow_router_config`.
4516
+ - Leave both unset on a one-branch pass-through router (the steps before the first branching router, or a merge point). Setting them there still runs, but Flow Builder shows a router node with one branch and no rules. A router with neither field and more than one branch is rejected with 422 `invalid_flow_router_branch`.
4512
4517
  routeRecordsUsing:
4513
4518
  type: string
4514
- description: Method used to evaluate routing criteria.
4519
+ description: |-
4520
+ How a branching router decides which branch a record matches. Set together with
4521
+ `routeRecordsTo`; leave both unset on a one-branch pass-through router.
4515
4522
  enum:
4516
4523
  - input_filters
4517
4524
  - script
4518
4525
  x-enumDescriptions:
4519
4526
  input_filters: Evaluate routing criteria using declarative filter expressions.
4520
4527
  script: Evaluate routing criteria using a custom JavaScript function.
4521
- default: input_filters
4522
4528
  examples:
4523
4529
  - input_filters
4530
+ x-celigo-ai-guidance:
4531
+ - Set this and `routeRecordsTo` together on every router that decides between branches, and leave both unset on a one-branch pass-through router; the rejections for a half-set pair or a multi-branch pass-through are listed on `routeRecordsTo`.
4524
4532
  script:
4525
4533
  type: object
4526
4534
  description: |
@@ -5271,8 +5279,19 @@ components:
5271
5279
  routers:
5272
5280
  type: array
5273
5281
  description: |-
5274
- Routing configurations that direct records to conditional branches. Mutually exclusive with
5275
- top-level `pageProcessors` — use one or the other, not both.
5282
+ Routers that direct records into branches. Mutually exclusive with top-level
5283
+ `pageProcessors` — a flow with no branching uses `pageProcessors` and no routers at all,
5284
+ except an abstract flow (`isAbstract`), which rejects top-level `pageProcessors` and so
5285
+ holds even a linear chain in a pass-through router. A router comes in two shapes: a
5286
+ **branching router** sets both `routeRecordsTo` and `routeRecordsUsing` and has two or
5287
+ more branches (the router node you see in Flow Builder); a **pass-through router** sets
5288
+ neither, has exactly one branch, and is not drawn — it is the invisible joint that holds
5289
+ the steps before the first branching router (they cannot sit in top-level
5290
+ `pageProcessors` once routers exist) and that merges branches back into shared steps.
5291
+ x-celigo-ai-guidance:
5292
+ - No branching on a non-abstract flow → leave `routers` out and put the steps in top-level `pageProcessors`. No branching on an abstract flow → one pass-through router holding the chain (top-level `pageProcessors` are rejected with 422 `abstract_flow_invalid_fields`).
5293
+ - Steps before the first branching router go in a one-branch pass-through router at `routers[0]` with neither `routeRecordsTo` nor `routeRecordsUsing` set, chained to the branching router with `branches[0].nextRouterId`. Branches that rejoin point `nextRouterId` at one shared pass-through router.
5294
+ - A one-branch router with BOTH routing fields set still runs, but Flow Builder draws it as a router node with a single branch and no rules — the pass-through shape (neither field) is the one that stays hidden.
5276
5295
  items:
5277
5296
  $ref: '#/components/schemas/Router'
5278
5297
  _exportId:
@@ -5385,8 +5404,9 @@ components:
5385
5404
  Marks this as an abstract (multi-instance) flow — a reusable template that cannot be
5386
5405
  executed directly. Instance flows reference it via `_abstractFlowId` and provide `overrides`.
5387
5406
 
5388
- Constraints: top-level `pageProcessors` are not allowed (use `routers`), cannot reference
5389
- another abstract flow, cannot be a "run next" target, and cannot be unset while instances exist.
5407
+ Constraints: top-level `pageProcessors` are not allowed (use `routers` — a linear chain
5408
+ sits in one pass-through router with neither routing field set), cannot reference another
5409
+ abstract flow, cannot be a "run next" target, and cannot be unset while instances exist.
5390
5410
  examples:
5391
5411
  - true
5392
5412
  - false
package/dist/import.yml CHANGED
@@ -8352,6 +8352,16 @@ components:
8352
8352
  from it. Never add a `_connectionId`: the server then validates the document as that
8353
8353
  connection's adaptor instead (an http connection fails with 422 missing_required_field
8354
8354
  "http subschema not defined").
8355
+ - |-
8356
+ Without a mapping, each message is the record as the step received it. With
8357
+ `oneToMany: true` and `pathToMany`, every element of that array is published as its own
8358
+ message and the rest of the parent record rides inside each one under `_PARENT` (the parent
8359
+ without the array); a mapping reshapes the message instead.
8360
+ - |-
8361
+ Publishing is not limited to flows. Verified surfaces: a flow step; an API step (the API
8362
+ invoked at `POST /apis/{version}/{relativeURI}`); a Tool reached through a `ToolImport`
8363
+ step in a flow; and `POST /v1/imports/{_id}/invoke` with `{"data": [record, ...]}`. A flow
8364
+ or API test run (`/test/run`) publishes nothing — import steps are mocked there.
8355
8365
  properties:
8356
8366
  _topicId:
8357
8367
  type: string
package/dist/tool.yml CHANGED
@@ -5785,6 +5785,15 @@ components:
5785
5785
  Unlike flows, tools only support "first_matching_branch" routing strategy.
5786
5786
  Branches can chain to other routers or use the special "outputRouter"
5787
5787
  terminal sink to exit the tool and return results.
5788
+
5789
+ A router comes in two shapes, told apart by whether `routeRecordsTo` and
5790
+ `routeRecordsUsing` are set: a **branching router** sets both and has two or
5791
+ more branches, each taking the inputs its `inputFilter` (or the router's
5792
+ `script`) matches — the node you see in the Tool builder; a **pass-through
5793
+ router** sets neither and has exactly one branch that every input goes
5794
+ straight through — not drawn, it holds the steps before the first branching
5795
+ router and merges branches back into shared steps (branches rejoin only by
5796
+ pointing `nextRouterId` at the same router).
5788
5797
  x-celigo-ai-guidance:
5789
5798
  - |-
5790
5799
  Set `routeRecordsTo` and `routeRecordsUsing` together or omit both — a router with
@@ -5820,8 +5829,13 @@ components:
5820
5829
  description: |
5821
5830
  Routing strategy. Tools only support "first_matching_branch",
5822
5831
  which routes to the first branch whose criteria match the input.
5832
+ Set together with `routeRecordsUsing` on a branching router; leave
5833
+ both unset on a one-branch pass-through router.
5823
5834
  examples:
5824
5835
  - first_matching_branch
5836
+ x-celigo-ai-guidance:
5837
+ - Set this and `routeRecordsUsing` together on every router that decides between branches; setting only one of the two is rejected with 422 `invalid_flow_router_config`.
5838
+ - Leave both unset on a one-branch pass-through router (the steps before the first branching router, or a merge point). Setting them there still runs, but the builder shows a router node with one branch and no rules. A router with neither field and more than one branch is rejected with 422 `invalid_flow_router_branch`.
5825
5839
  routeRecordsUsing:
5826
5840
  type: string
5827
5841
  enum:
@@ -5831,12 +5845,12 @@ components:
5831
5845
  input_filters: Evaluate routing criteria using declarative filter expressions.
5832
5846
  script: Evaluate routing criteria using a custom JavaScript function.
5833
5847
  description: |
5834
- Method used to evaluate routing criteria.
5835
-
5836
- - **input_filters**: Use declarative filter expressions on each branch
5837
- - **script**: Use a custom JavaScript function to determine the branch
5848
+ How a branching router decides which branch an input matches. Set together
5849
+ with `routeRecordsTo`; leave both unset on a one-branch pass-through router.
5838
5850
  examples:
5839
5851
  - input_filters
5852
+ x-celigo-ai-guidance:
5853
+ - Set this and `routeRecordsTo` together on every router that decides between branches, and leave both unset on a one-branch pass-through router; the rejections for a half-set pair or a multi-branch pass-through are listed on `routeRecordsTo`.
5840
5854
  script:
5841
5855
  type: object
5842
5856
  description: |
@@ -18628,6 +18642,16 @@ components:
18628
18642
  from it. Never add a `_connectionId`: the server then validates the document as that
18629
18643
  connection's adaptor instead (an http connection fails with 422 missing_required_field
18630
18644
  "http subschema not defined").
18645
+ - |-
18646
+ Without a mapping, each message is the record as the step received it. With
18647
+ `oneToMany: true` and `pathToMany`, every element of that array is published as its own
18648
+ message and the rest of the parent record rides inside each one under `_PARENT` (the parent
18649
+ without the array); a mapping reshapes the message instead.
18650
+ - |-
18651
+ Publishing is not limited to flows. Verified surfaces: a flow step; an API step (the API
18652
+ invoked at `POST /apis/{version}/{relativeURI}`); a Tool reached through a `ToolImport`
18653
+ step in a flow; and `POST /v1/imports/{_id}/invoke` with `{"data": [record, ...]}`. A flow
18654
+ or API test run (`/test/run`) publishes nothing — import steps are mocked there.
18631
18655
  properties:
18632
18656
  _topicId:
18633
18657
  type: string
@@ -28985,9 +29009,25 @@ components:
28985
29009
  with their defaults when they are omitted.
28986
29010
  x-celigo-ai-guidance:
28987
29011
  - |-
28988
- Send `type: "stream"` together with this object, as the listener form always does; the
28989
- save also succeeds without `type`, so nothing catches the omission at save time. Sending
28990
- this object without `adaptorType` is enough for the server to infer `TopicExport`.
29012
+ Send `type: "stream"` together with this object, as the listener form always does. The
29013
+ save also succeeds without `type`, and the listener then runs as a batch export: its flow
29014
+ never starts when a message is published, a manual run re-reads every retained message
29015
+ without committing a position, and `GET /v1/topics/{_id}/exports/{_exportId}/offsets`
29016
+ reports `hasCursor: false`. `PATCH` cannot add the type afterwards (`/type` is not a
29017
+ whitelisted property): `PUT` the full document with `type: "stream"`, then disable and
29018
+ enable the flow. Sending this object without `adaptorType` is enough for the server to
29019
+ infer `TopicExport`.
29020
+ - |-
29021
+ The subscription is created when the listener's flow goes from disabled to enabled (a
29022
+ `PATCH` or `PUT` that changes `disabled`); the first run after a publish follows within
29023
+ about a minute. A flow created with `disabled: false` in one request has not subscribed,
29024
+ and a save that leaves `disabled` unchanged (a rename) does not subscribe it — toggle the
29025
+ flow. Under `startPosition: latest`, messages published before the subscription exists
29026
+ are skipped. A disabled flow keeps its position and resumes from it when enabled again.
29027
+ - |-
29028
+ A topic listener cannot be a lookup: `isLookup: true` with `type: "stream"` fails the save
29029
+ with 422 `not_supported` ("Lookup functionality is not available for Stream Export"), and a
29030
+ lookup-shaped TopicExport saved without `type` never runs.
28991
29031
  - |-
28992
29032
  Never add a `_connectionId`: the server then validates the document as that connection's
28993
29033
  adaptor instead (an http connection fails with 422 missing_required_field "http subschema
@@ -36327,6 +36367,12 @@ components:
36327
36367
  response for the record, up to 5 MB, so `pageSize` does not limit or extend what a lookup
36328
36368
  returns. A lookup that must return more than that is better modeled as a standalone
36329
36369
  export step.
36370
+ x-celigo-ai-guidance:
36371
+ - |-
36372
+ Not supported together with `type: "stream"`: a topic listener (`adaptorType:
36373
+ TopicExport`) with `isLookup: true` fails the save with 422 `not_supported`
36374
+ ("Lookup functionality is not available for Stream Export"). Enrich from a topic by
36375
+ listening to it in its own flow.
36330
36376
  examples:
36331
36377
  - true
36332
36378
  - false
package/dist/topic.yml CHANGED
@@ -1636,6 +1636,9 @@ components:
1636
1636
  from `offset`. False when the export has never consumed the topic, when its last committed
1637
1637
  position has expired from the stream, or when it does not listen to this topic at all — a
1638
1638
  listener without a cursor starts from its own `topic.startPosition` (`latest` or `earliest`).
1639
+ A listener whose flow is disabled keeps its position; a listener saved without
1640
+ `type: "stream"`, or whose flow has not been enabled since the listener was saved, has
1641
+ never subscribed and reports false.
1639
1642
  examples:
1640
1643
  - true
1641
1644
  - false
@@ -1644,7 +1647,8 @@ components:
1644
1647
  minimum: -1
1645
1648
  description: |-
1646
1649
  Zero-based position of the next message the export will read. `-1` when `hasCursor` is
1647
- false.
1650
+ false. The position counts from the start of the stream, so while no message has expired
1651
+ the retained message count minus `offset` is the listener's backlog.
1648
1652
  examples:
1649
1653
  - 1287
1650
1654
  - -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.66",
3
+ "version": "0.2.68",
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,8 +1,8 @@
1
1
  {
2
2
  "provenance": {
3
3
  "repo": "celigo/integrator-api-specs",
4
- "iasCommit": "0b009b6",
5
- "generatedAt": "2026-09-30"
4
+ "iasCommit": "d5f4380",
5
+ "generatedAt": "2026-10-01"
6
6
  },
7
7
  "roots": {
8
8
  "aiagent": 133,