@celigo/api-specs 0.2.201 → 0.2.202
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/alert.yml +36 -7
- package/dist/audit.yml +26 -25
- package/dist/filedefinition.yml +26 -17
- package/dist/filestorage.yml +73 -19
- package/dist/integration.yml +50 -18
- package/dist/mcp-server.yml +442 -0
- package/dist/template.yml +122 -11
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/alert.yml
CHANGED
|
@@ -513,6 +513,10 @@ paths:
|
|
|
513
513
|
|
|
514
514
|
Requires permission to read the alert (`get:alert:model`). Returns `403`
|
|
515
515
|
when `ENABLE_PROACTIVE_ALERTS` is off or the caller lacks access.
|
|
516
|
+
|
|
517
|
+
The history stays readable after the alert is deleted, even though the alert
|
|
518
|
+
itself then reads 404. The same entries also appear in the integration's audit
|
|
519
|
+
log (`GET /v1/integrations/{_id}/audit`).
|
|
516
520
|
parameters:
|
|
517
521
|
- name: _id
|
|
518
522
|
in: path
|
|
@@ -604,6 +608,14 @@ paths:
|
|
|
604
608
|
description: Alert id.
|
|
605
609
|
examples:
|
|
606
610
|
- 674a1b2c3d4e5f6789012345
|
|
611
|
+
resourceName:
|
|
612
|
+
type: string
|
|
613
|
+
description: |-
|
|
614
|
+
Display name of the alert: `<type label> - <flow name>` for a flow-level
|
|
615
|
+
alert, `<type label> - All flows (<integration name>)` for an
|
|
616
|
+
integration-level alert.
|
|
617
|
+
examples:
|
|
618
|
+
- Long runtime - All flows (Shopify to NetSuite)
|
|
607
619
|
event:
|
|
608
620
|
type: string
|
|
609
621
|
description: Mutation event type.
|
|
@@ -664,26 +676,41 @@ paths:
|
|
|
664
676
|
properties:
|
|
665
677
|
fieldPath:
|
|
666
678
|
type: string
|
|
667
|
-
description:
|
|
679
|
+
description: |-
|
|
680
|
+
Dot-notation path of the changed field. A recipient change is reported
|
|
681
|
+
as `recipients`, listing the recipients' email addresses instead of user
|
|
682
|
+
ids.
|
|
668
683
|
examples:
|
|
669
|
-
- longRuntime
|
|
684
|
+
- longRuntime
|
|
670
685
|
oldValue:
|
|
671
686
|
description: Previous value (absent on create).
|
|
672
687
|
newValue:
|
|
673
688
|
description: New value (absent on delete).
|
|
674
689
|
deletedInfo:
|
|
675
690
|
type: object
|
|
676
|
-
description:
|
|
691
|
+
description: |-
|
|
692
|
+
Metadata about the deleted alert. Once the alert is deleted, every entry in its
|
|
693
|
+
history carries it, not only the `delete` entry.
|
|
677
694
|
properties:
|
|
678
695
|
name:
|
|
679
696
|
type: string
|
|
680
|
-
description:
|
|
697
|
+
description: Display name of the alert at the time of deletion.
|
|
698
|
+
examples:
|
|
699
|
+
- Long runtime - All flows (Shopify to NetSuite)
|
|
700
|
+
_integrationId:
|
|
701
|
+
type: string
|
|
702
|
+
format: objectId
|
|
703
|
+
x-celigo-refModel: integrations
|
|
704
|
+
description: Integration the alert belonged to.
|
|
705
|
+
examples:
|
|
706
|
+
- 5e5eb06fdd83ed4f8206a4ea
|
|
681
707
|
examples:
|
|
682
708
|
default:
|
|
683
709
|
value:
|
|
684
710
|
- _id: 69e38cb1a749d34a9732a270
|
|
685
711
|
resourceType: alert
|
|
686
712
|
_resourceId: 674a1b2c3d4e5f6789012345
|
|
713
|
+
resourceName: Long runtime - All flows (Shopify to NetSuite)
|
|
687
714
|
source: api
|
|
688
715
|
event: update
|
|
689
716
|
time: '2026-04-18T13:52:49.729Z'
|
|
@@ -692,9 +719,11 @@ paths:
|
|
|
692
719
|
email: user@example.com
|
|
693
720
|
name: Jane Doe
|
|
694
721
|
fieldChanges:
|
|
695
|
-
- fieldPath: longRuntime
|
|
696
|
-
oldValue:
|
|
697
|
-
|
|
722
|
+
- fieldPath: longRuntime
|
|
723
|
+
oldValue:
|
|
724
|
+
thresholdMinutes: 30
|
|
725
|
+
newValue:
|
|
726
|
+
thresholdMinutes: 45
|
|
698
727
|
'204':
|
|
699
728
|
description: No audit entries exist for this alert.
|
|
700
729
|
'400':
|
package/dist/audit.yml
CHANGED
|
@@ -104,7 +104,6 @@ paths:
|
|
|
104
104
|
- import
|
|
105
105
|
- integration
|
|
106
106
|
- lookupcache
|
|
107
|
-
- mcpoauthprovider
|
|
108
107
|
- mcpserver
|
|
109
108
|
- networkpolicy
|
|
110
109
|
- notification
|
|
@@ -142,10 +141,9 @@ paths:
|
|
|
142
141
|
import: Import resource for writing data to a destination system.
|
|
143
142
|
integration: Integration workspace resource.
|
|
144
143
|
lookupcache: Lookup cache resource for in-memory key-value stores.
|
|
145
|
-
mcpoauthprovider: MCP OAuth provider resource.
|
|
146
144
|
mcpserver: MCP server resource for AI agent tool hosting.
|
|
147
145
|
networkpolicy: Network policy resource (IP allow/deny lists).
|
|
148
|
-
notification: Notification subscription resource.
|
|
146
|
+
notification: Notification subscription resource. Filtering on `alert` also returns these entries.
|
|
149
147
|
revision: Revision snapshot resource for version control.
|
|
150
148
|
role: End-user role resource.
|
|
151
149
|
script: Script resource for custom JavaScript hooks.
|
|
@@ -547,7 +545,6 @@ paths:
|
|
|
547
545
|
- import
|
|
548
546
|
- integration
|
|
549
547
|
- lookupcache
|
|
550
|
-
- mcpoauthprovider
|
|
551
548
|
- mcpserver
|
|
552
549
|
- notification
|
|
553
550
|
- revision
|
|
@@ -582,9 +579,8 @@ paths:
|
|
|
582
579
|
import: Import resource for writing data to a destination system.
|
|
583
580
|
integration: Integration workspace resource.
|
|
584
581
|
lookupcache: Lookup cache resource for in-memory key-value stores.
|
|
585
|
-
mcpoauthprovider: MCP OAuth provider resource.
|
|
586
582
|
mcpserver: MCP server resource for AI agent tool hosting.
|
|
587
|
-
notification: Notification subscription resource.
|
|
583
|
+
notification: Notification subscription resource. Filtering on `alert` also returns these entries.
|
|
588
584
|
revision: Revision snapshot resource for version control.
|
|
589
585
|
role: End-user role resource.
|
|
590
586
|
script: Script resource for custom JavaScript hooks.
|
|
@@ -822,7 +818,6 @@ paths:
|
|
|
822
818
|
- imports
|
|
823
819
|
- integrations
|
|
824
820
|
- lookupcaches
|
|
825
|
-
- mcpoauthproviders
|
|
826
821
|
- mcpservers
|
|
827
822
|
- networkpolicies
|
|
828
823
|
- revisions
|
|
@@ -850,9 +845,8 @@ paths:
|
|
|
850
845
|
iclients: iClient shared credential resources.
|
|
851
846
|
idpconfigs: End-user identity provider configuration resources.
|
|
852
847
|
imports: Import resources.
|
|
853
|
-
integrations: Integration workspace resources.
|
|
848
|
+
integrations: Integration workspace resources. The history also includes the alerts set on the integration or its flows, deleted ones too.
|
|
854
849
|
lookupcaches: Lookup cache resources.
|
|
855
|
-
mcpoauthproviders: MCP OAuth provider resources.
|
|
856
850
|
mcpservers: MCP server resources.
|
|
857
851
|
networkpolicies: Network policy resources.
|
|
858
852
|
revisions: Revision snapshot resources.
|
|
@@ -1060,7 +1054,6 @@ paths:
|
|
|
1060
1054
|
- imports
|
|
1061
1055
|
- integrations
|
|
1062
1056
|
- lookupcaches
|
|
1063
|
-
- mcpoauthproviders
|
|
1064
1057
|
- mcpservers
|
|
1065
1058
|
- networkpolicies
|
|
1066
1059
|
- revisions
|
|
@@ -1088,9 +1081,8 @@ paths:
|
|
|
1088
1081
|
iclients: iClient shared credential resources.
|
|
1089
1082
|
idpconfigs: End-user identity provider configuration resources.
|
|
1090
1083
|
imports: Import resources.
|
|
1091
|
-
integrations: Integration workspace resources.
|
|
1084
|
+
integrations: Integration workspace resources. The history also includes the alerts set on the integration or its flows, deleted ones too.
|
|
1092
1085
|
lookupcaches: Lookup cache resources.
|
|
1093
|
-
mcpoauthproviders: MCP OAuth provider resources.
|
|
1094
1086
|
mcpservers: MCP server resources.
|
|
1095
1087
|
networkpolicies: Network policy resources.
|
|
1096
1088
|
revisions: Revision snapshot resources.
|
|
@@ -1286,7 +1278,6 @@ paths:
|
|
|
1286
1278
|
- imports
|
|
1287
1279
|
- integrations
|
|
1288
1280
|
- lookupcaches
|
|
1289
|
-
- mcpoauthproviders
|
|
1290
1281
|
- mcpservers
|
|
1291
1282
|
- networkpolicies
|
|
1292
1283
|
- revisions
|
|
@@ -1312,9 +1303,8 @@ paths:
|
|
|
1312
1303
|
iclients: iClient shared credential resources.
|
|
1313
1304
|
idpconfigs: End-user identity provider configuration resources.
|
|
1314
1305
|
imports: Import resources.
|
|
1315
|
-
integrations: Integration workspace resources.
|
|
1306
|
+
integrations: Integration workspace resources. The export also includes the alerts set on the integration or its flows, deleted ones too.
|
|
1316
1307
|
lookupcaches: Lookup cache resources.
|
|
1317
|
-
mcpoauthproviders: MCP OAuth provider resources.
|
|
1318
1308
|
mcpservers: MCP server resources.
|
|
1319
1309
|
networkpolicies: Network policy resources.
|
|
1320
1310
|
revisions: Revision snapshot resources.
|
|
@@ -1377,7 +1367,10 @@ components:
|
|
|
1377
1367
|
properties:
|
|
1378
1368
|
fieldPath:
|
|
1379
1369
|
type: string
|
|
1380
|
-
description:
|
|
1370
|
+
description: |-
|
|
1371
|
+
Dot-path to the changed field (e.g., `settings.foo.bar`). On `alert` entries a recipient
|
|
1372
|
+
change is reported as `recipients`, with `oldValue` and `newValue` listing the recipients'
|
|
1373
|
+
email addresses instead of user ids.
|
|
1381
1374
|
examples:
|
|
1382
1375
|
- http.auth.token.token
|
|
1383
1376
|
oldValue:
|
|
@@ -1397,7 +1390,7 @@ components:
|
|
|
1397
1390
|
type: string
|
|
1398
1391
|
format: objectId
|
|
1399
1392
|
x-celigo-refModel: integrations
|
|
1400
|
-
description: Integration id context (for flow/sync-related events).
|
|
1393
|
+
description: Integration id context (for flow/sync-related and alert events).
|
|
1401
1394
|
examples:
|
|
1402
1395
|
- 60a2c4e6f321d800129a1a3c
|
|
1403
1396
|
_abstractFlowId:
|
|
@@ -1459,8 +1452,11 @@ components:
|
|
|
1459
1452
|
type: string
|
|
1460
1453
|
readOnly: true
|
|
1461
1454
|
description: |-
|
|
1462
|
-
Resource type that the audit entry applies to. `fileserver`
|
|
1463
|
-
returned entries and cannot be used as a
|
|
1455
|
+
Resource type that the audit entry applies to. `fileserver` and
|
|
1456
|
+
`mcpoauthprovider` appear only in returned entries and cannot be used as a
|
|
1457
|
+
`resourceType` filter. MCP OAuth providers have no per-resource audit route
|
|
1458
|
+
either, so their entries are read from `GET /v1/audit` without a
|
|
1459
|
+
`resourceType` filter.
|
|
1464
1460
|
enum:
|
|
1465
1461
|
- accesstoken
|
|
1466
1462
|
- agent
|
|
@@ -1542,6 +1538,15 @@ components:
|
|
|
1542
1538
|
description: Resource id the audit entry applies to.
|
|
1543
1539
|
examples:
|
|
1544
1540
|
- 69497ca1b40d3e24522a7f3c
|
|
1541
|
+
resourceName:
|
|
1542
|
+
type: string
|
|
1543
|
+
readOnly: true
|
|
1544
|
+
description: |-
|
|
1545
|
+
Display name of the alert, present on `alert` entries only: `<type label> - <flow name>`
|
|
1546
|
+
for a flow-level alert, `<type label> - All flows (<integration name>)` for an
|
|
1547
|
+
integration-level alert.
|
|
1548
|
+
examples:
|
|
1549
|
+
- Long runtime - All flows (Shopify to NetSuite)
|
|
1545
1550
|
source:
|
|
1546
1551
|
type: string
|
|
1547
1552
|
readOnly: true
|
|
@@ -1692,7 +1697,6 @@ components:
|
|
|
1692
1697
|
- import
|
|
1693
1698
|
- integration
|
|
1694
1699
|
- lookupcache
|
|
1695
|
-
- mcpoauthprovider
|
|
1696
1700
|
- mcpserver
|
|
1697
1701
|
- networkpolicy
|
|
1698
1702
|
- notification
|
|
@@ -1728,10 +1732,9 @@ components:
|
|
|
1728
1732
|
import: Import resource for writing data to a destination system.
|
|
1729
1733
|
integration: Integration workspace resource.
|
|
1730
1734
|
lookupcache: Lookup cache resource for in-memory key-value stores.
|
|
1731
|
-
mcpoauthprovider: MCP OAuth provider resource.
|
|
1732
1735
|
mcpserver: MCP server resource for AI agent tool hosting.
|
|
1733
1736
|
networkpolicy: Network policy resource (IP allow/deny lists).
|
|
1734
|
-
notification: Notification subscription resource.
|
|
1737
|
+
notification: Notification subscription resource. Filtering on `alert` also returns these entries.
|
|
1735
1738
|
revision: Revision snapshot resource for version control.
|
|
1736
1739
|
role: End-user role resource.
|
|
1737
1740
|
script: Script resource for custom JavaScript hooks.
|
|
@@ -1915,7 +1918,6 @@ components:
|
|
|
1915
1918
|
- import
|
|
1916
1919
|
- integration
|
|
1917
1920
|
- lookupcache
|
|
1918
|
-
- mcpoauthprovider
|
|
1919
1921
|
- mcpserver
|
|
1920
1922
|
- networkpolicy
|
|
1921
1923
|
- notification
|
|
@@ -1951,10 +1953,9 @@ components:
|
|
|
1951
1953
|
import: Import resource for writing data to a destination system.
|
|
1952
1954
|
integration: Integration workspace resource.
|
|
1953
1955
|
lookupcache: Lookup cache resource for in-memory key-value stores.
|
|
1954
|
-
mcpoauthprovider: MCP OAuth provider resource.
|
|
1955
1956
|
mcpserver: MCP server resource for AI agent tool hosting.
|
|
1956
1957
|
networkpolicy: Network policy resource (IP allow/deny lists).
|
|
1957
|
-
notification: Notification subscription resource.
|
|
1958
|
+
notification: Notification subscription resource. Filtering on `alert` also returns these entries.
|
|
1958
1959
|
revision: Revision snapshot resource for version control.
|
|
1959
1960
|
role: End-user role resource.
|
|
1960
1961
|
script: Script resource for custom JavaScript hooks.
|
package/dist/filedefinition.yml
CHANGED
|
@@ -13,8 +13,9 @@ info:
|
|
|
13
13
|
They define how rows, columns, segments, and elements are parsed or generated,
|
|
14
14
|
including delimiters, padding, and hierarchical rule structures.
|
|
15
15
|
|
|
16
|
-
EDI file definitions (X12 and EDIFACT formats)
|
|
17
|
-
|
|
16
|
+
EDI file definitions (X12 and EDIFACT formats) carry a `globalId` that maps to a
|
|
17
|
+
known standard document definition; on an EDI-licensed account the server assigns
|
|
18
|
+
one when a create omits it.
|
|
18
19
|
servers:
|
|
19
20
|
- url: https://api.integrator.io
|
|
20
21
|
description: Production (US / default region)
|
|
@@ -36,7 +37,7 @@ tags:
|
|
|
36
37
|
|
|
37
38
|
Four formats are supported: `delimited` (CSV/TSV), `delimited/x12` (EDI X12),
|
|
38
39
|
`delimited/edifact` (EDI EDIFACT), and `fixed` (fixed-width). EDI formats
|
|
39
|
-
|
|
40
|
+
carry a `globalId` linking to a standard document definition.
|
|
40
41
|
|
|
41
42
|
## File definition schema
|
|
42
43
|
|
|
@@ -204,9 +205,10 @@ paths:
|
|
|
204
205
|
$ref: '#/components/responses/422-unprocessable-entity'
|
|
205
206
|
x-celigo-ai-guidance:
|
|
206
207
|
- |-
|
|
207
|
-
For EDI formats (`delimited/x12` or `delimited/edifact`)
|
|
208
|
-
|
|
209
|
-
reference a known standard document definition
|
|
208
|
+
For EDI formats (`delimited/x12` or `delimited/edifact`) on an EDI-licensed
|
|
209
|
+
account, the server assigns a `globalId` when the body omits one; a supplied
|
|
210
|
+
`globalId` must reference a known standard document definition, or the create
|
|
211
|
+
fails with 422 `invalid_global_id`.
|
|
210
212
|
- |-
|
|
211
213
|
For `format: fixed`, send `version`, `fixed.rowDelimiter` and `fixed.paddingChar`;
|
|
212
214
|
without them the create fails with 422 and nothing is saved. Columns are read in
|
|
@@ -274,7 +276,8 @@ paths:
|
|
|
274
276
|
Replaces the file definition with the provided configuration. This
|
|
275
277
|
is a full replace -- include all fields you want to keep. `format`
|
|
276
278
|
cannot be changed between `fixed` and `delimited` families after
|
|
277
|
-
creation, and `globalId` is immutable for EDI formats
|
|
279
|
+
creation, and `globalId` is immutable for EDI formats: a PUT that sends a
|
|
280
|
+
different value, or omits it, keeps the stored id.
|
|
278
281
|
operationId: updateFileDefinition
|
|
279
282
|
tags:
|
|
280
283
|
- File Definitions
|
|
@@ -1025,8 +1028,8 @@ components:
|
|
|
1025
1028
|
- fixed
|
|
1026
1029
|
x-enumDescriptions:
|
|
1027
1030
|
delimited: Standard delimited files (CSV, TSV, etc.).
|
|
1028
|
-
delimited/x12: EDI X12 format.
|
|
1029
|
-
delimited/edifact: EDI EDIFACT format.
|
|
1031
|
+
delimited/x12: EDI X12 format. Carries a `globalId`, assigned by the server when a create on an EDI-licensed account omits it.
|
|
1032
|
+
delimited/edifact: EDI EDIFACT format. Carries a `globalId`, assigned by the server when a create on an EDI-licensed account omits it.
|
|
1030
1033
|
fixed: Fixed-width positional format.
|
|
1031
1034
|
documentType:
|
|
1032
1035
|
type: string
|
|
@@ -1039,15 +1042,21 @@ components:
|
|
|
1039
1042
|
description: EDI document type for acknowledgement documents.
|
|
1040
1043
|
globalId:
|
|
1041
1044
|
type: string
|
|
1042
|
-
description:
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
creation
|
|
1045
|
+
description: |
|
|
1046
|
+
Global identifier mapping to a known EDI standard document definition.
|
|
1047
|
+
|
|
1048
|
+
For EDI formats (`delimited/x12` or `delimited/edifact`) on an account
|
|
1049
|
+
with an EDI license, a create that omits it gets one assigned from the
|
|
1050
|
+
EDI catalog, and a supplied value must be a catalog entry (an unknown one
|
|
1051
|
+
fails the create with 422 `invalid_global_id`). Immutable after creation:
|
|
1052
|
+
a PUT that sends a different value, or none, keeps the stored id.
|
|
1049
1053
|
examples:
|
|
1050
|
-
-
|
|
1054
|
+
- 3c7a8f2e-1234-5678-9abc-def012345678
|
|
1055
|
+
x-celigo-ai-guidance:
|
|
1056
|
+
- |-
|
|
1057
|
+
Send the catalog globalId of the document when you know it. When it is omitted the
|
|
1058
|
+
server picks the id, and a description naming another document type did not change
|
|
1059
|
+
the pick — an X12 create described as an 856 got the same id as a bare X12 create.
|
|
1051
1060
|
rules:
|
|
1052
1061
|
type: array
|
|
1053
1062
|
x-celigo-agent:
|
package/dist/filestorage.yml
CHANGED
|
@@ -34,7 +34,9 @@ paths:
|
|
|
34
34
|
`partUrls`, and `completeUrl` for larger files. Upload the bytes directly
|
|
35
35
|
to those URLs — a single PUT must carry the
|
|
36
36
|
`x-amz-server-side-encryption: AES256` header — then the item flips to
|
|
37
|
-
active once S3 confirms it; no further API call is needed.
|
|
37
|
+
active once S3 confirms it; no further API call is needed. If the
|
|
38
|
+
uploaded object is empty (0 bytes), the file is not activated: it is
|
|
39
|
+
deleted permanently, without passing through the recycle bin. Each URL's
|
|
38
40
|
lifetime is in its `X-Amz-Expires` parameter; once every part already
|
|
39
41
|
issued has been uploaded, a multipart upload fetches further part URLs by
|
|
40
42
|
posting again with the item's `_id`, `uploadId`, and `issuedPartsCount`,
|
|
@@ -222,7 +224,12 @@ paths:
|
|
|
222
224
|
downloadUrl:
|
|
223
225
|
type: string
|
|
224
226
|
format: uri
|
|
225
|
-
description:
|
|
227
|
+
description: |-
|
|
228
|
+
Presigned S3 URL to GET the file's bytes from. The bytes are
|
|
229
|
+
served as an attachment named after the item: the
|
|
230
|
+
`Content-Disposition` header carries an ASCII `filename` in
|
|
231
|
+
which non-ASCII characters are replaced with `_`, plus
|
|
232
|
+
`filename*=UTF-8''` with the full name percent-encoded.
|
|
226
233
|
examples:
|
|
227
234
|
- https://integrator-file-storage.s3.us-west-2.amazonaws.com/file-storage/...
|
|
228
235
|
expiresIn:
|
|
@@ -611,6 +618,17 @@ paths:
|
|
|
611
618
|
description: Folder name.
|
|
612
619
|
examples:
|
|
613
620
|
- My Files
|
|
621
|
+
_integrationId:
|
|
622
|
+
type: string
|
|
623
|
+
format: objectId
|
|
624
|
+
x-celigo-refModel: integrations
|
|
625
|
+
description: |-
|
|
626
|
+
Integration whose system folder tree contains the listed
|
|
627
|
+
folder. Present only on the last entry (the listed folder
|
|
628
|
+
itself), and only when that folder is the integration's
|
|
629
|
+
root folder or inside it.
|
|
630
|
+
examples:
|
|
631
|
+
- 6ab1e7ab38d7733b4594d0d2
|
|
614
632
|
examples:
|
|
615
633
|
listMode:
|
|
616
634
|
summary: List a folder's children
|
|
@@ -839,7 +857,10 @@ paths:
|
|
|
839
857
|
|
|
840
858
|
Only files are looked up: a folder's id is treated as unknown, so it
|
|
841
859
|
fails the request or comes back as a `notFound` entry. Read folder
|
|
842
|
-
metadata from `GET /v1/storage/items`.
|
|
860
|
+
metadata from `GET /v1/storage/items`. A pending file is returned, as
|
|
861
|
+
active, once its bytes have landed in storage, even if the upload has not
|
|
862
|
+
finalized yet; a pending file whose bytes have not been uploaded is
|
|
863
|
+
treated as unknown.
|
|
843
864
|
operationId: batchGetStorageItems
|
|
844
865
|
tags:
|
|
845
866
|
- File Storage
|
|
@@ -1293,9 +1314,12 @@ paths:
|
|
|
1293
1314
|
Updates an item's `name` and/or `description`. Renaming keeps the item's
|
|
1294
1315
|
`_id` stable, so references from flows, exports, imports, and tokens
|
|
1295
1316
|
survive; a name already held by another live item in the same folder is
|
|
1296
|
-
rejected with 409 `STORAGE_ITEM_ALREADY_EXISTS`.
|
|
1297
|
-
|
|
1298
|
-
|
|
1317
|
+
rejected with 409 `STORAGE_ITEM_ALREADY_EXISTS`. An integration's root
|
|
1318
|
+
folder (`isSystem`) can be renamed and described too; renaming the
|
|
1319
|
+
integration updates only the folder's `integrationName`, never its
|
|
1320
|
+
`name`. To move an item to a different folder, use
|
|
1321
|
+
`PATCH /v1/storage/items/{_id}/move`; to replace a file's content, use
|
|
1322
|
+
`PATCH /v1/storage/items/{_id}/replace`.
|
|
1299
1323
|
operationId: updateStorageItem
|
|
1300
1324
|
tags:
|
|
1301
1325
|
- File Storage
|
|
@@ -1450,7 +1474,9 @@ paths:
|
|
|
1450
1474
|
placement are preserved, so every reference to the file stays intact — use
|
|
1451
1475
|
this instead of delete-and-recreate when a file is referenced by flows or
|
|
1452
1476
|
exports. The previous content remains downloadable until the replacement
|
|
1453
|
-
finalizes.
|
|
1477
|
+
finalizes. Uploading empty (0-byte) content does not replace it: the file
|
|
1478
|
+
itself is deleted permanently, without passing through the recycle bin.
|
|
1479
|
+
Rename with `PUT /v1/storage/items/{_id}` instead; this
|
|
1454
1480
|
endpoint does not accept a name.
|
|
1455
1481
|
operationId: replaceStorageFileContent
|
|
1456
1482
|
tags:
|
|
@@ -1565,7 +1591,13 @@ paths:
|
|
|
1565
1591
|
file: the destination file keeps its `_id` and takes the source file's
|
|
1566
1592
|
content, its previous content is discarded, and the source file's `_id`
|
|
1567
1593
|
is removed — neither goes to the recycle bin, so references to the
|
|
1568
|
-
source file break. A
|
|
1594
|
+
source file break. A sub-folder whose name the destination also holds as
|
|
1595
|
+
a folder is merged into it the same way. When the names match but the
|
|
1596
|
+
types differ (a file against a folder), both are kept: the destination
|
|
1597
|
+
item is unchanged, and the source item moves in with its `_id` under the
|
|
1598
|
+
first free `<name> (k)` — the suffix follows the full name, so
|
|
1599
|
+
`report.pdf` lands as `report.pdf (1)`, or `report.pdf (2)` when
|
|
1600
|
+
`report.pdf (1)` is taken. A soft-deleted source folder may be
|
|
1569
1601
|
merged, which restores its contents into the destination. Folders only —
|
|
1570
1602
|
move individual files with the move endpoint. Requires delete access on
|
|
1571
1603
|
the source folder and write access on the destination.
|
|
@@ -2425,7 +2457,7 @@ components:
|
|
|
2425
2457
|
size:
|
|
2426
2458
|
type: integer
|
|
2427
2459
|
format: int64
|
|
2428
|
-
minimum:
|
|
2460
|
+
minimum: 1
|
|
2429
2461
|
description: |-
|
|
2430
2462
|
Declared size in bytes. Used to reserve quota up front. When omitted,
|
|
2431
2463
|
the backend reserves a worst-case estimate (1 GB for single,
|
|
@@ -2765,6 +2797,18 @@ components:
|
|
|
2765
2797
|
integration purges them.
|
|
2766
2798
|
examples:
|
|
2767
2799
|
- 6ab1e7ab38d7733b4594d0d2
|
|
2800
|
+
_fileServerAccountId:
|
|
2801
|
+
type: string
|
|
2802
|
+
format: objectId
|
|
2803
|
+
readOnly: true
|
|
2804
|
+
x-celigo-refModel: fileserveraccounts
|
|
2805
|
+
description: |-
|
|
2806
|
+
File Server account that uploaded the file over SFTP, or that most
|
|
2807
|
+
recently replaced its content over SFTP. Absent for folders and for
|
|
2808
|
+
files uploaded through this API; replacing the content through this
|
|
2809
|
+
API keeps the current value.
|
|
2810
|
+
examples:
|
|
2811
|
+
- 6ac0f3e1b2d4a5001c7e9f10
|
|
2768
2812
|
integrationName:
|
|
2769
2813
|
type: string
|
|
2770
2814
|
readOnly: true
|
|
@@ -2772,6 +2816,9 @@ components:
|
|
|
2772
2816
|
Name of the integration an integration root folder belongs to. Present
|
|
2773
2817
|
only on that root folder (the `isSystem` folder at the account root);
|
|
2774
2818
|
items inside the tree carry `_integrationId` but not this field.
|
|
2819
|
+
Follows the integration's name when the integration is renamed, while
|
|
2820
|
+
the folder's own `name` keeps the value it was created with or last
|
|
2821
|
+
renamed to, so the two can differ.
|
|
2775
2822
|
examples:
|
|
2776
2823
|
- Order to cash
|
|
2777
2824
|
__ancestorIds:
|
|
@@ -2802,10 +2849,15 @@ components:
|
|
|
2802
2849
|
maxLength: 256
|
|
2803
2850
|
readOnly: true
|
|
2804
2851
|
description: |-
|
|
2805
|
-
Media type
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
the
|
|
2852
|
+
Media type used to set the download Content-Type. Present when type is
|
|
2853
|
+
file; absent for folders and for files uploaded through this API
|
|
2854
|
+
without a declared type. A file uploaded over the SFTP file server gets
|
|
2855
|
+
the type its name's extension maps to, ignoring a trailing `.filepart`,
|
|
2856
|
+
`.part`, or `.tmp`, or `application/octet-stream` when the extension is
|
|
2857
|
+
unknown. An SFTP rename replaces an absent or `application/octet-stream`
|
|
2858
|
+
value when the new extension maps to a known type; renames made with an
|
|
2859
|
+
API token leave the value unchanged. Matched case-sensitively by the
|
|
2860
|
+
`mimeType` and `mimeType_nin` list filters.
|
|
2809
2861
|
examples:
|
|
2810
2862
|
- image/png
|
|
2811
2863
|
description:
|
|
@@ -2831,11 +2883,13 @@ components:
|
|
|
2831
2883
|
type: boolean
|
|
2832
2884
|
readOnly: true
|
|
2833
2885
|
description: |-
|
|
2834
|
-
When true, the platform created the item (for example
|
|
2835
|
-
integration folder) and protects it
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
deleted"
|
|
2886
|
+
When true, the platform created the item (for example an
|
|
2887
|
+
integration's root folder) and protects it: moving it, merging it
|
|
2888
|
+
into another folder, deleting it, and restoring or purging it from
|
|
2889
|
+
the recycle bin are rejected with 403 `STORAGE_SYSTEM_ITEM_PROTECTED`
|
|
2890
|
+
("System items cannot be modified or deleted"; a per-item error in a
|
|
2891
|
+
bulk move). Renaming it and editing its description with
|
|
2892
|
+
`PUT /v1/storage/items/{_id}` are allowed.
|
|
2839
2893
|
deletedAt:
|
|
2840
2894
|
type: string
|
|
2841
2895
|
format: date-time
|
|
@@ -3049,7 +3103,7 @@ components:
|
|
|
3049
3103
|
size:
|
|
3050
3104
|
type: integer
|
|
3051
3105
|
format: int64
|
|
3052
|
-
minimum:
|
|
3106
|
+
minimum: 1
|
|
3053
3107
|
description: |-
|
|
3054
3108
|
Declared size in bytes of the replacement content, used to reserve
|
|
3055
3109
|
quota. Reconciled to the real size when the upload finalizes.
|
package/dist/integration.yml
CHANGED
|
@@ -1597,11 +1597,13 @@ paths:
|
|
|
1597
1597
|
operationId: registerConnectionToIntegrationByBody
|
|
1598
1598
|
tags:
|
|
1599
1599
|
- Integrations
|
|
1600
|
-
summary: Register
|
|
1600
|
+
summary: Register connections to an integration (by body)
|
|
1601
1601
|
description: |-
|
|
1602
|
-
Registers
|
|
1603
|
-
|
|
1604
|
-
|
|
1602
|
+
Registers one or more connections to the integration, adding them to its
|
|
1603
|
+
`_registeredConnectionIds` list. The request body is a bare JSON array of
|
|
1604
|
+
connection ids; duplicates and ids that are already registered are ignored.
|
|
1605
|
+
Alternatively, use `PUT /v1/integrations/{_id}/connections/{_connectionId}/register`
|
|
1606
|
+
to register a single connection by path parameter.
|
|
1605
1607
|
parameters:
|
|
1606
1608
|
- name: _id
|
|
1607
1609
|
in: path
|
|
@@ -1618,24 +1620,40 @@ paths:
|
|
|
1618
1620
|
content:
|
|
1619
1621
|
application/json:
|
|
1620
1622
|
schema:
|
|
1621
|
-
type:
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
format: objectId
|
|
1628
|
-
x-celigo-refModel: connections
|
|
1629
|
-
examples:
|
|
1630
|
-
- 626168f90b6ef816b50c82d7
|
|
1631
|
-
description: The id of the connection to register.
|
|
1623
|
+
type: array
|
|
1624
|
+
description: Connection ids to register.
|
|
1625
|
+
items:
|
|
1626
|
+
type: string
|
|
1627
|
+
format: objectId
|
|
1628
|
+
x-celigo-refModel: connections
|
|
1632
1629
|
examples:
|
|
1633
1630
|
default:
|
|
1634
1631
|
value:
|
|
1635
|
-
|
|
1632
|
+
- 626168f90b6ef816b50c82d7
|
|
1633
|
+
- 6553ebdeda62bb22e7fa81ff
|
|
1636
1634
|
responses:
|
|
1637
1635
|
'204':
|
|
1638
|
-
description:
|
|
1636
|
+
description: Connections registered successfully. No body returned.
|
|
1637
|
+
'400':
|
|
1638
|
+
description: |-
|
|
1639
|
+
The body is not a JSON array (`invalid_request`), or an entry in the
|
|
1640
|
+
array is not a valid ObjectId (`invalid_ref`).
|
|
1641
|
+
content:
|
|
1642
|
+
application/json:
|
|
1643
|
+
schema:
|
|
1644
|
+
$ref: '#/components/schemas/Error'
|
|
1645
|
+
examples:
|
|
1646
|
+
notAnArray:
|
|
1647
|
+
summary: 'An object body such as {"_connectionId": "..."}'
|
|
1648
|
+
value:
|
|
1649
|
+
errors:
|
|
1650
|
+
- code: invalid_request
|
|
1651
|
+
message: Request body should be a JSON array of _connectionId values.
|
|
1652
|
+
invalidId:
|
|
1653
|
+
value:
|
|
1654
|
+
errors:
|
|
1655
|
+
- code: invalid_ref
|
|
1656
|
+
message: Please provide a valid _connectionId.
|
|
1639
1657
|
'401':
|
|
1640
1658
|
$ref: '#/components/responses/401-unauthorized'
|
|
1641
1659
|
'404':
|
|
@@ -1934,11 +1952,25 @@ paths:
|
|
|
1934
1952
|
'204':
|
|
1935
1953
|
description: Lookup caches registered successfully. No body returned.
|
|
1936
1954
|
'400':
|
|
1937
|
-
description:
|
|
1955
|
+
description: |-
|
|
1956
|
+
The body is not a JSON array (`invalid_request`), or an entry in the
|
|
1957
|
+
array is not a valid ObjectId (`invalid_ref`).
|
|
1938
1958
|
content:
|
|
1939
1959
|
application/json:
|
|
1940
1960
|
schema:
|
|
1941
1961
|
$ref: '#/components/schemas/Error'
|
|
1962
|
+
examples:
|
|
1963
|
+
notAnArray:
|
|
1964
|
+
summary: 'An object body such as {"_lookupCacheId": "..."}'
|
|
1965
|
+
value:
|
|
1966
|
+
errors:
|
|
1967
|
+
- code: invalid_request
|
|
1968
|
+
message: Request body should be a JSON array of _lookupCacheId values.
|
|
1969
|
+
invalidId:
|
|
1970
|
+
value:
|
|
1971
|
+
errors:
|
|
1972
|
+
- code: invalid_ref
|
|
1973
|
+
message: Please provide a valid _lookupCacheId.
|
|
1942
1974
|
'401':
|
|
1943
1975
|
$ref: '#/components/responses/401-unauthorized'
|
|
1944
1976
|
'404':
|
package/dist/mcp-server.yml
CHANGED
|
@@ -780,6 +780,390 @@ paths:
|
|
|
780
780
|
$ref: '#/components/responses/401-unauthorized'
|
|
781
781
|
'404':
|
|
782
782
|
$ref: '#/components/responses/404-not-found'
|
|
783
|
+
/v1/mcpservers/template/preview:
|
|
784
|
+
get:
|
|
785
|
+
x-internal: false
|
|
786
|
+
operationId: previewMcpServerTemplateUpload
|
|
787
|
+
tags:
|
|
788
|
+
- MCP Servers
|
|
789
|
+
summary: Preview an uploaded MCP server template
|
|
790
|
+
description: |-
|
|
791
|
+
Reads an MCP-server template ZIP you uploaded and returns the resource
|
|
792
|
+
docs installing it would create. Nothing is created. Get an upload URL
|
|
793
|
+
from `GET /v1/s3SignedURL?file_type=application/zip`, PUT the ZIP to its
|
|
794
|
+
`signedURL` with the header `x-amz-server-side-encryption: AES256`, then
|
|
795
|
+
pass that call's `runKey` here and to `POST /v1/mcpservers/template`.
|
|
796
|
+
|
|
797
|
+
The install runs the same ZIP checks with the same errors. Integration
|
|
798
|
+
template ZIPs use `GET /v1/integrations/template/preview`, which rejects
|
|
799
|
+
an MCP-server ZIP with a 400 `invalid_template` error.
|
|
800
|
+
parameters:
|
|
801
|
+
- name: runKey
|
|
802
|
+
in: query
|
|
803
|
+
required: true
|
|
804
|
+
description: |-
|
|
805
|
+
The `runKey` returned by `GET /v1/s3SignedURL` for the uploaded
|
|
806
|
+
template ZIP.
|
|
807
|
+
schema:
|
|
808
|
+
type: string
|
|
809
|
+
examples:
|
|
810
|
+
- 78f30205bdda4c4bb2a75eb121172250
|
|
811
|
+
responses:
|
|
812
|
+
'200':
|
|
813
|
+
description: Preview of the resources the install would create.
|
|
814
|
+
content:
|
|
815
|
+
application/json:
|
|
816
|
+
schema:
|
|
817
|
+
$ref: '#/components/schemas/McpServerTemplatePreview'
|
|
818
|
+
examples:
|
|
819
|
+
promptOnly:
|
|
820
|
+
summary: Template with one inline prompt
|
|
821
|
+
value:
|
|
822
|
+
type: mcpserver
|
|
823
|
+
objects:
|
|
824
|
+
- model: McpServer
|
|
825
|
+
doc:
|
|
826
|
+
name: Support assistant
|
|
827
|
+
description: ''
|
|
828
|
+
relativeURI: /support-assistant
|
|
829
|
+
disabled: true
|
|
830
|
+
tools: []
|
|
831
|
+
prompts:
|
|
832
|
+
- name: summarize-ticket
|
|
833
|
+
description: Summarize a support ticket.
|
|
834
|
+
disabled: false
|
|
835
|
+
arguments:
|
|
836
|
+
- name: ticket
|
|
837
|
+
description: Ticket text.
|
|
838
|
+
required: true
|
|
839
|
+
messagesTemplate:
|
|
840
|
+
- role: user
|
|
841
|
+
contentType: text
|
|
842
|
+
template: Summarize {{ticket}}.
|
|
843
|
+
- model: Prompt
|
|
844
|
+
doc:
|
|
845
|
+
name: summarize-ticket
|
|
846
|
+
description: Summarize a support ticket.
|
|
847
|
+
disabled: false
|
|
848
|
+
arguments:
|
|
849
|
+
- name: ticket
|
|
850
|
+
description: Ticket text.
|
|
851
|
+
required: true
|
|
852
|
+
messagesTemplate:
|
|
853
|
+
- role: user
|
|
854
|
+
contentType: text
|
|
855
|
+
template: Summarize {{ticket}}.
|
|
856
|
+
stackRequired: false
|
|
857
|
+
connectionAndFile:
|
|
858
|
+
summary: Template with a connection and a Celigo Storage file
|
|
859
|
+
value:
|
|
860
|
+
type: mcpserver
|
|
861
|
+
objects:
|
|
862
|
+
- model: McpServer
|
|
863
|
+
doc:
|
|
864
|
+
name: Support assistant
|
|
865
|
+
description: ''
|
|
866
|
+
relativeURI: /support-assistant
|
|
867
|
+
disabled: true
|
|
868
|
+
tools: []
|
|
869
|
+
connections:
|
|
870
|
+
- _connectionId: 6ab130000000000000000c01
|
|
871
|
+
requiresEndUserCredentials: false
|
|
872
|
+
resources:
|
|
873
|
+
- fileKey: 6ab130000000000000000f01
|
|
874
|
+
title: Support handbook
|
|
875
|
+
disabled: false
|
|
876
|
+
name: handbook.txt
|
|
877
|
+
mimeType: text/plain
|
|
878
|
+
- model: Connection
|
|
879
|
+
doc:
|
|
880
|
+
_id: 6ab130000000000000000c01
|
|
881
|
+
type: http
|
|
882
|
+
name: Support Desk API
|
|
883
|
+
http:
|
|
884
|
+
mediaType: json
|
|
885
|
+
baseURI: https://api.example.com
|
|
886
|
+
auth:
|
|
887
|
+
type: custom
|
|
888
|
+
- model: McpResource
|
|
889
|
+
doc:
|
|
890
|
+
fileKey: 6ab130000000000000000f01
|
|
891
|
+
title: Support handbook
|
|
892
|
+
disabled: false
|
|
893
|
+
name: handbook.txt
|
|
894
|
+
mimeType: text/plain
|
|
895
|
+
size: 2048
|
|
896
|
+
stackRequired: false
|
|
897
|
+
'400':
|
|
898
|
+
description: |-
|
|
899
|
+
The request or the ZIP is malformed: `runKey` is missing
|
|
900
|
+
(`missing_required_field`); the file is not a readable ZIP, including
|
|
901
|
+
one with two entries of the same name (`MCP_TEMPLATE_INVALID_ZIP`); or
|
|
902
|
+
an entry is invalid (`MCP_TEMPLATE_INVALID_ENTRY` — for example an
|
|
903
|
+
entry path containing `..`, a resource file the manifest declares but
|
|
904
|
+
the ZIP lacks, or a null tool row).
|
|
905
|
+
content:
|
|
906
|
+
application/json:
|
|
907
|
+
schema:
|
|
908
|
+
$ref: '#/components/schemas/Error'
|
|
909
|
+
examples:
|
|
910
|
+
missingRunKey:
|
|
911
|
+
value:
|
|
912
|
+
errors:
|
|
913
|
+
- code: missing_required_field
|
|
914
|
+
message: runKey is required.
|
|
915
|
+
invalidZip:
|
|
916
|
+
value:
|
|
917
|
+
errors:
|
|
918
|
+
- code: MCP_TEMPLATE_INVALID_ZIP
|
|
919
|
+
message: The MCP template zip is damaged or is not a zip file.
|
|
920
|
+
invalidEntry:
|
|
921
|
+
value:
|
|
922
|
+
errors:
|
|
923
|
+
- code: MCP_TEMPLATE_INVALID_ENTRY
|
|
924
|
+
message: The MCP template contains an invalid entry.
|
|
925
|
+
'401':
|
|
926
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
927
|
+
'404':
|
|
928
|
+
description: The `runKey` does not match an uploaded file.
|
|
929
|
+
content:
|
|
930
|
+
application/json:
|
|
931
|
+
schema:
|
|
932
|
+
$ref: '#/components/schemas/Error'
|
|
933
|
+
examples:
|
|
934
|
+
invalidKey:
|
|
935
|
+
value:
|
|
936
|
+
errors:
|
|
937
|
+
- code: invalid_key
|
|
938
|
+
message: We couldn't find any integration template zip file.
|
|
939
|
+
'413':
|
|
940
|
+
description: |-
|
|
941
|
+
The ZIP exceeds an MCP template limit: more than 32 MiB uncompressed in
|
|
942
|
+
total, more than 500 entries, or a JSON entry over 1 MiB.
|
|
943
|
+
content:
|
|
944
|
+
application/json:
|
|
945
|
+
schema:
|
|
946
|
+
$ref: '#/components/schemas/Error'
|
|
947
|
+
examples:
|
|
948
|
+
tooLarge:
|
|
949
|
+
value:
|
|
950
|
+
errors:
|
|
951
|
+
- code: MCP_TEMPLATE_ZIP_TOO_LARGE
|
|
952
|
+
message: The MCP template zip exceeds the allowed size.
|
|
953
|
+
'422':
|
|
954
|
+
description: |-
|
|
955
|
+
The ZIP opened but is not an installable MCP-server template:
|
|
956
|
+
`mcpserver.json` is missing (`invalid_ref`, or `invalid_template` when
|
|
957
|
+
`integration.json` is missing too), a tool the server attaches is not
|
|
958
|
+
packed (`invalid_template`), an attached API or connection document is
|
|
959
|
+
not packed (`MCP_TEMPLATE_DEPENDENCY_MISSING`), or a resource file is
|
|
960
|
+
over 3 MiB or the manifest declares more than 100 of them
|
|
961
|
+
(`MCP_TEMPLATE_RESOURCE_TOO_LARGE`).
|
|
962
|
+
content:
|
|
963
|
+
application/json:
|
|
964
|
+
schema:
|
|
965
|
+
$ref: '#/components/schemas/Error'
|
|
966
|
+
examples:
|
|
967
|
+
noManifest:
|
|
968
|
+
value:
|
|
969
|
+
errors:
|
|
970
|
+
- code: invalid_ref
|
|
971
|
+
message: mcpserver.json not found.
|
|
972
|
+
noManifests:
|
|
973
|
+
value:
|
|
974
|
+
errors:
|
|
975
|
+
- code: invalid_template
|
|
976
|
+
message: integration.json file is missing.
|
|
977
|
+
toolNotPacked:
|
|
978
|
+
value:
|
|
979
|
+
errors:
|
|
980
|
+
- code: invalid_template
|
|
981
|
+
message: MCP server references tool 6ab130000000000000000a01, which is missing from the template zip.
|
|
982
|
+
dependencyMissing:
|
|
983
|
+
value:
|
|
984
|
+
errors:
|
|
985
|
+
- code: MCP_TEMPLATE_DEPENDENCY_MISSING
|
|
986
|
+
message: The MCP template is missing connection 6ab130000000000000000c01.
|
|
987
|
+
resourceTooLarge:
|
|
988
|
+
value:
|
|
989
|
+
errors:
|
|
990
|
+
- code: MCP_TEMPLATE_RESOURCE_TOO_LARGE
|
|
991
|
+
message: Resource file 6ab130000000000000000f02 exceeds the allowed size.
|
|
992
|
+
/v1/mcpservers/template:
|
|
993
|
+
post:
|
|
994
|
+
x-internal: false
|
|
995
|
+
operationId: installMcpServerTemplateFromUpload
|
|
996
|
+
tags:
|
|
997
|
+
- MCP Servers
|
|
998
|
+
summary: Install an uploaded MCP server template
|
|
999
|
+
description: |-
|
|
1000
|
+
Installs an MCP-server template from a ZIP you uploaded with the URL
|
|
1001
|
+
from `GET /v1/s3SignedURL`. The body carries only that call's `runKey`;
|
|
1002
|
+
the server's name and `relativeURI` come from the template. Check the
|
|
1003
|
+
ZIP first with `GET /v1/mcpservers/template/preview`, which runs the
|
|
1004
|
+
same ZIP checks with the same errors and creates nothing.
|
|
1005
|
+
|
|
1006
|
+
The response's `destination` envelope names what was created. A
|
|
1007
|
+
template with only inline prompts creates the MCP server immediately,
|
|
1008
|
+
disabled (`destination.resourceType` is `mcpservers`); when its
|
|
1009
|
+
`relativeURI` is taken, the server gets a `-2`, `-3`, … suffix. A
|
|
1010
|
+
template that also packs dependencies, such as a connection, creates an
|
|
1011
|
+
Integration in install mode instead (`destination.resourceType` is
|
|
1012
|
+
`integrations`), with an install step per packed connection and a last
|
|
1013
|
+
step that copies the template's resources; no MCP server exists yet
|
|
1014
|
+
when the request returns.
|
|
1015
|
+
|
|
1016
|
+
Every request starts a new install, so retrying after a timeout or an
|
|
1017
|
+
ambiguous failure creates a duplicate server or install-mode
|
|
1018
|
+
Integration.
|
|
1019
|
+
x-celigo-ai-guidance:
|
|
1020
|
+
- Never retry this POST after a timeout or an ambiguous failure — each request installs again; a prompt-only template yields a second server with a -2 suffix on its relativeURI, and a template with dependencies a second install-mode Integration.
|
|
1021
|
+
- Branch the follow-up on destination.resourceType — "mcpservers" means the disabled MCP server already exists; "integrations" means the install continues in that Integration's install steps and the server does not exist yet.
|
|
1022
|
+
requestBody:
|
|
1023
|
+
required: true
|
|
1024
|
+
content:
|
|
1025
|
+
application/json:
|
|
1026
|
+
schema:
|
|
1027
|
+
type: object
|
|
1028
|
+
required:
|
|
1029
|
+
- runKey
|
|
1030
|
+
properties:
|
|
1031
|
+
runKey:
|
|
1032
|
+
type: string
|
|
1033
|
+
description: |-
|
|
1034
|
+
The `runKey` returned by `GET /v1/s3SignedURL` for the uploaded
|
|
1035
|
+
template ZIP.
|
|
1036
|
+
examples:
|
|
1037
|
+
- 78f30205bdda4c4bb2a75eb121172250
|
|
1038
|
+
examples:
|
|
1039
|
+
default:
|
|
1040
|
+
value:
|
|
1041
|
+
runKey: 78f30205bdda4c4bb2a75eb121172250
|
|
1042
|
+
responses:
|
|
1043
|
+
'201':
|
|
1044
|
+
description: Installation started.
|
|
1045
|
+
content:
|
|
1046
|
+
application/json:
|
|
1047
|
+
schema:
|
|
1048
|
+
type: object
|
|
1049
|
+
required:
|
|
1050
|
+
- destination
|
|
1051
|
+
properties:
|
|
1052
|
+
destination:
|
|
1053
|
+
type: object
|
|
1054
|
+
description: The resource the install created first.
|
|
1055
|
+
required:
|
|
1056
|
+
- resourceType
|
|
1057
|
+
- resourceId
|
|
1058
|
+
properties:
|
|
1059
|
+
resourceType:
|
|
1060
|
+
type: string
|
|
1061
|
+
enum:
|
|
1062
|
+
- mcpservers
|
|
1063
|
+
- integrations
|
|
1064
|
+
x-enumDescriptions:
|
|
1065
|
+
mcpservers: The disabled MCP server, created immediately from a template with only inline prompts
|
|
1066
|
+
integrations: The install-mode Integration created for a template that packs dependencies, such as a connection
|
|
1067
|
+
description: |-
|
|
1068
|
+
Which resource type the install created — determines
|
|
1069
|
+
where the caller continues the setup.
|
|
1070
|
+
resourceId:
|
|
1071
|
+
type: string
|
|
1072
|
+
format: objectId
|
|
1073
|
+
description: |-
|
|
1074
|
+
The created resource's ID, in the collection named by
|
|
1075
|
+
`resourceType`.
|
|
1076
|
+
examples:
|
|
1077
|
+
promptOnly:
|
|
1078
|
+
summary: Prompt-only template — disabled MCP server
|
|
1079
|
+
value:
|
|
1080
|
+
destination:
|
|
1081
|
+
resourceType: mcpservers
|
|
1082
|
+
resourceId: 6ab130000000000000000d02
|
|
1083
|
+
withConnection:
|
|
1084
|
+
summary: Template with a connection — Integration in install mode
|
|
1085
|
+
value:
|
|
1086
|
+
destination:
|
|
1087
|
+
resourceType: integrations
|
|
1088
|
+
resourceId: 6ab130000000000000000d01
|
|
1089
|
+
'400':
|
|
1090
|
+
description: |-
|
|
1091
|
+
The request or the ZIP is malformed: `runKey` is missing
|
|
1092
|
+
(`missing_required_field`); the file is not a readable ZIP, including
|
|
1093
|
+
one with two entries of the same name (`MCP_TEMPLATE_INVALID_ZIP`); or
|
|
1094
|
+
an entry is invalid (`MCP_TEMPLATE_INVALID_ENTRY` — for example an
|
|
1095
|
+
entry path containing `..`, a resource file the manifest declares but
|
|
1096
|
+
the ZIP lacks, or a null tool row).
|
|
1097
|
+
content:
|
|
1098
|
+
application/json:
|
|
1099
|
+
schema:
|
|
1100
|
+
$ref: '#/components/schemas/Error'
|
|
1101
|
+
examples:
|
|
1102
|
+
missingRunKey:
|
|
1103
|
+
value:
|
|
1104
|
+
errors:
|
|
1105
|
+
- code: missing_required_field
|
|
1106
|
+
message: runKey is required.
|
|
1107
|
+
invalidZip:
|
|
1108
|
+
value:
|
|
1109
|
+
errors:
|
|
1110
|
+
- code: MCP_TEMPLATE_INVALID_ZIP
|
|
1111
|
+
message: The MCP template zip is damaged or is not a zip file.
|
|
1112
|
+
invalidEntry:
|
|
1113
|
+
value:
|
|
1114
|
+
errors:
|
|
1115
|
+
- code: MCP_TEMPLATE_INVALID_ENTRY
|
|
1116
|
+
message: The MCP template contains an invalid entry.
|
|
1117
|
+
'401':
|
|
1118
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1119
|
+
'404':
|
|
1120
|
+
description: The `runKey` does not match an uploaded file.
|
|
1121
|
+
content:
|
|
1122
|
+
application/json:
|
|
1123
|
+
schema:
|
|
1124
|
+
$ref: '#/components/schemas/Error'
|
|
1125
|
+
examples:
|
|
1126
|
+
invalidKey:
|
|
1127
|
+
value:
|
|
1128
|
+
errors:
|
|
1129
|
+
- code: invalid_key
|
|
1130
|
+
message: We couldn't find any integration template zip file.
|
|
1131
|
+
'413':
|
|
1132
|
+
description: |-
|
|
1133
|
+
The ZIP exceeds an MCP template limit: more than 32 MiB uncompressed in
|
|
1134
|
+
total, more than 500 entries, or a JSON entry over 1 MiB.
|
|
1135
|
+
content:
|
|
1136
|
+
application/json:
|
|
1137
|
+
schema:
|
|
1138
|
+
$ref: '#/components/schemas/Error'
|
|
1139
|
+
examples:
|
|
1140
|
+
tooLarge:
|
|
1141
|
+
value:
|
|
1142
|
+
errors:
|
|
1143
|
+
- code: MCP_TEMPLATE_ZIP_TOO_LARGE
|
|
1144
|
+
message: The MCP template zip exceeds the allowed size.
|
|
1145
|
+
'422':
|
|
1146
|
+
description: |-
|
|
1147
|
+
The ZIP is not an installable MCP-server template, so nothing was
|
|
1148
|
+
created: the same checks and codes as the preview (`invalid_ref`,
|
|
1149
|
+
`invalid_template`, `MCP_TEMPLATE_DEPENDENCY_MISSING`,
|
|
1150
|
+
`MCP_TEMPLATE_RESOURCE_TOO_LARGE`). Retrying with the same ZIP fails
|
|
1151
|
+
the same way.
|
|
1152
|
+
content:
|
|
1153
|
+
application/json:
|
|
1154
|
+
schema:
|
|
1155
|
+
$ref: '#/components/schemas/Error'
|
|
1156
|
+
examples:
|
|
1157
|
+
noManifest:
|
|
1158
|
+
value:
|
|
1159
|
+
errors:
|
|
1160
|
+
- code: invalid_ref
|
|
1161
|
+
message: mcpserver.json not found.
|
|
1162
|
+
dependencyMissing:
|
|
1163
|
+
value:
|
|
1164
|
+
errors:
|
|
1165
|
+
- code: MCP_TEMPLATE_DEPENDENCY_MISSING
|
|
1166
|
+
message: The MCP template is missing connection 6ab130000000000000000c01.
|
|
783
1167
|
/v1/mcpservers/template/{_templateId}:
|
|
784
1168
|
post:
|
|
785
1169
|
x-internal: false
|
|
@@ -4159,6 +4543,64 @@ components:
|
|
|
4159
4543
|
minItems: 1
|
|
4160
4544
|
items:
|
|
4161
4545
|
$ref: '#/components/schemas/JsonPatchOperation'
|
|
4546
|
+
McpServerTemplatePreview:
|
|
4547
|
+
type: object
|
|
4548
|
+
description: |-
|
|
4549
|
+
What installing an uploaded MCP-server template ZIP would create.
|
|
4550
|
+
`objects[]` lists each resource doc tagged by `model`. Packed docs keep
|
|
4551
|
+
the template's placeholder ids; the install assigns new ones.
|
|
4552
|
+
required:
|
|
4553
|
+
- type
|
|
4554
|
+
- objects
|
|
4555
|
+
- stackRequired
|
|
4556
|
+
properties:
|
|
4557
|
+
type:
|
|
4558
|
+
type: string
|
|
4559
|
+
enum:
|
|
4560
|
+
- mcpserver
|
|
4561
|
+
x-enumDescriptions:
|
|
4562
|
+
mcpserver: The ZIP is an MCP-server template; install it with `POST /v1/mcpservers/template`
|
|
4563
|
+
description: |-
|
|
4564
|
+
Kind of template the uploaded ZIP holds. Always `mcpserver` on this
|
|
4565
|
+
route — a ZIP without `mcpserver.json`, such as an integration
|
|
4566
|
+
template, is rejected before a preview is built.
|
|
4567
|
+
examples:
|
|
4568
|
+
- mcpserver
|
|
4569
|
+
objects:
|
|
4570
|
+
type: array
|
|
4571
|
+
description: |-
|
|
4572
|
+
Resource docs the install would create, in order: the `McpServer`
|
|
4573
|
+
doc, then each document packed in the ZIP (a `Connection`, for
|
|
4574
|
+
example), then one `Prompt` entry per inline prompt and one
|
|
4575
|
+
`McpResource` entry per Celigo Storage file the server serves. The
|
|
4576
|
+
ZIP's `integration.json` is never listed.
|
|
4577
|
+
items:
|
|
4578
|
+
type: object
|
|
4579
|
+
description: One resource doc tagged with its model type.
|
|
4580
|
+
required:
|
|
4581
|
+
- model
|
|
4582
|
+
- doc
|
|
4583
|
+
properties:
|
|
4584
|
+
model:
|
|
4585
|
+
type: string
|
|
4586
|
+
description: |-
|
|
4587
|
+
Resource class this doc describes: `McpServer`, `Prompt`, or
|
|
4588
|
+
`McpResource` for the server and what it serves, otherwise the
|
|
4589
|
+
model of the packed document, such as `Connection`.
|
|
4590
|
+
examples:
|
|
4591
|
+
- Connection
|
|
4592
|
+
doc:
|
|
4593
|
+
type: object
|
|
4594
|
+
description: |-
|
|
4595
|
+
The resource document as packed in the template. The `McpServer`
|
|
4596
|
+
doc has no `_id`; an `McpResource` doc also carries the file's
|
|
4597
|
+
`size` in bytes.
|
|
4598
|
+
additionalProperties: true
|
|
4599
|
+
stackRequired:
|
|
4600
|
+
type: boolean
|
|
4601
|
+
description: |-
|
|
4602
|
+
When true, the template packs something that runs on a stack, such
|
|
4603
|
+
as a wrapper connection.
|
|
4162
4604
|
DependencyEntry:
|
|
4163
4605
|
type: object
|
|
4164
4606
|
description: A single resource that depends on the queried resource.
|
package/dist/template.yml
CHANGED
|
@@ -511,6 +511,12 @@ paths:
|
|
|
511
511
|
Previews the resources that would be created by installing a template
|
|
512
512
|
from an uploaded zip file. The `runKey` query parameter ties this request
|
|
513
513
|
to a previously uploaded zip (obtained from `GET /v1/s3SignedURL`).
|
|
514
|
+
|
|
515
|
+
The zip must be at most 1 MB, and its entries at most 64 MB once
|
|
516
|
+
uncompressed; the preview applies the same checks as
|
|
517
|
+
`POST /v1/integrations/template`. An MCP server template (a zip with a
|
|
518
|
+
root `mcpserver.json`) is refused here: preview it with
|
|
519
|
+
`GET /v1/mcpservers/template/preview`.
|
|
514
520
|
parameters:
|
|
515
521
|
- name: runKey
|
|
516
522
|
in: query
|
|
@@ -535,6 +541,7 @@ paths:
|
|
|
535
541
|
preview:
|
|
536
542
|
summary: Template that creates an integration and one connection
|
|
537
543
|
value:
|
|
544
|
+
type: integration
|
|
538
545
|
stackRequired: false
|
|
539
546
|
objects:
|
|
540
547
|
- model: Integration
|
|
@@ -551,7 +558,10 @@ paths:
|
|
|
551
558
|
wsdlVersion: '2020.2'
|
|
552
559
|
concurrencyLevel: 1
|
|
553
560
|
'400':
|
|
554
|
-
description:
|
|
561
|
+
description: |-
|
|
562
|
+
Missing required `runKey` query parameter, the uploaded zip is larger
|
|
563
|
+
than 1 MB (`invalid_zip`), or the zip is an MCP server template
|
|
564
|
+
(`invalid_template`).
|
|
555
565
|
content:
|
|
556
566
|
application/json:
|
|
557
567
|
schema:
|
|
@@ -562,6 +572,17 @@ paths:
|
|
|
562
572
|
errors:
|
|
563
573
|
- code: missing_required_field
|
|
564
574
|
message: runKey is required.
|
|
575
|
+
zipTooLarge:
|
|
576
|
+
value:
|
|
577
|
+
errors:
|
|
578
|
+
- code: invalid_zip
|
|
579
|
+
message: Template can't be imported as the maximum allowed zip file size is 1 MB. Please re-import a new zip file.
|
|
580
|
+
mcpServerTemplate:
|
|
581
|
+
summary: A zip with a root mcpserver.json
|
|
582
|
+
value:
|
|
583
|
+
errors:
|
|
584
|
+
- code: invalid_template
|
|
585
|
+
message: MCP server templates cannot be installed through the Integration template path. Use Upload MCP.
|
|
565
586
|
'401':
|
|
566
587
|
$ref: '#/components/responses/401-unauthorized'
|
|
567
588
|
'403':
|
|
@@ -577,7 +598,26 @@ paths:
|
|
|
577
598
|
value:
|
|
578
599
|
errors:
|
|
579
600
|
- code: invalid_key
|
|
580
|
-
message:
|
|
601
|
+
message: We couldn't find any integration template zip file.
|
|
602
|
+
'422':
|
|
603
|
+
description: |-
|
|
604
|
+
The zip's entries exceed 64 MB uncompressed (`invalid_zip`), or an entry
|
|
605
|
+
is corrupted (`corrupted_file`).
|
|
606
|
+
content:
|
|
607
|
+
application/json:
|
|
608
|
+
schema:
|
|
609
|
+
$ref: '#/components/schemas/Error'
|
|
610
|
+
examples:
|
|
611
|
+
uncompressedTooLarge:
|
|
612
|
+
value:
|
|
613
|
+
errors:
|
|
614
|
+
- code: invalid_zip
|
|
615
|
+
message: Template can't be imported as the uncompressed zip contents exceed the maximum allowed size. Please re-import a smaller zip file.
|
|
616
|
+
corrupted:
|
|
617
|
+
value:
|
|
618
|
+
errors:
|
|
619
|
+
- code: corrupted_file
|
|
620
|
+
message: Looks like the uploaded zip is corrupted. Please contact Celigo support if the issue persists.
|
|
581
621
|
/v1/integrations/template:
|
|
582
622
|
post:
|
|
583
623
|
x-internal: false
|
|
@@ -594,6 +634,12 @@ paths:
|
|
|
594
634
|
installed integration receives new connection `_id`s. Configure each
|
|
595
635
|
connection in the new integration before running its flows; connection
|
|
596
636
|
`_id`s that existed only in the zip are not preserved.
|
|
637
|
+
|
|
638
|
+
The zip must be at most 1 MB, and its entries at most 64 MB once
|
|
639
|
+
uncompressed. A zip that breaks either limit, or holds a corrupted entry,
|
|
640
|
+
is refused before anything is created. So is an MCP server template (a
|
|
641
|
+
zip with a root `mcpserver.json`): install it with
|
|
642
|
+
`POST /v1/mcpservers/template`.
|
|
597
643
|
requestBody:
|
|
598
644
|
required: true
|
|
599
645
|
content:
|
|
@@ -626,21 +672,43 @@ paths:
|
|
|
626
672
|
value:
|
|
627
673
|
runKey: abc123def456
|
|
628
674
|
responses:
|
|
629
|
-
'
|
|
630
|
-
description:
|
|
675
|
+
'201':
|
|
676
|
+
description: |-
|
|
677
|
+
Template installed. Each entry names a document the install created;
|
|
678
|
+
the `Integration` entry is the new integration.
|
|
631
679
|
content:
|
|
632
680
|
application/json:
|
|
633
681
|
schema:
|
|
634
|
-
type:
|
|
635
|
-
|
|
636
|
-
|
|
682
|
+
type: array
|
|
683
|
+
items:
|
|
684
|
+
type: object
|
|
685
|
+
required:
|
|
686
|
+
- model
|
|
687
|
+
- _id
|
|
688
|
+
properties:
|
|
689
|
+
model:
|
|
690
|
+
type: string
|
|
691
|
+
description: Model of the created document.
|
|
692
|
+
examples:
|
|
693
|
+
- Integration
|
|
694
|
+
_id:
|
|
695
|
+
type: string
|
|
696
|
+
format: objectId
|
|
697
|
+
description: Id of the created document.
|
|
698
|
+
examples:
|
|
699
|
+
- 6405b9d73496e05ff253d587
|
|
637
700
|
examples:
|
|
638
701
|
installed:
|
|
639
702
|
summary: Integration created from the uploaded zip
|
|
640
703
|
value:
|
|
641
|
-
|
|
704
|
+
- model: Integration
|
|
705
|
+
_id: 6405b9d73496e05ff253d587
|
|
642
706
|
'400':
|
|
643
|
-
description:
|
|
707
|
+
description: |-
|
|
708
|
+
Missing required `runKey` in request body, the uploaded zip is larger
|
|
709
|
+
than 1 MB (`invalid_zip`), the zip is an MCP server template
|
|
710
|
+
(`invalid_template`), or the preview reports `stackRequired: true` and
|
|
711
|
+
the body has no `_stackId` (`stack_not_found`).
|
|
644
712
|
content:
|
|
645
713
|
application/json:
|
|
646
714
|
schema:
|
|
@@ -651,12 +719,31 @@ paths:
|
|
|
651
719
|
errors:
|
|
652
720
|
- code: missing_required_field
|
|
653
721
|
message: runKey is required.
|
|
722
|
+
zipTooLarge:
|
|
723
|
+
value:
|
|
724
|
+
errors:
|
|
725
|
+
- code: invalid_zip
|
|
726
|
+
message: Template can't be imported as the maximum allowed zip file size is 1 MB. Please re-import a new zip file.
|
|
727
|
+
mcpServerTemplate:
|
|
728
|
+
summary: A zip with a root mcpserver.json
|
|
729
|
+
value:
|
|
730
|
+
errors:
|
|
731
|
+
- code: invalid_template
|
|
732
|
+
message: MCP server templates cannot be installed through the Integration template path. Use Upload MCP.
|
|
733
|
+
stackMissing:
|
|
734
|
+
summary: The zip has a stack hook and the body has no _stackId
|
|
735
|
+
value:
|
|
736
|
+
errors:
|
|
737
|
+
- code: stack_not_found
|
|
738
|
+
message: The integration template has stack reference but _stackId not found in the request body.
|
|
654
739
|
'401':
|
|
655
740
|
$ref: '#/components/responses/401-unauthorized'
|
|
656
741
|
'403':
|
|
657
742
|
$ref: '#/components/responses/403-cannot-install'
|
|
658
743
|
'404':
|
|
659
|
-
description:
|
|
744
|
+
description: |-
|
|
745
|
+
The `runKey` does not match any uploaded zip (`invalid_key`), or
|
|
746
|
+
`_stackId` matches no stack (`stack_not_found`).
|
|
660
747
|
content:
|
|
661
748
|
application/json:
|
|
662
749
|
schema:
|
|
@@ -666,7 +753,31 @@ paths:
|
|
|
666
753
|
value:
|
|
667
754
|
errors:
|
|
668
755
|
- code: invalid_key
|
|
669
|
-
message:
|
|
756
|
+
message: We couldn't find any integration template zip file.
|
|
757
|
+
unknownStack:
|
|
758
|
+
value:
|
|
759
|
+
errors:
|
|
760
|
+
- code: stack_not_found
|
|
761
|
+
message: 'Failed to create the integration using the integration template provided as no stack found with _id: ''000000000000000000000000''.'
|
|
762
|
+
'422':
|
|
763
|
+
description: |-
|
|
764
|
+
The zip's entries exceed 64 MB uncompressed (`invalid_zip`), or an entry
|
|
765
|
+
is corrupted (`corrupted_file`). Nothing is installed.
|
|
766
|
+
content:
|
|
767
|
+
application/json:
|
|
768
|
+
schema:
|
|
769
|
+
$ref: '#/components/schemas/Error'
|
|
770
|
+
examples:
|
|
771
|
+
uncompressedTooLarge:
|
|
772
|
+
value:
|
|
773
|
+
errors:
|
|
774
|
+
- code: invalid_zip
|
|
775
|
+
message: Template can't be imported as the uncompressed zip contents exceed the maximum allowed size. Please re-import a smaller zip file.
|
|
776
|
+
corrupted:
|
|
777
|
+
value:
|
|
778
|
+
errors:
|
|
779
|
+
- code: corrupted_file
|
|
780
|
+
message: Looks like the uploaded zip is corrupted. Please contact Celigo support if the issue persists.
|
|
670
781
|
components:
|
|
671
782
|
securitySchemes:
|
|
672
783
|
bearerAuth:
|
package/package.json
CHANGED