@celigo/api-specs 0.2.169 → 0.2.171
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/ai-agent.yml +20 -201
- package/dist/audit.yml +82 -19
- package/dist/connection.yml +6 -3
- package/dist/export.yml +63 -24
- package/dist/fileserver.yml +59 -8
- package/dist/flow.yml +6 -3
- package/dist/guardrail.yml +22 -18
- package/dist/import.yml +56 -31
- package/dist/networkpolicy.yml +4 -0
- package/dist/tool.yml +114 -53
- package/package.json +1 -1
- package/schemas.json +1317 -1328
package/dist/fileserver.yml
CHANGED
|
@@ -9,7 +9,9 @@ info:
|
|
|
9
9
|
(`GET`/`PUT /v1/mft/fileserver`) and the partner accounts that log in to it
|
|
10
10
|
(`/v1/mft/fileserver/accounts`), each chrooted to a Celigo Storage folder. Requires a
|
|
11
11
|
full-access API token — folder-path-scoped and other restricted tokens answer 403
|
|
12
|
-
FILESERVER_FULL_ACCESS_TOKEN_REQUIRED on every route
|
|
12
|
+
FILESERVER_FULL_ACCESS_TOKEN_REQUIRED on every route, and so does every personal access
|
|
13
|
+
token, whatever its creator's role. Only the account owner and administrators may manage
|
|
14
|
+
the server.
|
|
13
15
|
servers:
|
|
14
16
|
- url: https://api.integrator.io
|
|
15
17
|
description: Production (US / default region)
|
|
@@ -24,7 +26,7 @@ security:
|
|
|
24
26
|
tags:
|
|
25
27
|
- name: File Server
|
|
26
28
|
description: |-
|
|
27
|
-
Each environment can run a Celigo-hosted SFTP file server. Enabling it claims a permanent `identifier` that becomes part of every partner login (`<username>@<identifier>`) and exposes the shared endpoint and host-key fingerprints partners need to connect. Partner accounts are created under the server, each with its own password and a Celigo Storage folder that becomes the account's root, so files a partner uploads appear in that folder and files placed there are what the partner can download. The account's license must include the file server add-on (`fileserver.enabled`), and every call needs a full-access API token.
|
|
29
|
+
Each environment can run a Celigo-hosted SFTP file server. Enabling it claims a permanent `identifier` that becomes part of every partner login (`<username>@<identifier>`) and exposes the shared endpoint and host-key fingerprints partners need to connect. Partner accounts are created under the server, each with its own password and a Celigo Storage folder that becomes the account's root, so files a partner uploads appear in that folder and files placed there are what the partner can download. The account's license must include the file server add-on (`fileserver.enabled`), and every call needs a full-access API token: scoped tokens and personal access tokens are refused, and so are manage, monitor and integration-level users.
|
|
28
30
|
|
|
29
31
|
## File server and account schemas
|
|
30
32
|
|
|
@@ -87,7 +89,11 @@ paths:
|
|
|
87
89
|
'401':
|
|
88
90
|
$ref: '#/components/responses/401-unauthorized'
|
|
89
91
|
'403':
|
|
90
|
-
description:
|
|
92
|
+
description: |-
|
|
93
|
+
The token is not a full-access API token (`FILESERVER_FULL_ACCESS_TOKEN_REQUIRED`). A
|
|
94
|
+
personal access token is refused the same way as a scoped token, and a manage, monitor
|
|
95
|
+
or integration-level user gets `access_restricted`: only the owner and administrators
|
|
96
|
+
manage the file server.
|
|
91
97
|
content:
|
|
92
98
|
application/json:
|
|
93
99
|
schema:
|
|
@@ -98,6 +104,12 @@ paths:
|
|
|
98
104
|
errors:
|
|
99
105
|
- code: FILESERVER_FULL_ACCESS_TOKEN_REQUIRED
|
|
100
106
|
message: The file server management APIs require an API token with full access
|
|
107
|
+
notAdministrator:
|
|
108
|
+
summary: A manage, monitor or integration-level user
|
|
109
|
+
value:
|
|
110
|
+
errors:
|
|
111
|
+
- code: access_restricted
|
|
112
|
+
message: The role which you are associated with doesn't have the required permissions to perform the action.
|
|
101
113
|
'404':
|
|
102
114
|
description: The environment is entitled but its server has never been enabled (`FILESERVER_NOT_FOUND`).
|
|
103
115
|
content:
|
|
@@ -220,7 +232,7 @@ paths:
|
|
|
220
232
|
description: |-
|
|
221
233
|
The token is not a full-access API token (`FILESERVER_FULL_ACCESS_TOKEN_REQUIRED`),
|
|
222
234
|
the account's license lacks the file server add-on or the environment is a
|
|
223
|
-
sandbox (`FILESERVER_NOT_ENTITLED`).
|
|
235
|
+
sandbox (`FILESERVER_NOT_ENTITLED`). A personal access token is refused the same way as a scoped token, and a manage, monitor or integration-level user gets `access_restricted`: only the owner and administrators manage the file server.
|
|
224
236
|
content:
|
|
225
237
|
application/json:
|
|
226
238
|
schema:
|
|
@@ -231,6 +243,12 @@ paths:
|
|
|
231
243
|
errors:
|
|
232
244
|
- code: FILESERVER_NOT_ENTITLED
|
|
233
245
|
message: The file server add-on is not enabled for this account
|
|
246
|
+
notAdministrator:
|
|
247
|
+
summary: A manage, monitor or integration-level user
|
|
248
|
+
value:
|
|
249
|
+
errors:
|
|
250
|
+
- code: access_restricted
|
|
251
|
+
message: The role which you are associated with doesn't have the required permissions to perform the action.
|
|
234
252
|
'404':
|
|
235
253
|
description: A disable was sent for an environment whose server was never enabled (`FILESERVER_NOT_FOUND`).
|
|
236
254
|
content:
|
|
@@ -396,7 +414,11 @@ paths:
|
|
|
396
414
|
'401':
|
|
397
415
|
$ref: '#/components/responses/401-unauthorized'
|
|
398
416
|
'403':
|
|
399
|
-
description:
|
|
417
|
+
description: |-
|
|
418
|
+
The token is not a full-access API token (`FILESERVER_FULL_ACCESS_TOKEN_REQUIRED`), or
|
|
419
|
+
the environment is a sandbox (`FILESERVER_NOT_ENTITLED`). A personal access token is
|
|
420
|
+
refused the same way as a scoped token, and a manage, monitor or integration-level user
|
|
421
|
+
gets `access_restricted`: only the owner and administrators manage the file server.
|
|
400
422
|
content:
|
|
401
423
|
application/json:
|
|
402
424
|
schema:
|
|
@@ -407,6 +429,12 @@ paths:
|
|
|
407
429
|
errors:
|
|
408
430
|
- code: FILESERVER_FULL_ACCESS_TOKEN_REQUIRED
|
|
409
431
|
message: The file server management APIs require an API token with full access
|
|
432
|
+
notAdministrator:
|
|
433
|
+
summary: A manage, monitor or integration-level user
|
|
434
|
+
value:
|
|
435
|
+
errors:
|
|
436
|
+
- code: access_restricted
|
|
437
|
+
message: The role which you are associated with doesn't have the required permissions to perform the action.
|
|
410
438
|
'422':
|
|
411
439
|
description: The environment's server has never been enabled (`FILESERVER_NOT_ENABLED`); a disabled server is still manageable.
|
|
412
440
|
content:
|
|
@@ -487,7 +515,7 @@ paths:
|
|
|
487
515
|
The token is not a full-access API token (`FILESERVER_FULL_ACCESS_TOKEN_REQUIRED`);
|
|
488
516
|
the license lacks the add-on or the environment is a sandbox
|
|
489
517
|
(`FILESERVER_NOT_ENTITLED`); or the environment already holds
|
|
490
|
-
`limits.maxAccounts` enabled accounts (`FILESERVER_MAX_ACCOUNTS_EXCEEDED`).
|
|
518
|
+
`limits.maxAccounts` enabled accounts (`FILESERVER_MAX_ACCOUNTS_EXCEEDED`). A personal access token is refused the same way as a scoped token, and a manage, monitor or integration-level user gets `access_restricted`: only the owner and administrators manage the file server.
|
|
491
519
|
content:
|
|
492
520
|
application/json:
|
|
493
521
|
schema:
|
|
@@ -498,6 +526,12 @@ paths:
|
|
|
498
526
|
errors:
|
|
499
527
|
- code: FILESERVER_MAX_ACCOUNTS_EXCEEDED
|
|
500
528
|
message: The maximum number of enabled accounts for this environment has been reached
|
|
529
|
+
notAdministrator:
|
|
530
|
+
summary: A manage, monitor or integration-level user
|
|
531
|
+
value:
|
|
532
|
+
errors:
|
|
533
|
+
- code: access_restricted
|
|
534
|
+
message: The role which you are associated with doesn't have the required permissions to perform the action.
|
|
501
535
|
'409':
|
|
502
536
|
description: Another account in this environment already has that username, enabled or not (`FILESERVER_USERNAME_TAKEN`).
|
|
503
537
|
content:
|
|
@@ -688,7 +722,7 @@ paths:
|
|
|
688
722
|
The token is not a full-access API token (`FILESERVER_FULL_ACCESS_TOKEN_REQUIRED`);
|
|
689
723
|
the license lacks the add-on or the environment is a sandbox
|
|
690
724
|
(`FILESERVER_NOT_ENTITLED`); or re-enabling would exceed `limits.maxAccounts`
|
|
691
|
-
(`FILESERVER_MAX_ACCOUNTS_EXCEEDED`).
|
|
725
|
+
(`FILESERVER_MAX_ACCOUNTS_EXCEEDED`). A personal access token is refused the same way as a scoped token, and a manage, monitor or integration-level user gets `access_restricted`: only the owner and administrators manage the file server.
|
|
692
726
|
content:
|
|
693
727
|
application/json:
|
|
694
728
|
schema:
|
|
@@ -699,6 +733,12 @@ paths:
|
|
|
699
733
|
errors:
|
|
700
734
|
- code: FILESERVER_MAX_ACCOUNTS_EXCEEDED
|
|
701
735
|
message: The maximum number of enabled accounts for this environment has been reached
|
|
736
|
+
notAdministrator:
|
|
737
|
+
summary: A manage, monitor or integration-level user
|
|
738
|
+
value:
|
|
739
|
+
errors:
|
|
740
|
+
- code: access_restricted
|
|
741
|
+
message: The role which you are associated with doesn't have the required permissions to perform the action.
|
|
702
742
|
'404':
|
|
703
743
|
$ref: '#/components/responses/404-account-not-found'
|
|
704
744
|
'409':
|
|
@@ -1407,7 +1447,12 @@ components:
|
|
|
1407
1447
|
value:
|
|
1408
1448
|
message: Bearer Authentication Failed
|
|
1409
1449
|
403-full-access-required:
|
|
1410
|
-
description:
|
|
1450
|
+
description: |-
|
|
1451
|
+
The token is not a full-access API token (`FILESERVER_FULL_ACCESS_TOKEN_REQUIRED`) --
|
|
1452
|
+
a scoped API token, or any personal access token, which never counts as full access --
|
|
1453
|
+
or the license lacks the add-on / the environment is a sandbox (`FILESERVER_NOT_ENTITLED`).
|
|
1454
|
+
A manage, monitor or integration-level user is refused with `access_restricted`: only the
|
|
1455
|
+
account owner and administrators manage the file server.
|
|
1411
1456
|
content:
|
|
1412
1457
|
application/json:
|
|
1413
1458
|
schema:
|
|
@@ -1418,6 +1463,12 @@ components:
|
|
|
1418
1463
|
errors:
|
|
1419
1464
|
- code: FILESERVER_FULL_ACCESS_TOKEN_REQUIRED
|
|
1420
1465
|
message: The file server management APIs require an API token with full access
|
|
1466
|
+
notAdministrator:
|
|
1467
|
+
summary: A manage, monitor or integration-level user
|
|
1468
|
+
value:
|
|
1469
|
+
errors:
|
|
1470
|
+
- code: access_restricted
|
|
1471
|
+
message: The role which you are associated with doesn't have the required permissions to perform the action.
|
|
1421
1472
|
404-account-not-found:
|
|
1422
1473
|
description: No account with this id in the caller's environment, or the id is not a valid identifier (`FILESERVER_ACCOUNT_NOT_FOUND`).
|
|
1423
1474
|
content:
|
package/dist/flow.yml
CHANGED
|
@@ -6637,9 +6637,12 @@ components:
|
|
|
6637
6637
|
source:
|
|
6638
6638
|
type: string
|
|
6639
6639
|
description: |-
|
|
6640
|
-
Step stage or system the error came from, such as `application`
|
|
6641
|
-
|
|
6642
|
-
`
|
|
6640
|
+
Step stage or system the error came from, such as `application`, `connection`, a hook
|
|
6641
|
+
(`pre_save_page_hook`, `post_response_map_hook`) or a filter (`output_filter`).
|
|
6642
|
+
`application` covers the step's whole call to the external system, not only its answer:
|
|
6643
|
+
besides errors the destination returned, it marks a request that never got an answer,
|
|
6644
|
+
such as a URL template that failed to render (`handlebars_template_parse_error`) or a
|
|
6645
|
+
refused connection, so read `code` and `message` with it. `GET /v1/errors/filterMetadata`
|
|
6643
6646
|
lists the source values the errors filter accepts.
|
|
6644
6647
|
examples:
|
|
6645
6648
|
- application
|
package/dist/guardrail.yml
CHANGED
|
@@ -594,9 +594,9 @@ components:
|
|
|
594
594
|
LLM configuration for an `ai_agent` guardrail — which provider and model evaluate each
|
|
595
595
|
record, with instructions, parameter tuning, and output format. Guardrails never invoke
|
|
596
596
|
tools, so unlike an AI agent import no block here accepts a `tools` array. MCP `prompts`
|
|
597
|
-
and `resources` are accepted on save
|
|
598
|
-
|
|
599
|
-
|
|
597
|
+
and `resources` are accepted on save but never used at run time, so put the policy the
|
|
598
|
+
guardrail must apply in its instructions. Providers come in two families with two
|
|
599
|
+
configuration formats:
|
|
600
600
|
|
|
601
601
|
- **Built-in providers** — each has its own configuration block.
|
|
602
602
|
- **openai**: OpenAI models (GPT-4.1, GPT-5, etc.). Configure via the `openai` object.
|
|
@@ -761,7 +761,7 @@ components:
|
|
|
761
761
|
type: array
|
|
762
762
|
description: |-
|
|
763
763
|
MCP prompt entries saved with a catalog-provider guardrail (generic flat format).
|
|
764
|
-
Each entry references one MCP connection and
|
|
764
|
+
Each entry references one MCP connection and prompt names; a guardrail's run never fetches them.
|
|
765
765
|
items:
|
|
766
766
|
type: object
|
|
767
767
|
properties:
|
|
@@ -782,7 +782,7 @@ components:
|
|
|
782
782
|
description: Connection to the MCP server that exposes the prompts.
|
|
783
783
|
allowedPrompts:
|
|
784
784
|
type: array
|
|
785
|
-
description: Prompt names the
|
|
785
|
+
description: Prompt names saved with the entry; a guardrail's run never fetches them.
|
|
786
786
|
items:
|
|
787
787
|
type: string
|
|
788
788
|
x-celigo-ai-guidance:
|
|
@@ -1039,7 +1039,7 @@ components:
|
|
|
1039
1039
|
type: array
|
|
1040
1040
|
description: |-
|
|
1041
1041
|
MCP prompt entries saved with the guardrail. Each item references one
|
|
1042
|
-
MCP connection and
|
|
1042
|
+
MCP connection and prompt names; a guardrail's run never fetches them.
|
|
1043
1043
|
items:
|
|
1044
1044
|
type: object
|
|
1045
1045
|
properties:
|
|
@@ -1061,7 +1061,7 @@ components:
|
|
|
1061
1061
|
description: Connection to the MCP server.
|
|
1062
1062
|
allowedPrompts:
|
|
1063
1063
|
type: array
|
|
1064
|
-
description: Prompt names
|
|
1064
|
+
description: Prompt names saved with the entry; a guardrail's run never fetches them.
|
|
1065
1065
|
items:
|
|
1066
1066
|
type: string
|
|
1067
1067
|
resources:
|
|
@@ -1228,7 +1228,7 @@ components:
|
|
|
1228
1228
|
type: array
|
|
1229
1229
|
description: |-
|
|
1230
1230
|
MCP prompt entries saved with a Gemini guardrail. Each item references one
|
|
1231
|
-
MCP connection and
|
|
1231
|
+
MCP connection and prompt names; a guardrail's run never fetches them.
|
|
1232
1232
|
items:
|
|
1233
1233
|
type: object
|
|
1234
1234
|
properties:
|
|
@@ -1250,7 +1250,7 @@ components:
|
|
|
1250
1250
|
description: Connection to the MCP server.
|
|
1251
1251
|
allowedPrompts:
|
|
1252
1252
|
type: array
|
|
1253
|
-
description: Prompt names
|
|
1253
|
+
description: Prompt names saved with the entry; a guardrail's run never fetches them.
|
|
1254
1254
|
items:
|
|
1255
1255
|
type: string
|
|
1256
1256
|
resources:
|
|
@@ -1450,7 +1450,7 @@ components:
|
|
|
1450
1450
|
type: array
|
|
1451
1451
|
description: |-
|
|
1452
1452
|
MCP prompt entries saved with a Claude guardrail. Each item references one
|
|
1453
|
-
MCP connection and
|
|
1453
|
+
MCP connection and prompt names; a guardrail's run never fetches them.
|
|
1454
1454
|
items:
|
|
1455
1455
|
type: object
|
|
1456
1456
|
properties:
|
|
@@ -1472,7 +1472,7 @@ components:
|
|
|
1472
1472
|
description: Connection to the MCP server.
|
|
1473
1473
|
allowedPrompts:
|
|
1474
1474
|
type: array
|
|
1475
|
-
description: Prompt names
|
|
1475
|
+
description: Prompt names saved with the entry; a guardrail's run never fetches them.
|
|
1476
1476
|
items:
|
|
1477
1477
|
type: string
|
|
1478
1478
|
resources:
|
|
@@ -1544,10 +1544,9 @@ components:
|
|
|
1544
1544
|
(`aiAgent.tools`, `aiAgent.openai.tools`, `aiAgent.litellm._overrides.gemini.tools`,
|
|
1545
1545
|
`aiAgent.litellm._overrides.anthropic.tools`) fails the save with 422
|
|
1546
1546
|
`guardrail_tools_not_allowed`. MCP `prompts` and `resources` are still accepted on
|
|
1547
|
-
save, but
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
instructions.
|
|
1547
|
+
save, but a guardrail's run never uses them: it gives the model only its instructions
|
|
1548
|
+
and input, whether the MCP server can be reached or not. Put the policy the guardrail
|
|
1549
|
+
must apply in its instructions.
|
|
1551
1550
|
properties:
|
|
1552
1551
|
type:
|
|
1553
1552
|
type: string
|
|
@@ -2177,7 +2176,8 @@ components:
|
|
|
2177
2176
|
mapping:
|
|
2178
2177
|
type: object
|
|
2179
2178
|
description: |-
|
|
2180
|
-
Mapper 1.0 input mapping that selects
|
|
2179
|
+
Mapper 1.0 input mapping that selects what is evaluated: a field mapped
|
|
2180
|
+
to `text`, or an object mapped to `record` (evaluated as its JSON).
|
|
2181
2181
|
Served only when populated — a guardrail created without one has no
|
|
2182
2182
|
`mapping` in responses, and evaluates the whole record (or the
|
|
2183
2183
|
record's own top-level `text` field, when it has one).
|
|
@@ -2353,7 +2353,8 @@ components:
|
|
|
2353
2353
|
record field to the `text` input (e.g.
|
|
2354
2354
|
`{"fields": [{"extract": "employeeSummary", "generate": "text"}]}`);
|
|
2355
2355
|
only that field is evaluated, and fields outside it are neither
|
|
2356
|
-
scanned nor masked.
|
|
2356
|
+
scanned nor masked. A mapping can also generate `record`, an object
|
|
2357
|
+
evaluated as its JSON. Optional — when omitted the whole record is
|
|
2357
2358
|
evaluated, serialized as JSON, unless the record has its own
|
|
2358
2359
|
top-level `text` field, which is then evaluated alone. The server
|
|
2359
2360
|
serves this field only when populated.
|
|
@@ -2362,10 +2363,13 @@ components:
|
|
|
2362
2363
|
Send the input selection here as `mapping`, not as Mapper 2.0
|
|
2363
2364
|
`mappings` rows. Map the field explicitly when records carry their
|
|
2364
2365
|
own `text` field.
|
|
2366
|
+
- |-
|
|
2367
|
+
A guardrail keeps no conversation history, so a mapped
|
|
2368
|
+
`conversationHistoryId` changes nothing.
|
|
2365
2369
|
properties:
|
|
2366
2370
|
fields:
|
|
2367
2371
|
type: array
|
|
2368
|
-
description: Field-level mapping entries; `generate` targets the guardrail input (
|
|
2372
|
+
description: Field-level mapping entries; `generate` targets the guardrail input (`text`, or `record` for an object).
|
|
2369
2373
|
items:
|
|
2370
2374
|
$ref: '#/components/schemas/MappingField'
|
|
2371
2375
|
lists:
|
package/dist/import.yml
CHANGED
|
@@ -1572,12 +1572,25 @@ components:
|
|
|
1572
1572
|
Use `assistant_graphql` as the default value if there is a connector available
|
|
1573
1573
|
for the system and the connector supports GraphQL.
|
|
1574
1574
|
- |-
|
|
1575
|
-
The value selects the editor
|
|
1575
|
+
The value selects the editor and changes one thing in a GraphQL request: under
|
|
1576
|
+
`graph_ql` and `assistant_graphql`, a `variables` member stored as a JSON string is
|
|
1577
|
+
parsed and sent as an object, while under `http` it is sent as the string; an object
|
|
1578
|
+
`variables` goes out unchanged under `graph_ql` and `http`. Live-verified 2026-10-22 with import
|
|
1579
|
+
previews against an echo endpoint: a string `variables` under `graph_ql`,
|
|
1580
|
+
`assistant_graphql` and `http`, and an object `variables` under `graph_ql` and `http`.
|
|
1581
|
+
- |-
|
|
1582
|
+
Each `http.body[]` entry stays a template STRING — a
|
|
1576
1583
|
stringified `{"query", "operationName", "variables"}` envelope, one per operation for the
|
|
1577
1584
|
update/create pair (`http.body[0]` / `http.body[1]`); never an object entry, which is stored
|
|
1578
1585
|
as-is and does not render. The GraphQL form parses that string to show each member in its
|
|
1579
1586
|
own field and re-stringifies it on save; an entry that is not parseable JSON at rest renders
|
|
1580
|
-
those fields empty, so keep templated variables inside a JSON string value.
|
|
1587
|
+
those fields empty, so keep templated variables inside a JSON string value. When
|
|
1588
|
+
`variables` is itself a JSON string, the string values inside it sit two JSON levels
|
|
1589
|
+
deep: write them as `\"{{jsonEncode record.x}}\"` with double braces, because a plain
|
|
1590
|
+
`{{record.x}}`, or a triple-brace `jsonEncode`, fails a record whose value holds a quote
|
|
1591
|
+
with 422 `invalid_json` before the request is sent. An object or array there is
|
|
1592
|
+
`{{jsonSerialize record.x}}`, also with double braces; `{{{jsonSerialize record.x}}}`
|
|
1593
|
+
fails the same way (live-verified 2026-10-22).
|
|
1581
1594
|
- |-
|
|
1582
1595
|
Create GraphQL imports on a `graph_ql` connection (or a connector connection bound to its
|
|
1583
1596
|
GraphQL API): that setup offers the Form view toggle between the GraphQL editor and the
|
|
@@ -2394,13 +2407,20 @@ components:
|
|
|
2394
2407
|
|
|
2395
2408
|
Each entry is a DOT-PATH STRING, or null for an operation
|
|
2396
2409
|
with no ID path configured. When not specified, the platform
|
|
2397
|
-
looks for standard `id` or `_id` fields automatically.
|
|
2410
|
+
looks for standard `id` or `_id` fields automatically. When
|
|
2411
|
+
set, a response with no value at the path fails the record
|
|
2412
|
+
with `missing_id`, quoting the response.
|
|
2398
2413
|
x-celigo-ai-guidance:
|
|
2399
2414
|
- |-
|
|
2400
2415
|
Common LLM mistake:
|
|
2401
2416
|
splitting a single dot-path like ``"data.id"`` into array segments ``["data",
|
|
2402
2417
|
"id"]`` — DO NOT do this.
|
|
2403
2418
|
See the ``response`` object docs above.
|
|
2419
|
+
- |-
|
|
2420
|
+
For a GraphQL mutation, point it at the id only a successful call returns
|
|
2421
|
+
(``["data.customerCreate.customer.id"]``): a 200 that carries top-level ``errors``
|
|
2422
|
+
or the mutation's ``userErrors`` then fails the record with ``missing_id`` instead
|
|
2423
|
+
of counting as written. Live-verified 2026-10-22 against an echo endpoint.
|
|
2404
2424
|
examples:
|
|
2405
2425
|
- - id
|
|
2406
2426
|
- - data.id
|
|
@@ -2474,11 +2494,23 @@ components:
|
|
|
2474
2494
|
available, set both — the platform evaluates ``successPath``
|
|
2475
2495
|
first and falls through to ``failPath`` only when the
|
|
2476
2496
|
success check is inconclusive.
|
|
2497
|
+
|
|
2498
|
+
Without ``failValues``, a truthy value at the path fails
|
|
2499
|
+
the response. A path that resolves to an array matches only
|
|
2500
|
+
when the array has exactly one element.
|
|
2501
|
+
x-celigo-ai-guidance:
|
|
2502
|
+
- |-
|
|
2503
|
+
A GraphQL API usually reports a failed mutation with HTTP 200 and an ``errors`` array, which
|
|
2504
|
+
counts as written when no rule catches it. ``failPath: ["errors"]`` fails the record
|
|
2505
|
+
for one error and lets two or more through; use ``["errors[0].message"]`` with
|
|
2506
|
+
``errorPath: "errors[0].message"`` so the record fails with the server's message.
|
|
2507
|
+
Live-verified 2026-10-22 with import runs against an echo endpoint.
|
|
2477
2508
|
examples:
|
|
2478
2509
|
- - error
|
|
2479
2510
|
- - success
|
|
2480
2511
|
- - error
|
|
2481
2512
|
- error
|
|
2513
|
+
- - errors[0].message
|
|
2482
2514
|
failValues:
|
|
2483
2515
|
type: array
|
|
2484
2516
|
items:
|
|
@@ -9642,7 +9674,7 @@ components:
|
|
|
9642
9674
|
x-enumDescriptions:
|
|
9643
9675
|
text: Free-form text response from the model.
|
|
9644
9676
|
json_schema: Structured JSON output conforming to a defined schema.
|
|
9645
|
-
blob:
|
|
9677
|
+
blob: Image generation — the run calls the image generation tool and returns the stored image's `blobKey`, not `_text` or `_json`.
|
|
9646
9678
|
default: text
|
|
9647
9679
|
description: Output format type.
|
|
9648
9680
|
schemaMode:
|
|
@@ -9864,11 +9896,6 @@ components:
|
|
|
9864
9896
|
an object without a non-empty name fails with a
|
|
9865
9897
|
missing-required-field error. String entries are the
|
|
9866
9898
|
legacy form and stay valid.
|
|
9867
|
-
allowedPrompts:
|
|
9868
|
-
type: array
|
|
9869
|
-
description: Specific prompts to allow from the MCP server (used for MCP prompt entries; all if omitted).
|
|
9870
|
-
items:
|
|
9871
|
-
type: string
|
|
9872
9899
|
tool:
|
|
9873
9900
|
type: object
|
|
9874
9901
|
description: |
|
|
@@ -10011,7 +10038,7 @@ components:
|
|
|
10011
10038
|
x-enumDescriptions:
|
|
10012
10039
|
text: Free-form text response from the model.
|
|
10013
10040
|
json_schema: Structured JSON output conforming to a defined schema.
|
|
10014
|
-
blob:
|
|
10041
|
+
blob: Image generation — the run returns the stored image's `blobKey`, not `_text` or `_json`.
|
|
10015
10042
|
default: text
|
|
10016
10043
|
schemaMode:
|
|
10017
10044
|
type: string
|
|
@@ -10180,11 +10207,6 @@ components:
|
|
|
10180
10207
|
description: Display description shown for the tool.
|
|
10181
10208
|
required:
|
|
10182
10209
|
- name
|
|
10183
|
-
allowedPrompts:
|
|
10184
|
-
type: array
|
|
10185
|
-
description: Specific prompts to allow from the MCP server (used for MCP prompt entries; all if omitted).
|
|
10186
|
-
items:
|
|
10187
|
-
type: string
|
|
10188
10210
|
tool:
|
|
10189
10211
|
type: object
|
|
10190
10212
|
description: Reference to a Celigo Tool resource, used when type is "tool".
|
|
@@ -10697,9 +10719,9 @@ components:
|
|
|
10697
10719
|
LLM configuration for an `ai_agent` guardrail — which provider and model evaluate each
|
|
10698
10720
|
record, with instructions, parameter tuning, and output format. Guardrails never invoke
|
|
10699
10721
|
tools, so unlike an AI agent import no block here accepts a `tools` array. MCP `prompts`
|
|
10700
|
-
and `resources` are accepted on save
|
|
10701
|
-
|
|
10702
|
-
|
|
10722
|
+
and `resources` are accepted on save but never used at run time, so put the policy the
|
|
10723
|
+
guardrail must apply in its instructions. Providers come in two families with two
|
|
10724
|
+
configuration formats:
|
|
10703
10725
|
|
|
10704
10726
|
- **Built-in providers** — each has its own configuration block.
|
|
10705
10727
|
- **openai**: OpenAI models (GPT-4.1, GPT-5, etc.). Configure via the `openai` object.
|
|
@@ -10864,7 +10886,7 @@ components:
|
|
|
10864
10886
|
type: array
|
|
10865
10887
|
description: |-
|
|
10866
10888
|
MCP prompt entries saved with a catalog-provider guardrail (generic flat format).
|
|
10867
|
-
Each entry references one MCP connection and
|
|
10889
|
+
Each entry references one MCP connection and prompt names; a guardrail's run never fetches them.
|
|
10868
10890
|
items:
|
|
10869
10891
|
type: object
|
|
10870
10892
|
properties:
|
|
@@ -10885,7 +10907,7 @@ components:
|
|
|
10885
10907
|
description: Connection to the MCP server that exposes the prompts.
|
|
10886
10908
|
allowedPrompts:
|
|
10887
10909
|
type: array
|
|
10888
|
-
description: Prompt names the
|
|
10910
|
+
description: Prompt names saved with the entry; a guardrail's run never fetches them.
|
|
10889
10911
|
items:
|
|
10890
10912
|
type: string
|
|
10891
10913
|
x-celigo-ai-guidance:
|
|
@@ -11142,7 +11164,7 @@ components:
|
|
|
11142
11164
|
type: array
|
|
11143
11165
|
description: |-
|
|
11144
11166
|
MCP prompt entries saved with the guardrail. Each item references one
|
|
11145
|
-
MCP connection and
|
|
11167
|
+
MCP connection and prompt names; a guardrail's run never fetches them.
|
|
11146
11168
|
items:
|
|
11147
11169
|
type: object
|
|
11148
11170
|
properties:
|
|
@@ -11164,7 +11186,7 @@ components:
|
|
|
11164
11186
|
description: Connection to the MCP server.
|
|
11165
11187
|
allowedPrompts:
|
|
11166
11188
|
type: array
|
|
11167
|
-
description: Prompt names
|
|
11189
|
+
description: Prompt names saved with the entry; a guardrail's run never fetches them.
|
|
11168
11190
|
items:
|
|
11169
11191
|
type: string
|
|
11170
11192
|
resources:
|
|
@@ -11331,7 +11353,7 @@ components:
|
|
|
11331
11353
|
type: array
|
|
11332
11354
|
description: |-
|
|
11333
11355
|
MCP prompt entries saved with a Gemini guardrail. Each item references one
|
|
11334
|
-
MCP connection and
|
|
11356
|
+
MCP connection and prompt names; a guardrail's run never fetches them.
|
|
11335
11357
|
items:
|
|
11336
11358
|
type: object
|
|
11337
11359
|
properties:
|
|
@@ -11353,7 +11375,7 @@ components:
|
|
|
11353
11375
|
description: Connection to the MCP server.
|
|
11354
11376
|
allowedPrompts:
|
|
11355
11377
|
type: array
|
|
11356
|
-
description: Prompt names
|
|
11378
|
+
description: Prompt names saved with the entry; a guardrail's run never fetches them.
|
|
11357
11379
|
items:
|
|
11358
11380
|
type: string
|
|
11359
11381
|
resources:
|
|
@@ -11553,7 +11575,7 @@ components:
|
|
|
11553
11575
|
type: array
|
|
11554
11576
|
description: |-
|
|
11555
11577
|
MCP prompt entries saved with a Claude guardrail. Each item references one
|
|
11556
|
-
MCP connection and
|
|
11578
|
+
MCP connection and prompt names; a guardrail's run never fetches them.
|
|
11557
11579
|
items:
|
|
11558
11580
|
type: object
|
|
11559
11581
|
properties:
|
|
@@ -11575,7 +11597,7 @@ components:
|
|
|
11575
11597
|
description: Connection to the MCP server.
|
|
11576
11598
|
allowedPrompts:
|
|
11577
11599
|
type: array
|
|
11578
|
-
description: Prompt names
|
|
11600
|
+
description: Prompt names saved with the entry; a guardrail's run never fetches them.
|
|
11579
11601
|
items:
|
|
11580
11602
|
type: string
|
|
11581
11603
|
resources:
|
|
@@ -11677,8 +11699,8 @@ components:
|
|
|
11677
11699
|
`aiAgent.openai.tools`, `aiAgent.litellm._overrides.gemini.tools`, `….anthropic.tools`) —
|
|
11678
11700
|
any non-empty array fails the save with 422 `guardrail_tools_not_allowed` ("Tools aren't
|
|
11679
11701
|
supported on a guardrail AI agent configuration…"), on create and on update. `prompts` and
|
|
11680
|
-
`resources` are accepted on save
|
|
11681
|
-
|
|
11702
|
+
`resources` are accepted on save but never used at run time, so put the policy in the
|
|
11703
|
+
instructions. The server still echoes
|
|
11682
11704
|
`openai.tools: []` on OpenAI guardrails.
|
|
11683
11705
|
properties:
|
|
11684
11706
|
type:
|
|
@@ -17547,9 +17569,12 @@ components:
|
|
|
17547
17569
|
type: array
|
|
17548
17570
|
description: |-
|
|
17549
17571
|
Errors recorded for the record. `source: application` with
|
|
17550
|
-
`stage: apiCall`
|
|
17551
|
-
answer was the failure
|
|
17552
|
-
`message
|
|
17572
|
+
`stage: apiCall` marks the import's call to the destination. Usually
|
|
17573
|
+
the destination's answer was the failure, and its response body rides
|
|
17574
|
+
in `message`; but a request the import couldn't build carries the same
|
|
17575
|
+
pair and was never sent, such as a URL template that failed to render
|
|
17576
|
+
(`code: handlebars_template_parse_error`, "Failed to generate request
|
|
17577
|
+
url from template ...").
|
|
17553
17578
|
items:
|
|
17554
17579
|
type: object
|
|
17555
17580
|
properties:
|
package/dist/networkpolicy.yml
CHANGED
|
@@ -24,6 +24,10 @@ tags:
|
|
|
24
24
|
description: |-
|
|
25
25
|
Network policies are named IP allow and deny lists that control where API tokens, MCP servers, and users may connect from. A policy takes effect only once it is assigned — through `_networkPolicyId` on an API token or MCP server, or in account settings for workspace-user and end-user sign-in — and each environment (production or sandbox) keeps its own library of policies. Network policies must be enabled for the account, and only the account owner and administrators can manage them.
|
|
26
26
|
|
|
27
|
+
Every policy that applies to a call must admit the caller. An API token's policy is checked when the token authenticates, before the request runs; an MCP server's policy is checked on every request to it, so a call to an MCP server passes both its token's policy and the server's. A personal access token has no policy of its own: it is checked against the workspace-user sign-in policy of the environment it belongs to. Sign-in policies are checked when a workspace user signs in or switches account or environment, and when an end user signs in to an MCP server.
|
|
28
|
+
|
|
29
|
+
A refused call gets HTTP 403 with `{"errors": [{"code": "access_denied", "message": "Access denied."}]}` and nothing that names the policy or the address. An MCP server endpoint speaks JSON-RPC, so its 403 carries the MCP server's access-denied error (`-32006`) in a JSON-RPC envelope instead — `{"jsonrpc": "2.0", "error": {"code": -32006, "message": "Access denied."}, "id": <request id>}`, with `id` echoed when the request had one — and the server's request log records the call as blocked.
|
|
30
|
+
|
|
27
31
|
## Network policy schema
|
|
28
32
|
|
|
29
33
|
{% openapi-schemas spec="networkpolicy" schemas="NetworkPolicy" grouped="true" %}
|