@celigo/api-specs 0.2.138 → 0.2.140

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.
@@ -15,7 +15,7 @@ info:
15
15
  - Contains a collection of **tools** (referencing Tool resources), **APIs** (referencing builder-mode API resources), **prompts** (inline reusable templates), and **resources** (Celigo Storage files served to clients)
16
16
  - Can be enabled or disabled at both the server level and individual tool/API level
17
17
  - Supports MCP annotations on tools for hinting behavior (read-only, idempotent, destructive, etc.)
18
- - Supports tool overrides for customizing connections, exports, imports, and routing per-server
18
+ - Binds the connections each tool's steps run on, per server (`tools[].overrides`); calls fail with "Missing connection overrides" until every lookup step's connection is bound
19
19
  - Exposes prompts via `prompts/list` and `prompts/get` with Handlebars-style argument substitution
20
20
  - Carries **permission sets** ("Capability Sets" in the UI) — named bundles of its tools, APIs, prompts, and resources granted to end users via `pset:<_id>` capability strings on end-user, group, and role resource grants
21
21
  - Carries optional **traffic limits** (`policies[]`) — a server-level rate limit, a per-user rate limit for OAuth end users, and a usage quota — enforced before a tool runs; a rejected call gets HTTP 429 with `Retry-After`
@@ -176,7 +176,7 @@ paths:
176
176
  name: Customer Integration MCP
177
177
  relativeURI: /customers
178
178
  with_tool:
179
- summary: With a tool and Celigo OAuth
179
+ summary: With a tool (its lookup step bound) and Celigo OAuth
180
180
  value:
181
181
  name: Customer Integration MCP
182
182
  relativeURI: /customers
@@ -188,6 +188,10 @@ paths:
188
188
  disabled: false
189
189
  annotations:
190
190
  readOnlyHint: true
191
+ overrides:
192
+ exports:
193
+ - _abstractId: 69d462d5b9c28ea0b7f82530
194
+ _id: 69d462d5b9c28ea0b7f82530
191
195
  oauth:
192
196
  useCeligoOauth: true
193
197
  responses:
@@ -1564,12 +1568,27 @@ components:
1564
1568
  Overrides:
1565
1569
  type: object
1566
1570
  description: |
1567
- Per-server overrides for a tool's internal resources.
1571
+ Per-server bindings for a tool's steps, applied on this server without changing the
1572
+ Tool itself.
1568
1573
 
1569
- When a tool is added to an MCP server, its connections, exports, imports,
1570
- and routers can be customized for this specific server context without
1571
- modifying the underlying tool definition. This enables reusing the same
1572
- tool across multiple MCP servers with different configurations.
1574
+ Each lookup (export) step's connection must be bound here, or each `tools/call` fails
1575
+ with "Missing connection overrides. The following connection IDs must be overridden: …".
1576
+ The export and router fields described below as not applied are stored but don't change
1577
+ a call.
1578
+ x-celigo-ai-guidance:
1579
+ - |-
1580
+ Bind each lookup step with an `exports[]` entry whose `_abstractId` and `_id` are both
1581
+ the step's export id; add `_connectionId` to run that step on another connection. An
1582
+ entry with `_connectionId` but no `_id` returns a 404, and binding only some of the
1583
+ Tool's steps still fails the call with "Missing connection overrides".
1584
+ - |-
1585
+ A `connections[]` pair binds only when `_id` names a different connection than
1586
+ `_abstractId`; it then re-maps the steps that use that connection. An identity pair
1587
+ (`_abstractId` equal to `_id`) on a connection that doesn't require end-user
1588
+ credentials leaves the steps unbound. When a step has both, its `exports[]` entry wins.
1589
+ - |-
1590
+ `connections[]` ids aren't validated on save, and the server caches its configuration,
1591
+ so a saved change can take tens of seconds to reach `tools/call`.
1573
1592
  properties:
1574
1593
  connections:
1575
1594
  type: array
@@ -1619,9 +1638,9 @@ components:
1619
1638
  exports:
1620
1639
  type: array
1621
1640
  description: |
1622
- Export (lookup) overrides. Customize export resources used within the tool,
1623
- including connection bindings, scheduling, response mappings, and
1624
- adaptor-specific settings.
1641
+ Export (lookup) step bindings. The binding (`_abstractId`, `_id`, and optionally
1642
+ `_connectionId`) is applied to calls; the settings marked below as not applied are
1643
+ stored but ignored.
1625
1644
  items:
1626
1645
  type: object
1627
1646
  properties:
@@ -1666,25 +1685,27 @@ components:
1666
1685
  simple: Basic export that fetches all matching records on each run.
1667
1686
  blob: Binary large object export for file-based data.
1668
1687
  all: Export that retrieves all records without filtering.
1669
- description: Override the export type
1688
+ description: Export type override. Not applied on an MCP server; stored, but calls ignore it.
1670
1689
  pageSize:
1671
1690
  type: number
1672
- description: Override the page size for pagination
1691
+ description: Page size override. Not applied on an MCP server; stored, but calls ignore it.
1673
1692
  examples:
1674
1693
  - 100
1675
1694
  skipRetries:
1676
1695
  type: boolean
1677
- description: When true, skips retries on failure.
1678
- x-celigo-ai-guidance:
1679
- - Whether to skip retries on failure
1696
+ description: |-
1697
+ When true, skips retries on failure. Not applied on an MCP server; stored, but
1698
+ calls ignore it.
1680
1699
  proceedOnFailure:
1681
1700
  type: boolean
1682
- description: When true, continues processing subsequent records after a failure.
1683
- x-celigo-ai-guidance:
1684
- - Whether to continue processing on failure
1701
+ description: |-
1702
+ When true, continues processing subsequent records after a failure. Not applied
1703
+ on an MCP server; stored, but calls ignore it.
1685
1704
  responseMapping:
1686
1705
  type: object
1687
- description: Override the response field mappings
1706
+ description: |-
1707
+ Response field mappings override. Not applied on an MCP server; stored, but calls
1708
+ ignore it.
1688
1709
  properties:
1689
1710
  fields:
1690
1711
  type: array
@@ -1847,8 +1868,8 @@ components:
1847
1868
  routers:
1848
1869
  type: array
1849
1870
  description: |
1850
- Router overrides. Customize routing behavior for specific branches
1851
- within the tool, including branch filters and routing strategies.
1871
+ Router overrides. On an MCP server `name`, `routeRecordsTo` and branch
1872
+ `inputFilter` are stored but not applied to calls.
1852
1873
  items:
1853
1874
  type: object
1854
1875
  properties:
@@ -1859,7 +1880,7 @@ components:
1859
1880
  - router_001
1860
1881
  name:
1861
1882
  type: string
1862
- description: Override the router name
1883
+ description: Router name override. Not applied on an MCP server; stored, but calls ignore it.
1863
1884
  examples:
1864
1885
  - route_by_region
1865
1886
  routeRecordsTo:
@@ -1870,7 +1891,7 @@ components:
1870
1891
  x-enumDescriptions:
1871
1892
  first_matching_branch: Routes each record to only the first branch whose criteria match.
1872
1893
  all_matching_branches: Routes each record to every branch whose criteria match, creating copies.
1873
- description: Override the routing strategy
1894
+ description: Routing strategy override. Not applied on an MCP server; stored, but calls ignore it.
1874
1895
  routeRecordsUsing:
1875
1896
  type: string
1876
1897
  enum:
@@ -1917,7 +1938,9 @@ components:
1917
1938
  - Records routed to the North America region
1918
1939
  inputFilter:
1919
1940
  type: object
1920
- description: Override the branch filter criteria
1941
+ description: |-
1942
+ Branch filter override. Not applied on an MCP server; stored, but calls
1943
+ ignore it.
1921
1944
  properties:
1922
1945
  version:
1923
1946
  type: string
@@ -23,7 +23,8 @@ tags:
23
23
 
24
24
  These are one-shot transformation calls — they do not create or modify
25
25
  any resources. Use them to test parsing rules, preview file definitions,
26
- or transform data outside of a flow.
26
+ or transform data outside of a flow. The filter and Handlebars processors
27
+ test a step's filter rules or templates the same way.
27
28
 
28
29
  ## Processor descriptor schema
29
30
 
@@ -1047,6 +1048,212 @@ paths:
1047
1048
  type: string
1048
1049
  path:
1049
1050
  type: string
1051
+ /v1/processors/filter:
1052
+ post:
1053
+ x-internal: false
1054
+ operationId: evaluateFilterRules
1055
+ tags:
1056
+ - Parsers & Generators
1057
+ summary: Test filter rules against records
1058
+ description: |-
1059
+ Evaluates export and import filter rules (`Filter.expression`) against the records in `data` and
1060
+ returns the records that pass. Nothing is saved and no flow runs, so it checks a rule before the
1061
+ rule is saved on a step. Rules are validated as they are when a filter is saved: an unknown
1062
+ operator or a bare `extract` is refused with 422.
1063
+
1064
+ Send each record bare, the way it reaches a step's filter. A record wrapped as
1065
+ `{"record": {...}}` is evaluated as that wrapper, so field rules don't match it.
1066
+ requestBody:
1067
+ required: true
1068
+ content:
1069
+ application/json:
1070
+ schema:
1071
+ type: object
1072
+ required:
1073
+ - rules
1074
+ - data
1075
+ properties:
1076
+ rules:
1077
+ type: object
1078
+ description: The filter expression to evaluate, in the shape of a step's `filter.expression`.
1079
+ required:
1080
+ - version
1081
+ - rules
1082
+ properties:
1083
+ version:
1084
+ type: string
1085
+ enum:
1086
+ - '1'
1087
+ x-enumDescriptions:
1088
+ '1': Version 1 of the Celigo expression-based filter format.
1089
+ description: Version of the filter format used by `rules`.
1090
+ rules:
1091
+ type: array
1092
+ description: Prefix-notation rule in the grammar of `Filter.expression.rules`.
1093
+ x-celigo-agent:
1094
+ - filter
1095
+ items: {}
1096
+ data:
1097
+ type: array
1098
+ description: Records to evaluate, each a bare record object.
1099
+ items:
1100
+ type: object
1101
+ additionalProperties: true
1102
+ examples:
1103
+ default:
1104
+ summary: Keep the records whose email has a value
1105
+ value:
1106
+ rules:
1107
+ version: '1'
1108
+ rules:
1109
+ - notempty
1110
+ - - string
1111
+ - - extract
1112
+ - email
1113
+ data:
1114
+ - email: a@example.com
1115
+ - email: ''
1116
+ - {}
1117
+ responses:
1118
+ '200':
1119
+ description: The records that pass the rules.
1120
+ content:
1121
+ application/json:
1122
+ schema:
1123
+ type: object
1124
+ properties:
1125
+ mediaType:
1126
+ type: string
1127
+ description: Always `json` for the filter processor.
1128
+ enum:
1129
+ - json
1130
+ x-enumDescriptions:
1131
+ json: Response data is formatted as JSON.
1132
+ data:
1133
+ type: array
1134
+ description: The input records that pass the rules, unchanged and in input order.
1135
+ items:
1136
+ type: object
1137
+ additionalProperties: true
1138
+ duration:
1139
+ type: integer
1140
+ description: Processing time in milliseconds.
1141
+ examples:
1142
+ default:
1143
+ value:
1144
+ mediaType: json
1145
+ data:
1146
+ - email: a@example.com
1147
+ duration: 0
1148
+ '401':
1149
+ $ref: '#/components/responses/401-unauthorized'
1150
+ '422':
1151
+ description: |-
1152
+ The rules are invalid, for example an unknown operator ("Invalid operation: isnotempty.") or
1153
+ an `extract` that is not wrapped in a type conversion ("Field operation extract must be called
1154
+ by a Type Conversion Operation but was called by notempty.").
1155
+ content:
1156
+ application/json:
1157
+ schema:
1158
+ $ref: '#/components/schemas/Error'
1159
+ /v1/processors/handlebars:
1160
+ post:
1161
+ x-internal: false
1162
+ operationId: renderHandlebarsTemplate
1163
+ tags:
1164
+ - Parsers & Generators
1165
+ summary: Render a Handlebars template
1166
+ description: |-
1167
+ Renders a Handlebars template against the object in `data` and returns the result. Nothing is
1168
+ saved and no flow runs, so it tests a template or a helper before the template is saved on a
1169
+ step.
1170
+
1171
+ `data` is the template's root context: `{{name}}` reads `data.name`. A template written for a
1172
+ step reads the record as `{{record.<field>}}`, so send the record under `record`
1173
+ (`"data": {"record": {...}}`). Double braces HTML-escape the value (`&` renders as `&amp;`);
1174
+ triple braces insert it unchanged. A `timestamp` with no time zone renders in UTC.
1175
+
1176
+ An unknown helper is refused with 422. `GET /v1/processors` lists helpers under the handlebars
1177
+ entry's `helperFunctions`, but that list is not complete: `eq` and `truncateWords`, for
1178
+ example, render although it omits them, so render a doubtful helper once here before relying
1179
+ on it.
1180
+ requestBody:
1181
+ required: true
1182
+ content:
1183
+ application/json:
1184
+ schema:
1185
+ type: object
1186
+ required:
1187
+ - rules
1188
+ - data
1189
+ properties:
1190
+ rules:
1191
+ type: object
1192
+ required:
1193
+ - template
1194
+ properties:
1195
+ template:
1196
+ type: string
1197
+ description: The Handlebars template to render.
1198
+ x-celigo-agent:
1199
+ - handlebars
1200
+ resultMode:
1201
+ type: string
1202
+ description: Form of the result; `text` returns the rendered string.
1203
+ examples:
1204
+ - text
1205
+ data:
1206
+ type: object
1207
+ additionalProperties: true
1208
+ description: Root context the template renders against.
1209
+ examples:
1210
+ step_template:
1211
+ summary: Render a step template against a record
1212
+ value:
1213
+ rules:
1214
+ template: '{{record.name}} | {{{record.name}}}'
1215
+ resultMode: text
1216
+ data:
1217
+ record:
1218
+ name: Smith & Sons
1219
+ responses:
1220
+ '200':
1221
+ description: The rendered template.
1222
+ content:
1223
+ application/json:
1224
+ schema:
1225
+ type: object
1226
+ properties:
1227
+ mediaType:
1228
+ type: string
1229
+ description: Always `text` for the handlebars processor.
1230
+ enum:
1231
+ - text
1232
+ x-enumDescriptions:
1233
+ text: Response data is the rendered text.
1234
+ data:
1235
+ description: |-
1236
+ The rendered result, normally a string. A template that renders only a helper's
1237
+ numeric result can come back as a JSON number.
1238
+ duration:
1239
+ type: integer
1240
+ description: Processing time in milliseconds.
1241
+ examples:
1242
+ default:
1243
+ value:
1244
+ mediaType: text
1245
+ data: Smith &amp; Sons | Smith & Sons
1246
+ duration: 0
1247
+ '401':
1248
+ $ref: '#/components/responses/401-unauthorized'
1249
+ '422':
1250
+ description: |-
1251
+ The template could not be rendered, for example because it calls a helper that does not
1252
+ exist ('Missing helper: "first"').
1253
+ content:
1254
+ application/json:
1255
+ schema:
1256
+ $ref: '#/components/schemas/Error'
1050
1257
  components:
1051
1258
  securitySchemes:
1052
1259
  bearerAuth:
@@ -1219,6 +1426,46 @@ components:
1219
1426
  traceKeysDuplicate:
1220
1427
  type: boolean
1221
1428
  description: When true, duplicate trace keys were detected in the output records.
1429
+ Error:
1430
+ type: object
1431
+ description: Standard error response envelope returned by integrator.io APIs.
1432
+ properties:
1433
+ errors:
1434
+ type: array
1435
+ description: List of errors that occurred while processing the request.
1436
+ items:
1437
+ type: object
1438
+ properties:
1439
+ code:
1440
+ oneOf:
1441
+ - type: string
1442
+ - type: integer
1443
+ description: |-
1444
+ Machine-readable error code. Usually a string like
1445
+ `invalid_ref`, `missing_required_field`, or `unauthorized`;
1446
+ may be an **integer** when the error mirrors an upstream HTTP
1447
+ status (e.g. `500`) — most commonly returned by connection-ping
1448
+ and adaptor-proxy responses.
1449
+ message:
1450
+ type: string
1451
+ description: Human-readable description of the error.
1452
+ field:
1453
+ type: string
1454
+ description: |-
1455
+ Optional pointer to the document field that caused the error.
1456
+ Used by structural validation errors (`missing_required_field`,
1457
+ `invalid_ref`) to indicate which field is at fault
1458
+ (e.g. `_id`, `type`, `http.baseURI`).
1459
+ source:
1460
+ type: string
1461
+ description: |-
1462
+ Optional origin layer for the error — e.g. `application` when
1463
+ the error came from the remote system the adaptor called,
1464
+ `connector` when the adaptor itself rejected the request.
1465
+ required:
1466
+ - message
1467
+ required:
1468
+ - errors
1222
1469
  responses:
1223
1470
  401-unauthorized:
1224
1471
  description: |-