@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 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
@@ -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 `Tool`s, then one `Prompt` entry per inline prompt.
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`
@@ -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`). Retrying with the same ZIP fails
1153
- the same way.
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** (no tools) create the MCP server
1187
- immediately, disabled. `destination.resourceType` is `mcpservers`.
1188
- - **Tool-bearing templates** hand off to the Integration installer:
1189
- `destination.resourceType` is `integrations` and names an Integration
1190
- in install mode, where connection mapping and the remaining install
1191
- steps continue. The MCP server is created — disabled — by the
1192
- Integration's terminal install step, after the tools are cloned.
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. Connection mapping for tool-bearing templates happens later, in the created Integration's install steps — never invent a connectionMap for this endpoint.
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 tool-bearing template
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: the template packages capabilities an MCP-server template
1304
- cannot carry (`invalid_template` — only tools and inline prompts
1305
- are portable), a packaged tool is missing or inaccessible
1306
- (`invalid_template`), or `relativeURI` de-duplication exhausted its
1307
- `-2`…`-100` suffixes (`invalid_value` — the account already holds
1308
- 100 servers on that URI; delete or rename some before installing
1309
- again). None of these are retryable unchanged — and never retry
1310
- the POST blindly, since a request that reached the platform may
1311
- already have installed something.
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
- unsupportedCapability:
1324
- summary: Template packages non-portable capabilities
1379
+ sandboxResources:
1380
+ summary: Template packs resource files, installing account is a sandbox
1325
1381
  value:
1326
1382
  errors:
1327
- - code: invalid_template
1328
- message: 'Installing an MCP server supports only tools and prompts. Unsupported: apis, resources.'
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 and returns a temporary
1338
- signed URL for downloading it. The ZIP contains the server document,
1339
- its inline prompts, its tools, and the resources those tools depend on
1340
- (exports, imports, connections, scripts) — a prompt-only server (no
1341
- tools) exports successfully. The ZIP is the artifact a publisher
1342
- uploads when authoring an MCP-server marketplace template; installing
1343
- that template recreates the server via
1344
- `POST /v1/mcpservers/template/{_templateId}`.
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
- Only tools and inline prompts are portable. A server that publishes
1347
- APIs (`apis[]`) or file resources (`resources[]`) fails the export up
1348
- front with a 400 `invalid_template` error — no ZIP is generated;
1349
- nothing is stripped to make it succeed.
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
- '400':
1462
+ '401':
1463
+ $ref: '#/components/responses/401-unauthorized'
1464
+ '403':
1395
1465
  description: |-
1396
- The server publishes capabilities a template cannot carry — only
1397
- tools and inline prompts are portable. Remove the APIs / file
1398
- resources (or export a server without them); retrying unchanged
1399
- fails identically.
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
- unsupportedCapability:
1406
- summary: Server publishes APIs or file resources
1480
+ forbidden:
1481
+ summary: The caller lacks the export permission
1407
1482
  value:
1408
1483
  errors:
1409
- - code: invalid_template
1410
- message: 'Installing an MCP server supports only tools and prompts. Unsupported: apis, resources.'
1411
- '401':
1412
- $ref: '#/components/responses/401-unauthorized'
1413
- '403':
1414
- $ref: '#/components/responses/403-forbidden'
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 — a tool or its
1420
- backing integration is missing or not accessible to the caller.
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. Always returned in responses — servers created
4269
- before resource support return an empty array. Not supported on
4270
- sandbox servers.
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.217",
3
+ "version": "0.2.219",
4
4
  "private": false,
5
5
  "description": "Public OpenAPI bundles (dist/) and the celigo-cli lint schema pack (schemas.json).",
6
6
  "keywords": [
package/schemas.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "provenance": {
3
3
  "repo": "celigo/integrator-api-specs",
4
- "iasCommit": "d89238ad",
4
+ "iasCommit": "adbfb1b8",
5
5
  "generatedAt": "2026-11-02"
6
6
  },
7
7
  "roots": {