@celigo/api-specs 0.2.93 → 0.2.95

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.
@@ -4213,9 +4213,10 @@ components:
4213
4213
  syncs:
4214
4214
  type: boolean
4215
4215
  description: |-
4216
- Indicates whether this integration uses Sync resources.
4217
-
4218
- Typically system-managed.
4216
+ When true, the integration is a container for Celigo Sync resources — set it on
4217
+ `POST /v1/integrations` before creating syncs in it (`POST /v1/syncs` into an
4218
+ integration without it fails with `422 integration_not_for_sync`). Fixed at creation:
4219
+ `PUT /v1/integrations/{_id}` ignores the field in both directions.
4219
4220
  aliases:
4220
4221
  type: array
4221
4222
  description: Named aliases that map to specific resources within the integration.
@@ -5115,17 +5116,19 @@ components:
5115
5116
  - 6aab2870265e1cf39fcbee4d
5116
5117
  draft:
5117
5118
  type: boolean
5118
- readOnly: true
5119
5119
  description: |-
5120
- When true, the topic was created as a draft by the AI-assisted builder and has not been
5121
- confirmed yet. Absent on ordinary topics.
5120
+ When true, the topic is an unconfirmed draft (created with `draft: true`, typically by
5121
+ the AI-assisted builder) that auto-deletes at `draftExpiresAt`. Absent on ordinary
5122
+ topics and once a `PUT` with `draft: false` promotes the draft.
5122
5123
  examples:
5123
5124
  - true
5124
5125
  draftExpiresAt:
5125
5126
  type: string
5126
5127
  format: date-time
5127
5128
  readOnly: true
5128
- description: Timestamp when an unconfirmed draft is deleted automatically. Present only when `draft` is true.
5129
+ description: |-
5130
+ Timestamp when an unconfirmed draft is deleted automatically — 48 hours after
5131
+ creation. Present only while `draft` is true; cleared together with it.
5129
5132
  examples:
5130
5133
  - '2026-09-24T03:30:27.432Z'
5131
5134
  createdAt:
@@ -5211,6 +5214,21 @@ components:
5211
5214
  `GET /v1/topics?externalId=…`. Integration Apps use it to locate a topic across installs.
5212
5215
  examples:
5213
5216
  - erp-orders-created
5217
+ draft:
5218
+ type: boolean
5219
+ description: |-
5220
+ When true, the topic is a draft that auto-deletes 48 hours after creation
5221
+ (`draftExpiresAt` in the response). Set at creation; an update can clear the
5222
+ flag but never set it, and a PUT that omits it leaves an existing draft as is —
5223
+ the one field the whole-document PUT does not clear.
5224
+ x-celigo-ai-guidance:
5225
+ - |-
5226
+ POST with `draft: true` arms the 48-hour TTL (the server computes `draftExpiresAt`).
5227
+ PUT with `draft: false` clears the flag and the expiry, promoting the draft to a
5228
+ permanent topic. PUT with `draft: true` on a non-draft topic is silently ignored,
5229
+ and a PUT that omits the field leaves an existing draft flag unchanged.
5230
+ examples:
5231
+ - true
5214
5232
  __integrationIds:
5215
5233
  type: array
5216
5234
  maxItems: 100
@@ -2669,6 +2669,9 @@ components:
2669
2669
  every other field is taken from the stored row, and a write that includes
2670
2670
  `upstreamMcpConnections` re-approves the current upstream definitions
2671
2671
  (`approvedDefinitionHash` is re-pinned and `changedSinceApproval` reset).
2672
+ Each attachment whitelists at most 500 rows across `tools`, `prompts`,
2673
+ and `resources` combined; a larger whitelist is rejected with 422
2674
+ `mcp_upstream_max_capabilities`.
2672
2675
  x-celigo-ai-guidance:
2673
2676
  - |-
2674
2677
  Attach only connections of type "mcp" that belong to this account: any
@@ -2679,6 +2682,16 @@ components:
2679
2682
  To edit one row (enable, disable, rename, retitle) send the complete
2680
2683
  upstreamMcpConnections array back via PUT: the array is preserved when
2681
2684
  omitted, and PATCH reaches only /upstreamMcpConnections/{index}/alias.
2685
+ - |-
2686
+ Keep each attachment at 500 rows or fewer across tools, prompts, and
2687
+ resources combined: the 501st row fails the whole PUT with 422
2688
+ "mcp_upstream_max_capabilities" on upstreamMcpConnections[{index}].
2689
+ The cap is per attachment, so a second connection gets its own 500.
2690
+ - |-
2691
+ Set alias explicitly when the connection name is longer than 32
2692
+ characters: the alias derived from the name on first attach fails the
2693
+ PUT with 422 "size_limit_exceeded" on upstreamMcpConnections.{index}.alias,
2694
+ the same response an explicit alias of 33 or more characters gets.
2682
2695
  required:
2683
2696
  - _connectionId
2684
2697
  properties:
@@ -2699,8 +2712,10 @@ components:
2699
2712
  Short handle that namespaces the upstream's capabilities on this
2700
2713
  server. Lowercased on save and unique per server (case-insensitive) —
2701
2714
  a duplicate is rejected with 422 `mcp_upstream_duplicate_alias`, an
2702
- invalid character with 422 `mcp_upstream_invalid_alias_charset`.
2703
- Derived from the connection name when omitted on the first attach.
2715
+ invalid character with 422 `mcp_upstream_invalid_alias_charset`, and
2716
+ an over-long value with 422 `size_limit_exceeded`.
2717
+ Derived from the connection name when omitted on the first attach, so
2718
+ a name longer than the alias cap needs an explicit alias.
2704
2719
  examples:
2705
2720
  - deepwiki
2706
2721
  - crm_tools
@@ -6421,11 +6436,23 @@ components:
6421
6436
  description: |-
6422
6437
  HTTP connector (pre-built application template) this connection is linked to. Linking
6423
6438
  lets exports and imports on the connection pick endpoints from the connector's catalog and
6424
- drives the `assistant` form in the UI. An id that does not resolve to an accessible
6425
- connector is dropped from the saved document rather than rejected — read the response back
6426
- to confirm the link took.
6439
+ drives the `assistant` form in the UI. The link is resolved server-side on create and on
6440
+ any update that changes `assistant` or a connector id, and the result overwrites
6441
+ `_httpConnectorId`, `_httpConnectorApiId` and `_httpConnectorVersionId`: an id that does
6442
+ not resolve to an accessible connector is dropped rather than rejected, and when the
6443
+ top-level `assistant` names an application with a legacy adaptor (the connector's
6444
+ `legacyId`, e.g. `shopify`) the connector resolved from that slug replaces the id you sent
6445
+ and a sent `_httpConnectorVersionId` is dropped. Read the response back to confirm the
6446
+ link took.
6427
6447
  examples:
6428
6448
  - 5d8f6a2b9c1e4f00112a3b4c
6449
+ x-celigo-ai-guidance:
6450
+ - |-
6451
+ To link an Azure Data Lake Storage Gen2 connection to its connector, send
6452
+ `_httpConnectorId` and `_httpConnectorVersionId` and omit the top-level `assistant`:
6453
+ with `assistant` set (`azuredatalakestoragegen2` or any other slug) the save answers
6454
+ 201/200 and stores neither id. Dropping `assistant` and re-sending both ids on a PUT
6455
+ restores the link.
6429
6456
  _httpConnectorApiId:
6430
6457
  type: string
6431
6458
  format: objectId
@@ -285,7 +285,21 @@ paths:
285
285
  connections:
286
286
  - _id: 62ac9ab6cd606e428737008e
287
287
  name: HubSpot (Production)
288
+ - type: http
289
+ _httpConnectorId: 6425e536bd748551c63024bc
290
+ connections:
291
+ - _id: 68ae48d6b5f755d2dd38c294
292
+ name: OpenAI
293
+ - type: ftp
294
+ hostURI: sftp.example.com
295
+ port: 22
296
+ connections:
297
+ - _id: 62ac8142839f01546de4db2a
298
+ name: Warehouse SFTP
288
299
  - type: rdbms
300
+ rdbms:
301
+ type: snowflake
302
+ host: celigo_partner
289
303
  connections:
290
304
  - _id: 69d096cd4e0c505cda036a3a
291
305
  name: Snowflake DW
@@ -1235,14 +1249,20 @@ components:
1235
1249
  type: string
1236
1250
  description: Integration name.
1237
1251
  example: POC – HubSpot → Snowflake
1252
+ isDeleted:
1253
+ type: boolean
1254
+ description: When true, the parent integration has been soft-deleted and sits in the recycle bin. Absent while the integration is live.
1255
+ example: true
1238
1256
  EndpointUsage:
1239
1257
  type: object
1240
1258
  description: |-
1241
1259
  Endpoint entitlement usage for the requesting environment. An endpoint is a connected
1242
1260
  application, not a connection record: connections that share a Celigo-managed application
1243
- profile (`assistant`) are one endpoint, generic HTTP connections without one are grouped by
1244
- `baseURI`, databases by `rdbms` engine and host, and other adaptor types by their own connection
1245
- identity (for example host and port). Each `endpoints[]` entry carries the fields it was grouped by.
1261
+ profile (`assistant`) are one endpoint, HTTP connections linked to an HTTP connector but without
1262
+ an `assistant` are grouped by `_httpConnectorId`, generic HTTP connections by `baseURI`,
1263
+ databases by `rdbms` engine and host, FTP servers by `hostURI` and `port`, and other adaptor
1264
+ types by their own connection identity. Each `endpoints[]` entry carries the fields it was
1265
+ grouped by.
1246
1266
  properties:
1247
1267
  numConsumed:
1248
1268
  type: integer
@@ -1271,10 +1291,29 @@ components:
1271
1291
  type: string
1272
1292
  description: Application assistant identifier, if the connection uses a Celigo-managed application profile (e.g., `hubspot`, `netsuite`). Connections sharing an assistant are one endpoint.
1273
1293
  example: hubspot
1294
+ _httpConnectorId:
1295
+ type: string
1296
+ format: objectId
1297
+ x-celigo-refModel: httpconnectors
1298
+ description: |-
1299
+ HTTP connector the endpoint's connections are linked to. Present when `type` is `http`
1300
+ and the connections carry `http._httpConnectorId` without an `assistant`; connections
1301
+ sharing the connector are one endpoint.
1302
+ example: 6425e536bd748551c63024bc
1274
1303
  baseURI:
1275
1304
  type: string
1276
- description: Base URI that identifies this endpoint for generic HTTP connections (those without an `assistant`); connections whose base URIs differ are separate endpoints.
1305
+ description: Base URI that identifies this endpoint for generic HTTP connections (those without an `assistant` or an HTTP connector); connections whose base URIs differ are separate endpoints.
1277
1306
  example: https://api.hubspot.com
1307
+ hostURI:
1308
+ type: string
1309
+ description: |-
1310
+ Server host the endpoint's connections point at. Present when `type` is `ftp`; with
1311
+ `port` it is the identity FTP endpoints are grouped by.
1312
+ example: sftp.example.com
1313
+ port:
1314
+ type: integer
1315
+ description: Server port the endpoint's connections use. Present when `type` is `ftp` and the connections set one.
1316
+ example: 22
1278
1317
  rdbms:
1279
1318
  type: object
1280
1319
  description: Database connection details. Present when `type` is `rdbms`.
package/dist/sync.yml CHANGED
@@ -238,7 +238,8 @@ paths:
238
238
  '422':
239
239
  description: |-
240
240
  Validation failed. `source._connectionId` is missing
241
- (`missing_source_connection`), the destination duplicates another sync
241
+ (`missing_source_connection`), the integration was not created with
242
+ `syncs: true` (`integration_not_for_sync`), the destination duplicates another sync
242
243
  (`duplicate_destination_host`), the destination connector rejected the
243
244
  sync configuration (`invalid_destination_sync_config`), two enabled
244
245
  datasets resolve to the same destination table
@@ -256,6 +257,13 @@ paths:
256
257
  errors:
257
258
  - code: missing_source_connection
258
259
  message: Source connection is missing in the request
260
+ integration_not_for_sync:
261
+ summary: Integration was not created for syncs
262
+ value:
263
+ errors:
264
+ - field: _integrationId
265
+ code: integration_not_for_sync
266
+ message: An integration is suppose to have either flows or syncs but not both.
259
267
  /v1/syncs/{_id}:
260
268
  get:
261
269
  x-internal: false
@@ -892,7 +900,12 @@ paths:
892
900
  is always accepted; on a normal run it is rejected unless the account has partial
893
901
  normal sync enabled.
894
902
 
895
- Preconditions enforced by the platform:
903
+ Preconditions enforced by the platform, in order:
904
+ - The body must be valid (`400 invalid_parameter`).
905
+ - The sync must have a backing replication flow. A draft whose destination has never been
906
+ saved has none and answers `404 sync_flow_not_present` — before the disabled check and
907
+ before any `datasetIds` membership or entitlement check, so a draft never reaches
908
+ `422 invalid_sync`.
896
909
  - The sync must not be disabled (`422 invalid_sync`).
897
910
  - There must not be a job already queued or running for this sync (`409 sync_job_already_queued`).
898
911
 
@@ -944,15 +957,22 @@ paths:
944
957
  flowExecutionGroupId: 6821c01c39db7c2b9cdc0e29
945
958
  '400':
946
959
  description: |-
947
- Bad request. Invalid `runType`, invalid `datasetIds` shape, subset selection on a
960
+ Bad request. A malformed `_syncId`, an invalid `runType`, an invalid `datasetIds`
961
+ shape (empty array, non-array, or non-ObjectId entries), subset selection on a
948
962
  normal run when that is not enabled for the account, or datasets that do not
949
963
  belong to this sync / are disabled.
950
- Error codes: `invalid_parameter`, `invalid_dataset_selection`.
964
+ Error codes: `invalid_ref`, `invalid_parameter`, `invalid_dataset_selection`.
951
965
  content:
952
966
  application/json:
953
967
  schema:
954
968
  $ref: '#/components/schemas/Error'
955
969
  examples:
970
+ malformed_sync_id:
971
+ summary: _syncId is not a valid ObjectId
972
+ value:
973
+ errors:
974
+ - code: invalid_ref
975
+ message: Please provide a valid _syncId.
956
976
  invalid_run_type:
957
977
  summary: Invalid runType parameter
958
978
  value:
@@ -965,8 +985,14 @@ paths:
965
985
  errors:
966
986
  - code: invalid_parameter
967
987
  message: datasetIds is not supported for normal sync runs
988
+ empty_dataset_ids:
989
+ summary: datasetIds is an empty array
990
+ value:
991
+ errors:
992
+ - code: invalid_parameter
993
+ message: datasetIds must contain at least one dataset ID
968
994
  invalid_dataset_ids_shape:
969
- summary: datasetIds is not a non-empty array of ObjectIds
995
+ summary: datasetIds is not an array of ObjectIds
970
996
  value:
971
997
  errors:
972
998
  - code: invalid_parameter
@@ -981,8 +1007,11 @@ paths:
981
1007
  $ref: '#/components/responses/401-unauthorized'
982
1008
  '404':
983
1009
  description: |-
984
- Sync not found.
985
- Error code: `invalid_ref`.
1010
+ Sync not found (`invalid_ref`), or the sync has no backing replication flow because
1011
+ its destination has never been saved (`sync_flow_not_present`). The second check runs
1012
+ before the disabled, membership, and entitlement checks, so a draft sync answers this
1013
+ way whatever the body.
1014
+ Error codes: `invalid_ref`, `sync_flow_not_present`.
986
1015
  content:
987
1016
  application/json:
988
1017
  schema:
@@ -993,7 +1022,13 @@ paths:
993
1022
  value:
994
1023
  errors:
995
1024
  - code: invalid_ref
996
- message: Sync not found.
1025
+ message: 'Sync not found: 6ac4949901f0467e95366000'
1026
+ sync_flow_not_present:
1027
+ summary: Draft sync with no saved destination
1028
+ value:
1029
+ errors:
1030
+ - code: sync_flow_not_present
1031
+ message: The flow is not present in the sync.
997
1032
  '409':
998
1033
  description: |-
999
1034
  A sync job is already queued or running for this sync.
@@ -3952,14 +3987,24 @@ components:
3952
3987
  - |-
3953
3988
  When scaffolding a draft sync before the destination is known, send only
3954
3989
  _integrationId and source._connectionId; the sync is created disabled and the
3955
- destination can be filled in with a later PUT.
3990
+ destination can be filled in with a later PUT. A draft with no saved destination
3991
+ has no backing flow, so POST /v1/syncs/{_syncId}/run answers 404 sync_flow_not_present
3992
+ (ahead of the disabled check) rather than 422 invalid_sync.
3993
+ - |-
3994
+ Create the parent integration with syncs: true in the POST /v1/integrations body. An
3995
+ integration created without it fails the sync create with 422 integration_not_for_sync
3996
+ ("An integration is suppose to have either flows or syncs but not both"), and PUT
3997
+ /v1/integrations/{_id} ignores the syncs field, so the only fix is a new integration.
3956
3998
  properties:
3957
3999
  _integrationId:
3958
4000
  type: string
3959
4001
  format: objectId
3960
4002
  x-celigo-refModel: integrations
3961
4003
  description: |-
3962
- Integration to create the sync in. Required on create; forbidden on update —
4004
+ Integration to create the sync in. It must have been created with `syncs: true`
4005
+ (`POST /v1/integrations`) — an integration without that flag fails the create with
4006
+ `422 integration_not_for_sync`, and the flag cannot be added afterwards because
4007
+ `PUT /v1/integrations/{_id}` ignores it. Required on create; forbidden on update —
3963
4008
  the integration cannot be changed once assigned (`400 sync_integration_id_update`).
3964
4009
  examples:
3965
4010
  - 69f4ffd395ec28be9cb8c12e
package/dist/tool.yml CHANGED
@@ -9570,11 +9570,23 @@ components:
9570
9570
  description: |-
9571
9571
  HTTP connector (pre-built application template) this connection is linked to. Linking
9572
9572
  lets exports and imports on the connection pick endpoints from the connector's catalog and
9573
- drives the `assistant` form in the UI. An id that does not resolve to an accessible
9574
- connector is dropped from the saved document rather than rejected — read the response back
9575
- to confirm the link took.
9573
+ drives the `assistant` form in the UI. The link is resolved server-side on create and on
9574
+ any update that changes `assistant` or a connector id, and the result overwrites
9575
+ `_httpConnectorId`, `_httpConnectorApiId` and `_httpConnectorVersionId`: an id that does
9576
+ not resolve to an accessible connector is dropped rather than rejected, and when the
9577
+ top-level `assistant` names an application with a legacy adaptor (the connector's
9578
+ `legacyId`, e.g. `shopify`) the connector resolved from that slug replaces the id you sent
9579
+ and a sent `_httpConnectorVersionId` is dropped. Read the response back to confirm the
9580
+ link took.
9576
9581
  examples:
9577
9582
  - 5d8f6a2b9c1e4f00112a3b4c
9583
+ x-celigo-ai-guidance:
9584
+ - |-
9585
+ To link an Azure Data Lake Storage Gen2 connection to its connector, send
9586
+ `_httpConnectorId` and `_httpConnectorVersionId` and omit the top-level `assistant`:
9587
+ with `assistant` set (`azuredatalakestoragegen2` or any other slug) the save answers
9588
+ 201/200 and stores neither id. Dropping `assistant` and re-sending both ids on a PUT
9589
+ restores the link.
9578
9590
  _httpConnectorApiId:
9579
9591
  type: string
9580
9592
  format: objectId
package/dist/topic.yml CHANGED
@@ -1286,17 +1286,19 @@ components:
1286
1286
  - 6aab2870265e1cf39fcbee4d
1287
1287
  draft:
1288
1288
  type: boolean
1289
- readOnly: true
1290
1289
  description: |-
1291
- When true, the topic was created as a draft by the AI-assisted builder and has not been
1292
- confirmed yet. Absent on ordinary topics.
1290
+ When true, the topic is an unconfirmed draft (created with `draft: true`, typically by
1291
+ the AI-assisted builder) that auto-deletes at `draftExpiresAt`. Absent on ordinary
1292
+ topics and once a `PUT` with `draft: false` promotes the draft.
1293
1293
  examples:
1294
1294
  - true
1295
1295
  draftExpiresAt:
1296
1296
  type: string
1297
1297
  format: date-time
1298
1298
  readOnly: true
1299
- description: Timestamp when an unconfirmed draft is deleted automatically. Present only when `draft` is true.
1299
+ description: |-
1300
+ Timestamp when an unconfirmed draft is deleted automatically — 48 hours after
1301
+ creation. Present only while `draft` is true; cleared together with it.
1300
1302
  examples:
1301
1303
  - '2026-09-24T03:30:27.432Z'
1302
1304
  createdAt:
@@ -1422,6 +1424,21 @@ components:
1422
1424
  `GET /v1/topics?externalId=…`. Integration Apps use it to locate a topic across installs.
1423
1425
  examples:
1424
1426
  - erp-orders-created
1427
+ draft:
1428
+ type: boolean
1429
+ description: |-
1430
+ When true, the topic is a draft that auto-deletes 48 hours after creation
1431
+ (`draftExpiresAt` in the response). Set at creation; an update can clear the
1432
+ flag but never set it, and a PUT that omits it leaves an existing draft as is —
1433
+ the one field the whole-document PUT does not clear.
1434
+ x-celigo-ai-guidance:
1435
+ - |-
1436
+ POST with `draft: true` arms the 48-hour TTL (the server computes `draftExpiresAt`).
1437
+ PUT with `draft: false` clears the flag and the expiry, promoting the draft to a
1438
+ permanent topic. PUT with `draft: true` on a non-draft topic is silently ignored,
1439
+ and a PUT that omits the field leaves an existing draft flag unchanged.
1440
+ examples:
1441
+ - true
1425
1442
  __integrationIds:
1426
1443
  type: array
1427
1444
  maxItems: 100
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.93",
3
+ "version": "0.2.95",
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": "fcb2d9c1",
4
+ "iasCommit": "cb3fa5ae",
5
5
  "generatedAt": "2026-10-12"
6
6
  },
7
7
  "roots": {