@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 +36 -10
- package/dist/audit.yml +25 -7
- package/dist/connection.yml +36 -10
- package/dist/enduser.yml +36 -10
- package/dist/export.yml +29 -1
- package/dist/iclient.yml +10 -51
- package/dist/mcp-server.yml +36 -10
- package/dist/networkpolicy.yml +31 -18
- package/dist/tool.yml +64 -11
- package/package.json +1 -1
- package/schemas.json +2 -1
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
|
-
|
|
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:
|
|
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
|
|
8763
|
-
|
|
8764
|
-
|
|
8765
|
-
|
|
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:
|
|
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:
|
|
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
|
|
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/connection.yml
CHANGED
|
@@ -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
|
-
|
|
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:
|
|
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
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
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:
|
|
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:
|
|
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,
|
|
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:
|
|
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
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
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
|
package/dist/mcp-server.yml
CHANGED
|
@@ -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
|
-
|
|
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:
|
|
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
|
|
5648
|
-
|
|
5649
|
-
|
|
5650
|
-
|
|
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:
|
|
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:
|
|
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: |-
|
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
|
@@ -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
|
-
|
|
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:
|
|
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
|
|
8130
|
-
|
|
8131
|
-
|
|
8132
|
-
|
|
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:
|
|
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:
|
|
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,
|
|
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
package/schemas.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"provenance": {
|
|
3
3
|
"repo": "celigo/integrator-api-specs",
|
|
4
|
-
"iasCommit": "
|
|
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,
|