@celigo/api-specs 0.2.217 → 0.2.219
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/export.yml +34 -0
- package/dist/marketplace.yml +15 -1
- package/dist/mcp-server.yml +183 -56
- package/dist/tool.yml +34 -0
- package/package.json +1 -1
- package/schemas.json +1 -1
package/dist/export.yml
CHANGED
|
@@ -1461,6 +1461,18 @@ components:
|
|
|
1461
1461
|
IMPORTANT: Ensure the field is not being updated by other processes, as this could
|
|
1462
1462
|
cause records to be skipped unexpectedly. If multiple processes need to track exports,
|
|
1463
1463
|
use separate boolean fields for each process.
|
|
1464
|
+
- |-
|
|
1465
|
+
On a NetSuite saved-search export the run pins the set of records to flag when it
|
|
1466
|
+
starts and reads them from the front of the still-unflagged set, so records that
|
|
1467
|
+
become eligible during the run wait for the next run — the pattern to recommend over
|
|
1468
|
+
a type-`all` export whose flow sets the flag in a later NetSuite step. Correctness
|
|
1469
|
+
then rests on Group rows, not on the Batch size limit: with `netsuite.skipGrouping:
|
|
1470
|
+
false` (Group rows on, search sorted by Internal ID) every record of the pinned set
|
|
1471
|
+
exported exactly once at a batch size of 5, with no duplicates when two records
|
|
1472
|
+
became eligible mid-run (they waited for the next run); with Group rows
|
|
1473
|
+
off on a search that returns several rows per record, the rows of a record that fall
|
|
1474
|
+
after the page in which it was flagged are not exported and are not retried (83 of
|
|
1475
|
+
134 transaction lines at a batch size of 1, 117 of 134 at 5).
|
|
1464
1476
|
examples:
|
|
1465
1477
|
- isExported
|
|
1466
1478
|
- hasBeenSynced
|
|
@@ -10719,6 +10731,12 @@ components:
|
|
|
10719
10731
|
Set `true` for an ad-hoc RESTlet search (criteria and columns without a saved
|
|
10720
10732
|
search): grouping needs the search sorted by internal id, and an unsorted ad-hoc
|
|
10721
10733
|
search fails with `[search_not_sorted]`.
|
|
10734
|
+
- |-
|
|
10735
|
+
With export type `once`, keep this `false` on a search that returns several rows per
|
|
10736
|
+
record: `once` flags the record when the page holding its first row completes, and
|
|
10737
|
+
with `true` the record's remaining rows drop out of the later requests — at a batch
|
|
10738
|
+
size of 5, 17 of 134 transaction lines never exported. Grouped, the record is the
|
|
10739
|
+
whole transaction and every row is exported exactly once.
|
|
10722
10740
|
- 'For `exportSelect` / `refreshableSelect` dropdowns backed by a NetSuite RESTlet, set `skipGrouping: true`: the UI''s option mapper expects flat per-row results, and the platform otherwise wraps each row in its own grouping list (every option''s `label` then renders as `undefined`).'
|
|
10723
10741
|
statsOnly:
|
|
10724
10742
|
type: boolean
|
|
@@ -10940,6 +10958,22 @@ components:
|
|
|
10940
10958
|
and memory use per call; tune to the record's size. The RESTlet caps a call at 1000,
|
|
10941
10959
|
so a larger value acts as 1000. In a test run or preview the request is capped at the
|
|
10942
10960
|
export's `pageSize` (default 20) instead.
|
|
10961
|
+
x-celigo-ai-guidance:
|
|
10962
|
+
- |-
|
|
10963
|
+
Each request re-runs the saved search and returns the next slice by position, on
|
|
10964
|
+
the SuiteBundle and SuiteApp 2.0 RESTlets alike. Rows that enter the result set
|
|
10965
|
+
ahead of the position between two requests come back again — a contiguous block
|
|
10966
|
+
of duplicates equal to the rows that entered; rows that leave it are skipped with
|
|
10967
|
+
no error. A run whose rows fit in one request has no gap. The shift acts on
|
|
10968
|
+
positions, not on order: in the probes every row came back in one fixed per-row
|
|
10969
|
+
order (Internal ID, then line) on every run, and the inserted rows displaced them
|
|
10970
|
+
all the same. Export type `once` with `netsuite.skipGrouping: false` prevents it,
|
|
10971
|
+
because it pins the record set when the run starts.
|
|
10972
|
+
- |-
|
|
10973
|
+
Leave this blank unless a NetSuite time limit forced a smaller value: a smaller
|
|
10974
|
+
batch multiplies the request boundaries per run, and each one is exposed when
|
|
10975
|
+
the search's membership changes mid-run (an older record approved, a flag the
|
|
10976
|
+
search filters on reset).
|
|
10943
10977
|
examples:
|
|
10944
10978
|
- 100
|
|
10945
10979
|
- 200
|
package/dist/marketplace.yml
CHANGED
|
@@ -859,7 +859,19 @@ components:
|
|
|
859
859
|
`Connection`s, `Flow`s, `Export`s, `Import`s, `Script`s and any
|
|
860
860
|
other supporting resources; for an MCP server template it is the
|
|
861
861
|
`McpServer` doc first, then its `Connection`s, `Export`s, `Import`s,
|
|
862
|
-
`Script`s and `
|
|
862
|
+
`Script`s, `Tool`s and `Api`s, then one `Prompt` entry per inline
|
|
863
|
+
prompt and one `McpResource` entry per Celigo Storage file the
|
|
864
|
+
server serves. The `McpServer` doc is the template's secret-free
|
|
865
|
+
manifest: tool and API attachments (MCP-exposed `name`,
|
|
866
|
+
`annotations`, per-tool connection `overrides` with
|
|
867
|
+
`requiresEndUserCredentials`), inline `prompts`, `resources`,
|
|
868
|
+
`connections` that require end-user credentials,
|
|
869
|
+
`upstreamMcpConnections` with the selected proxied items,
|
|
870
|
+
`permissionSets` (capability sets as portable references),
|
|
871
|
+
`policies` and `oauth.useCeligoOauth` — each section present only
|
|
872
|
+
when the server has it. A template published before the artifact
|
|
873
|
+
widened carries tools and prompts only, so its `McpServer` doc has
|
|
874
|
+
none of the newer sections.
|
|
863
875
|
items:
|
|
864
876
|
type: object
|
|
865
877
|
description: One resource doc tagged with its model type.
|
|
@@ -881,6 +893,7 @@ components:
|
|
|
881
893
|
- Api
|
|
882
894
|
- Tool
|
|
883
895
|
- Prompt
|
|
896
|
+
- McpResource
|
|
884
897
|
x-enumDescriptions:
|
|
885
898
|
Integration: Integration workspace resource (integration templates only)
|
|
886
899
|
McpServer: MCP server resource (MCP server templates only)
|
|
@@ -896,6 +909,7 @@ components:
|
|
|
896
909
|
Api: Builder-mode API resource
|
|
897
910
|
Tool: Tool resource invoked by MCP servers, APIs, and flows
|
|
898
911
|
Prompt: Inline prompt definition of the MCP server (MCP server templates only)
|
|
912
|
+
McpResource: Celigo Storage file the MCP server serves as a resource — name, description, MIME type and size, never the bytes (MCP server templates only)
|
|
899
913
|
description: |-
|
|
900
914
|
Resource class this doc describes. Which classes appear depends
|
|
901
915
|
on what the template zip contains; `Integration` and `Prompt`
|
package/dist/mcp-server.yml
CHANGED
|
@@ -1018,6 +1018,11 @@ paths:
|
|
|
1018
1018
|
Every request starts a new install, so retrying after a timeout or an
|
|
1019
1019
|
ambiguous failure creates a duplicate server or install-mode
|
|
1020
1020
|
Integration.
|
|
1021
|
+
|
|
1022
|
+
Requires the `install:template` permission. A template that packs
|
|
1023
|
+
resource files is refused up front in a sandbox account (422
|
|
1024
|
+
`MCP_TEMPLATE_RESOURCE_UNAVAILABLE` naming `sandbox`) — install it from
|
|
1025
|
+
a production account.
|
|
1021
1026
|
x-celigo-ai-guidance:
|
|
1022
1027
|
- 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.
|
|
1023
1028
|
- 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.
|
|
@@ -1118,6 +1123,8 @@ paths:
|
|
|
1118
1123
|
message: The MCP template contains an invalid entry.
|
|
1119
1124
|
'401':
|
|
1120
1125
|
$ref: '#/components/responses/401-unauthorized'
|
|
1126
|
+
'403':
|
|
1127
|
+
$ref: '#/components/responses/403-forbidden'
|
|
1121
1128
|
'404':
|
|
1122
1129
|
description: The `runKey` does not match an uploaded file.
|
|
1123
1130
|
content:
|
|
@@ -1149,8 +1156,9 @@ paths:
|
|
|
1149
1156
|
The ZIP is not an installable MCP-server template, so nothing was
|
|
1150
1157
|
created: the same checks and codes as the preview (`invalid_ref`,
|
|
1151
1158
|
`invalid_template`, `MCP_TEMPLATE_DEPENDENCY_MISSING`,
|
|
1152
|
-
`MCP_TEMPLATE_RESOURCE_TOO_LARGE`)
|
|
1153
|
-
the
|
|
1159
|
+
`MCP_TEMPLATE_RESOURCE_TOO_LARGE`), plus `MCP_TEMPLATE_RESOURCE_UNAVAILABLE`
|
|
1160
|
+
naming `sandbox` when the template packs resource files and the
|
|
1161
|
+
account is a sandbox. Retrying with the same ZIP fails the same way.
|
|
1154
1162
|
content:
|
|
1155
1163
|
application/json:
|
|
1156
1164
|
schema:
|
|
@@ -1166,6 +1174,12 @@ paths:
|
|
|
1166
1174
|
errors:
|
|
1167
1175
|
- code: MCP_TEMPLATE_DEPENDENCY_MISSING
|
|
1168
1176
|
message: The MCP template is missing connection 6ab130000000000000000c01.
|
|
1177
|
+
sandboxResources:
|
|
1178
|
+
summary: Template packs resource files, installing account is a sandbox
|
|
1179
|
+
value:
|
|
1180
|
+
errors:
|
|
1181
|
+
- code: MCP_TEMPLATE_RESOURCE_UNAVAILABLE
|
|
1182
|
+
message: Resource file sandbox is missing or cannot be exported.
|
|
1169
1183
|
/v1/mcpservers/template/{_templateId}:
|
|
1170
1184
|
post:
|
|
1171
1185
|
x-internal: false
|
|
@@ -1183,19 +1197,50 @@ paths:
|
|
|
1183
1197
|
What the install creates depends on the template's contents, reported by
|
|
1184
1198
|
the response's `destination` envelope:
|
|
1185
1199
|
|
|
1186
|
-
- **Prompt-only templates** (
|
|
1187
|
-
immediately, disabled. `destination.resourceType` is
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1200
|
+
- **Prompt-only templates** (inline prompts and nothing else) create
|
|
1201
|
+
the MCP server immediately, disabled. `destination.resourceType` is
|
|
1202
|
+
`mcpservers`.
|
|
1203
|
+
- **Every other template** — one that packs tools, APIs, connections,
|
|
1204
|
+
Celigo Storage resources, upstream MCP connections or capability sets
|
|
1205
|
+
— hands off to the Integration installer: `destination.resourceType`
|
|
1206
|
+
is `integrations` and names an Integration in install mode (it
|
|
1207
|
+
carries the server's name; its setup page is titled *Install MCP
|
|
1208
|
+
server: name*), with an install step per packed connection and a
|
|
1209
|
+
terminal step that copies the resource files into that Integration's
|
|
1210
|
+
folder in Celigo Storage and creates the MCP server, disabled. The
|
|
1211
|
+
remaining refusals surface inside those steps, not on this request.
|
|
1212
|
+
On a connection step's save: 409 `MCP_TEMPLATE_CONNECTION_INCOMPATIBLE`
|
|
1213
|
+
when the template connection requires end-user credentials and the
|
|
1214
|
+
installer reuses an existing connection of a different connector
|
|
1215
|
+
type (only the type is compared — not the auth type or the end-user
|
|
1216
|
+
fields; a newly created connection never trips it; the terminal step
|
|
1217
|
+
re-checks the same rule as a backstop) — pick or create a connection
|
|
1218
|
+
of the template's type on that step. On the terminal step: 422
|
|
1219
|
+
`MCP_TEMPLATE_DEPENDENCY_MISSING` / `MCP_TEMPLATE_MEMBER_UNRESOLVED`
|
|
1220
|
+
(a packed API or connection, or a capability-set member, that nothing
|
|
1221
|
+
installed answers), the Celigo Storage refusals below, and 503
|
|
1222
|
+
`MCP_TEMPLATE_INSTALL_RETRYABLE` (transient). The remedy is the same
|
|
1223
|
+
for every one of them — fix the cause and retry that step, never
|
|
1224
|
+
this POST, which installs again.
|
|
1225
|
+
|
|
1226
|
+
The installed server carries what the template packed: tools and APIs
|
|
1227
|
+
(re-created in the companion Integration), prompts, resources, the
|
|
1228
|
+
upstream MCP connections with the publisher's selected proxied
|
|
1229
|
+
capabilities and overrides, which connections require end-user
|
|
1230
|
+
credentials, the capability sets re-pointed at the new server's own
|
|
1231
|
+
capabilities, the traffic policies, and Celigo as OAuth provider when
|
|
1232
|
+
the publisher used it. It carries no end user, group, role, grant,
|
|
1233
|
+
credential or network policy: the capability sets are created without
|
|
1234
|
+
assignments, and nobody can call the server until an owner or
|
|
1235
|
+
administrator grants access and enables it. A template published
|
|
1236
|
+
before the artifact widened installs tools and prompts only until its
|
|
1237
|
+
publisher re-exports it.
|
|
1193
1238
|
|
|
1194
1239
|
Integration templates do not install through this path — they use
|
|
1195
1240
|
`POST /v1/integrations/template/{_id}`. Each path rejects the other
|
|
1196
1241
|
class: this one returns 404 for a template that is not a published
|
|
1197
1242
|
MCP-server template, and the integration path rejects MCP-server
|
|
1198
|
-
templates with a 400 `invalid_template` error.
|
|
1243
|
+
templates with a 400 `invalid_template` error pointing at Upload MCP.
|
|
1199
1244
|
|
|
1200
1245
|
Every request that reaches the platform starts a new install — there is
|
|
1201
1246
|
no idempotency key, so retrying after a timeout or ambiguous failure
|
|
@@ -1206,9 +1251,11 @@ paths:
|
|
|
1206
1251
|
|
|
1207
1252
|
Requires the `install:published:template` permission.
|
|
1208
1253
|
x-celigo-ai-guidance:
|
|
1209
|
-
- Send an empty JSON object as the body.
|
|
1254
|
+
- Send an empty JSON object as the body. For every template beyond prompt-only (tools, APIs, connections, resources, upstream MCP connections or capability sets) connection mapping happens later, in the created Integration's install steps — never invent a connectionMap for this endpoint.
|
|
1210
1255
|
- Never retry this POST after a timeout or an ambiguous failure — a request that reached the platform already started an install, and a second request installs a duplicate.
|
|
1211
1256
|
- Branch the follow-up on destination.resourceType — "integrations" means install steps continue on the created Integration (its setup page); "mcpservers" means the disabled MCP server already exists and needs enabling and access before clients can use it.
|
|
1257
|
+
- The installed server's capability sets have no assignments and the server is disabled — tell the installer to review the connections (which ones need end-user credentials), review any proxied capabilities, grant access, then enable it.
|
|
1258
|
+
- A failure inside the created Integration's setup steps — a 409 on a connection step, a 422 / 503 on the terminal step — is fixed and retried on that step, never by sending this POST again.
|
|
1212
1259
|
parameters:
|
|
1213
1260
|
- name: _templateId
|
|
1214
1261
|
in: path
|
|
@@ -1255,7 +1302,7 @@ paths:
|
|
|
1255
1302
|
- integrations
|
|
1256
1303
|
x-enumDescriptions:
|
|
1257
1304
|
mcpservers: The disabled MCP server created directly from a prompt-only template
|
|
1258
|
-
integrations: The install-mode Integration created for a
|
|
1305
|
+
integrations: The install-mode Integration created for a template that packs tools, APIs, connections, resources, upstream MCP connections or capability sets
|
|
1259
1306
|
description: |-
|
|
1260
1307
|
Which resource type the install created — determines
|
|
1261
1308
|
where the caller continues the setup.
|
|
@@ -1300,15 +1347,24 @@ paths:
|
|
|
1300
1347
|
'422':
|
|
1301
1348
|
description: |-
|
|
1302
1349
|
The install was rejected before anything was created. As-built
|
|
1303
|
-
cases:
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1350
|
+
cases on this request: a packaged tool is missing or inaccessible
|
|
1351
|
+
(`invalid_template`); the template packs resource files and the
|
|
1352
|
+
installing account is a sandbox (`MCP_TEMPLATE_RESOURCE_UNAVAILABLE`
|
|
1353
|
+
naming `sandbox` — install into a production account instead); or,
|
|
1354
|
+
for a **prompt-only** template — the only class whose server is
|
|
1355
|
+
created on this request — `relativeURI` de-duplication exhausted
|
|
1356
|
+
its `-2`…`-100` suffixes (`invalid_value`: the account already
|
|
1357
|
+
holds 100 servers on that URI; delete or rename some before
|
|
1358
|
+
installing again). None of these are retryable unchanged — and
|
|
1359
|
+
never retry the POST blindly, since a request that reached the
|
|
1360
|
+
platform may already have installed something. For every other
|
|
1361
|
+
template the server is created by the Integration's terminal
|
|
1362
|
+
install step, so the same `invalid_value` exhaustion, the Storage
|
|
1363
|
+
refusals for packed resources (`MCP_TEMPLATE_STORAGE_UNAVAILABLE`
|
|
1364
|
+
when the account has no Celigo Storage,
|
|
1365
|
+
`MCP_TEMPLATE_STORAGE_PERMISSION_REQUIRED`) and the other
|
|
1366
|
+
terminal-step codes named in the description surface there, with
|
|
1367
|
+
the Integration already in place — retry that step, not this POST.
|
|
1312
1368
|
content:
|
|
1313
1369
|
application/json:
|
|
1314
1370
|
schema:
|
|
@@ -1320,12 +1376,12 @@ paths:
|
|
|
1320
1376
|
errors:
|
|
1321
1377
|
- code: invalid_value
|
|
1322
1378
|
message: Unable to generate a unique relative URI for the MCP server from /installed-mcp-server.
|
|
1323
|
-
|
|
1324
|
-
summary: Template
|
|
1379
|
+
sandboxResources:
|
|
1380
|
+
summary: Template packs resource files, installing account is a sandbox
|
|
1325
1381
|
value:
|
|
1326
1382
|
errors:
|
|
1327
|
-
- code:
|
|
1328
|
-
message:
|
|
1383
|
+
- code: MCP_TEMPLATE_RESOURCE_UNAVAILABLE
|
|
1384
|
+
message: Resource file sandbox is missing or cannot be exported.
|
|
1329
1385
|
/v1/mcpservers/{_id}/template:
|
|
1330
1386
|
get:
|
|
1331
1387
|
x-internal: false
|
|
@@ -1334,24 +1390,36 @@ paths:
|
|
|
1334
1390
|
- MCP Servers
|
|
1335
1391
|
summary: Export an MCP server as a template ZIP
|
|
1336
1392
|
description: |-
|
|
1337
|
-
Generates a template ZIP from the MCP server
|
|
1338
|
-
signed URL for
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1393
|
+
Generates a template ZIP from the MCP server (the **Download MCP**
|
|
1394
|
+
action) and returns a temporary signed URL for it. The ZIP carries the
|
|
1395
|
+
whole server as a secret-free manifest (`mcpserver.json`) plus what it
|
|
1396
|
+
depends on: tool and API attachments with their Tool and API documents
|
|
1397
|
+
(and their exports, imports, connections, scripts), inline prompts,
|
|
1398
|
+
the Celigo Storage files served as resources (bytes included),
|
|
1399
|
+
upstream MCP connections with the selected proxied items and
|
|
1400
|
+
overrides, which connections require end-user credentials, capability
|
|
1401
|
+
sets (`permissionSets`) as portable references, traffic `policies`,
|
|
1402
|
+
and whether Celigo is the OAuth identity provider. Never carried:
|
|
1403
|
+
credentials, API tokens, end users, groups, roles, grants, end users'
|
|
1404
|
+
own connections, network policies, request-log settings, the external
|
|
1405
|
+
OAuth issuer and client, `showInPublicRegistry`. The manifest sets
|
|
1406
|
+
`disabled: true`. A prompt-only server exports successfully.
|
|
1345
1407
|
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1408
|
+
The same ZIP feeds two paths: a Partner uploads it when publishing an
|
|
1409
|
+
MCP-server marketplace template (installed with
|
|
1410
|
+
`POST /v1/mcpservers/template/{_templateId}`); any account owner or
|
|
1411
|
+
administrator installs it directly into another account or environment
|
|
1412
|
+
with `POST /v1/mcpservers/template` after uploading it through
|
|
1413
|
+
`GET /v1/s3SignedURL` (the **Upload MCP** action). A ZIP exported
|
|
1414
|
+
before the artifact widened carries tools and prompts only — export
|
|
1415
|
+
again to include the rest.
|
|
1350
1416
|
|
|
1351
1417
|
The signed URL expires after about 60 seconds — download promptly, and
|
|
1352
1418
|
call the endpoint again for a fresh URL rather than storing this one.
|
|
1353
1419
|
|
|
1354
|
-
Requires the `create:mcpserver:template` permission
|
|
1420
|
+
Requires the `create:mcpserver:template` permission; a server that
|
|
1421
|
+
serves resources also needs read access to those files in Celigo
|
|
1422
|
+
Storage.
|
|
1355
1423
|
parameters:
|
|
1356
1424
|
- name: _id
|
|
1357
1425
|
in: path
|
|
@@ -1391,33 +1459,73 @@ paths:
|
|
|
1391
1459
|
value:
|
|
1392
1460
|
signedURL: https://s3.amazonaws.com/templates/mcp-export/69eb9fb5b4fc023618e490b8.zip?X-Amz-Expires=60
|
|
1393
1461
|
key: mcp-export/69eb9fb5b4fc023618e490b8.zip
|
|
1394
|
-
'
|
|
1462
|
+
'401':
|
|
1463
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
1464
|
+
'403':
|
|
1395
1465
|
description: |-
|
|
1396
|
-
The
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1466
|
+
The caller lacks the `create:mcpserver:template` permission
|
|
1467
|
+
(`forbidden`), or — when the server serves resources — Celigo
|
|
1468
|
+
Storage refused to read those files' metadata for the caller
|
|
1469
|
+
(`MCP_TEMPLATE_STORAGE_PERMISSION_REQUIRED`). The export raises
|
|
1470
|
+
that second code with the error store's shared message, which is
|
|
1471
|
+
phrased for the install ("…required to install this MCP
|
|
1472
|
+
template"); on this endpoint it means the download was refused
|
|
1473
|
+
before any archive was built — nothing was installed. Grant the
|
|
1474
|
+
caller read access to the server's resource files and retry.
|
|
1400
1475
|
content:
|
|
1401
1476
|
application/json:
|
|
1402
1477
|
schema:
|
|
1403
1478
|
$ref: '#/components/schemas/Error'
|
|
1404
1479
|
examples:
|
|
1405
|
-
|
|
1406
|
-
summary:
|
|
1480
|
+
forbidden:
|
|
1481
|
+
summary: The caller lacks the export permission
|
|
1407
1482
|
value:
|
|
1408
1483
|
errors:
|
|
1409
|
-
- code:
|
|
1410
|
-
message:
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1484
|
+
- code: forbidden
|
|
1485
|
+
message: You do not have permission to access this resource.
|
|
1486
|
+
storagePermission:
|
|
1487
|
+
summary: The server serves resources the caller cannot read
|
|
1488
|
+
value:
|
|
1489
|
+
errors:
|
|
1490
|
+
- code: MCP_TEMPLATE_STORAGE_PERMISSION_REQUIRED
|
|
1491
|
+
message: Celigo Storage file creation is required to install this MCP template.
|
|
1415
1492
|
'404':
|
|
1416
1493
|
$ref: '#/components/responses/404-not-found'
|
|
1494
|
+
'413':
|
|
1495
|
+
description: |-
|
|
1496
|
+
The resource files total more than the ZIP limit (32 MiB
|
|
1497
|
+
uncompressed). Remove or shrink resources, or export a server
|
|
1498
|
+
without them.
|
|
1499
|
+
content:
|
|
1500
|
+
application/json:
|
|
1501
|
+
schema:
|
|
1502
|
+
$ref: '#/components/schemas/Error'
|
|
1503
|
+
examples:
|
|
1504
|
+
zipTooLarge:
|
|
1505
|
+
value:
|
|
1506
|
+
errors:
|
|
1507
|
+
- code: MCP_TEMPLATE_ZIP_TOO_LARGE
|
|
1508
|
+
message: The MCP template zip exceeds the allowed size.
|
|
1417
1509
|
'422':
|
|
1418
1510
|
description: |-
|
|
1419
|
-
The export could not assemble a complete ZIP
|
|
1420
|
-
backing integration is missing or not accessible to
|
|
1511
|
+
The export could not assemble a complete ZIP: a tool, API,
|
|
1512
|
+
connection or backing integration is missing or not accessible to
|
|
1513
|
+
the caller (`invalid_template`); a capability set names a member
|
|
1514
|
+
that no longer exists on the server (`MCP_TEMPLATE_MEMBER_UNRESOLVED`,
|
|
1515
|
+
naming the set and the member); a resource file is missing,
|
|
1516
|
+
deleted, still uploading, or a folder (`MCP_TEMPLATE_RESOURCE_UNAVAILABLE`,
|
|
1517
|
+
naming the file — folders and skills are not carried); or a
|
|
1518
|
+
resource file exceeds 3 MiB (`MCP_TEMPLATE_RESOURCE_TOO_LARGE`,
|
|
1519
|
+
naming the file). Fix the named dependency, set or file, or export
|
|
1520
|
+
a server without it; retrying unchanged fails identically. The
|
|
1521
|
+
export never refuses on resource count: a server cannot be saved
|
|
1522
|
+
with more than 100 resources (`POST` and `PUT /v1/mcpservers`
|
|
1523
|
+
answer 422 `resource_invalid` on `resources`), so a saved server
|
|
1524
|
+
never meets the count cap. That refusal —
|
|
1525
|
+
`MCP_TEMPLATE_RESOURCE_TOO_LARGE` naming `resource count` — is
|
|
1526
|
+
raised by the ZIP's readers (the upload preview and both installs)
|
|
1527
|
+
and is reached only by a manifest edited by hand to declare more
|
|
1528
|
+
than 100.
|
|
1421
1529
|
content:
|
|
1422
1530
|
application/json:
|
|
1423
1531
|
schema:
|
|
@@ -1429,6 +1537,24 @@ paths:
|
|
|
1429
1537
|
errors:
|
|
1430
1538
|
- code: invalid_template
|
|
1431
1539
|
message: The MCP server template contains a missing or inaccessible tool dependency.
|
|
1540
|
+
memberUnresolved:
|
|
1541
|
+
summary: A capability set names a member the server no longer has
|
|
1542
|
+
value:
|
|
1543
|
+
errors:
|
|
1544
|
+
- code: MCP_TEMPLATE_MEMBER_UNRESOLVED
|
|
1545
|
+
message: Capability set Finance references 6ab130000000000000000a07, which cannot be installed.
|
|
1546
|
+
resourceUnavailable:
|
|
1547
|
+
summary: A resource file cannot be exported
|
|
1548
|
+
value:
|
|
1549
|
+
errors:
|
|
1550
|
+
- code: MCP_TEMPLATE_RESOURCE_UNAVAILABLE
|
|
1551
|
+
message: Resource file pricing-policy.pdf is missing or cannot be exported.
|
|
1552
|
+
resourceTooLarge:
|
|
1553
|
+
summary: A resource file exceeds 3 MiB
|
|
1554
|
+
value:
|
|
1555
|
+
errors:
|
|
1556
|
+
- code: MCP_TEMPLATE_RESOURCE_TOO_LARGE
|
|
1557
|
+
message: Resource file product-catalog.pdf exceeds the allowed size.
|
|
1432
1558
|
/v1/mcpservers/{_id}/dependencies:
|
|
1433
1559
|
get:
|
|
1434
1560
|
x-internal: false
|
|
@@ -4265,9 +4391,10 @@ components:
|
|
|
4265
4391
|
description: |-
|
|
4266
4392
|
Files from Celigo Storage exposed to MCP clients as MCP resources.
|
|
4267
4393
|
Each entry references a storage file by `_fileId`; the same file can
|
|
4268
|
-
appear only once
|
|
4269
|
-
|
|
4270
|
-
|
|
4394
|
+
appear only once, and a server holds at most 100 (a larger array is
|
|
4395
|
+
refused with 422 `resource_invalid`). Always returned in responses —
|
|
4396
|
+
servers created before resource support return an empty array. Not
|
|
4397
|
+
supported on sandbox servers.
|
|
4271
4398
|
x-celigo-ai-guidance:
|
|
4272
4399
|
- |-
|
|
4273
4400
|
Each resource exposes a Celigo Storage file to MCP clients.
|
package/dist/tool.yml
CHANGED
|
@@ -27851,6 +27851,18 @@ components:
|
|
|
27851
27851
|
IMPORTANT: Ensure the field is not being updated by other processes, as this could
|
|
27852
27852
|
cause records to be skipped unexpectedly. If multiple processes need to track exports,
|
|
27853
27853
|
use separate boolean fields for each process.
|
|
27854
|
+
- |-
|
|
27855
|
+
On a NetSuite saved-search export the run pins the set of records to flag when it
|
|
27856
|
+
starts and reads them from the front of the still-unflagged set, so records that
|
|
27857
|
+
become eligible during the run wait for the next run — the pattern to recommend over
|
|
27858
|
+
a type-`all` export whose flow sets the flag in a later NetSuite step. Correctness
|
|
27859
|
+
then rests on Group rows, not on the Batch size limit: with `netsuite.skipGrouping:
|
|
27860
|
+
false` (Group rows on, search sorted by Internal ID) every record of the pinned set
|
|
27861
|
+
exported exactly once at a batch size of 5, with no duplicates when two records
|
|
27862
|
+
became eligible mid-run (they waited for the next run); with Group rows
|
|
27863
|
+
off on a search that returns several rows per record, the rows of a record that fall
|
|
27864
|
+
after the page in which it was flagged are not exported and are not retried (83 of
|
|
27865
|
+
134 transaction lines at a batch size of 1, 117 of 134 at 5).
|
|
27854
27866
|
examples:
|
|
27855
27867
|
- isExported
|
|
27856
27868
|
- hasBeenSynced
|
|
@@ -36614,6 +36626,12 @@ components:
|
|
|
36614
36626
|
Set `true` for an ad-hoc RESTlet search (criteria and columns without a saved
|
|
36615
36627
|
search): grouping needs the search sorted by internal id, and an unsorted ad-hoc
|
|
36616
36628
|
search fails with `[search_not_sorted]`.
|
|
36629
|
+
- |-
|
|
36630
|
+
With export type `once`, keep this `false` on a search that returns several rows per
|
|
36631
|
+
record: `once` flags the record when the page holding its first row completes, and
|
|
36632
|
+
with `true` the record's remaining rows drop out of the later requests — at a batch
|
|
36633
|
+
size of 5, 17 of 134 transaction lines never exported. Grouped, the record is the
|
|
36634
|
+
whole transaction and every row is exported exactly once.
|
|
36617
36635
|
- 'For `exportSelect` / `refreshableSelect` dropdowns backed by a NetSuite RESTlet, set `skipGrouping: true`: the UI''s option mapper expects flat per-row results, and the platform otherwise wraps each row in its own grouping list (every option''s `label` then renders as `undefined`).'
|
|
36618
36636
|
statsOnly:
|
|
36619
36637
|
type: boolean
|
|
@@ -36835,6 +36853,22 @@ components:
|
|
|
36835
36853
|
and memory use per call; tune to the record's size. The RESTlet caps a call at 1000,
|
|
36836
36854
|
so a larger value acts as 1000. In a test run or preview the request is capped at the
|
|
36837
36855
|
export's `pageSize` (default 20) instead.
|
|
36856
|
+
x-celigo-ai-guidance:
|
|
36857
|
+
- |-
|
|
36858
|
+
Each request re-runs the saved search and returns the next slice by position, on
|
|
36859
|
+
the SuiteBundle and SuiteApp 2.0 RESTlets alike. Rows that enter the result set
|
|
36860
|
+
ahead of the position between two requests come back again — a contiguous block
|
|
36861
|
+
of duplicates equal to the rows that entered; rows that leave it are skipped with
|
|
36862
|
+
no error. A run whose rows fit in one request has no gap. The shift acts on
|
|
36863
|
+
positions, not on order: in the probes every row came back in one fixed per-row
|
|
36864
|
+
order (Internal ID, then line) on every run, and the inserted rows displaced them
|
|
36865
|
+
all the same. Export type `once` with `netsuite.skipGrouping: false` prevents it,
|
|
36866
|
+
because it pins the record set when the run starts.
|
|
36867
|
+
- |-
|
|
36868
|
+
Leave this blank unless a NetSuite time limit forced a smaller value: a smaller
|
|
36869
|
+
batch multiplies the request boundaries per run, and each one is exposed when
|
|
36870
|
+
the search's membership changes mid-run (an older record approved, a flag the
|
|
36871
|
+
search filters on reset).
|
|
36838
36872
|
examples:
|
|
36839
36873
|
- 100
|
|
36840
36874
|
- 200
|
package/package.json
CHANGED