@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.
- package/dist/account.yml +255 -52
- package/dist/api.yml +15 -3
- package/dist/connection.yml +31 -4
- package/dist/enduser.yml +15 -3
- package/dist/filestorage.yml +259 -174
- package/dist/integration.yml +25 -7
- package/dist/mcp-server.yml +32 -5
- package/dist/subscription.yml +43 -4
- package/dist/sync.yml +55 -10
- package/dist/tool.yml +15 -3
- package/dist/topic.yml +21 -4
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/integration.yml
CHANGED
|
@@ -4213,9 +4213,10 @@ components:
|
|
|
4213
4213
|
syncs:
|
|
4214
4214
|
type: boolean
|
|
4215
4215
|
description: |-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
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
|
|
5121
|
-
|
|
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:
|
|
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
|
package/dist/mcp-server.yml
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
6425
|
-
|
|
6426
|
-
|
|
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
|
package/dist/subscription.yml
CHANGED
|
@@ -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,
|
|
1244
|
-
|
|
1245
|
-
|
|
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
|
|
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.
|
|
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
|
|
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
|
-
|
|
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.
|
|
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.
|
|
9574
|
-
|
|
9575
|
-
|
|
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
|
|
1292
|
-
|
|
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:
|
|
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