@celigo/api-specs 0.2.232 → 0.2.234

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/api.yml CHANGED
@@ -8720,8 +8720,9 @@ components:
8720
8720
  description: |
8721
8721
  NetSuite TBA token ID (encrypted at rest). Required when authType is "token".
8722
8722
 
8723
- Generated in NetSuite under Setup > Users/Roles > Access Tokens, for the
8724
- integrator.io application and the user and role the connection should act as.
8723
+ Generated in NetSuite under Setup > Users/Roles > Access Tokens, for the Application
8724
+ the connection signs its requests with — `integrator.io` unless `_iClientId` names another
8725
+ integration record — and the user and role the connection should act as.
8725
8726
  Must be paired with the corresponding tokenSecret.
8726
8727
  x-celigo-ai-guidance:
8727
8728
  - Not needed when authType is "token-auto" — integrator.io manages the token wiring in that mode.
@@ -8730,6 +8731,11 @@ components:
8730
8731
  (HTTP 200, `errors[].code`, source `application`) and the save sets the connection offline;
8731
8732
  the response carries no detail of what NetSuite refused — that detail is in NetSuite's
8732
8733
  Login Audit Trail (the Detail column), not in the connection's error.
8734
+ - |-
8735
+ A token created for a different Application than the one the connection signs with is
8736
+ refused the same way, so when a freshly created token is refused, which Application it
8737
+ was created for is the first question; a missing iClient is not the cause on a connection
8738
+ that has none — it signs with Celigo's `integrator.io` record.
8733
8739
  writeOnly: true
8734
8740
  tokenSecret:
8735
8741
  type: string
@@ -8748,7 +8754,11 @@ components:
8748
8754
  type: string
8749
8755
  examples:
8750
8756
  - '1234'
8751
- description: NetSuite entity/user ID associated with the token.
8757
+ description: |-
8758
+ NetSuite internal id of the user (entity) whose access token the connection logs in
8759
+ with. On a token-authenticated connection the platform records it from the token
8760
+ NetSuite accepted, together with `roleId` and `roleName`; a value that still names the
8761
+ previous token's user after a refused login is the symptom of the refusal, not its cause.
8752
8762
  tokenName:
8753
8763
  type: string
8754
8764
  examples:
@@ -8758,11 +8768,19 @@ components:
8758
8768
  type: string
8759
8769
  examples:
8760
8770
  - '3'
8761
- description: |
8762
- NetSuite role ID that determines the permissions for this connection.
8763
-
8764
- The role controls which records, fields, and operations are accessible.
8765
- Must match the role associated with the access token in NetSuite.
8771
+ description: |-
8772
+ NetSuite internal id of the role the connection's access token logs in as — the role
8773
+ selected when the token was created (`token`) or chosen on NetSuite's consent page during
8774
+ Save & authorize (`token-auto`). The platform records it from the token NetSuite accepted,
8775
+ together with `roleName` and `entityId`; the connection form has no role field for token
8776
+ authentication, and a value that still names the previous token's role after a refused
8777
+ login is the symptom of the refusal, not its cause.
8778
+ x-celigo-ai-guidance:
8779
+ - |-
8780
+ On a token-authenticated connection a value sent on create or update is stored but has no
8781
+ effect on the login — NetSuite applies the role bound to the token — and is replaced from
8782
+ the token at the next successful login; never write it to "match" a new token or offer
8783
+ to. The token is the change.
8766
8784
  requestLevelCredentials:
8767
8785
  type: boolean
8768
8786
  default: false
@@ -8805,7 +8823,9 @@ components:
8805
8823
  type: string
8806
8824
  examples:
8807
8825
  - Administrator
8808
- description: Human-readable name of the NetSuite role (display purposes only).
8826
+ description: |-
8827
+ Display name of the role in `roleId`, recorded with it from the token NetSuite accepted
8828
+ (display purposes only).
8809
8829
  wsdlVersion:
8810
8830
  type: string
8811
8831
  examples:
@@ -8883,7 +8903,13 @@ components:
8883
8903
  x-celigo-refModel: iclients
8884
8904
  examples:
8885
8905
  - 66a1b2c3d4e5f60718293a4b
8886
- description: ID of the iClient used for token-based authentication.
8906
+ description: |-
8907
+ iClient holding the consumer key and secret of the NetSuite integration record the
8908
+ connection signs its requests with, when that record is not Celigo's own — an Integration
8909
+ App's record (set by the app's install) or the account's own; access tokens are then created
8910
+ for that record's Application. Absent on a standalone connection, which signs with Celigo's
8911
+ `integrator.io` record (no client ID or secret is entered anywhere) and whose access tokens
8912
+ must be created for Application `integrator.io`.
8887
8913
  Salesforce:
8888
8914
  type: object
8889
8915
  description: |-
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 value is not validated against known paths — an
220
- unknown path simply matches nothing.
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:
@@ -4532,8 +4532,9 @@ components:
4532
4532
  description: |
4533
4533
  NetSuite TBA token ID (encrypted at rest). Required when authType is "token".
4534
4534
 
4535
- Generated in NetSuite under Setup > Users/Roles > Access Tokens, for the
4536
- integrator.io application and the user and role the connection should act as.
4535
+ Generated in NetSuite under Setup > Users/Roles > Access Tokens, for the Application
4536
+ the connection signs its requests with — `integrator.io` unless `_iClientId` names another
4537
+ integration record — and the user and role the connection should act as.
4537
4538
  Must be paired with the corresponding tokenSecret.
4538
4539
  x-celigo-ai-guidance:
4539
4540
  - Not needed when authType is "token-auto" — integrator.io manages the token wiring in that mode.
@@ -4542,6 +4543,11 @@ components:
4542
4543
  (HTTP 200, `errors[].code`, source `application`) and the save sets the connection offline;
4543
4544
  the response carries no detail of what NetSuite refused — that detail is in NetSuite's
4544
4545
  Login Audit Trail (the Detail column), not in the connection's error.
4546
+ - |-
4547
+ A token created for a different Application than the one the connection signs with is
4548
+ refused the same way, so when a freshly created token is refused, which Application it
4549
+ was created for is the first question; a missing iClient is not the cause on a connection
4550
+ that has none — it signs with Celigo's `integrator.io` record.
4545
4551
  writeOnly: true
4546
4552
  tokenSecret:
4547
4553
  type: string
@@ -4560,7 +4566,11 @@ components:
4560
4566
  type: string
4561
4567
  examples:
4562
4568
  - '1234'
4563
- description: NetSuite entity/user ID associated with the token.
4569
+ description: |-
4570
+ NetSuite internal id of the user (entity) whose access token the connection logs in
4571
+ with. On a token-authenticated connection the platform records it from the token
4572
+ NetSuite accepted, together with `roleId` and `roleName`; a value that still names the
4573
+ previous token's user after a refused login is the symptom of the refusal, not its cause.
4564
4574
  tokenName:
4565
4575
  type: string
4566
4576
  examples:
@@ -4570,11 +4580,19 @@ components:
4570
4580
  type: string
4571
4581
  examples:
4572
4582
  - '3'
4573
- description: |
4574
- NetSuite role ID that determines the permissions for this connection.
4575
-
4576
- The role controls which records, fields, and operations are accessible.
4577
- Must match the role associated with the access token in NetSuite.
4583
+ description: |-
4584
+ NetSuite internal id of the role the connection's access token logs in as — the role
4585
+ selected when the token was created (`token`) or chosen on NetSuite's consent page during
4586
+ Save & authorize (`token-auto`). The platform records it from the token NetSuite accepted,
4587
+ together with `roleName` and `entityId`; the connection form has no role field for token
4588
+ authentication, and a value that still names the previous token's role after a refused
4589
+ login is the symptom of the refusal, not its cause.
4590
+ x-celigo-ai-guidance:
4591
+ - |-
4592
+ On a token-authenticated connection a value sent on create or update is stored but has no
4593
+ effect on the login — NetSuite applies the role bound to the token — and is replaced from
4594
+ the token at the next successful login; never write it to "match" a new token or offer
4595
+ to. The token is the change.
4578
4596
  requestLevelCredentials:
4579
4597
  type: boolean
4580
4598
  default: false
@@ -4617,7 +4635,9 @@ components:
4617
4635
  type: string
4618
4636
  examples:
4619
4637
  - Administrator
4620
- description: Human-readable name of the NetSuite role (display purposes only).
4638
+ description: |-
4639
+ Display name of the role in `roleId`, recorded with it from the token NetSuite accepted
4640
+ (display purposes only).
4621
4641
  wsdlVersion:
4622
4642
  type: string
4623
4643
  examples:
@@ -4695,7 +4715,13 @@ components:
4695
4715
  x-celigo-refModel: iclients
4696
4716
  examples:
4697
4717
  - 66a1b2c3d4e5f60718293a4b
4698
- description: ID of the iClient used for token-based authentication.
4718
+ description: |-
4719
+ iClient holding the consumer key and secret of the NetSuite integration record the
4720
+ connection signs its requests with, when that record is not Celigo's own — an Integration
4721
+ App's record (set by the app's install) or the account's own; access tokens are then created
4722
+ for that record's Application. Absent on a standalone connection, which signs with Celigo's
4723
+ `integrator.io` record (no client ID or secret is entered anywhere) and whose access tokens
4724
+ must be created for Application `integrator.io`.
4699
4725
  Salesforce:
4700
4726
  type: object
4701
4727
  description: |-
package/dist/enduser.yml CHANGED
@@ -2557,8 +2557,9 @@ components:
2557
2557
  description: |
2558
2558
  NetSuite TBA token ID (encrypted at rest). Required when authType is "token".
2559
2559
 
2560
- Generated in NetSuite under Setup > Users/Roles > Access Tokens, for the
2561
- integrator.io application and the user and role the connection should act as.
2560
+ Generated in NetSuite under Setup > Users/Roles > Access Tokens, for the Application
2561
+ the connection signs its requests with — `integrator.io` unless `_iClientId` names another
2562
+ integration record — and the user and role the connection should act as.
2562
2563
  Must be paired with the corresponding tokenSecret.
2563
2564
  x-celigo-ai-guidance:
2564
2565
  - Not needed when authType is "token-auto" — integrator.io manages the token wiring in that mode.
@@ -2567,6 +2568,11 @@ components:
2567
2568
  (HTTP 200, `errors[].code`, source `application`) and the save sets the connection offline;
2568
2569
  the response carries no detail of what NetSuite refused — that detail is in NetSuite's
2569
2570
  Login Audit Trail (the Detail column), not in the connection's error.
2571
+ - |-
2572
+ A token created for a different Application than the one the connection signs with is
2573
+ refused the same way, so when a freshly created token is refused, which Application it
2574
+ was created for is the first question; a missing iClient is not the cause on a connection
2575
+ that has none — it signs with Celigo's `integrator.io` record.
2570
2576
  writeOnly: true
2571
2577
  tokenSecret:
2572
2578
  type: string
@@ -2585,7 +2591,11 @@ components:
2585
2591
  type: string
2586
2592
  examples:
2587
2593
  - '1234'
2588
- description: NetSuite entity/user ID associated with the token.
2594
+ description: |-
2595
+ NetSuite internal id of the user (entity) whose access token the connection logs in
2596
+ with. On a token-authenticated connection the platform records it from the token
2597
+ NetSuite accepted, together with `roleId` and `roleName`; a value that still names the
2598
+ previous token's user after a refused login is the symptom of the refusal, not its cause.
2589
2599
  tokenName:
2590
2600
  type: string
2591
2601
  examples:
@@ -2595,11 +2605,19 @@ components:
2595
2605
  type: string
2596
2606
  examples:
2597
2607
  - '3'
2598
- description: |
2599
- NetSuite role ID that determines the permissions for this connection.
2600
-
2601
- The role controls which records, fields, and operations are accessible.
2602
- Must match the role associated with the access token in NetSuite.
2608
+ description: |-
2609
+ NetSuite internal id of the role the connection's access token logs in as — the role
2610
+ selected when the token was created (`token`) or chosen on NetSuite's consent page during
2611
+ Save & authorize (`token-auto`). The platform records it from the token NetSuite accepted,
2612
+ together with `roleName` and `entityId`; the connection form has no role field for token
2613
+ authentication, and a value that still names the previous token's role after a refused
2614
+ login is the symptom of the refusal, not its cause.
2615
+ x-celigo-ai-guidance:
2616
+ - |-
2617
+ On a token-authenticated connection a value sent on create or update is stored but has no
2618
+ effect on the login — NetSuite applies the role bound to the token — and is replaced from
2619
+ the token at the next successful login; never write it to "match" a new token or offer
2620
+ to. The token is the change.
2603
2621
  requestLevelCredentials:
2604
2622
  type: boolean
2605
2623
  default: false
@@ -2642,7 +2660,9 @@ components:
2642
2660
  type: string
2643
2661
  examples:
2644
2662
  - Administrator
2645
- description: Human-readable name of the NetSuite role (display purposes only).
2663
+ description: |-
2664
+ Display name of the role in `roleId`, recorded with it from the token NetSuite accepted
2665
+ (display purposes only).
2646
2666
  wsdlVersion:
2647
2667
  type: string
2648
2668
  examples:
@@ -2720,7 +2740,13 @@ components:
2720
2740
  x-celigo-refModel: iclients
2721
2741
  examples:
2722
2742
  - 66a1b2c3d4e5f60718293a4b
2723
- description: ID of the iClient used for token-based authentication.
2743
+ description: |-
2744
+ iClient holding the consumer key and secret of the NetSuite integration record the
2745
+ connection signs its requests with, when that record is not Celigo's own — an Integration
2746
+ App's record (set by the app's install) or the account's own; access tokens are then created
2747
+ for that record's Application. Absent on a standalone connection, which signs with Celigo's
2748
+ `integrator.io` record (no client ID or secret is entered anywhere) and whose access tokens
2749
+ must be created for Application `integrator.io`.
2724
2750
  Salesforce:
2725
2751
  type: object
2726
2752
  description: |-
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, and 403 `unable_to_run_flows` while every flow the export feeds is disabled; a refused request is not queued, so the sender must resend it.
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
  - |-
@@ -17385,6 +17386,33 @@ components:
17385
17386
  - '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
17387
  examples:
17387
17388
  - 60a2c4e6f321d800129a1a3c
17389
+ _networkPolicyId:
17390
+ type:
17391
+ - string
17392
+ - 'null'
17393
+ format: objectId
17394
+ x-celigo-refModel: networkpolicies
17395
+ description: |-
17396
+ Network policy whose IP allow and deny lists gate the requests that deliver data to this
17397
+ listener. Only `type` `webhook` or `distributed` exports accept it; any other type fails
17398
+ with 422 `not_allowed`. An id that is not one of the environment's network policies,
17399
+ including one in the recycle bin, fails with 400 `network_policy_not_found`. Preserved
17400
+ when omitted on PUT; send `null`, or `remove` it with `PATCH /v1/exports/{_id}` (which
17401
+ also accepts `add` and `replace` with an id), to clear it. Deleting the policy with
17402
+ `?force=true` clears it too. Absent from responses when no policy is assigned.
17403
+
17404
+ Where network-policy enforcement is enabled for the account, a webhook delivery to the
17405
+ listener's `/data` route from an address the policy does not admit is refused with 403
17406
+ `access_denied` — with a valid verification token or an invalid one alike, never 401 —
17407
+ before the listener's verification runs and before the payload is read, so nothing is
17408
+ queued and no flow run starts; an authenticated `GET` or `HEAD` of that route from such an
17409
+ address is refused the same way. Enforcement on listeners is enabled per account. The
17410
+ assignment is recorded in the export's audit as a `_networkPolicyId` field change carrying
17411
+ the policy id.
17412
+ x-celigo-ai-guidance:
17413
+ - '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`.'
17414
+ examples:
17415
+ - 6ab1ebbfb9e4547494ff7558
17388
17416
  externalId:
17389
17417
  type:
17390
17418
  - string
package/dist/iclient.yml CHANGED
@@ -3005,59 +3005,18 @@ components:
3005
3005
  and can be referenced by resources within integrator.io through the iClient.
3006
3006
  netsuite:
3007
3007
  type: object
3008
- description: NetSuite token-based authentication credentials.
3008
+ description: |-
3009
+ Consumer key and consumer secret of a NetSuite integration record, for a connection that
3010
+ signs its requests as that record rather than as Celigo's own `integrator.io` record — an
3011
+ Integration App's record (its install creates the iClient) or one the account created. A
3012
+ standalone NetSuite connection references no iClient; its access tokens are created for
3013
+ Application `integrator.io`.
3009
3014
  x-celigo-ai-guidance:
3010
3015
  - |-
3011
- Configuration settings and credentials required to integrate with the NetSuite platform,
3012
- enabling seamless data synchronization and interaction with NetSuite's ERP and CRM services.
3013
- This property typically includes authentication details, API endpoints,
3014
- and any necessary parameters for establishing a secure connection.
3015
- - |-
3016
- ## IMPORTANT NOTES:
3017
- - Incorrect or outdated credentials will prevent successful integration.
3018
- - NetSuite API limits and governance should be considered to avoid throttling.
3019
- - Regularly review and rotate credentials to maintain security.
3020
- - Integration may require specific permissions within NetSuite roles.
3021
- - |-
3022
- ## IMPLEMENTATION GUIDANCE:
3023
- - Ensure sensitive credentials are stored securely and encrypted.
3024
- - Validate all required fields before attempting connection to NetSuite.
3025
- - Support environment-specific configurations (e.g., sandbox vs. production).
3026
- - Handle error responses gracefully to maintain integration stability.
3027
- - Keep the configuration up to date with NetSuite API version changes.
3028
- - |-
3029
- ## TECHNICAL DETAILS:
3030
- - Typically includes OAuth 1.0a or token-based authentication parameters.
3031
- - May require JSON or XML formatted configuration data.
3032
- - Supports both REST and SOAP API protocols depending on use case.
3033
- - Configuration format should align with NetSuite's API specification requirements.
3034
- - |-
3035
- ## FIELD BEHAVIOR:
3036
- - Holds all necessary information to authenticate and communicate with NetSuite APIs.
3037
- - Used to configure integration settings such as account ID, role, and environment.
3038
- - Enables data exchange between the application and NetSuite for operations like record creation, updates, and queries.
3039
- - May support multiple authentication methods, including token-based and OAuth.
3040
- - |-
3041
- ## EXAMPLES:
3042
- - API credentials including consumer key, consumer secret, token ID, and token secret.
3043
- - Account ID and role ID for specifying the NetSuite account and user role.
3044
- - URLs for NetSuite REST or SOAP API endpoints.
3045
- - Flags or settings indicating sandbox or production environment.
3046
- - |-
3047
- ## DEPENDENCY CHAIN:
3048
- - Dependent on secure storage mechanisms for credentials.
3049
- - Relies on network connectivity to NetSuite services.
3050
- - May depend on other configuration properties like logging or retry policies.
3051
- - |-
3052
- Configuration settings and credentials required to integrate with the NetSuite platform,
3053
- enabling seamless data synchronization and interaction with NetSuite's ERP and CRM services.
3054
- This property typically includes authentication details, API endpoints,
3055
- and any necessary parameters for establishing a secure connection.
3056
- - |-
3057
- Configuration settings and credentials required to integrate with the NetSuite platform,
3058
- enabling seamless data synchronization and interaction with NetSuite's ERP and CRM services.
3059
- This property typically includes authentication details, API endpoints,
3060
- and any necessary parameters for establishing a secure connection.
3016
+ A connection that references a NetSuite iClient needs access tokens created for that
3017
+ record's Application; a connection without one needs tokens created for `integrator.io`.
3018
+ A missing iClient is not why a connection that has none is refused with
3019
+ `invalid_login_attempt`.
3061
3020
  properties:
3062
3021
  consumerKey:
3063
3022
  type: string
@@ -5605,8 +5605,9 @@ components:
5605
5605
  description: |
5606
5606
  NetSuite TBA token ID (encrypted at rest). Required when authType is "token".
5607
5607
 
5608
- Generated in NetSuite under Setup > Users/Roles > Access Tokens, for the
5609
- integrator.io application and the user and role the connection should act as.
5608
+ Generated in NetSuite under Setup > Users/Roles > Access Tokens, for the Application
5609
+ the connection signs its requests with — `integrator.io` unless `_iClientId` names another
5610
+ integration record — and the user and role the connection should act as.
5610
5611
  Must be paired with the corresponding tokenSecret.
5611
5612
  x-celigo-ai-guidance:
5612
5613
  - Not needed when authType is "token-auto" — integrator.io manages the token wiring in that mode.
@@ -5615,6 +5616,11 @@ components:
5615
5616
  (HTTP 200, `errors[].code`, source `application`) and the save sets the connection offline;
5616
5617
  the response carries no detail of what NetSuite refused — that detail is in NetSuite's
5617
5618
  Login Audit Trail (the Detail column), not in the connection's error.
5619
+ - |-
5620
+ A token created for a different Application than the one the connection signs with is
5621
+ refused the same way, so when a freshly created token is refused, which Application it
5622
+ was created for is the first question; a missing iClient is not the cause on a connection
5623
+ that has none — it signs with Celigo's `integrator.io` record.
5618
5624
  writeOnly: true
5619
5625
  tokenSecret:
5620
5626
  type: string
@@ -5633,7 +5639,11 @@ components:
5633
5639
  type: string
5634
5640
  examples:
5635
5641
  - '1234'
5636
- description: NetSuite entity/user ID associated with the token.
5642
+ description: |-
5643
+ NetSuite internal id of the user (entity) whose access token the connection logs in
5644
+ with. On a token-authenticated connection the platform records it from the token
5645
+ NetSuite accepted, together with `roleId` and `roleName`; a value that still names the
5646
+ previous token's user after a refused login is the symptom of the refusal, not its cause.
5637
5647
  tokenName:
5638
5648
  type: string
5639
5649
  examples:
@@ -5643,11 +5653,19 @@ components:
5643
5653
  type: string
5644
5654
  examples:
5645
5655
  - '3'
5646
- description: |
5647
- NetSuite role ID that determines the permissions for this connection.
5648
-
5649
- The role controls which records, fields, and operations are accessible.
5650
- Must match the role associated with the access token in NetSuite.
5656
+ description: |-
5657
+ NetSuite internal id of the role the connection's access token logs in as — the role
5658
+ selected when the token was created (`token`) or chosen on NetSuite's consent page during
5659
+ Save & authorize (`token-auto`). The platform records it from the token NetSuite accepted,
5660
+ together with `roleName` and `entityId`; the connection form has no role field for token
5661
+ authentication, and a value that still names the previous token's role after a refused
5662
+ login is the symptom of the refusal, not its cause.
5663
+ x-celigo-ai-guidance:
5664
+ - |-
5665
+ On a token-authenticated connection a value sent on create or update is stored but has no
5666
+ effect on the login — NetSuite applies the role bound to the token — and is replaced from
5667
+ the token at the next successful login; never write it to "match" a new token or offer
5668
+ to. The token is the change.
5651
5669
  requestLevelCredentials:
5652
5670
  type: boolean
5653
5671
  default: false
@@ -5690,7 +5708,9 @@ components:
5690
5708
  type: string
5691
5709
  examples:
5692
5710
  - Administrator
5693
- description: Human-readable name of the NetSuite role (display purposes only).
5711
+ description: |-
5712
+ Display name of the role in `roleId`, recorded with it from the token NetSuite accepted
5713
+ (display purposes only).
5694
5714
  wsdlVersion:
5695
5715
  type: string
5696
5716
  examples:
@@ -5768,7 +5788,13 @@ components:
5768
5788
  x-celigo-refModel: iclients
5769
5789
  examples:
5770
5790
  - 66a1b2c3d4e5f60718293a4b
5771
- description: ID of the iClient used for token-based authentication.
5791
+ description: |-
5792
+ iClient holding the consumer key and secret of the NetSuite integration record the
5793
+ connection signs its requests with, when that record is not Celigo's own — an Integration
5794
+ App's record (set by the app's install) or the account's own; access tokens are then created
5795
+ for that record's Application. Absent on a standalone connection, which signs with Celigo's
5796
+ `integrator.io` record (no client ID or secret is entered anywhere) and whose access tokens
5797
+ must be created for Application `integrator.io`.
5772
5798
  Salesforce:
5773
5799
  type: object
5774
5800
  description: |-
@@ -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`), or account sign-in settings to restrict
10
- the source addresses a caller may connect from. A policy restricts nothing until it is assigned.
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 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
+ 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 assigned to.
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, or
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, and account
427
- sign-in setting it is assigned to, then deletes it. Without it, an assigned
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 the policy is
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, or
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
@@ -8087,8 +8087,9 @@ components:
8087
8087
  description: |
8088
8088
  NetSuite TBA token ID (encrypted at rest). Required when authType is "token".
8089
8089
 
8090
- Generated in NetSuite under Setup > Users/Roles > Access Tokens, for the
8091
- integrator.io application and the user and role the connection should act as.
8090
+ Generated in NetSuite under Setup > Users/Roles > Access Tokens, for the Application
8091
+ the connection signs its requests with — `integrator.io` unless `_iClientId` names another
8092
+ integration record — and the user and role the connection should act as.
8092
8093
  Must be paired with the corresponding tokenSecret.
8093
8094
  x-celigo-ai-guidance:
8094
8095
  - Not needed when authType is "token-auto" — integrator.io manages the token wiring in that mode.
@@ -8097,6 +8098,11 @@ components:
8097
8098
  (HTTP 200, `errors[].code`, source `application`) and the save sets the connection offline;
8098
8099
  the response carries no detail of what NetSuite refused — that detail is in NetSuite's
8099
8100
  Login Audit Trail (the Detail column), not in the connection's error.
8101
+ - |-
8102
+ A token created for a different Application than the one the connection signs with is
8103
+ refused the same way, so when a freshly created token is refused, which Application it
8104
+ was created for is the first question; a missing iClient is not the cause on a connection
8105
+ that has none — it signs with Celigo's `integrator.io` record.
8100
8106
  writeOnly: true
8101
8107
  tokenSecret:
8102
8108
  type: string
@@ -8115,7 +8121,11 @@ components:
8115
8121
  type: string
8116
8122
  examples:
8117
8123
  - '1234'
8118
- description: NetSuite entity/user ID associated with the token.
8124
+ description: |-
8125
+ NetSuite internal id of the user (entity) whose access token the connection logs in
8126
+ with. On a token-authenticated connection the platform records it from the token
8127
+ NetSuite accepted, together with `roleId` and `roleName`; a value that still names the
8128
+ previous token's user after a refused login is the symptom of the refusal, not its cause.
8119
8129
  tokenName:
8120
8130
  type: string
8121
8131
  examples:
@@ -8125,11 +8135,19 @@ components:
8125
8135
  type: string
8126
8136
  examples:
8127
8137
  - '3'
8128
- description: |
8129
- NetSuite role ID that determines the permissions for this connection.
8130
-
8131
- The role controls which records, fields, and operations are accessible.
8132
- Must match the role associated with the access token in NetSuite.
8138
+ description: |-
8139
+ NetSuite internal id of the role the connection's access token logs in as — the role
8140
+ selected when the token was created (`token`) or chosen on NetSuite's consent page during
8141
+ Save & authorize (`token-auto`). The platform records it from the token NetSuite accepted,
8142
+ together with `roleName` and `entityId`; the connection form has no role field for token
8143
+ authentication, and a value that still names the previous token's role after a refused
8144
+ login is the symptom of the refusal, not its cause.
8145
+ x-celigo-ai-guidance:
8146
+ - |-
8147
+ On a token-authenticated connection a value sent on create or update is stored but has no
8148
+ effect on the login — NetSuite applies the role bound to the token — and is replaced from
8149
+ the token at the next successful login; never write it to "match" a new token or offer
8150
+ to. The token is the change.
8133
8151
  requestLevelCredentials:
8134
8152
  type: boolean
8135
8153
  default: false
@@ -8172,7 +8190,9 @@ components:
8172
8190
  type: string
8173
8191
  examples:
8174
8192
  - Administrator
8175
- description: Human-readable name of the NetSuite role (display purposes only).
8193
+ description: |-
8194
+ Display name of the role in `roleId`, recorded with it from the token NetSuite accepted
8195
+ (display purposes only).
8176
8196
  wsdlVersion:
8177
8197
  type: string
8178
8198
  examples:
@@ -8250,7 +8270,13 @@ components:
8250
8270
  x-celigo-refModel: iclients
8251
8271
  examples:
8252
8272
  - 66a1b2c3d4e5f60718293a4b
8253
- description: ID of the iClient used for token-based authentication.
8273
+ description: |-
8274
+ iClient holding the consumer key and secret of the NetSuite integration record the
8275
+ connection signs its requests with, when that record is not Celigo's own — an Integration
8276
+ App's record (set by the app's install) or the account's own; access tokens are then created
8277
+ for that record's Application. Absent on a standalone connection, which signs with Celigo's
8278
+ `integrator.io` record (no client ID or secret is entered anywhere) and whose access tokens
8279
+ must be created for Application `integrator.io`.
8254
8280
  Salesforce:
8255
8281
  type: object
8256
8282
  description: |-
@@ -28018,7 +28044,7 @@ components:
28018
28044
  required:
28019
28045
  - verify
28020
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.'
28021
- 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, and 403 `unable_to_run_flows` while every flow the export feeds is disabled; a refused request is not queued, so the sender must resend it.
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.
28022
28048
  x-celigo-ai-guidance:
28023
28049
  - Configuration object for real-time event listeners that receive data via incoming HTTP requests.
28024
28050
  - |-
@@ -39670,6 +39696,33 @@ components:
39670
39696
  - '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."'
39671
39697
  examples:
39672
39698
  - 60a2c4e6f321d800129a1a3c
39699
+ _networkPolicyId:
39700
+ type:
39701
+ - string
39702
+ - 'null'
39703
+ format: objectId
39704
+ x-celigo-refModel: networkpolicies
39705
+ description: |-
39706
+ Network policy whose IP allow and deny lists gate the requests that deliver data to this
39707
+ listener. Only `type` `webhook` or `distributed` exports accept it; any other type fails
39708
+ with 422 `not_allowed`. An id that is not one of the environment's network policies,
39709
+ including one in the recycle bin, fails with 400 `network_policy_not_found`. Preserved
39710
+ when omitted on PUT; send `null`, or `remove` it with `PATCH /v1/exports/{_id}` (which
39711
+ also accepts `add` and `replace` with an id), to clear it. Deleting the policy with
39712
+ `?force=true` clears it too. Absent from responses when no policy is assigned.
39713
+
39714
+ Where network-policy enforcement is enabled for the account, a webhook delivery to the
39715
+ listener's `/data` route from an address the policy does not admit is refused with 403
39716
+ `access_denied` — with a valid verification token or an invalid one alike, never 401 —
39717
+ before the listener's verification runs and before the payload is read, so nothing is
39718
+ queued and no flow run starts; an authenticated `GET` or `HEAD` of that route from such an
39719
+ address is refused the same way. Enforcement on listeners is enabled per account. The
39720
+ assignment is recorded in the export's audit as a `_networkPolicyId` field change carrying
39721
+ the policy id.
39722
+ x-celigo-ai-guidance:
39723
+ - '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`.'
39724
+ examples:
39725
+ - 6ab1ebbfb9e4547494ff7558
39673
39726
  externalId:
39674
39727
  type:
39675
39728
  - string
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celigo/api-specs",
3
- "version": "0.2.232",
3
+ "version": "0.2.234",
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": "fb204127",
4
+ "iasCommit": "afd36585",
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,