@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/import.yml CHANGED
@@ -533,16 +533,27 @@ paths:
533
533
  data records and returns per-record results synchronously.
534
534
 
535
535
  The request body should contain a `data` array of records to import. Each
536
- record is processed through the import's mappings, transformations, and
537
- hooks before being sent to the destination.
538
-
539
- The response is an **array** of per-record result objects, each containing
540
- a `statusCode`, the transformed `_json` payload, and any `errors`
541
- encountered during processing. This endpoint writes to the destination
542
- system — and so does `POST /v1/imports/preview` (verified to execute the
543
- composed request), so neither is a dry run against a production
544
- destination. A 200 response may still contain per-record failures in
545
- each element's `errors` array.
536
+ record is processed through the import's input filter, mappings, hooks
537
+ (preMap, postMap, postSubmit) and transformations before being sent to
538
+ the destination; a record the input filter excludes comes back `ignored`
539
+ and is never sent.
540
+
541
+ The response is an **array** of per-record result objects — `statusCode`,
542
+ the destination's parsed response body as `_json`, `errors` when the
543
+ record failed. This endpoint writes to the destination system — and so
544
+ does `POST /v1/imports/preview` (verified to execute the composed
545
+ request), so neither is a dry run against a production destination. A
546
+ 200 response may still contain per-record failures in each element's
547
+ `errors` array. Every import adaptor runs here (HTTP, NetSuite, RDBMS,
548
+ FTP verified), including the ones `POST /v1/imports/preview` rejects with
549
+ `invalid_adaptor`. For a file import the 200 reflects the file being
550
+ composed, not delivered — an FTP import against an unreachable host
551
+ still returns `{name, fileLocation}`.
552
+
553
+ The import must be saved; to run an import definition that is not saved
554
+ (or a modified copy of one), use the virtual import
555
+ `POST /v1/connections/{_id}/import`, which takes the import document in
556
+ the body and returns the same per-record results.
546
557
  parameters:
547
558
  - in: path
548
559
  name: _id
@@ -579,45 +590,25 @@ paths:
579
590
  responses:
580
591
  '200':
581
592
  description: |-
582
- Import completed. Returns a per-record result array. Each element
583
- contains the `statusCode` from the destination, the transformed
584
- `_json` payload, and any `errors` encountered.
593
+ Import completed. One result per input record, in input order —
594
+ accepted, failed at the destination, or ignored by the import's own
595
+ input filter.
585
596
  content:
586
597
  application/json:
587
598
  schema:
588
599
  type: array
589
600
  items:
590
- type: object
591
- properties:
592
- statusCode:
593
- type: integer
594
- description: HTTP status code from the destination system
595
- _json:
596
- type: object
597
- description: The transformed record as sent to the destination
598
- additionalProperties: true
599
- errors:
600
- type: array
601
- description: Errors encountered processing this record
602
- items:
603
- type: object
604
- properties:
605
- source:
606
- type: string
607
- code:
608
- type: string
609
- message:
610
- type: string
611
- resolved:
612
- type: boolean
613
- occurredAt:
614
- type: integer
615
- format: int64
616
- stage:
617
- type: string
618
- classification:
619
- type: string
601
+ $ref: '#/components/schemas/ImportRecordResult'
620
602
  examples:
603
+ accepted:
604
+ summary: Record accepted — the destination's response body in _json
605
+ value:
606
+ - statusCode: 200
607
+ _json:
608
+ id: 0031U00001AbCdEQAV
609
+ success: true
610
+ _headers:
611
+ content-type: application/json; charset=utf-8
621
612
  destination_error:
622
613
  summary: Record failed at destination
623
614
  value:
@@ -631,6 +622,13 @@ paths:
631
622
  occurredAt: 1777645680144
632
623
  stage: apiCall
633
624
  classification: value
625
+ ignored_by_input_filter:
626
+ summary: Record excluded by the import's input filter — nothing sent
627
+ value:
628
+ - statusCode: 200
629
+ _json: {}
630
+ ignored: true
631
+ stage: inputFilter
634
632
  '401':
635
633
  $ref: '#/components/responses/401-unauthorized'
636
634
  '404':
@@ -780,10 +778,14 @@ paths:
780
778
  '422':
781
779
  description: |-
782
780
  Request body is malformed — most commonly the top-level `import`
783
- object is missing — or the adaptor type is unsupported: RDBMS-family
784
- imports are rejected with `invalid_adaptor` ("Import preview is not
785
- supported for adaptor type: RDBMSImport"); database imports have no
786
- request-preview surface anywhere (the SQL editor's Handlebars
781
+ object is missing — or the adaptor type is unsupported: NetSuite,
782
+ Salesforce, RDBMS and FTP imports are rejected with `invalid_adaptor`
783
+ ("Import preview is not supported for adaptor type: <adaptorType>")
784
+ before any connection is resolved, while HTTP-family and AI-agent
785
+ imports preview normally. The rejected adaptors execute through the
786
+ virtual import, `POST /v1/connections/{_id}/import`, which runs the
787
+ document for real and returns per-record results; database imports
788
+ have no compose-only surface anywhere (the SQL editor's Handlebars
787
789
  evaluation is their only preview). Structural validation returns the
788
790
  standard errors envelope.
789
791
  content:
@@ -801,6 +803,11 @@ paths:
801
803
  errors:
802
804
  - code: invalid_adaptor
803
805
  message: 'Import preview is not supported for adaptor type: RDBMSImport.'
806
+ netsuite_unsupported:
807
+ value:
808
+ errors:
809
+ - code: invalid_adaptor
810
+ message: 'Import preview is not supported for adaptor type: NetSuiteDistributedImport.'
804
811
  /v1/netsuiteDA/previewImportMappingFields:
805
812
  put:
806
813
  x-internal: false
@@ -9039,8 +9046,9 @@ components:
9039
9046
 
9040
9047
  A `_connectionId` on the parent import selects bring-your-own-key (BYOK)
9041
9048
  credentials. Without one, built-in providers run on platform-managed
9042
- credentials; catalog providers have no platform-managed credentials, so they
9043
- save without a connection but cannot run until one is attached.
9049
+ credentials; catalog providers have no platform-managed credentials, so the
9050
+ save requires one — without it the agent fails to save with 422
9051
+ `connection_required` on `_connectionId`.
9044
9052
  required:
9045
9053
  - provider
9046
9054
  properties:
@@ -9077,10 +9085,11 @@ components:
9077
9085
  generic flat format — `model` and `modelOptions` directly on this object,
9078
9086
  never an `openai` or `litellm` block.
9079
9087
  - |-
9080
- Catalog providers are BYOK-only at run time: the agent saves without a
9081
- `_connectionId`, but its first run fails with 422 `invalid_request` ("No API
9082
- key configured for provider …"). Always attach an HTTP connection to the
9083
- vendor's API (token auth) when the provider is a catalog provider.
9088
+ Catalog providers are BYOK-only, and the save enforces it: without a `_connectionId`
9089
+ the agent fails to save with 422 `connection_required` on `_connectionId` ("No API
9090
+ key is available for provider 'xai'. Add a connection for this provider with your
9091
+ API key and select it on this agent."). Attach an HTTP connection to the vendor's
9092
+ API (token auth) before saving a catalog-provider agent.
9084
9093
  model:
9085
9094
  type: string
9086
9095
  description: |-
@@ -9092,11 +9101,11 @@ components:
9092
9101
  Required for every catalog provider — omitting it or sending an empty string
9093
9102
  fails the save with 422 `missing_required_field`.
9094
9103
  - |-
9095
- Without a `_connectionId` on the parent import the model must be one the
9096
- catalog lists for the provider: an unknown id fails the save with 422
9097
- `model_not_found`, a listed-but-disabled id with 422 `model_disabled`. With a
9098
- `_connectionId` (BYOK) any model string saves — the server does not check it
9099
- against the catalog or the vendor.
9104
+ The connection is checked before the model: without a `_connectionId` on the
9105
+ parent import a catalog-provider agent fails to save with 422
9106
+ `connection_required` whatever the model string (an unknown id included).
9107
+ With a `_connectionId` (BYOK) any model string saves — the server does not
9108
+ check it against the catalog or the vendor.
9100
9109
  modelOptions:
9101
9110
  type: object
9102
9111
  description: |-
@@ -9420,12 +9429,22 @@ components:
9420
9429
  - manual
9421
9430
  - json
9422
9431
  x-enumDescriptions:
9423
- manual: The schema was built field-by-field in the visual editor.
9424
- json: The schema was pasted or edited as raw JSON.
9432
+ manual: The UI opens `jsonSchema` in the visual field-by-field editor
9433
+ json: The UI opens `jsonSchema` in the raw JSON editor
9425
9434
  description: |-
9426
- How the structured-output schema was authored in the UI.
9427
- Editor state only — it does not change how `jsonSchema` is
9428
- sent to the provider.
9435
+ Which editor the UI opens `jsonSchema` in; the schema sent to the provider
9436
+ is the same either way, and the field is only meaningful when `type` is
9437
+ "json_schema". Unset opens the visual editor, and an edit there rebuilds
9438
+ `jsonSchema` from the field list, keeping only `type`, `properties`,
9439
+ `required`, `items`, `description`, `enum`, `pattern`, length and numeric
9440
+ bounds, `multipleOf`, `minItems`/`maxItems` and a `"null"` type — other
9441
+ keywords are dropped without a prompt, and `integer` becomes `number`.
9442
+ x-celigo-ai-guidance:
9443
+ - |-
9444
+ Set `json` on a schema written as raw JSON; keep a user's `manual` and stay
9445
+ inside the keywords the visual editor keeps. A full PUT that omits the field
9446
+ clears it, and a value outside the enum fails the save with 422 `enum` on
9447
+ `aiAgent.openai.output.format.schemaMode`.
9429
9448
  name:
9430
9449
  type: string
9431
9450
  description: Name for the output format (used with json_schema)
@@ -9778,12 +9797,22 @@ components:
9778
9797
  - manual
9779
9798
  - json
9780
9799
  x-enumDescriptions:
9781
- manual: The schema was built field-by-field in the visual editor.
9782
- json: The schema was pasted or edited as raw JSON.
9800
+ manual: The UI opens `jsonSchema` in the visual field-by-field editor
9801
+ json: The UI opens `jsonSchema` in the raw JSON editor
9783
9802
  description: |-
9784
- How the structured-output schema was authored in the UI. Editor
9785
- state only — it does not change how `jsonSchema` is sent to the
9786
- provider.
9803
+ Which editor the UI opens `jsonSchema` in; the schema sent to the provider is
9804
+ the same either way, and the field is only meaningful when `type` is
9805
+ "json_schema". Unset opens the visual editor, and an edit there rebuilds
9806
+ `jsonSchema` from the field list, keeping only `type`, `properties`, `required`,
9807
+ `items`, `description`, `enum`, `pattern`, length and numeric bounds,
9808
+ `multipleOf`, `minItems`/`maxItems` and a `"null"` type — other keywords are
9809
+ dropped without a prompt, and `integer` becomes `number`.
9810
+ x-celigo-ai-guidance:
9811
+ - |-
9812
+ Set `json` on a schema written as raw JSON; keep a user's `manual` and stay inside
9813
+ the keywords the visual editor keeps. A full PUT that omits the field clears it,
9814
+ and a value outside the enum fails the save with 422 `enum` on
9815
+ `aiAgent.litellm.responseFormat.schemaMode`.
9787
9816
  name:
9788
9817
  type: string
9789
9818
  description: Name for the output format (used with json_schema).
@@ -10460,8 +10489,9 @@ components:
10460
10489
 
10461
10490
  A `_connectionId` on the parent import selects bring-your-own-key (BYOK)
10462
10491
  credentials. Without one, built-in providers run on platform-managed
10463
- credentials; catalog providers have no platform-managed credentials, so they
10464
- save without a connection but cannot run until one is attached.
10492
+ credentials; catalog providers have no platform-managed credentials, so the
10493
+ save requires one — without it the guardrail fails to save with 422
10494
+ `connection_required` on `_connectionId`.
10465
10495
  x-celigo-ai-guidance:
10466
10496
  - |-
10467
10497
  Do not send `tools` on any block. A non-empty array at `tools`, `openai.tools`,
@@ -10504,10 +10534,11 @@ components:
10504
10534
  generic flat format — `model` and `modelOptions` directly on this object,
10505
10535
  never an `openai` or `litellm` block.
10506
10536
  - |-
10507
- Catalog providers are BYOK-only at run time: the guardrail saves without a
10508
- `_connectionId`, but its first run fails with 422 `invalid_request` ("No API
10509
- key configured for provider …"). Always attach an HTTP connection to the
10510
- vendor's API (token auth) when the provider is a catalog provider.
10537
+ Catalog providers are BYOK-only, and the save enforces it: without a `_connectionId`
10538
+ the guardrail fails to save with 422 `connection_required` on `_connectionId` ("No
10539
+ API key is available for provider 'xai'. Add a connection for this provider with
10540
+ your API key and select it on this agent."). Attach an HTTP connection to the
10541
+ vendor's API (token auth) before saving a catalog-provider guardrail.
10511
10542
  model:
10512
10543
  type: string
10513
10544
  description: |-
@@ -10519,11 +10550,11 @@ components:
10519
10550
  Required for every catalog provider — omitting it or sending an empty string
10520
10551
  fails the save with 422 `missing_required_field`.
10521
10552
  - |-
10522
- Without a `_connectionId` on the parent import the model must be one the
10523
- catalog lists for the provider: an unknown id fails the save with 422
10524
- `model_not_found`, a listed-but-disabled id with 422 `model_disabled`. With a
10525
- `_connectionId` (BYOK) any model string saves — the server does not check it
10526
- against the catalog or the vendor.
10553
+ The connection is checked before the model: without a `_connectionId` on the
10554
+ parent import a catalog-provider guardrail fails to save with 422
10555
+ `connection_required` whatever the model string (an unknown id included).
10556
+ With a `_connectionId` (BYOK) any model string saves — the server does not
10557
+ check it against the catalog or the vendor.
10527
10558
  modelOptions:
10528
10559
  type: object
10529
10560
  description: |-
@@ -10788,12 +10819,17 @@ components:
10788
10819
  - manual
10789
10820
  - json
10790
10821
  x-enumDescriptions:
10791
- manual: The schema was built field-by-field in the visual editor.
10792
- json: The schema was pasted or edited as raw JSON.
10822
+ manual: The schema editor opens `jsonSchema` in the visual field-by-field view
10823
+ json: The schema editor opens `jsonSchema` in the raw JSON view
10793
10824
  description: |-
10794
- How the structured-output schema was authored in the UI.
10795
- Editor state only — it does not change how `jsonSchema` is
10796
- sent to the provider.
10825
+ Which view a schema editor opens `jsonSchema` in; the schema sent to the
10826
+ provider is the same either way. Stored and echoed on guardrails for parity
10827
+ with the AI-agent format block — the guardrail form does not set it today.
10828
+ x-celigo-ai-guidance:
10829
+ - |-
10830
+ Resend the stored value on every update — a full PUT that omits the field
10831
+ clears it — and never invent one: a value outside the enum fails the save with
10832
+ 422 `enum` on `guardrail.aiAgent.openai.output.format.schemaMode`.
10797
10833
  name:
10798
10834
  type: string
10799
10835
  description: Name for the output format (used with json_schema)
@@ -10982,12 +11018,17 @@ components:
10982
11018
  - manual
10983
11019
  - json
10984
11020
  x-enumDescriptions:
10985
- manual: The schema was built field-by-field in the visual editor.
10986
- json: The schema was pasted or edited as raw JSON.
11021
+ manual: The schema editor opens `jsonSchema` in the visual field-by-field view
11022
+ json: The schema editor opens `jsonSchema` in the raw JSON view
10987
11023
  description: |-
10988
- How the structured-output schema was authored in the UI. Editor
10989
- state only — it does not change how `jsonSchema` is sent to the
10990
- provider.
11024
+ Which view a schema editor opens `jsonSchema` in; the schema sent to the provider
11025
+ is the same either way. Stored and echoed on guardrails for parity with the
11026
+ AI-agent format block — the guardrail form does not set it today.
11027
+ x-celigo-ai-guidance:
11028
+ - |-
11029
+ Resend the stored value on every update — a full PUT that omits the field clears
11030
+ it — and never invent one: a value outside the enum fails the save with 422 `enum`
11031
+ on `guardrail.aiAgent.litellm.responseFormat.schemaMode`.
10991
11032
  name:
10992
11033
  type: string
10993
11034
  description: Name for the output format (used with json_schema).
@@ -16663,6 +16704,82 @@ components:
16663
16704
  description: The stack id associated with the resource, or null if no stack is involved.
16664
16705
  examples:
16665
16706
  - 5f8d43a1b9e5a80011a35f2c
16707
+ ImportRecordResult:
16708
+ type: object
16709
+ description: |-
16710
+ The outcome of running one input record through an import — one element
16711
+ per record, in input order — shared by `POST /v1/imports/{_id}/invoke`
16712
+ and the virtual import `POST /v1/connections/{_id}/import`. A record the
16713
+ import itself ignored before any request carries `ignored: true` and the
16714
+ `stage` that dropped it; a record the destination accepted carries its
16715
+ parsed response; a record the destination rejected — or that the
16716
+ import's `failPath` / `failValues` rules judged a failure even on a
16717
+ `2xx` — carries `errors[]`.
16718
+ properties:
16719
+ statusCode:
16720
+ type: integer
16721
+ description: |-
16722
+ HTTP status of the record's outcome. The destination's status for an
16723
+ accepted record; `422` when the import recorded a failure for the
16724
+ record — including when the destination itself answered `200` and
16725
+ the import's `failPath` rules declared it a failure.
16726
+ _json:
16727
+ type: object
16728
+ description: |-
16729
+ The destination's parsed response body for the record — the slice
16730
+ under the import's `response.resourcePath` when one is defined — not
16731
+ the record that was sent. `{}` when the record was ignored or the
16732
+ destination returned no usable body.
16733
+ additionalProperties: true
16734
+ _headers:
16735
+ type: object
16736
+ description: Response headers the destination returned for the record.
16737
+ additionalProperties: true
16738
+ ignored:
16739
+ type: boolean
16740
+ description: |-
16741
+ When true, the import dropped the record before sending anything and
16742
+ `stage` names the gate; the destination was not called for it.
16743
+ stage:
16744
+ type: string
16745
+ description: |-
16746
+ The import stage that ignored the record — `inputFilter` when the
16747
+ import's own input filter excluded it. Present only with `ignored`.
16748
+ examples:
16749
+ - inputFilter
16750
+ errors:
16751
+ type: array
16752
+ description: |-
16753
+ Errors recorded for the record. `source: application` with
16754
+ `stage: apiCall` means the request reached the destination and its
16755
+ answer was the failure; the destination's response body rides in
16756
+ `message`.
16757
+ items:
16758
+ type: object
16759
+ properties:
16760
+ source:
16761
+ type: string
16762
+ code:
16763
+ oneOf:
16764
+ - type: string
16765
+ - type: integer
16766
+ description: |-
16767
+ The adaptor's error code, or the destination's HTTP status as
16768
+ an integer when the import's `failPath` rules turned a
16769
+ successful-looking response into a failure.
16770
+ message:
16771
+ type: string
16772
+ resolved:
16773
+ type: boolean
16774
+ occurredAt:
16775
+ type: integer
16776
+ format: int64
16777
+ stage:
16778
+ type: string
16779
+ classification:
16780
+ type: string
16781
+ additionalProperties: true
16782
+ additionalProperties: true
16666
16783
  ImportPreviewResponse:
16667
16784
  type: object
16668
16785
  description: |-