@celigo/api-specs 0.2.233 → 0.2.235
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/audit.yml +25 -7
- package/dist/export.yml +41 -5
- package/dist/networkpolicy.yml +31 -18
- package/dist/tool.yml +40 -5
- package/package.json +1 -1
- package/schemas.json +2 -1
package/dist/audit.yml
CHANGED
|
@@ -153,7 +153,7 @@ paths:
|
|
|
153
153
|
sync: Sync resource.
|
|
154
154
|
tool: Tool resource for reusable building blocks.
|
|
155
155
|
topic: Event Streams topic resource.
|
|
156
|
-
user: User access record resource.
|
|
156
|
+
user: User access record resource. Also carries account-setting changes, each identified by `fieldChanges[].fieldPath` (no separate settings resource type exists) — account-wide settings (company MFA, end-user MFA, API Management setup, execution logging, AI settings, the account alias, the API Builder timeout) with `_resourceId` = the account owner, a member's access settings (`accessLevel`, `disabled`, `accountMFARequired`) with `_resourceId` = that member — and user-level MFA events (setup, trusted devices, secret generated or viewed, reset) with `_resourceId` = the affected user, recorded in the audit log of that user's MFA master account (its "Account to reset MFA"), which is not always the account the change was made from.
|
|
157
157
|
description: |-
|
|
158
158
|
Filter by resource type (singular form). Unsupported values are
|
|
159
159
|
rejected with 422 `audit_not_supported`.
|
|
@@ -214,10 +214,28 @@ paths:
|
|
|
214
214
|
type: string
|
|
215
215
|
examples:
|
|
216
216
|
- http.auth.token.token
|
|
217
|
+
- authTypeMFA.trustDeviceForPeriod
|
|
218
|
+
- apim.subdomain
|
|
217
219
|
description: |-
|
|
218
220
|
Restrict the `fieldChanges` of returned entries to changes on this
|
|
219
|
-
field path. The
|
|
220
|
-
|
|
221
|
+
field path. The match is exact on the stored dot-path — `authTypeMFA`
|
|
222
|
+
does not match `authTypeMFA.trustDeviceForPeriod` — with no prefix or
|
|
223
|
+
wildcard form, and the filter stands alone or combines with
|
|
224
|
+
`resourceType`. The value is not validated against known paths — an
|
|
225
|
+
unknown path simply matches nothing. Account-setting changes are
|
|
226
|
+
`user` entries reached this way, one stored path each: company MFA
|
|
227
|
+
`authTypeMFA.dontAllowTrustedDevices` and
|
|
228
|
+
`authTypeMFA.trustDeviceForPeriod`; end-user MFA `endUserMfa.required`,
|
|
229
|
+
`endUserMfa.disallowTrustedDevices` and `endUserMfa.trustedDeviceDays`;
|
|
230
|
+
a user's own MFA
|
|
231
|
+
`authTypeMFA.enabled`, `authTypeMFA.trustedDevices`,
|
|
232
|
+
`authTypeMFA.secret` and `authTypeMFA._allowResetByUserId`; API
|
|
233
|
+
Management setup `apim.subdomain` and `apim.serviceAccountEmail`;
|
|
234
|
+
execution logging `logging.retentionPeriod` and
|
|
235
|
+
`logging.storePayload`; AI settings
|
|
236
|
+
`aiSettings.intelligentDocumentProcessing`; the account alias
|
|
237
|
+
`accountAlias`; the API Builder timeout `timeoutPeriod`; a member's
|
|
238
|
+
access `accessLevel`, `disabled` and `accountMFARequired`.
|
|
221
239
|
- name: action
|
|
222
240
|
in: query
|
|
223
241
|
required: false
|
|
@@ -590,7 +608,7 @@ paths:
|
|
|
590
608
|
sync: Sync resource.
|
|
591
609
|
tool: Tool resource for reusable building blocks.
|
|
592
610
|
topic: Event Streams topic resource.
|
|
593
|
-
user: User access record resource.
|
|
611
|
+
user: User access record resource. Also carries account-setting changes, each identified by `fieldChanges[].fieldPath` (no separate settings resource type exists) — account-wide settings (company MFA, end-user MFA, API Management setup, execution logging, AI settings, the account alias, the API Builder timeout) with `_resourceId` = the account owner, a member's access settings (`accessLevel`, `disabled`, `accountMFARequired`) with `_resourceId` = that member — and user-level MFA events (setup, trusted devices, secret generated or viewed, reset) with `_resourceId` = the affected user, recorded in the audit log of that user's MFA master account (its "Account to reset MFA"), which is not always the account the change was made from.
|
|
594
612
|
description: Optional filter by resource type (singular form).
|
|
595
613
|
- name: _byUserId
|
|
596
614
|
in: query
|
|
@@ -1530,7 +1548,7 @@ components:
|
|
|
1530
1548
|
sync: Sync resource.
|
|
1531
1549
|
tool: Tool resource for reusable building blocks.
|
|
1532
1550
|
topic: Event Streams topic resource.
|
|
1533
|
-
user: User access record resource.
|
|
1551
|
+
user: User access record resource. Also carries account-setting changes, each identified by `fieldChanges[].fieldPath` (no separate settings resource type exists) — account-wide settings (company MFA, end-user MFA, API Management setup, execution logging, AI settings, the account alias, the API Builder timeout) with `_resourceId` = the account owner, a member's access settings (`accessLevel`, `disabled`, `accountMFARequired`) with `_resourceId` = that member — and user-level MFA events (setup, trusted devices, secret generated or viewed, reset) with `_resourceId` = the affected user, recorded in the audit log of that user's MFA master account (its "Account to reset MFA"), which is not always the account the change was made from.
|
|
1534
1552
|
_resourceId:
|
|
1535
1553
|
type: string
|
|
1536
1554
|
format: objectId
|
|
@@ -1744,7 +1762,7 @@ components:
|
|
|
1744
1762
|
sync: Sync resource.
|
|
1745
1763
|
tool: Tool resource for reusable building blocks.
|
|
1746
1764
|
topic: Event Streams topic resource.
|
|
1747
|
-
user: User access record resource.
|
|
1765
|
+
user: User access record resource. Also carries account-setting changes, each identified by `fieldChanges[].fieldPath` (no separate settings resource type exists) — account-wide settings (company MFA, end-user MFA, API Management setup, execution logging, AI settings, the account alias, the API Builder timeout) with `_resourceId` = the account owner, a member's access settings (`accessLevel`, `disabled`, `accountMFARequired`) with `_resourceId` = that member — and user-level MFA events (setup, trusted devices, secret generated or viewed, reset) with `_resourceId` = the affected user, recorded in the audit log of that user's MFA master account (its "Account to reset MFA"), which is not always the account the change was made from.
|
|
1748
1766
|
examples:
|
|
1749
1767
|
- - connection
|
|
1750
1768
|
- agent
|
|
@@ -1965,7 +1983,7 @@ components:
|
|
|
1965
1983
|
sync: Sync resource.
|
|
1966
1984
|
tool: Tool resource for reusable building blocks.
|
|
1967
1985
|
topic: Event Streams topic resource.
|
|
1968
|
-
user: User access record resource.
|
|
1986
|
+
user: User access record resource. Also carries account-setting changes, each identified by `fieldChanges[].fieldPath` (no separate settings resource type exists) — account-wide settings (company MFA, end-user MFA, API Management setup, execution logging, AI settings, the account alias, the API Builder timeout) with `_resourceId` = the account owner, a member's access settings (`accessLevel`, `disabled`, `accountMFARequired`) with `_resourceId` = that member — and user-level MFA events (setup, trusted devices, secret generated or viewed, reset) with `_resourceId` = the affected user, recorded in the audit log of that user's MFA master account (its "Account to reset MFA"), which is not always the account the change was made from.
|
|
1969
1987
|
source:
|
|
1970
1988
|
type: string
|
|
1971
1989
|
enum:
|
package/dist/export.yml
CHANGED
|
@@ -287,6 +287,7 @@ paths:
|
|
|
287
287
|
|------|------------|-------------|
|
|
288
288
|
| `/debugUntil` | `replace`, `add`, `remove` | Step debug-capture expiry (ISO-8601, at most 3600 seconds from now — a later value is rejected with 422 `update_not_allowed`); `remove` stops capture and succeeds even when the field is absent |
|
|
289
289
|
| `/assistantMetadata` | `replace` | Assistant metadata object |
|
|
290
|
+
| `/_networkPolicyId` | `add`, `replace`, `remove` | Network policy on a `webhook` or `distributed` listener; `remove` clears the assignment. An id that is not one of the environment's network policies is rejected with 400 `network_policy_not_found` |
|
|
290
291
|
|
|
291
292
|
All other paths are rejected with `422`.
|
|
292
293
|
operationId: patchExport
|
|
@@ -1483,7 +1484,7 @@ components:
|
|
|
1483
1484
|
required:
|
|
1484
1485
|
- verify
|
|
1485
1486
|
x-celigo-ui-override: 'verify is required by the webhook listener form for every provider (exports/webhook.js: verify required:true; on a connector-backed listener the form pre-fills it from the connector definition before saving). The API enforces it only when provider is custom or absent — 422 missing_required_field on webhook.verify, "verify is required for export type webhook, provider = custom". For the named providers probed (slack, shopify, github) it stores a listener posted with key and no verify (201 each; the GET carries provider, key and formType simple) and requires a credential instead: without key (and no token) each answers 422 missing_required_field on webhook.key — "key is required for slack verification" / "key is required for shopify verification" / "key is required for github verification"; a slack listener posted with token and no key saved. Other named providers are unprobed. The requirement is kept so an authored document matches a form-saved one.'
|
|
1486
|
-
description: Configuration for webhook listeners that receive data through incoming HTTP requests. Required when the export's `type` is `webhook`; omit for other export types. Senders POST to the export's listener URL, `https://api.integrator.io/v1/exports/{_id}/data` (or the same path on the account's regional API host); the platform validates each request using the configured `verify` method, passes the payload to subsequent flow steps, and returns a configurable HTTP response to the caller. A request is answered 204 by default when accepted, 401 when it fails verification,
|
|
1487
|
+
description: Configuration for webhook listeners that receive data through incoming HTTP requests. Required when the export's `type` is `webhook`; omit for other export types. Senders POST to the export's listener URL, `https://api.integrator.io/v1/exports/{_id}/data` (or the same path on the account's regional API host); the platform validates each request using the configured `verify` method, passes the payload to subsequent flow steps, and returns a configurable HTTP response to the caller. A request is answered 204 by default when accepted, 401 when it fails verification, 403 `unable_to_run_flows` while every flow the export feeds is disabled, and 403 `access_denied` when the export's `_networkPolicyId` policy does not admit the sender's address (checked before verification, with a valid or an invalid token alike, where enforcement is enabled for the account); a refused request is not queued, so the sender must resend it once the cause is cleared.
|
|
1487
1488
|
x-celigo-ai-guidance:
|
|
1488
1489
|
- Configuration object for real-time event listeners that receive data via incoming HTTP requests.
|
|
1489
1490
|
- |-
|
|
@@ -16883,10 +16884,18 @@ components:
|
|
|
16883
16884
|
`webhook` object when `type` is `webhook`); an HTTP or SQL `delta` export saves without a
|
|
16884
16885
|
`delta` object because its request carries `{{lastExportDateTime}}`, though
|
|
16885
16886
|
`delta.startDate` sets its first window. It still needs `type: delta`: on an export
|
|
16886
|
-
with no `type`, `{{lastExportDateTime}}` and `{{currentExportDateTime}}` render
|
|
16887
|
-
empty on every run, so a request that carries them goes out with blank values each
|
|
16888
|
-
|
|
16889
|
-
|
|
16887
|
+
with no `type` (or `all`, or `test`), `{{lastExportDateTime}}` and `{{currentExportDateTime}}` render
|
|
16888
|
+
empty on every run, so a request that carries them bare goes out with blank values each
|
|
16889
|
+
time, `dateFormat` on one renders the run's current time (the request asks for changes
|
|
16890
|
+
since now), and `dateAdd` on one fails the whole render — on an HTTP export's body or
|
|
16891
|
+
relative URI the run records `handlebars_template_parse_error`, "Failed to generate request
|
|
16892
|
+
body (or url) from template … Details: Invalid time value" — before anything is sent
|
|
16893
|
+
(live-verified 2026-10-22 and 2026-11-04). When incremental reads are intended, restoring
|
|
16894
|
+
`type: delta` (with `delta.startDate` for the first window) makes the variables resolve;
|
|
16895
|
+
when reading everything is intended, change the template — drop the variable or guard it
|
|
16896
|
+
with `{{#if lastExportDateTime}}…{{else}}fallback{{/if}}`, whose else branch (a literal, in
|
|
16897
|
+
practice a fixed start date) renders on an export with no `type`, `type: all` or
|
|
16898
|
+
`type: test`. Use `blob` only to transfer raw files without parsing their contents.
|
|
16890
16899
|
x-celigo-ai-guidance:
|
|
16891
16900
|
- |-
|
|
16892
16901
|
## HOW TO PICK THE TYPE VALUE
|
|
@@ -17385,6 +17394,33 @@ components:
|
|
|
17385
17394
|
- 'The listener must be an export with `type: "webhook"` and `webhook.provider: "integrator-extension"`; any other export id is rejected with `invalid_post_parse_listener`. On an HTTP export outside file mode the save is rejected with `post_parse_listener_not_supported`: "Listener for functional acknowledgment is only supported for AS2, FTP, S3 and HTTP file export."'
|
|
17386
17395
|
examples:
|
|
17387
17396
|
- 60a2c4e6f321d800129a1a3c
|
|
17397
|
+
_networkPolicyId:
|
|
17398
|
+
type:
|
|
17399
|
+
- string
|
|
17400
|
+
- 'null'
|
|
17401
|
+
format: objectId
|
|
17402
|
+
x-celigo-refModel: networkpolicies
|
|
17403
|
+
description: |-
|
|
17404
|
+
Network policy whose IP allow and deny lists gate the requests that deliver data to this
|
|
17405
|
+
listener. Only `type` `webhook` or `distributed` exports accept it; any other type fails
|
|
17406
|
+
with 422 `not_allowed`. An id that is not one of the environment's network policies,
|
|
17407
|
+
including one in the recycle bin, fails with 400 `network_policy_not_found`. Preserved
|
|
17408
|
+
when omitted on PUT; send `null`, or `remove` it with `PATCH /v1/exports/{_id}` (which
|
|
17409
|
+
also accepts `add` and `replace` with an id), to clear it. Deleting the policy with
|
|
17410
|
+
`?force=true` clears it too. Absent from responses when no policy is assigned.
|
|
17411
|
+
|
|
17412
|
+
Where network-policy enforcement is enabled for the account, a webhook delivery to the
|
|
17413
|
+
listener's `/data` route from an address the policy does not admit is refused with 403
|
|
17414
|
+
`access_denied` — with a valid verification token or an invalid one alike, never 401 —
|
|
17415
|
+
before the listener's verification runs and before the payload is read, so nothing is
|
|
17416
|
+
queued and no flow run starts; an authenticated `GET` or `HEAD` of that route from such an
|
|
17417
|
+
address is refused the same way. Enforcement on listeners is enabled per account. The
|
|
17418
|
+
assignment is recorded in the export's audit as a `_networkPolicyId` field change carrying
|
|
17419
|
+
the policy id.
|
|
17420
|
+
x-celigo-ai-guidance:
|
|
17421
|
+
- 'Assign by sending the whole export document with `_networkPolicyId` set (the form''s own save does the same) and clear it with an explicit `null` — a PUT that omits the field keeps the current policy, so a removed key is a silent no-op, not an unassignment. Resolve the policy id from `GET /v1/networkpolicies` in the same environment first: an unknown or recycled id is refused only at save time with 400 `network_policy_not_found`.'
|
|
17422
|
+
examples:
|
|
17423
|
+
- 6ab1ebbfb9e4547494ff7558
|
|
17388
17424
|
externalId:
|
|
17389
17425
|
type:
|
|
17390
17426
|
- string
|
package/dist/networkpolicy.yml
CHANGED
|
@@ -2,12 +2,13 @@ openapi: 3.2.0
|
|
|
2
2
|
info:
|
|
3
3
|
version: 1.0.0
|
|
4
4
|
title: Network Policies
|
|
5
|
-
description: Manage IP allow and deny lists that restrict where API tokens, MCP servers, and users may connect from.
|
|
5
|
+
description: Manage IP allow and deny lists that restrict where API tokens, MCP servers, webhook listeners, and users may connect from.
|
|
6
6
|
x-celigo-ai-guidance:
|
|
7
7
|
- |-
|
|
8
8
|
API for managing network policies — named IP allow/deny lists that are assigned to API tokens
|
|
9
|
-
(`_networkPolicyId`), MCP servers (`_networkPolicyId`),
|
|
10
|
-
|
|
9
|
+
(`_networkPolicyId`), MCP servers (`_networkPolicyId`), webhook and distributed listener exports
|
|
10
|
+
(`_networkPolicyId`), or account sign-in settings to restrict the source addresses a caller may
|
|
11
|
+
connect from. A policy restricts nothing until it is assigned.
|
|
11
12
|
servers:
|
|
12
13
|
- url: https://api.integrator.io
|
|
13
14
|
description: Production (US / default region)
|
|
@@ -22,11 +23,11 @@ security:
|
|
|
22
23
|
tags:
|
|
23
24
|
- name: Network Policies
|
|
24
25
|
description: |-
|
|
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
|
|
26
|
+
Network policies are named IP allow and deny lists that control where API tokens, MCP servers, webhook listeners, and users may connect from. A policy takes effect only once it is assigned — through `_networkPolicyId` on an API token, an MCP server, or a webhook or distributed listener export, 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
27
|
|
|
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
|
+
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. A webhook listener's policy is checked on every delivery to its `/data` route — the source system's deliveries carry no Celigo identity, so the listener's own policy is the only one that applies to them — before the listener's verification runs and before the payload is read, and on authenticated reads of that route; enforcement on listeners is enabled per account.
|
|
28
29
|
|
|
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
|
+
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. A refused listener delivery is not queued and starts no flow run.
|
|
30
31
|
|
|
31
32
|
## Network policy schema
|
|
32
33
|
|
|
@@ -128,7 +129,7 @@ paths:
|
|
|
128
129
|
validated and stored in normalized form — a bare address becomes `/32` or
|
|
129
130
|
`/128`, IPv6 is compressed — and the response shows the stored values. The new
|
|
130
131
|
policy restricts nothing until it is assigned to an API token, an MCP server,
|
|
131
|
-
or account sign-in.
|
|
132
|
+
a webhook or real-time listener export, or account sign-in.
|
|
132
133
|
operationId: createNetworkPolicy
|
|
133
134
|
tags:
|
|
134
135
|
- Network Policies
|
|
@@ -243,7 +244,8 @@ paths:
|
|
|
243
244
|
omitted `description` is removed and an omitted `ipAllowList` or `ipDenyList`
|
|
244
245
|
becomes empty, which lifts every restriction that list imposed. Entries are
|
|
245
246
|
validated and normalized exactly as on create. The change applies to every
|
|
246
|
-
token, MCP server, and sign-in setting the policy is
|
|
247
|
+
token, MCP server, listener export, and sign-in setting the policy is
|
|
248
|
+
assigned to.
|
|
247
249
|
operationId: updateNetworkPolicy
|
|
248
250
|
tags:
|
|
249
251
|
- Network Policies
|
|
@@ -399,8 +401,8 @@ paths:
|
|
|
399
401
|
summary: Delete a network policy
|
|
400
402
|
description: |-
|
|
401
403
|
Moves the policy to the recycle bin, where it is retained for 30 days and can
|
|
402
|
-
be restored. A policy that is still assigned to an API token, MCP server,
|
|
403
|
-
account sign-in setting is not deleted: the request fails with 409
|
|
404
|
+
be restored. A policy that is still assigned to an API token, MCP server,
|
|
405
|
+
listener export, or account sign-in setting is not deleted: the request fails with 409
|
|
404
406
|
`network_policy_in_use` and `info` lists every assignment. Repeat with
|
|
405
407
|
`force=true` to clear those assignments and delete the policy — every principal
|
|
406
408
|
it was assigned to loses the restriction. Use `GET /v1/networkpolicies/{_id}/dependencies`
|
|
@@ -423,9 +425,9 @@ paths:
|
|
|
423
425
|
in: query
|
|
424
426
|
required: false
|
|
425
427
|
description: |-
|
|
426
|
-
When true, clears the policy from every API token, MCP server,
|
|
427
|
-
sign-in setting it is assigned to, then deletes it.
|
|
428
|
-
policy returns 409 and nothing changes.
|
|
428
|
+
When true, clears the policy from every API token, MCP server, listener
|
|
429
|
+
export, and account sign-in setting it is assigned to, then deletes it.
|
|
430
|
+
Without it, an assigned policy returns 409 and nothing changes.
|
|
429
431
|
schema:
|
|
430
432
|
type: boolean
|
|
431
433
|
default: false
|
|
@@ -448,8 +450,8 @@ paths:
|
|
|
448
450
|
- Network Policies
|
|
449
451
|
summary: List assignments of a network policy
|
|
450
452
|
description: |-
|
|
451
|
-
Returns every API token, MCP server, and account sign-in setting
|
|
452
|
-
assigned to within its own environment. Call it before `DELETE` to see what a
|
|
453
|
+
Returns every API token, MCP server, listener export, and account sign-in setting
|
|
454
|
+
the policy is assigned to within its own environment. Call it before `DELETE` to see what a
|
|
453
455
|
`force=true` delete would clear. Unlike other `/dependencies` endpoints, the
|
|
454
456
|
response is a fixed object rather than a map keyed by resource type.
|
|
455
457
|
parameters:
|
|
@@ -472,12 +474,15 @@ paths:
|
|
|
472
474
|
$ref: '#/components/schemas/NetworkPolicyDependencies'
|
|
473
475
|
examples:
|
|
474
476
|
assigned:
|
|
475
|
-
summary: Assigned to an MCP server
|
|
477
|
+
summary: Assigned to an MCP server and a webhook listener
|
|
476
478
|
value:
|
|
477
479
|
mcpservers:
|
|
478
480
|
- _id: 6ab1f4a95af4c5a3ea6b0a28
|
|
479
481
|
name: Order lookup MCP server
|
|
480
482
|
accesstokens: []
|
|
483
|
+
exports:
|
|
484
|
+
- _id: 6aeb0ddf1f97adaf3db4152b
|
|
485
|
+
name: Orders webhook listener
|
|
481
486
|
account:
|
|
482
487
|
workspaceUsers: false
|
|
483
488
|
workspaceUserEnvironments: []
|
|
@@ -488,6 +493,7 @@ paths:
|
|
|
488
493
|
value:
|
|
489
494
|
mcpservers: []
|
|
490
495
|
accesstokens: []
|
|
496
|
+
exports: []
|
|
491
497
|
account:
|
|
492
498
|
workspaceUsers: false
|
|
493
499
|
workspaceUserEnvironments: []
|
|
@@ -1033,6 +1039,7 @@ components:
|
|
|
1033
1039
|
required:
|
|
1034
1040
|
- mcpservers
|
|
1035
1041
|
- accesstokens
|
|
1042
|
+
- exports
|
|
1036
1043
|
- account
|
|
1037
1044
|
properties:
|
|
1038
1045
|
mcpservers:
|
|
@@ -1045,6 +1052,11 @@ components:
|
|
|
1045
1052
|
description: API tokens whose `_networkPolicyId` is this policy. Personal access tokens never appear here; they inherit the account's workspace-user policy instead.
|
|
1046
1053
|
items:
|
|
1047
1054
|
$ref: '#/components/schemas/NetworkPolicyDependencyRef'
|
|
1055
|
+
exports:
|
|
1056
|
+
type: array
|
|
1057
|
+
description: Webhook and distributed (real-time) listener exports whose `_networkPolicyId` is this policy. Each one is also listed under `info.exports` when a `DELETE` without `force=true` is refused.
|
|
1058
|
+
items:
|
|
1059
|
+
$ref: '#/components/schemas/NetworkPolicyDependencyRef'
|
|
1048
1060
|
account:
|
|
1049
1061
|
type: object
|
|
1050
1062
|
description: Account sign-in assignments of this policy, resolved per environment.
|
|
@@ -1199,8 +1211,8 @@ components:
|
|
|
1199
1211
|
message: The requested resource was not found.
|
|
1200
1212
|
409-in-use:
|
|
1201
1213
|
description: |-
|
|
1202
|
-
Conflict. The policy is still assigned to at least one API token, MCP server,
|
|
1203
|
-
account sign-in setting, so it was not deleted. `info` lists every assignment;
|
|
1214
|
+
Conflict. The policy is still assigned to at least one API token, MCP server,
|
|
1215
|
+
listener export, or account sign-in setting, so it was not deleted. `info` lists every assignment;
|
|
1204
1216
|
repeat the request with `force=true` to clear them and delete the policy.
|
|
1205
1217
|
content:
|
|
1206
1218
|
application/json:
|
|
@@ -1224,6 +1236,7 @@ components:
|
|
|
1224
1236
|
accesstokens:
|
|
1225
1237
|
- _id: 6ab1f6a338d7733b4599ec83
|
|
1226
1238
|
name: Warehouse sync token
|
|
1239
|
+
exports: []
|
|
1227
1240
|
account:
|
|
1228
1241
|
workspaceUsers: false
|
|
1229
1242
|
workspaceUserEnvironments: []
|
package/dist/tool.yml
CHANGED
|
@@ -28044,7 +28044,7 @@ components:
|
|
|
28044
28044
|
required:
|
|
28045
28045
|
- verify
|
|
28046
28046
|
x-celigo-ui-override: 'verify is required by the webhook listener form for every provider (exports/webhook.js: verify required:true; on a connector-backed listener the form pre-fills it from the connector definition before saving). The API enforces it only when provider is custom or absent — 422 missing_required_field on webhook.verify, "verify is required for export type webhook, provider = custom". For the named providers probed (slack, shopify, github) it stores a listener posted with key and no verify (201 each; the GET carries provider, key and formType simple) and requires a credential instead: without key (and no token) each answers 422 missing_required_field on webhook.key — "key is required for slack verification" / "key is required for shopify verification" / "key is required for github verification"; a slack listener posted with token and no key saved. Other named providers are unprobed. The requirement is kept so an authored document matches a form-saved one.'
|
|
28047
|
-
description: Configuration for webhook listeners that receive data through incoming HTTP requests. Required when the export's `type` is `webhook`; omit for other export types. Senders POST to the export's listener URL, `https://api.integrator.io/v1/exports/{_id}/data` (or the same path on the account's regional API host); the platform validates each request using the configured `verify` method, passes the payload to subsequent flow steps, and returns a configurable HTTP response to the caller. A request is answered 204 by default when accepted, 401 when it fails verification,
|
|
28047
|
+
description: Configuration for webhook listeners that receive data through incoming HTTP requests. Required when the export's `type` is `webhook`; omit for other export types. Senders POST to the export's listener URL, `https://api.integrator.io/v1/exports/{_id}/data` (or the same path on the account's regional API host); the platform validates each request using the configured `verify` method, passes the payload to subsequent flow steps, and returns a configurable HTTP response to the caller. A request is answered 204 by default when accepted, 401 when it fails verification, 403 `unable_to_run_flows` while every flow the export feeds is disabled, and 403 `access_denied` when the export's `_networkPolicyId` policy does not admit the sender's address (checked before verification, with a valid or an invalid token alike, where enforcement is enabled for the account); a refused request is not queued, so the sender must resend it once the cause is cleared.
|
|
28048
28048
|
x-celigo-ai-guidance:
|
|
28049
28049
|
- Configuration object for real-time event listeners that receive data via incoming HTTP requests.
|
|
28050
28050
|
- |-
|
|
@@ -39194,10 +39194,18 @@ components:
|
|
|
39194
39194
|
`webhook` object when `type` is `webhook`); an HTTP or SQL `delta` export saves without a
|
|
39195
39195
|
`delta` object because its request carries `{{lastExportDateTime}}`, though
|
|
39196
39196
|
`delta.startDate` sets its first window. It still needs `type: delta`: on an export
|
|
39197
|
-
with no `type`, `{{lastExportDateTime}}` and `{{currentExportDateTime}}` render
|
|
39198
|
-
empty on every run, so a request that carries them goes out with blank values each
|
|
39199
|
-
|
|
39200
|
-
|
|
39197
|
+
with no `type` (or `all`, or `test`), `{{lastExportDateTime}}` and `{{currentExportDateTime}}` render
|
|
39198
|
+
empty on every run, so a request that carries them bare goes out with blank values each
|
|
39199
|
+
time, `dateFormat` on one renders the run's current time (the request asks for changes
|
|
39200
|
+
since now), and `dateAdd` on one fails the whole render — on an HTTP export's body or
|
|
39201
|
+
relative URI the run records `handlebars_template_parse_error`, "Failed to generate request
|
|
39202
|
+
body (or url) from template … Details: Invalid time value" — before anything is sent
|
|
39203
|
+
(live-verified 2026-10-22 and 2026-11-04). When incremental reads are intended, restoring
|
|
39204
|
+
`type: delta` (with `delta.startDate` for the first window) makes the variables resolve;
|
|
39205
|
+
when reading everything is intended, change the template — drop the variable or guard it
|
|
39206
|
+
with `{{#if lastExportDateTime}}…{{else}}fallback{{/if}}`, whose else branch (a literal, in
|
|
39207
|
+
practice a fixed start date) renders on an export with no `type`, `type: all` or
|
|
39208
|
+
`type: test`. Use `blob` only to transfer raw files without parsing their contents.
|
|
39201
39209
|
x-celigo-ai-guidance:
|
|
39202
39210
|
- |-
|
|
39203
39211
|
## HOW TO PICK THE TYPE VALUE
|
|
@@ -39696,6 +39704,33 @@ components:
|
|
|
39696
39704
|
- 'The listener must be an export with `type: "webhook"` and `webhook.provider: "integrator-extension"`; any other export id is rejected with `invalid_post_parse_listener`. On an HTTP export outside file mode the save is rejected with `post_parse_listener_not_supported`: "Listener for functional acknowledgment is only supported for AS2, FTP, S3 and HTTP file export."'
|
|
39697
39705
|
examples:
|
|
39698
39706
|
- 60a2c4e6f321d800129a1a3c
|
|
39707
|
+
_networkPolicyId:
|
|
39708
|
+
type:
|
|
39709
|
+
- string
|
|
39710
|
+
- 'null'
|
|
39711
|
+
format: objectId
|
|
39712
|
+
x-celigo-refModel: networkpolicies
|
|
39713
|
+
description: |-
|
|
39714
|
+
Network policy whose IP allow and deny lists gate the requests that deliver data to this
|
|
39715
|
+
listener. Only `type` `webhook` or `distributed` exports accept it; any other type fails
|
|
39716
|
+
with 422 `not_allowed`. An id that is not one of the environment's network policies,
|
|
39717
|
+
including one in the recycle bin, fails with 400 `network_policy_not_found`. Preserved
|
|
39718
|
+
when omitted on PUT; send `null`, or `remove` it with `PATCH /v1/exports/{_id}` (which
|
|
39719
|
+
also accepts `add` and `replace` with an id), to clear it. Deleting the policy with
|
|
39720
|
+
`?force=true` clears it too. Absent from responses when no policy is assigned.
|
|
39721
|
+
|
|
39722
|
+
Where network-policy enforcement is enabled for the account, a webhook delivery to the
|
|
39723
|
+
listener's `/data` route from an address the policy does not admit is refused with 403
|
|
39724
|
+
`access_denied` — with a valid verification token or an invalid one alike, never 401 —
|
|
39725
|
+
before the listener's verification runs and before the payload is read, so nothing is
|
|
39726
|
+
queued and no flow run starts; an authenticated `GET` or `HEAD` of that route from such an
|
|
39727
|
+
address is refused the same way. Enforcement on listeners is enabled per account. The
|
|
39728
|
+
assignment is recorded in the export's audit as a `_networkPolicyId` field change carrying
|
|
39729
|
+
the policy id.
|
|
39730
|
+
x-celigo-ai-guidance:
|
|
39731
|
+
- 'Assign by sending the whole export document with `_networkPolicyId` set (the form''s own save does the same) and clear it with an explicit `null` — a PUT that omits the field keeps the current policy, so a removed key is a silent no-op, not an unassignment. Resolve the policy id from `GET /v1/networkpolicies` in the same environment first: an unknown or recycled id is refused only at save time with 400 `network_policy_not_found`.'
|
|
39732
|
+
examples:
|
|
39733
|
+
- 6ab1ebbfb9e4547494ff7558
|
|
39699
39734
|
externalId:
|
|
39700
39735
|
type:
|
|
39701
39736
|
- string
|
package/package.json
CHANGED
package/schemas.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"provenance": {
|
|
3
3
|
"repo": "celigo/integrator-api-specs",
|
|
4
|
-
"iasCommit": "
|
|
4
|
+
"iasCommit": "aba7deb7",
|
|
5
5
|
"generatedAt": "2026-11-04"
|
|
6
6
|
},
|
|
7
7
|
"roots": {
|
|
@@ -5793,6 +5793,7 @@
|
|
|
5793
5793
|
"_ediProfileId": 0,
|
|
5794
5794
|
"_id": 0,
|
|
5795
5795
|
"_integrationId": 88,
|
|
5796
|
+
"_networkPolicyId": 88,
|
|
5796
5797
|
"_postParseListenerId": 0,
|
|
5797
5798
|
"_sourceId": 0,
|
|
5798
5799
|
"_templateId": 0,
|