@arbium/enterprise-agent-connect 0.1.1 → 0.1.2-dev.d2aa5ca
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/README.md +157 -10
- package/dist/connectors/dell-techdirect/index.d.ts +8 -0
- package/dist/connectors/dell-techdirect/tools.d.ts +2 -0
- package/dist/connectors/dell-techdirect/vendor.d.ts +6 -0
- package/dist/connectors/dynamics-365/connector.json +213 -0
- package/dist/connectors/dynamics-365/index.d.ts +11 -0
- package/dist/connectors/dynamics-365/index.js +10 -0
- package/dist/connectors/dynamics-365/index.js.map +1 -0
- package/dist/connectors/dynamics-365/tools.d.ts +35 -0
- package/dist/connectors/dynamics-365/tools.js +806 -0
- package/dist/connectors/dynamics-365/tools.js.map +1 -0
- package/dist/connectors/dynamics-365/vendor.d.ts +9 -0
- package/dist/connectors/dynamics-365/vendor.js +110 -0
- package/dist/connectors/dynamics-365/vendor.js.map +1 -0
- package/dist/connectors/entra/index.d.ts +2 -0
- package/dist/connectors/entra/tools.d.ts +14 -0
- package/dist/connectors/fedex/index.d.ts +8 -0
- package/dist/connectors/fedex/tools.d.ts +3 -0
- package/dist/connectors/fedex/vendor.d.ts +7 -0
- package/dist/connectors/gong/connector.json +127 -0
- package/dist/connectors/gong/index.d.ts +8 -0
- package/dist/connectors/gong/index.js +7 -0
- package/dist/connectors/gong/index.js.map +1 -0
- package/dist/connectors/gong/tools.d.ts +8 -0
- package/dist/connectors/gong/tools.js +424 -0
- package/dist/connectors/gong/tools.js.map +1 -0
- package/dist/connectors/gong/vendor.d.ts +4 -0
- package/dist/connectors/gong/vendor.js +97 -0
- package/dist/connectors/gong/vendor.js.map +1 -0
- package/dist/connectors/http/index.d.ts +38 -0
- package/dist/connectors/http/index.js +151 -64
- package/dist/connectors/http/index.js.map +1 -1
- package/dist/connectors/intune/index.d.ts +2 -0
- package/dist/connectors/intune/tools.d.ts +12 -0
- package/dist/connectors/jamf/connector.json +182 -0
- package/dist/connectors/jamf/index.d.ts +8 -0
- package/dist/connectors/jamf/index.js +7 -0
- package/dist/connectors/jamf/index.js.map +1 -0
- package/dist/connectors/jamf/tools.d.ts +7 -0
- package/dist/connectors/jamf/tools.js +659 -0
- package/dist/connectors/jamf/tools.js.map +1 -0
- package/dist/connectors/jamf/vendor.d.ts +5 -0
- package/dist/connectors/jamf/vendor.js +66 -0
- package/dist/connectors/jamf/vendor.js.map +1 -0
- package/dist/connectors/jira/connector.json +144 -1
- package/dist/connectors/jira/index.d.ts +8 -0
- package/dist/connectors/jira/jql.d.ts +4 -0
- package/dist/connectors/jira/tools.d.ts +3 -0
- package/dist/connectors/jira/vendor.d.ts +3 -0
- package/dist/connectors/microsoft/client.d.ts +58 -0
- package/dist/connectors/netsuite/connector.json +315 -0
- package/dist/connectors/netsuite/index.d.ts +8 -0
- package/dist/connectors/netsuite/index.js +7 -0
- package/dist/connectors/netsuite/index.js.map +1 -0
- package/dist/connectors/netsuite/tools.d.ts +24 -0
- package/dist/connectors/netsuite/tools.js +447 -0
- package/dist/connectors/netsuite/tools.js.map +1 -0
- package/dist/connectors/netsuite/vendor.d.ts +26 -0
- package/dist/connectors/netsuite/vendor.js +248 -0
- package/dist/connectors/netsuite/vendor.js.map +1 -0
- package/dist/connectors/odata/index.d.ts +36 -0
- package/dist/connectors/odata/index.js +460 -0
- package/dist/connectors/odata/index.js.map +1 -0
- package/dist/connectors/okta/connector.json +193 -0
- package/dist/connectors/okta/index.d.ts +8 -0
- package/dist/connectors/okta/index.js +7 -0
- package/dist/connectors/okta/index.js.map +1 -0
- package/dist/connectors/okta/tools.d.ts +6 -0
- package/dist/connectors/okta/tools.js +429 -0
- package/dist/connectors/okta/tools.js.map +1 -0
- package/dist/connectors/okta/vendor.d.ts +14 -0
- package/dist/connectors/okta/vendor.js +203 -0
- package/dist/connectors/okta/vendor.js.map +1 -0
- package/dist/connectors/outlook-calendar/index.d.ts +2 -0
- package/dist/connectors/outlook-calendar/tools.d.ts +65 -0
- package/dist/connectors/outlook-mail/index.d.ts +2 -0
- package/dist/connectors/outlook-mail/tools.d.ts +8 -0
- package/dist/connectors/salesforce/index.d.ts +8 -0
- package/dist/connectors/salesforce/soql.d.ts +3 -0
- package/dist/connectors/salesforce/tools.d.ts +9 -0
- package/dist/connectors/salesforce/vendor.d.ts +3 -0
- package/dist/connectors/sap-s4hana/connector.json +263 -0
- package/dist/connectors/sap-s4hana/index.d.ts +8 -0
- package/dist/connectors/sap-s4hana/index.js +7 -0
- package/dist/connectors/sap-s4hana/index.js.map +1 -0
- package/dist/connectors/sap-s4hana/tools.d.ts +4 -0
- package/dist/connectors/sap-s4hana/tools.js +761 -0
- package/dist/connectors/sap-s4hana/tools.js.map +1 -0
- package/dist/connectors/sap-s4hana/vendor.d.ts +5 -0
- package/dist/connectors/sap-s4hana/vendor.js +176 -0
- package/dist/connectors/sap-s4hana/vendor.js.map +1 -0
- package/dist/connectors/servicenow/connector.json +228 -0
- package/dist/connectors/servicenow/index.d.ts +8 -0
- package/dist/connectors/servicenow/index.js +7 -0
- package/dist/connectors/servicenow/index.js.map +1 -0
- package/dist/connectors/servicenow/tools.d.ts +4 -0
- package/dist/connectors/servicenow/tools.js +884 -0
- package/dist/connectors/servicenow/tools.js.map +1 -0
- package/dist/connectors/servicenow/vendor.d.ts +4 -0
- package/dist/connectors/servicenow/vendor.js +109 -0
- package/dist/connectors/servicenow/vendor.js.map +1 -0
- package/dist/connectors/sharepoint-files/excel.d.ts +16 -0
- package/dist/connectors/sharepoint-files/index.d.ts +11 -0
- package/dist/connectors/sharepoint-files/tools.d.ts +52 -0
- package/dist/connectors/sharepoint-files/vendor.d.ts +11 -0
- package/dist/connectors/slack/connector.json +148 -0
- package/dist/connectors/slack/index.d.ts +8 -0
- package/dist/connectors/slack/index.js +7 -0
- package/dist/connectors/slack/index.js.map +1 -0
- package/dist/connectors/slack/tools.d.ts +3 -0
- package/dist/connectors/slack/tools.js +355 -0
- package/dist/connectors/slack/tools.js.map +1 -0
- package/dist/connectors/slack/vendor.d.ts +17 -0
- package/dist/connectors/slack/vendor.js +195 -0
- package/dist/connectors/slack/vendor.js.map +1 -0
- package/dist/connectors/soap/index.d.ts +19 -0
- package/dist/connectors/soap/index.js +248 -0
- package/dist/connectors/soap/index.js.map +1 -0
- package/dist/connectors/soap/xml.d.ts +12 -0
- package/dist/connectors/soap/xml.js +126 -0
- package/dist/connectors/soap/xml.js.map +1 -0
- package/dist/connectors/sql/engines.d.ts +58 -0
- package/dist/connectors/sql/engines.js +292 -0
- package/dist/connectors/sql/engines.js.map +1 -0
- package/dist/connectors/sql/index.d.ts +19 -0
- package/dist/connectors/sql/index.js +212 -0
- package/dist/connectors/sql/index.js.map +1 -0
- package/dist/connectors/teams/index.d.ts +2 -0
- package/dist/connectors/teams/tools.d.ts +2 -0
- package/dist/connectors/workday/connector.json +186 -0
- package/dist/connectors/workday/index.d.ts +8 -0
- package/dist/connectors/workday/index.js +7 -0
- package/dist/connectors/workday/index.js.map +1 -0
- package/dist/connectors/workday/tools.d.ts +33 -0
- package/dist/connectors/workday/tools.js +410 -0
- package/dist/connectors/workday/tools.js.map +1 -0
- package/dist/connectors/workday/vendor.d.ts +18 -0
- package/dist/connectors/workday/vendor.js +195 -0
- package/dist/connectors/workday/vendor.js.map +1 -0
- package/dist/packages/connector-kit/src/branding.d.ts +57 -0
- package/dist/packages/connector-kit/src/certificate.d.ts +19 -0
- package/dist/packages/connector-kit/src/common.d.ts +40 -0
- package/dist/packages/connector-kit/src/connector.d.ts +1346 -0
- package/dist/packages/connector-kit/src/connector.js +586 -44
- package/dist/packages/connector-kit/src/connector.js.map +1 -1
- package/dist/packages/connector-kit/src/index.d.ts +5 -0
- package/dist/packages/connector-kit/src/index.js +5 -0
- package/dist/packages/connector-kit/src/index.js.map +1 -0
- package/dist/packages/connector-kit/src/oauth.d.ts +15 -0
- package/dist/packages/connector-kit/src/oauth.js +21 -4
- package/dist/packages/connector-kit/src/oauth.js.map +1 -1
- package/dist/packages/connector-kit/src/types.d.ts +85 -0
- package/dist/packages/connector-kit/src/types.js.map +1 -1
- package/dist/packages/server/migrations/0007_app_events.sql +110 -0
- package/dist/packages/server/migrations/rollback/to-legacy.sql +3 -0
- package/dist/packages/server/src/api.d.ts +3714 -0
- package/dist/packages/server/src/api.js +135 -1
- package/dist/packages/server/src/api.js.map +1 -1
- package/dist/packages/server/src/app.d.ts +23 -0
- package/dist/packages/server/src/app.js +24 -1
- package/dist/packages/server/src/app.js.map +1 -1
- package/dist/packages/server/src/builtin.d.ts +4 -0
- package/dist/packages/server/src/builtin.js +18 -0
- package/dist/packages/server/src/builtin.js.map +1 -1
- package/dist/packages/server/src/consent.d.ts +27 -0
- package/dist/packages/server/src/events/admin.d.ts +156 -0
- package/dist/packages/server/src/events/admin.js +255 -0
- package/dist/packages/server/src/events/admin.js.map +1 -0
- package/dist/packages/server/src/events/deliver.d.ts +43 -0
- package/dist/packages/server/src/events/deliver.js +129 -0
- package/dist/packages/server/src/events/deliver.js.map +1 -0
- package/dist/packages/server/src/events/runtime.d.ts +28 -0
- package/dist/packages/server/src/events/runtime.js +397 -0
- package/dist/packages/server/src/events/runtime.js.map +1 -0
- package/dist/packages/server/src/events/store.d.ts +172 -0
- package/dist/packages/server/src/events/store.js +275 -0
- package/dist/packages/server/src/events/store.js.map +1 -0
- package/dist/packages/server/src/index.d.ts +40 -0
- package/dist/packages/server/src/index.js +67 -11
- package/dist/packages/server/src/index.js.map +1 -1
- package/dist/packages/server/src/migrate.d.ts +11 -0
- package/dist/packages/server/src/openapi.d.ts +4 -0
- package/dist/packages/server/src/openapi.js +2 -2
- package/dist/packages/server/src/openapi.js.map +1 -1
- package/dist/packages/server/src/queue.d.ts +10 -0
- package/dist/packages/server/src/queue.js +45 -0
- package/dist/packages/server/src/queue.js.map +1 -0
- package/dist/packages/server/src/secrets.d.ts +19 -0
- package/dist/packages/server/src/server.d.ts +1 -0
- package/dist/packages/server/src/server.js +14 -1
- package/dist/packages/server/src/server.js.map +1 -1
- package/dist/packages/server/src/service.d.ts +760 -0
- package/dist/packages/server/src/service.js +10 -0
- package/dist/packages/server/src/service.js.map +1 -1
- package/dist/packages/server/src/store.d.ts +158 -0
- package/dist/packages/server/src/store.js +4 -0
- package/dist/packages/server/src/store.js.map +1 -1
- package/dist/packages/server/src/teams/activity.d.ts +123 -0
- package/dist/packages/server/src/teams/activity.js +6 -5
- package/dist/packages/server/src/teams/activity.js.map +1 -1
- package/dist/packages/server/src/teams/admin.d.ts +335 -0
- package/dist/packages/server/src/teams/admin.js +1 -1
- package/dist/packages/server/src/teams/admin.js.map +1 -1
- package/dist/packages/server/src/teams/approval.d.ts +57 -0
- package/dist/packages/server/src/teams/bot.d.ts +25 -0
- package/dist/packages/server/src/teams/claude.d.ts +46 -0
- package/dist/packages/server/src/teams/jwt.d.ts +17 -0
- package/dist/packages/server/src/teams/package.d.ts +79 -0
- package/dist/packages/server/src/teams/provision.d.ts +84 -0
- package/dist/packages/server/src/teams/runner.d.ts +80 -0
- package/dist/packages/server/src/teams/runner.js +50 -6
- package/dist/packages/server/src/teams/runner.js.map +1 -1
- package/dist/packages/server/src/teams/runtime.d.ts +91 -0
- package/dist/packages/server/src/teams/runtime.js +25 -47
- package/dist/packages/server/src/teams/runtime.js.map +1 -1
- package/dist/packages/server/src/teams/store.d.ts +233 -0
- package/package.json +28 -2
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "netsuite",
|
|
3
|
+
"name": "Oracle NetSuite",
|
|
4
|
+
"description": "Let agents look up customers, orders, invoices and stock in NetSuite, and create the customers and sales orders you allow.",
|
|
5
|
+
"logo": "/brand/netsuite.svg",
|
|
6
|
+
"identity": "A NetSuite employee named \"{brand.microsoft.appName}\" with a role of its own. Agents never do more than that role allows.",
|
|
7
|
+
"accountKey": "accountId",
|
|
8
|
+
"connectionKind": "guided",
|
|
9
|
+
"setup": [
|
|
10
|
+
{
|
|
11
|
+
"title": "Turn on the features it uses",
|
|
12
|
+
"body": "In Enable Features, on the SuiteCloud tab, turn on REST Web Services, then OAuth 2.0 or Token-Based Authentication (whichever sign-in you pick below), and Server SuiteScript if agents will run saved searches. Accept the terms NetSuite shows and save.",
|
|
13
|
+
"click": [
|
|
14
|
+
"Setup > Company > Enable Features > SuiteCloud",
|
|
15
|
+
"SuiteTalk (Web Services): REST Web Services",
|
|
16
|
+
"Manage Authentication: OAuth 2.0 (or Token-Based Authentication)",
|
|
17
|
+
"SuiteScript: Server SuiteScript (only for saved searches) > Save"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"title": "Create a role for agents",
|
|
22
|
+
"body": "Create a role named \"{brand.microsoft.appName}\" and tick Web Services Only Role. If your account has subsidiaries, set Accessible Subsidiaries to only those agents need: NetSuite then enforces it too. On the Permissions tab add REST Web Services (Full) and SuiteAnalytics Workbook (Edit) under Setup and Reports, the sign-in permission for your choice (Log in using OAuth 2.0 Access Tokens, or Log in using Access Tokens, both Full), and these:",
|
|
23
|
+
"click": [
|
|
24
|
+
"Setup > Users/Roles > User Management > Manage Roles > New",
|
|
25
|
+
"Name: {brand.microsoft.appName}, Web Services Only Role: ticked, Accessible Subsidiaries: the ones agents need",
|
|
26
|
+
"Permissions > Setup: REST Web Services (Full) and your sign-in permission (Full)",
|
|
27
|
+
"Permissions > Reports: SuiteAnalytics Workbook (Edit)",
|
|
28
|
+
"Permissions > Lists and Transactions: the permissions listed here > Save"
|
|
29
|
+
],
|
|
30
|
+
"permissions": true
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"title": "Give the role to an employee record",
|
|
34
|
+
"body": "Create an employee named \"{brand.microsoft.appName}\" (or pick an existing integration employee), give it access to NetSuite and only the role you just made.",
|
|
35
|
+
"click": [
|
|
36
|
+
"Lists > Employees > Employees > New",
|
|
37
|
+
"Name: {brand.microsoft.appName}, Subsidiary: your parent subsidiary",
|
|
38
|
+
"Access: Give Access ticked, Manually assign or change password, Role: {brand.microsoft.appName} > Save"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"title": "Create an integration record",
|
|
43
|
+
"body": "Create an integration named \"{brand.microsoft.appName}\" with State Enabled. For OAuth 2.0 tick Client Credentials (Machine to Machine) Grant and the scope REST Web Services, plus RESTlets if agents will run saved searches; untick Authorization Code Grant. For token-based authentication tick Token-Based Authentication instead. Save, then copy the client ID (consumer key) and, for token-based authentication, the client secret. NetSuite shows them only once.",
|
|
44
|
+
"click": [
|
|
45
|
+
"Setup > Integration > Manage Integrations > New",
|
|
46
|
+
"Name: {brand.microsoft.appName}, State: Enabled",
|
|
47
|
+
"Authentication > OAuth 2.0: Client Credentials (Machine to Machine) Grant, scopes REST Web Services (and RESTlets for saved searches); or Token-Based Authentication",
|
|
48
|
+
"Save > copy the Client ID (Consumer Key) and Client Secret"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"title": "OAuth 2.0: make a certificate and upload it",
|
|
53
|
+
"body": "Run this to make a key pair (NetSuite needs RSA of at least 3072 bits and accepts a certificate for up to two years). Upload public.pem in the client credentials setup, mapped to the employee, the role and the integration, and copy the Certificate ID it shows. Paste the whole content of private.pem in the Private key field below, then delete the file.",
|
|
54
|
+
"option": {
|
|
55
|
+
"field": "auth",
|
|
56
|
+
"value": "oauth2"
|
|
57
|
+
},
|
|
58
|
+
"shell": "bash",
|
|
59
|
+
"copy": [
|
|
60
|
+
"openssl req -new -x509 -newkey rsa:4096 -keyout private.pem -sigopt rsa_padding_mode:pss -sha256 -sigopt rsa_pss_saltlen:64 -out public.pem -nodes -days 730 -subj \"/CN={brand.microsoft.appName}\""
|
|
61
|
+
],
|
|
62
|
+
"click": [
|
|
63
|
+
"Setup > Integration > Manage Authentication > OAuth 2.0 Client Credentials (M2M) Setup > Create New",
|
|
64
|
+
"Entity: {brand.microsoft.appName}, Role: {brand.microsoft.appName}, Application: {brand.microsoft.appName}",
|
|
65
|
+
"Certificate: choose public.pem > Save > copy the Certificate ID"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"title": "Token-based authentication: create an access token",
|
|
70
|
+
"body": "Create an access token for the integration, the employee and the role, and copy the token ID and secret. NetSuite shows them only once.",
|
|
71
|
+
"option": {
|
|
72
|
+
"field": "auth",
|
|
73
|
+
"value": "tba"
|
|
74
|
+
},
|
|
75
|
+
"click": [
|
|
76
|
+
"Setup > Users/Roles > Access Tokens > New",
|
|
77
|
+
"Application Name: {brand.microsoft.appName}, User: {brand.microsoft.appName}, Role: {brand.microsoft.appName} > Save",
|
|
78
|
+
"Copy the Token ID and Token Secret"
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"title": "Find your account ID",
|
|
83
|
+
"body": "Company Information shows the account ID, for example 1234567, or 1234567_SB1 for a sandbox. It is also the first part of your NetSuite address.",
|
|
84
|
+
"click": ["Setup > Company > Company Information > Account ID"]
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"afterConnect": [
|
|
88
|
+
{
|
|
89
|
+
"title": "Only for saved searches: add the search script",
|
|
90
|
+
"body": "Agents run saved searches through a small script. Save these lines as agent_saved_search.js, upload it as a RESTlet script with the ID _agent_saved_search, and deploy it with the ID _agent_saved_search, Status Released and Audience the role you made. Share each saved search agents may run with that role, add a Subsidiary or Location column (no join) to it if agents are limited to some, and add its ID to each agent's Saved searches.",
|
|
91
|
+
"click": [
|
|
92
|
+
"Customization > Scripting > Scripts > New > upload agent_saved_search.js > Create Script Record",
|
|
93
|
+
"ID: _agent_saved_search > Save",
|
|
94
|
+
"Deploy Script: ID _agent_saved_search, Status Released, Audience > Roles: {brand.microsoft.appName} > Save",
|
|
95
|
+
"Each saved search: Audience > Roles: {brand.microsoft.appName}"
|
|
96
|
+
],
|
|
97
|
+
"copy": [
|
|
98
|
+
"/**",
|
|
99
|
+
" * @NApiVersion 2.1",
|
|
100
|
+
" * @NScriptType Restlet",
|
|
101
|
+
" */",
|
|
102
|
+
"define(['N/search'], (search) => ({",
|
|
103
|
+
" post: (body) => {",
|
|
104
|
+
" const paged = search.load({ id: body.search }).runPaged({ pageSize: body.size });",
|
|
105
|
+
" const columns = paged.searchDefinition.columns.map((c) => ({ name: c.name, join: c.join || null, label: c.label || null }));",
|
|
106
|
+
" const rows = body.page < paged.pageRanges.length",
|
|
107
|
+
" ? paged.fetch({ index: body.page }).data.map((r) => r.columns.map((c) => ({ value: r.getValue(c), text: r.getText(c) || null })))",
|
|
108
|
+
" : [];",
|
|
109
|
+
" return { columns, rows, pages: paged.pageRanges.length, total: paged.count };",
|
|
110
|
+
" },",
|
|
111
|
+
"}));"
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
],
|
|
115
|
+
"fields": [
|
|
116
|
+
{
|
|
117
|
+
"id": "account_id",
|
|
118
|
+
"label": "Account ID",
|
|
119
|
+
"help": "For example 1234567, or 1234567_SB1 for a sandbox.",
|
|
120
|
+
"placeholder": "1234567",
|
|
121
|
+
"secret": false
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "auth",
|
|
125
|
+
"label": "Sign-in",
|
|
126
|
+
"secret": false,
|
|
127
|
+
"options": [
|
|
128
|
+
{
|
|
129
|
+
"value": "oauth2",
|
|
130
|
+
"label": "OAuth 2.0 with a certificate",
|
|
131
|
+
"description": "Recommended. The service signs in with a certificate you upload to NetSuite; nothing expires until the certificate does."
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"value": "tba",
|
|
135
|
+
"label": "Token-based authentication",
|
|
136
|
+
"description": "For accounts that already use access tokens: a consumer key and secret plus a token ID and secret."
|
|
137
|
+
}
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "client_id",
|
|
142
|
+
"label": "Client ID (consumer key)",
|
|
143
|
+
"secret": false
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "certificate_id",
|
|
147
|
+
"label": "Certificate ID",
|
|
148
|
+
"secret": false,
|
|
149
|
+
"requires": {
|
|
150
|
+
"field": "auth",
|
|
151
|
+
"value": "oauth2"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"id": "private_key",
|
|
156
|
+
"label": "Private key",
|
|
157
|
+
"help": "The whole content of private.pem.",
|
|
158
|
+
"placeholder": "-----BEGIN PRIVATE KEY-----",
|
|
159
|
+
"secret": true,
|
|
160
|
+
"requires": {
|
|
161
|
+
"field": "auth",
|
|
162
|
+
"value": "oauth2"
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"id": "client_secret",
|
|
167
|
+
"label": "Client secret (consumer secret)",
|
|
168
|
+
"secret": true,
|
|
169
|
+
"requires": {
|
|
170
|
+
"field": "auth",
|
|
171
|
+
"value": "tba"
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"id": "token_id",
|
|
176
|
+
"label": "Token ID",
|
|
177
|
+
"secret": true,
|
|
178
|
+
"requires": {
|
|
179
|
+
"field": "auth",
|
|
180
|
+
"value": "tba"
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"id": "token_secret",
|
|
185
|
+
"label": "Token secret",
|
|
186
|
+
"secret": true,
|
|
187
|
+
"requires": {
|
|
188
|
+
"field": "auth",
|
|
189
|
+
"value": "tba"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
],
|
|
193
|
+
"capabilities": [
|
|
194
|
+
{
|
|
195
|
+
"id": "read",
|
|
196
|
+
"label": "Look up customers and vendors",
|
|
197
|
+
"description": "Find customers and vendors by name, number or email.",
|
|
198
|
+
"required": true,
|
|
199
|
+
"scopes": ["rest_webservices"],
|
|
200
|
+
"permissions": [
|
|
201
|
+
"Lists > Customers: View",
|
|
202
|
+
"Lists > Vendors: View",
|
|
203
|
+
"Lists > Subsidiaries: View"
|
|
204
|
+
],
|
|
205
|
+
"forbidden": "The agents' NetSuite role needs Customers, Vendors and Subsidiaries (View).",
|
|
206
|
+
"tools": ["netsuite_find_customers", "netsuite_find_vendors"]
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"id": "sales",
|
|
210
|
+
"label": "Read sales orders and invoices",
|
|
211
|
+
"description": "Find sales orders and invoices with their status, totals, amounts due and lines.",
|
|
212
|
+
"scopes": ["rest_webservices"],
|
|
213
|
+
"permissions": [
|
|
214
|
+
"Transactions > Sales Order: View",
|
|
215
|
+
"Transactions > Invoice: View",
|
|
216
|
+
"Transactions > Find Transaction: View"
|
|
217
|
+
],
|
|
218
|
+
"forbidden": "The agents' NetSuite role needs Sales Order, Invoice and Find Transaction (View).",
|
|
219
|
+
"tools": ["netsuite_find_sales_orders", "netsuite_find_invoices"]
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"id": "purchasing",
|
|
223
|
+
"label": "Read purchase orders",
|
|
224
|
+
"description": "Find purchase orders with their status, totals and lines.",
|
|
225
|
+
"scopes": ["rest_webservices"],
|
|
226
|
+
"permissions": [
|
|
227
|
+
"Transactions > Purchase Order: View",
|
|
228
|
+
"Transactions > Find Transaction: View"
|
|
229
|
+
],
|
|
230
|
+
"forbidden": "The agents' NetSuite role needs Purchase Order and Find Transaction (View).",
|
|
231
|
+
"tools": ["netsuite_find_purchase_orders"]
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "inventory",
|
|
235
|
+
"label": "Check stock",
|
|
236
|
+
"description": "See how many of an item are available, on hand and on order at each location.",
|
|
237
|
+
"scopes": ["rest_webservices"],
|
|
238
|
+
"permissions": ["Lists > Items: View", "Lists > Locations: View"],
|
|
239
|
+
"forbidden": "The agents' NetSuite role needs Items and Locations (View).",
|
|
240
|
+
"tools": ["netsuite_item_availability"]
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"id": "create_customers",
|
|
244
|
+
"label": "Create customers",
|
|
245
|
+
"description": "Add new company customers.",
|
|
246
|
+
"scopes": ["rest_webservices"],
|
|
247
|
+
"permissions": ["Lists > Customers: Create"],
|
|
248
|
+
"forbidden": "The agents' NetSuite role needs Customers (Create).",
|
|
249
|
+
"tools": ["netsuite_create_customer"]
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"id": "create_sales_orders",
|
|
253
|
+
"label": "Create sales orders",
|
|
254
|
+
"description": "Place sales orders for existing customers. Your approval and fulfillment rules in NetSuite still apply.",
|
|
255
|
+
"scopes": ["rest_webservices"],
|
|
256
|
+
"permissions": ["Transactions > Sales Order: Create", "Lists > Items: View"],
|
|
257
|
+
"forbidden": "The agents' NetSuite role needs Sales Order (Create) and Items (View).",
|
|
258
|
+
"tools": ["netsuite_create_sales_order"]
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"id": "saved_searches",
|
|
262
|
+
"label": "Run saved searches",
|
|
263
|
+
"description": "Run the saved searches you list on each agent, and only those.",
|
|
264
|
+
"scopes": ["restlets"],
|
|
265
|
+
"permissions": [
|
|
266
|
+
"Lists > Perform Search: Full",
|
|
267
|
+
"View on the records each saved search reads"
|
|
268
|
+
],
|
|
269
|
+
"note": "Needs the search script from the steps after connecting, and the RESTlets scope on the integration.",
|
|
270
|
+
"forbidden": "The agents' NetSuite role needs Perform Search, the records the search reads, and the search shared with it.",
|
|
271
|
+
"tools": ["netsuite_run_saved_search"]
|
|
272
|
+
}
|
|
273
|
+
],
|
|
274
|
+
"limits": [
|
|
275
|
+
{
|
|
276
|
+
"id": "subsidiaries",
|
|
277
|
+
"label": "Subsidiaries",
|
|
278
|
+
"help": "Internal ids. Agents then see only customers, vendors, orders, invoices and stock of these subsidiaries. Leave empty for every subsidiary the role can see.",
|
|
279
|
+
"kind": "list",
|
|
280
|
+
"required": false,
|
|
281
|
+
"pattern": "^[0-9]{1,12}$"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"id": "locations",
|
|
285
|
+
"label": "Locations",
|
|
286
|
+
"help": "Internal ids. Agents then see only orders, invoices and stock at these locations, and must name one of them on a new sales order. Leave empty for every location.",
|
|
287
|
+
"kind": "list",
|
|
288
|
+
"required": false,
|
|
289
|
+
"pattern": "^[0-9]{1,12}$"
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"id": "saved_searches",
|
|
293
|
+
"label": "Saved searches",
|
|
294
|
+
"help": "The ids of the saved searches this agent may run, such as customsearch_open_orders. With none, it runs no saved search.",
|
|
295
|
+
"kind": "list",
|
|
296
|
+
"required": false,
|
|
297
|
+
"pattern": "^(customsearch[a-z0-9_]{1,80}|[0-9]{1,12})$"
|
|
298
|
+
}
|
|
299
|
+
],
|
|
300
|
+
"verify": {
|
|
301
|
+
"label": "Connected NetSuite account",
|
|
302
|
+
"check": "account"
|
|
303
|
+
},
|
|
304
|
+
"discover": {
|
|
305
|
+
"method": "POST",
|
|
306
|
+
"path": "/services/rest/query/v1/suiteql?limit=1000",
|
|
307
|
+
"body": {
|
|
308
|
+
"q": "SELECT id FROM subsidiary WHERE isinactive = 'F' ORDER BY id"
|
|
309
|
+
},
|
|
310
|
+
"label": "Subsidiaries the role can see",
|
|
311
|
+
"show": "items[].id",
|
|
312
|
+
"ifEmpty": "No subsidiaries were found. Either your account has none, or the role lacks Subsidiaries (View)."
|
|
313
|
+
},
|
|
314
|
+
"revoke": "In NetSuite, open Setup > Integration > Manage Integrations > {brand.microsoft.appName} and set State to Blocked, then revoke its certificate or access token."
|
|
315
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../connectors/netsuite/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAe;IACb,EAAE,EAAE,UAAU;IACd,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;CAC3C,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type Toolset } from "../../packages/connector-kit/src/common.js";
|
|
2
|
+
type Column = {
|
|
3
|
+
name: string;
|
|
4
|
+
join: string | null;
|
|
5
|
+
label: string | null;
|
|
6
|
+
};
|
|
7
|
+
type Cell = {
|
|
8
|
+
value: unknown;
|
|
9
|
+
text: unknown;
|
|
10
|
+
};
|
|
11
|
+
export declare function searchRows(answer: {
|
|
12
|
+
columns: Column[];
|
|
13
|
+
rows: Cell[][];
|
|
14
|
+
}, limits: {
|
|
15
|
+
subsidiaries: string[] | null;
|
|
16
|
+
locations: string[] | null;
|
|
17
|
+
}): {
|
|
18
|
+
rows: {
|
|
19
|
+
[k: string]: {} | null;
|
|
20
|
+
}[];
|
|
21
|
+
hidden: number;
|
|
22
|
+
};
|
|
23
|
+
export declare const netsuiteTools: Toolset;
|
|
24
|
+
export {};
|