@celigo/api-specs 0.2.75 → 0.2.77

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/flow.yml CHANGED
@@ -3762,23 +3762,33 @@ paths:
3762
3762
  summary: Preview the output of a flow's page processor
3763
3763
  description: |-
3764
3764
  Runs a flow's page generators and page processors through the preview
3765
- pipeline and returns the record arriving at a specific page-processor
3766
- node, with the whole upstream chain applied server-side: the source
3767
- export executes live (its transform, output filter, and preSavePage
3768
- hook are applied), router branch filters and step input filters gate
3769
- the records, upstream lookups execute live unless a saved `mockOutput`
3770
- is present (a saved mock always wins), and upstream imports are NEVER
3771
- executed — each substitutes its saved `mockResponse`, or a platform
3772
- placeholder when none is saved, before its response mapping and
3773
- postResponseMap hook run. A target IMPORT obeys its map entry's
3774
- options flag: `{preview: true}` composes the request and returns it
3775
- without sending, while `{sendAndPreview: true}` (the import
3776
- editor's "Send" button) executes it against the live destination —
3777
- a real write. A target LOOKUP executes its live query
3778
- (even when it carries a saved `mockOutput` — the mock substitutes
3779
- only when the lookup is upstream of the target). With
3780
- `includeStages: false` the response is the bare result object
3781
- rather than the `{data, stages}` envelope.
3765
+ pipeline and returns the record arriving at one page-processor node,
3766
+ with the upstream chain applied server-side. A target IMPORT obeys its
3767
+ map entry's options flag: `{preview: true}` composes the request
3768
+ without sending; `{sendAndPreview: true}` (the import editor's "Send"
3769
+ button) executes it against the live destination — a real write — and
3770
+ stops at the parsed response (the target's postSubmit hook does not
3771
+ run). Both composing modes serve HTTP import targets only: a NetSuite,
3772
+ Salesforce, RDBMS or FTP target answers `422 no_data_available` ("You
3773
+ must add at least one mock input record…") whatever records the chain
3774
+ delivers — the generic "no record reached the target", not a data
3775
+ problem; execute such a step as a virtual import instead
3776
+ (`POST /v1/connections/{_id}/import`). No options flag returns the
3777
+ arriving record for any adaptor without touching the target.
3778
+
3779
+ Upstream behavior: the source export executes live (transform, output
3780
+ filter and preSavePage hook applied); router branch filters and step
3781
+ input filters gate the records; upstream lookups execute live unless a
3782
+ saved `mockOutput` is present (a saved mock always wins); upstream
3783
+ imports are NEVER executed — each substitutes its saved `mockResponse`,
3784
+ or a platform placeholder when none is saved, before its response
3785
+ mapping and postResponseMap hook run. A target LOOKUP executes its
3786
+ live query even when it carries a saved `mockOutput` (the mock
3787
+ substitutes only upstream). When a target import's `failPath` rules
3788
+ judge the destination's answer a failure, the response is `422` whose
3789
+ `errors[]` carry `source: application` and `stage: apiCall` — the
3790
+ request did execute. With `includeStages: false` the response is the
3791
+ bare result object rather than the `{data, stages}` envelope.
3782
3792
 
3783
3793
  Body carries the flow shape plus resolved maps of page-generator and
3784
3794
  page-processor docs keyed by `_id`. The server uses those maps as the
@@ -3824,8 +3834,8 @@ paths:
3824
3834
  6508ab8b20b16404da729c64:
3825
3835
  doc:
3826
3836
  _id: 6508ab8b20b16404da729c64
3827
- name: Upsert NetSuite Customers
3828
- adaptorType: NetSuiteImport
3837
+ name: Upsert customers in the destination API
3838
+ adaptorType: HTTPImport
3829
3839
  options:
3830
3840
  preview: true
3831
3841
  includeStages: true
@@ -3878,6 +3888,39 @@ paths:
3878
3888
  message: 'The pageGenerator doc corresponding to the _id: is not found in the given pageGeneratorMap.'
3879
3889
  '401':
3880
3890
  $ref: '#/components/responses/401-unauthorized'
3891
+ '422':
3892
+ description: |-
3893
+ Two distinct meanings, told apart by `errors[].source`:
3894
+ `no_data_available` with `source: integrator` — no record reached
3895
+ the target in a composing mode (the target is a NetSuite,
3896
+ Salesforce, RDBMS or FTP import, which these modes cannot drive, or
3897
+ the chain's gates dropped every record); `source: application` with
3898
+ `stage: apiCall` after `sendAndPreview` — the request DID execute
3899
+ and the target import's `failPath` rules judged the destination's
3900
+ answer a failure; `message` carries the destination's response body
3901
+ and `code` its HTTP status.
3902
+ content:
3903
+ application/json:
3904
+ schema:
3905
+ $ref: '#/components/schemas/Error'
3906
+ examples:
3907
+ noRecordReachedTarget:
3908
+ summary: Composing mode on a non-HTTP target, or every record gated out
3909
+ value:
3910
+ errors:
3911
+ - code: no_data_available
3912
+ source: integrator
3913
+ message: You must add at least one mock input record. If you still get this error after adding an input record, verify that your current mapping configuration isn't ignoring all record output. Mock input records must pass through the input filter and hooks to qualify for Preview and Send.
3914
+ failPathTripped:
3915
+ summary: sendAndPreview executed; the target's failPath rules judged the 200 a failure
3916
+ description: |-
3917
+ The live error also carries `stage: apiCall`, `classification`,
3918
+ `resolved` and `occurredAt` beside the fields shown.
3919
+ value:
3920
+ errors:
3921
+ - code: 200
3922
+ source: application
3923
+ message: '{"args":{},"json":{"FirstName":"FAILME"}}'
3881
3924
  /v1/flows/{_id}/dependencies:
3882
3925
  get:
3883
3926
  x-internal: false
@@ -7691,6 +7734,17 @@ components:
7691
7734
  Flow-page-processor preview request. Carries the flow shape plus
7692
7735
  side-loaded maps of page-generator and page-processor docs so the
7693
7736
  preview engine can run without reading the persisted flow doc.
7737
+ x-celigo-ai-guidance:
7738
+ - |-
7739
+ The target import's `{preview: true}` / `{sendAndPreview: true}` composing modes serve HTTP
7740
+ import targets only: a NetSuite, Salesforce, RDBMS or FTP target answers `422
7741
+ no_data_available` whatever records the chain delivers — not a data problem. Execute such a
7742
+ step as a virtual import (`POST /v1/connections/{_id}/import`) instead; with no options flag
7743
+ this call still returns the arriving record for any adaptor.
7744
+ - |-
7745
+ A `422` whose `errors[]` carry `source: application` and `stage: apiCall` after
7746
+ `sendAndPreview` means the request DID execute and the target's `failPath` rules judged the
7747
+ destination's answer a failure — a completed send, not a request-validation error.
7694
7748
  properties:
7695
7749
  flow:
7696
7750
  type: object
@@ -7761,10 +7815,12 @@ components:
7761
7815
  the mock input the editor's "Mock input" pane would provide.
7762
7816
  Upstream entries carry `{}`.
7763
7817
  Request composition is adaptor-gated: the `preview`/`sendAndPreview`
7764
- modes work for HTTP, REST, and GraphQL import targets — RDBMS-family
7765
- import targets fail with `no_data_available` regardless of supplied
7766
- input (database imports have no request-preview surface; only the
7767
- no-flag input-data preview works for them).
7818
+ modes work for HTTP, REST, and GraphQL import targets — a NetSuite,
7819
+ Salesforce, RDBMS or FTP import target fails with
7820
+ `422 no_data_available` regardless of supplied input (those
7821
+ adaptors have no request-preview surface; only the no-flag
7822
+ input-data preview works for them, and the virtual import
7823
+ `POST /v1/connections/{_id}/import` executes them).
7768
7824
  additionalProperties:
7769
7825
  type: object
7770
7826
  properties:
@@ -7778,7 +7834,8 @@ components:
7778
7834
  64a1234567890abcdef12345:
7779
7835
  doc:
7780
7836
  _id: 64a1234567890abcdef12345
7781
- name: Import Orders to NetSuite
7837
+ name: Create orders in the destination API
7838
+ adaptorType: HTTPImport
7782
7839
  _connectionId: 5f7c579b6411271af4e7cefb
7783
7840
  options:
7784
7841
  preview: true
@@ -602,8 +602,9 @@ components:
602
602
 
603
603
  A `_connectionId` on the parent import selects bring-your-own-key (BYOK)
604
604
  credentials. Without one, built-in providers run on platform-managed
605
- credentials; catalog providers have no platform-managed credentials, so they
606
- save without a connection but cannot run until one is attached.
605
+ credentials; catalog providers have no platform-managed credentials, so the
606
+ save requires one — without it the guardrail fails to save with 422
607
+ `connection_required` on `_connectionId`.
607
608
  x-celigo-ai-guidance:
608
609
  - |-
609
610
  Do not send `tools` on any block. A non-empty array at `tools`, `openai.tools`,
@@ -646,10 +647,11 @@ components:
646
647
  generic flat format — `model` and `modelOptions` directly on this object,
647
648
  never an `openai` or `litellm` block.
648
649
  - |-
649
- Catalog providers are BYOK-only at run time: the guardrail saves without a
650
- `_connectionId`, but its first run fails with 422 `invalid_request` ("No API
651
- key configured for provider …"). Always attach an HTTP connection to the
652
- vendor's API (token auth) when the provider is a catalog provider.
650
+ Catalog providers are BYOK-only, and the save enforces it: without a `_connectionId`
651
+ the guardrail fails to save with 422 `connection_required` on `_connectionId` ("No
652
+ API key is available for provider 'xai'. Add a connection for this provider with
653
+ your API key and select it on this agent."). Attach an HTTP connection to the
654
+ vendor's API (token auth) before saving a catalog-provider guardrail.
653
655
  model:
654
656
  type: string
655
657
  description: |-
@@ -661,11 +663,11 @@ components:
661
663
  Required for every catalog provider — omitting it or sending an empty string
662
664
  fails the save with 422 `missing_required_field`.
663
665
  - |-
664
- Without a `_connectionId` on the parent import the model must be one the
665
- catalog lists for the provider: an unknown id fails the save with 422
666
- `model_not_found`, a listed-but-disabled id with 422 `model_disabled`. With a
667
- `_connectionId` (BYOK) any model string saves — the server does not check it
668
- against the catalog or the vendor.
666
+ The connection is checked before the model: without a `_connectionId` on the
667
+ parent import a catalog-provider guardrail fails to save with 422
668
+ `connection_required` whatever the model string (an unknown id included).
669
+ With a `_connectionId` (BYOK) any model string saves — the server does not
670
+ check it against the catalog or the vendor.
669
671
  modelOptions:
670
672
  type: object
671
673
  description: |-
@@ -930,12 +932,17 @@ components:
930
932
  - manual
931
933
  - json
932
934
  x-enumDescriptions:
933
- manual: The schema was built field-by-field in the visual editor.
934
- json: The schema was pasted or edited as raw JSON.
935
+ manual: The schema editor opens `jsonSchema` in the visual field-by-field view
936
+ json: The schema editor opens `jsonSchema` in the raw JSON view
935
937
  description: |-
936
- How the structured-output schema was authored in the UI.
937
- Editor state only — it does not change how `jsonSchema` is
938
- sent to the provider.
938
+ Which view a schema editor opens `jsonSchema` in; the schema sent to the
939
+ provider is the same either way. Stored and echoed on guardrails for parity
940
+ with the AI-agent format block — the guardrail form does not set it today.
941
+ x-celigo-ai-guidance:
942
+ - |-
943
+ Resend the stored value on every update — a full PUT that omits the field
944
+ clears it — and never invent one: a value outside the enum fails the save with
945
+ 422 `enum` on `guardrail.aiAgent.openai.output.format.schemaMode`.
939
946
  name:
940
947
  type: string
941
948
  description: Name for the output format (used with json_schema)
@@ -1124,12 +1131,17 @@ components:
1124
1131
  - manual
1125
1132
  - json
1126
1133
  x-enumDescriptions:
1127
- manual: The schema was built field-by-field in the visual editor.
1128
- json: The schema was pasted or edited as raw JSON.
1134
+ manual: The schema editor opens `jsonSchema` in the visual field-by-field view
1135
+ json: The schema editor opens `jsonSchema` in the raw JSON view
1129
1136
  description: |-
1130
- How the structured-output schema was authored in the UI. Editor
1131
- state only — it does not change how `jsonSchema` is sent to the
1132
- provider.
1137
+ Which view a schema editor opens `jsonSchema` in; the schema sent to the provider
1138
+ is the same either way. Stored and echoed on guardrails for parity with the
1139
+ AI-agent format block — the guardrail form does not set it today.
1140
+ x-celigo-ai-guidance:
1141
+ - |-
1142
+ Resend the stored value on every update — a full PUT that omits the field clears
1143
+ it — and never invent one: a value outside the enum fails the save with 422 `enum`
1144
+ on `guardrail.aiAgent.litellm.responseFormat.schemaMode`.
1133
1145
  name:
1134
1146
  type: string
1135
1147
  description: Name for the output format (used with json_schema).