@celigo/api-specs 0.2.19 → 0.2.21

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/ai-agent.yml CHANGED
@@ -21,10 +21,11 @@ tags:
21
21
  generate data within integration flows. They are stored as import resources
22
22
  with `adaptorType: AiAgentImport` and managed via the `/v1/imports` endpoints.
23
23
 
24
- Three providers are supported — OpenAI (via the Responses API), Google Gemini
25
- (via LiteLLM), and Anthropic Claude (via LiteLLM). A `_connectionId` is optional:
26
- omit it to use platform-managed credentials, or supply one for BYOK (bring your
27
- own key).
24
+ Three built-in providers — OpenAI (via the Responses API), Google Gemini (via
25
+ LiteLLM), and Anthropic Claude (via LiteLLM) — run on platform-managed
26
+ credentials or, with a `_connectionId`, on your own key (BYOK). Catalog
27
+ providers — Mistral, xAI, Hugging Face, DeepSeek, Cohere, and Groq — use one generic
28
+ flat configuration format and always run on a BYOK connection.
28
29
 
29
30
  ## AI agent schema
30
31
 
@@ -110,10 +111,14 @@ paths:
110
111
  x-internal: false
111
112
  summary: Create an AI agent
112
113
  description: |-
113
- Creates a new AI agent import. Omit `_connectionId` to use
114
- platform-managed credentials; include it for BYOK. Configure the
115
- provider-specific block (`aiAgent.openai` or `aiAgent.litellm`) — the
116
- other block is ignored.
114
+ Creates a new AI agent import. The provider decides the configuration
115
+ format: `aiAgent.openai` for OpenAI, `aiAgent.litellm` for Gemini and
116
+ Anthropic Claude, or the generic flat format (`aiAgent.model`,
117
+ `aiAgent.modelOptions`, …) for the catalog providers Mistral, xAI,
118
+ Hugging Face, DeepSeek, Cohere, and Groq — a block that does not match the
119
+ provider is rejected. For a built-in provider, omit `_connectionId` to
120
+ use platform-managed credentials or include it for BYOK; a catalog
121
+ provider saves without one but needs a BYOK connection to run.
117
122
  operationId: createAiAgent
118
123
  tags:
119
124
  - AI Agents
@@ -150,6 +155,24 @@ paths:
150
155
  tools:
151
156
  - type: googleSearch
152
157
  googleSearch: {}
158
+ xai-catalog-byok:
159
+ summary: Catalog provider (xAI) on a BYOK connection — generic flat format
160
+ value:
161
+ name: Invoice Extractor
162
+ adaptorType: AiAgentImport
163
+ _connectionId: 662aaa6576bf4040548dbbe4
164
+ aiAgent:
165
+ provider: xai
166
+ model: grok-4.6
167
+ modelOptions:
168
+ maxOutputTokens: 5000
169
+ reasoning_effort: high
170
+ temperature: 1
171
+ topP: 1
172
+ instructions: Extract the invoice fields from each record.
173
+ output:
174
+ format:
175
+ type: text
153
176
  responses:
154
177
  '201':
155
178
  description: Created AI agent.
@@ -368,7 +391,9 @@ paths:
368
391
 
369
392
  Each entry in `imports` must include `adaptorType: "AiAgentImport"` and
370
393
  a valid `aiAgent` configuration. A `_connectionId` is required unless the
371
- agent uses platform-managed credentials. The response array is positional
394
+ agent is on a built-in provider (`openai`, `gemini`, `anthropic`) using
395
+ platform-managed credentials — catalog providers always need one, since
396
+ the preview runs the model. The response array is positional
372
397
  — `response[i]` corresponds to `imports[i]`. A per-entry
373
398
  `statusCode: 422` with `errors` means that specific configuration failed,
374
399
  not that the overall request failed.
@@ -620,14 +645,22 @@ components:
620
645
  AI Agent configuration used by both AiAgentImport and GuardrailImport (ai_agent type).
621
646
 
622
647
  Configures which AI provider and model to use, along with instructions, parameter
623
- tuning, output format, and available tools. Three providers are supported:
624
-
625
- - **openai**: OpenAI models (GPT-4, GPT-4o, GPT-4o-mini, GPT-5, etc.). Configure via the `openai` object.
626
- - **gemini**: Google Gemini models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.gemini`.
627
- - **anthropic**: Anthropic Claude models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.anthropic`.
628
-
629
- A `_connectionId` is optional (BYOK). If not provided on the parent import,
630
- platform-managed credentials are used.
648
+ tuning, output format, and available tools. Providers come in two families with
649
+ two configuration formats:
650
+
651
+ - **Built-in providers** — each has its own configuration block.
652
+ - **openai**: OpenAI models (GPT-4.1, GPT-5, etc.). Configure via the `openai` object.
653
+ - **gemini**: Google Gemini models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.gemini`.
654
+ - **anthropic**: Anthropic Claude models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.anthropic`.
655
+ - **Catalog providers** — `mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`. Added
656
+ as catalog data rather than platform code, they share one generic flat format:
657
+ `model`, `modelOptions`, `instructions`, `output`, and the `tools` / `prompts` /
658
+ `resources` arrays directly on this object.
659
+
660
+ A `_connectionId` on the parent import selects bring-your-own-key (BYOK)
661
+ credentials. Without one, built-in providers run on platform-managed
662
+ credentials; catalog providers have no platform-managed credentials, so they
663
+ save without a connection but cannot run until one is attached.
631
664
  required:
632
665
  - provider
633
666
  properties:
@@ -637,18 +670,224 @@ components:
637
670
  - openai
638
671
  - gemini
639
672
  - anthropic
673
+ - mistral
674
+ - xai
675
+ - huggingface
676
+ - deepseek
677
+ - cohere
678
+ - groq
640
679
  x-enumDescriptions:
641
- openai: Use OpenAI models via the OpenAI Responses API.
642
- gemini: Use Google Gemini models via the LiteLLM proxy.
643
- anthropic: Use Anthropic Claude models via the LiteLLM proxy.
680
+ openai: Use OpenAI models via the OpenAI Responses API (built-in; `openai` block).
681
+ gemini: Use Google Gemini models via the LiteLLM proxy (built-in; `litellm` block).
682
+ anthropic: Use Anthropic Claude models via the LiteLLM proxy (built-in; `litellm` block).
683
+ mistral: Use Mistral models (catalog provider; generic flat format, BYOK).
684
+ xai: Use xAI Grok models (catalog provider; generic flat format, BYOK).
685
+ huggingface: Use Hugging Face inference endpoint models (catalog provider; generic flat format, BYOK).
686
+ deepseek: Use DeepSeek models (catalog provider; generic flat format, BYOK).
687
+ cohere: Use Cohere models (catalog provider; generic flat format, BYOK).
688
+ groq: Use Groq-hosted models (catalog provider; generic flat format, BYOK).
644
689
  description: AI provider to use.
645
690
  x-celigo-ai-guidance:
646
691
  - |-
647
- - **openai**: Uses OpenAI Responses API. Configure via the `openai` object.
648
- - **gemini**: Uses Google Gemini via LiteLLM. Configure via `litellm` with
649
- Gemini-specific overrides in `litellm._overrides.gemini`.
650
- - **anthropic**: Uses Anthropic Claude via LiteLLM. Configure via `litellm` with
651
- Claude-specific overrides in `litellm._overrides.anthropic`.
692
+ The provider decides the configuration format, and the server rejects a
693
+ mismatch with 422 `invalid_provider_config_format`: `openai` needs the
694
+ `openai` block, `gemini` and `anthropic` need the `litellm` block (Gemini- or
695
+ Claude-specific settings under `litellm._overrides`), and the catalog
696
+ providers (`mistral`, `xai`, `huggingface`, `deepseek`, `cohere`, `groq`) need the
697
+ generic flat format — `model` and `modelOptions` directly on this object,
698
+ never an `openai` or `litellm` block.
699
+ - |-
700
+ Catalog providers are BYOK-only at run time: the agent saves without a
701
+ `_connectionId`, but its first run fails with 422 `invalid_request` ("No API
702
+ key configured for provider …"). Always attach an HTTP connection to the
703
+ vendor's API (token auth) when the provider is a catalog provider.
704
+ model:
705
+ type: string
706
+ description: |-
707
+ Model identifier for a catalog provider (generic flat format) — for example
708
+ `grok-4.6`. Built-in providers set the model inside their own block
709
+ (`openai.model`, `litellm.model`) instead.
710
+ x-celigo-ai-guidance:
711
+ - |-
712
+ Required for every catalog provider — omitting it or sending an empty string
713
+ fails the save with 422 `missing_required_field`.
714
+ - |-
715
+ Without a `_connectionId` on the parent import the model must be one the
716
+ catalog lists for the provider: an unknown id fails the save with 422
717
+ `model_not_found`, a listed-but-disabled id with 422 `model_disabled`. With a
718
+ `_connectionId` (BYOK) any model string saves — the server does not check it
719
+ against the catalog or the vendor.
720
+ modelOptions:
721
+ type: object
722
+ description: |-
723
+ Model tuning for a catalog provider (generic flat format). Which keys, values, and
724
+ ranges are accepted is defined per catalog model and validated on save when the
725
+ model is a catalog entry.
726
+ properties:
727
+ maxOutputTokens:
728
+ type: number
729
+ description: Maximum number of tokens the model may generate.
730
+ temperature:
731
+ type: number
732
+ description: Sampling temperature.
733
+ topP:
734
+ type: number
735
+ description: Nucleus sampling threshold.
736
+ reasoning_effort:
737
+ type: string
738
+ enum:
739
+ - low
740
+ - medium
741
+ - high
742
+ - xhigh
743
+ x-enumDescriptions:
744
+ low: Minimal reasoning before answering.
745
+ medium: Moderate reasoning.
746
+ high: Extensive reasoning.
747
+ xhigh: Maximum reasoning.
748
+ description: Reasoning depth for models that expose it.
749
+ x-celigo-ai-guidance:
750
+ - |-
751
+ When the model is a catalog entry, the server validates this object against
752
+ that model's schema and fails the save with 422 `invalid_model_options`
753
+ naming the key: unknown keys are rejected, `reasoning_effort` must be one of
754
+ the enum values where the model accepts it at all (xAI's `grok-4.6` does;
755
+ DeepSeek's `deepseek-chat` rejects the key), and numeric bounds apply —
756
+ on `grok-4.6`, `temperature` ≤ 2, `topP` ≤ 1, `maxOutputTokens` ≥ 100.
757
+ - |-
758
+ With a `_connectionId` and a model the catalog does not list, the object is
759
+ passed through unvalidated — send only options the vendor's API accepts.
760
+ instructions:
761
+ type: string
762
+ description: |-
763
+ System prompt for a catalog provider (generic flat format). Built-in providers
764
+ set it inside their own block (`openai.instructions`,
765
+ `litellm._overrides.anthropic.systemInstruction`).
766
+ output:
767
+ type: object
768
+ description: |-
769
+ Output format for a catalog provider (generic flat format). Built-in providers
770
+ configure it inside their own block (`openai.output`, `litellm.responseFormat`).
771
+ properties:
772
+ format:
773
+ type: object
774
+ description: Controls the structure of the model's output.
775
+ properties:
776
+ type:
777
+ type: string
778
+ enum:
779
+ - text
780
+ - json_schema
781
+ x-enumDescriptions:
782
+ text: Free-form text.
783
+ json_schema: Structured JSON conforming to `jsonSchema`.
784
+ description: Output type.
785
+ x-celigo-ai-guidance:
786
+ - |-
787
+ `blob` is not accepted here — the save fails with 422
788
+ `unsupported_output_format` naming the model (verified on `grok-4.6`).
789
+ name:
790
+ type: string
791
+ description: Name of the JSON schema, for `json_schema` output.
792
+ strict:
793
+ type: boolean
794
+ description: When true, the model must conform exactly to `jsonSchema`.
795
+ jsonSchema:
796
+ type: object
797
+ additionalProperties: true
798
+ description: JSON Schema the structured output must conform to, for `json_schema` output.
799
+ verbose:
800
+ type: string
801
+ description: Level of detail in the model's response, for models that expose it.
802
+ tools:
803
+ type: array
804
+ description: |-
805
+ Tools available to a catalog-provider agent (generic flat format). Entries mirror
806
+ the built-in providers' tool entries: a Celigo Tool by `_toolId`, an MCP server by
807
+ `_mcpConnectionId`, or a vendor web-search tool.
808
+ items:
809
+ type: object
810
+ properties:
811
+ type:
812
+ type: string
813
+ enum:
814
+ - tool
815
+ - mcp
816
+ - web_search
817
+ x-enumDescriptions:
818
+ tool: Reference a reusable Celigo Tool resource.
819
+ mcp: Connect to an MCP server for additional external tools.
820
+ web_search: Search the web for real-time information, where the vendor's model supports it.
821
+ description: Type of tool entry.
822
+ tool:
823
+ type: object
824
+ description: Reference to a Celigo Tool resource, used when type is "tool".
825
+ properties:
826
+ _toolId:
827
+ type: string
828
+ format: objectId
829
+ x-celigo-refModel: tools
830
+ description: The Celigo Tool to call.
831
+ mcp:
832
+ type: object
833
+ description: MCP server connection, used when type is "mcp".
834
+ properties:
835
+ _mcpConnectionId:
836
+ type: string
837
+ format: objectId
838
+ x-celigo-refModel: connections
839
+ description: Connection to the MCP server.
840
+ allowedTools:
841
+ type: array
842
+ description: |-
843
+ Specific tools to allow from the MCP server (all if omitted). Each entry
844
+ is either a plain tool name or an object carrying display metadata.
845
+ items:
846
+ type:
847
+ - string
848
+ - object
849
+ config:
850
+ type: object
851
+ additionalProperties: true
852
+ description: Tool-specific options for vendor-native tools (for example web-search settings).
853
+ x-celigo-ai-guidance:
854
+ - |-
855
+ References are checked on save: an unknown `_toolId` or `_mcpConnectionId`
856
+ fails with 422 `invalid_ref` naming the array index.
857
+ prompts:
858
+ type: array
859
+ description: |-
860
+ MCP prompt entries available to a catalog-provider agent (generic flat format).
861
+ Each entry references one MCP connection and the prompt names allowed from it.
862
+ items:
863
+ type: object
864
+ properties:
865
+ type:
866
+ type: string
867
+ enum:
868
+ - mcp
869
+ x-enumDescriptions:
870
+ mcp: Reference prompts exposed by an MCP server.
871
+ description: Type of prompt entry. Always "mcp".
872
+ mcp:
873
+ type: object
874
+ properties:
875
+ _mcpConnectionId:
876
+ type: string
877
+ format: objectId
878
+ x-celigo-refModel: connections
879
+ description: Connection to the MCP server that exposes the prompts.
880
+ allowedPrompts:
881
+ type: array
882
+ description: Prompt names the agent may fetch from the server.
883
+ items:
884
+ type: string
885
+ x-celigo-ai-guidance:
886
+ - |-
887
+ An unknown `_mcpConnectionId` fails the save with 422 `invalid_ref` naming
888
+ the array index.
889
+ resources:
890
+ $ref: '#/components/schemas/McpResources'
652
891
  openai:
653
892
  type: object
654
893
  description: |
@@ -679,10 +918,11 @@ components:
679
918
  x-celigo-ai-guidance:
680
919
  - |-
681
920
  With platform-managed credentials (no `_connectionId` on the parent
682
- import), the model must be on the platform's allowlist — an
683
- unlisted model fails the save with 422. A BYOK connection bypasses
684
- the allowlist and the model string is passed through to the
685
- provider as-is.
921
+ import), the model must be one the platform hosts. The save does not
922
+ check this — an unlisted model saves, and the agent's first run fails
923
+ with 422 `invalid_model`, whose message lists the hosted models. A
924
+ BYOK connection bypasses the hosted list and the model string is
925
+ passed through to the provider as-is.
686
926
  reasoning:
687
927
  type: object
688
928
  description: Controls depth of reasoning for complex tasks.
@@ -1085,6 +1325,13 @@ components:
1085
1325
  - claude-sonnet-4-6
1086
1326
  - claude-opus-4-7
1087
1327
  x-celigo-ui-override: Required by the AI agent configuration form. Encoded here to mirror the form so builders produce connectable configurations.
1328
+ x-celigo-ai-guidance:
1329
+ - |-
1330
+ With platform-managed credentials (no `_connectionId` on the parent
1331
+ import), the model must be one the platform hosts for the provider —
1332
+ Gemini and Anthropic Claude both have a hosted list. The save does not
1333
+ check this — an unlisted model saves, and the agent's first run fails
1334
+ with 422 `invalid_model`, whose message lists the hosted models.
1088
1335
  temperature:
1089
1336
  type: number
1090
1337
  minimum: 0
@@ -1739,6 +1986,22 @@ components:
1739
1986
  litellm:
1740
1987
  required:
1741
1988
  - model
1989
+ else:
1990
+ if:
1991
+ properties:
1992
+ provider:
1993
+ enum:
1994
+ - mistral
1995
+ - xai
1996
+ - huggingface
1997
+ - deepseek
1998
+ - cohere
1999
+ - groq
2000
+ required:
2001
+ - provider
2002
+ then:
2003
+ required:
2004
+ - model
1742
2005
  items:
1743
2006
  type: object
1744
2007
  properties:
@@ -4749,9 +5012,11 @@ components:
4749
5012
  type: object
4750
5013
  description: |-
4751
5014
  Writable AI agent import fields shared by the request and response schemas. Set
4752
- `aiAgent.provider` to choose the LLM backend, then configure the matching block:
4753
- `aiAgent.openai` for OpenAI, or `aiAgent.litellm` for Gemini and Anthropic Claude
4754
- (with provider-specific settings under `aiAgent.litellm._overrides`).
5015
+ `aiAgent.provider` to choose the LLM backend, then configure the matching format:
5016
+ `aiAgent.openai` for OpenAI, `aiAgent.litellm` for Gemini and Anthropic Claude
5017
+ (with provider-specific settings under `aiAgent.litellm._overrides`), or the
5018
+ generic flat format (`aiAgent.model`, `aiAgent.modelOptions`, …) for the catalog
5019
+ providers Mistral, xAI, Hugging Face, DeepSeek, Cohere, and Groq.
4755
5020
  properties:
4756
5021
  name:
4757
5022
  type: string
@@ -4770,7 +5035,12 @@ components:
4770
5035
  type: string
4771
5036
  format: objectId
4772
5037
  x-celigo-refModel: connections
4773
- description: Connection for BYOK (bring your own key). Optional — platform-managed credentials are used when omitted.
5038
+ description: |-
5039
+ Connection for BYOK (bring your own key) — an HTTP connection to the vendor's API.
5040
+ Optional for the built-in providers (`openai`, `gemini`, `anthropic`), which run on
5041
+ platform-managed credentials when it is omitted. Catalog providers (`mistral`, `xai`,
5042
+ `huggingface`, `deepseek`, `cohere`, `groq`) have no platform-managed credentials: the agent
5043
+ saves without one but cannot run until it is set.
4774
5044
  examples:
4775
5045
  - 662aaa6576bf4040548dbbe4
4776
5046
  _integrationId:
@@ -5125,9 +5395,11 @@ components:
5125
5395
  type: object
5126
5396
  description: |-
5127
5397
  Configuration for an AI agent import. Set `aiAgent.provider` to choose
5128
- the LLM backend, then configure the matching block: `aiAgent.openai` for
5129
- OpenAI, or `aiAgent.litellm` for Gemini and Anthropic Claude. Omit
5130
- `_connectionId` to use platform-managed credentials.
5398
+ the LLM backend, then configure the matching format: `aiAgent.openai` for
5399
+ OpenAI, `aiAgent.litellm` for Gemini and Anthropic Claude, or the generic
5400
+ flat format (`aiAgent.model`, `aiAgent.modelOptions`, …) for the catalog
5401
+ providers. Omit `_connectionId` to use platform-managed credentials on a
5402
+ built-in provider; catalog providers need a BYOK connection to run.
5131
5403
  required:
5132
5404
  - name
5133
5405
  - adaptorType
@@ -801,17 +801,33 @@ paths:
801
801
  x-internal: false
802
802
  summary: Patch a connection
803
803
  description: |-
804
- Partially updates a connection using a JSON Patch document (RFC 6902).
805
- Only the `replace` operation is supported, and only on the following
806
- whitelisted paths:
804
+ Partially updates a connection using a JSON Patch document (RFC 6902)
805
+ without re-sending its credentials — stored credentials are never read,
806
+ required, or changed by this operation. Use it for the settings below;
807
+ everything else goes through `PUT`, which replaces the whole document.
808
+ Only these paths are accepted (`<adaptor>` is the connection's `type`,
809
+ e.g. `/http/concurrencyLevel`, `/netsuite/targetConcurrencyLevel`):
807
810
 
808
811
  | Path | Description |
809
812
  |------|-------------|
810
813
  | `/name` | Connection display name |
811
814
  | `/debugDate` | Debug logging expiry (ISO-8601, max 1 hour from now) |
812
815
  | `/debugUntil` | Alias for `/debugDate` |
816
+ | `/<adaptor>/concurrencyLevel` | Concurrent requests allowed. Platform-managed while `autoRecoverRateLimitErrors` is true — the recovery machinery moves it toward the target, so set `targetConcurrencyLevel` instead |
817
+ | `/<adaptor>/targetConcurrencyLevel` | Ceiling auto-recovery climbs back to. Persists only while `autoRecoverRateLimitErrors` is true; while false the save unsets it |
818
+ | `/_borrowConcurrencyFromConnectionId` | Share another connection's concurrency budget. `remove` clears it |
819
+ | `/autoRecoverRateLimitErrors` | Rate-limit auto-recovery toggle. Turning it on copies the current level into the target; turning it off unsets the target and leaves the level at its current value |
813
820
 
814
- All other paths are rejected with `422`.
821
+ `replace` and `add` both set the value (a currently unset field is fine);
822
+ `remove` unsets it. A `null` value is rejected. Any other path — including
823
+ `/netsuite/concurrencyLevelRESTlet`, `/netsuite/concurrencyLevelWebServices`
824
+ and `rateLimit` fields — fails with `<path> is not a whitelisted property`.
825
+ Concurrency values must be whole numbers; out-of-range integers are clamped
826
+ into the account's licensed range rather than rejected. A whitelisted path
827
+ under an adaptor block the connection does not use is accepted but never
828
+ read. The borrowed-from connection must exist in the account, may not itself
829
+ borrow, and a connection that others borrow from cannot start borrowing.
830
+ Settings-only changes are recorded in the connection's audit log.
815
831
  operationId: patchConnection
816
832
  tags:
817
833
  - Connections
@@ -841,6 +857,32 @@ paths:
841
857
  - op: replace
842
858
  path: /name
843
859
  value: Shopify US Production
860
+ set_target_concurrency:
861
+ summary: Raise the target concurrency of an HTTP connection (auto-recovery on)
862
+ value:
863
+ - op: replace
864
+ path: /http/targetConcurrencyLevel
865
+ value: 10
866
+ disable_auto_recovery_and_set_level:
867
+ summary: Turn off rate-limit auto-recovery and fix the concurrency level
868
+ value:
869
+ - op: replace
870
+ path: /autoRecoverRateLimitErrors
871
+ value: false
872
+ - op: replace
873
+ path: /http/concurrencyLevel
874
+ value: 4
875
+ borrow_concurrency:
876
+ summary: Share another connection's concurrency budget
877
+ value:
878
+ - op: replace
879
+ path: /_borrowConcurrencyFromConnectionId
880
+ value: 615dfa0742763671275b70ab
881
+ stop_borrowing:
882
+ summary: Stop borrowing concurrency
883
+ value:
884
+ - op: remove
885
+ path: /_borrowConcurrencyFromConnectionId
844
886
  responses:
845
887
  '204':
846
888
  description: Connection patched successfully
@@ -2645,11 +2687,13 @@ components:
2645
2687
  When true, rate-limit errors from the target system trigger automatic recovery: concurrency
2646
2688
  drops to 1, the rate-limited requests are retried with doubling waits (1 to 1024 minutes,
2647
2689
  after which the flag switches itself off), and concurrency climbs back toward
2648
- `targetConcurrencyLevel`. While true, `concurrencyLevel` is platform-managed and writes to
2649
- it are ignored — `targetConcurrencyLevel` is the lever.
2690
+ `targetConcurrencyLevel`. While true, `targetConcurrencyLevel` is the throughput lever: a
2691
+ `concurrencyLevel` sent in a PUT is ignored, and one sent in a PATCH is stored but the
2692
+ recovery machinery moves it back toward the target.
2650
2693
  x-celigo-ai-guidance:
2651
- - To change throughput while this is true, write `targetConcurrencyLevel`; a `concurrencyLevel` write returns 200 and changes nothing.
2652
- - Turning it on copies `concurrencyLevel` into `targetConcurrencyLevel`; turning it off copies the target back into `concurrencyLevel` and unsets the target.
2694
+ - To change throughput while this is true, write `targetConcurrencyLevel`; a `concurrencyLevel` sent in a PUT returns 200 and changes nothing.
2695
+ - 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.
2696
+ - These four settings (`concurrencyLevel`, `targetConcurrencyLevel`, `_borrowConcurrencyFromConnectionId`, this flag) accept a credential-free `PATCH /v1/connections/{_id}`. A PUT must re-send the credentials — omitting them or echoing their masked `******` values clears them.
2653
2697
  enableMicroBatchForOneToMany:
2654
2698
  type: boolean
2655
2699
  default: true
@@ -3926,7 +3970,7 @@ components:
3926
3970
  Higher values increase throughput but may trigger API rate limits.
3927
3971
  Set this based on the target API's rate limit documentation.
3928
3972
  Values above the account's licensed maximum (25 standard, 50 with an Environments license) are silently clamped down.
3929
- Platform-managed while `autoRecoverRateLimitErrors` is true — writes are ignored; set `targetConcurrencyLevel` instead.
3973
+ Platform-managed while `autoRecoverRateLimitErrors` is true — a PUT ignores the value and the recovery machinery moves it toward the target; set `targetConcurrencyLevel` instead.
3930
3974
  minimum: 1
3931
3975
  maximum: 50
3932
3976
  default: 25
@@ -7516,9 +7560,20 @@ components:
7516
7560
  x-celigo-refModel: connections
7517
7561
  description: |-
7518
7562
  Reference to another connection to share concurrency limits with. When set, this
7519
- connection's traffic counts against the referenced connection's limit instead of its own.
7563
+ connection's traffic counts against the referenced connection's limit instead of its own,
7564
+ and its own concurrency and auto-recovery settings have no effect. One level only: the
7565
+ referenced connection may not itself borrow, and a connection that others borrow from
7566
+ cannot start borrowing.
7520
7567
  examples:
7521
7568
  - 615dfa0742763671275b70ab
7569
+ autoRecoverRateLimitErrors:
7570
+ type: boolean
7571
+ default: true
7572
+ description: |-
7573
+ When true, rate-limit errors from the target system trigger automatic recovery — concurrency
7574
+ drops to 1 and climbs back toward the adaptor block's `targetConcurrencyLevel`, which is the
7575
+ throughput lever while this is on. Turning it on copies the current `concurrencyLevel` into
7576
+ the target; turning it off unsets the target and leaves `concurrencyLevel` at its current value.
7522
7577
  __integrationIds:
7523
7578
  type: array
7524
7579
  maxItems: 100
package/dist/flow.yml CHANGED
@@ -6716,15 +6716,29 @@ components:
6716
6716
  triggeredBy:
6717
6717
  type: string
6718
6718
  readOnly: true
6719
- description: Who/what triggered the job (free-form string).
6719
+ description: |-
6720
+ What started the run. On a `flow` job: `system` for a scheduled run, the `_id` of
6721
+ the user who ran the flow, or the `_id` of the upstream flow whose `_runNextFlowIds`
6722
+ chained into this one; absent on event-driven runs (webhook, real-time listener, and
6723
+ stream page generators), which the inbound event starts. On a `retry` job: `auto`
6724
+ for the platform's automatic intermittent-error retry, otherwise the `_id` of the
6725
+ user who submitted the retry. Absent on `export` and `import` child jobs — the
6726
+ parent flow job carries it.
6720
6727
  examples:
6721
- - scheduler
6728
+ - system
6722
6729
  canceledBy:
6723
6730
  type: string
6724
6731
  readOnly: true
6725
- description: Who/what requested cancellation (free-form string).
6732
+ description: |-
6733
+ Who canceled the run: the `_id` of the user who requested the cancel, or `system` for
6734
+ every platform-initiated cancel — stuck-run recovery after a worker exit or crash or
6735
+ when a run stops making progress, stale-run cleanup, a scheduler that could not
6736
+ re-queue the run, and the cancels that follow deleting the flow or replacing one of
6737
+ its connections. The record does not say which of these it was.
6738
+ x-celigo-ai-guidance:
6739
+ - A `system` cancel is not something the user did and not a verdict on the flow's configuration, and by itself it does not prove the run was stuck — deleting the flow or replacing one of its connections cancels in-flight runs the same way; read the run's age and progress counters for that.
6726
6740
  examples:
6727
- - user
6741
+ - system
6728
6742
  flowExecutionGroupId:
6729
6743
  type: string
6730
6744
  readOnly: true