@arbium/enterprise-agent-connect 0.0.0-stage → 0.1.2-dev.75145ef
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/LICENSE +202 -0
- package/README.md +269 -2
- package/dist/connectors/dell-techdirect/connector.json +39 -0
- package/dist/connectors/dell-techdirect/index.d.ts +8 -0
- package/dist/connectors/dell-techdirect/index.js +7 -0
- package/dist/connectors/dell-techdirect/index.js.map +1 -0
- package/dist/connectors/dell-techdirect/tools.d.ts +2 -0
- package/dist/connectors/dell-techdirect/tools.js +49 -0
- package/dist/connectors/dell-techdirect/tools.js.map +1 -0
- package/dist/connectors/dell-techdirect/vendor.d.ts +6 -0
- package/dist/connectors/dell-techdirect/vendor.js +57 -0
- package/dist/connectors/dell-techdirect/vendor.js.map +1 -0
- package/dist/connectors/dynamics-365/connector.json +228 -0
- package/dist/connectors/dynamics-365/index.d.ts +8 -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/connector.json +85 -0
- package/dist/connectors/entra/index.d.ts +2 -0
- package/dist/connectors/entra/index.js +4 -0
- package/dist/connectors/entra/index.js.map +1 -0
- package/dist/connectors/entra/tools.d.ts +14 -0
- package/dist/connectors/entra/tools.js +262 -0
- package/dist/connectors/entra/tools.js.map +1 -0
- package/dist/connectors/fedex/connector.json +118 -0
- package/dist/connectors/fedex/index.d.ts +8 -0
- package/dist/connectors/fedex/index.js +7 -0
- package/dist/connectors/fedex/index.js.map +1 -0
- package/dist/connectors/fedex/tools.d.ts +3 -0
- package/dist/connectors/fedex/tools.js +152 -0
- package/dist/connectors/fedex/tools.js.map +1 -0
- package/dist/connectors/fedex/vendor.d.ts +7 -0
- package/dist/connectors/fedex/vendor.js +98 -0
- package/dist/connectors/fedex/vendor.js.map +1 -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 +89 -0
- package/dist/connectors/gong/vendor.js.map +1 -0
- package/dist/connectors/http/index.d.ts +34 -0
- package/dist/connectors/http/index.js +325 -0
- package/dist/connectors/http/index.js.map +1 -0
- package/dist/connectors/intune/connector.json +106 -0
- package/dist/connectors/intune/index.d.ts +2 -0
- package/dist/connectors/intune/index.js +4 -0
- package/dist/connectors/intune/index.js.map +1 -0
- package/dist/connectors/intune/tools.d.ts +12 -0
- package/dist/connectors/intune/tools.js +416 -0
- package/dist/connectors/intune/tools.js.map +1 -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 +70 -0
- package/dist/connectors/jamf/vendor.js.map +1 -0
- package/dist/connectors/jira/connector.json +272 -0
- package/dist/connectors/jira/index.d.ts +8 -0
- package/dist/connectors/jira/index.js +7 -0
- package/dist/connectors/jira/index.js.map +1 -0
- package/dist/connectors/jira/jql.d.ts +4 -0
- package/dist/connectors/jira/jql.js +67 -0
- package/dist/connectors/jira/jql.js.map +1 -0
- package/dist/connectors/jira/tools.d.ts +3 -0
- package/dist/connectors/jira/tools.js +464 -0
- package/dist/connectors/jira/tools.js.map +1 -0
- package/dist/connectors/jira/vendor.d.ts +3 -0
- package/dist/connectors/jira/vendor.js +100 -0
- package/dist/connectors/jira/vendor.js.map +1 -0
- package/dist/connectors/microsoft/client.d.ts +66 -0
- package/dist/connectors/microsoft/client.js +452 -0
- package/dist/connectors/microsoft/client.js.map +1 -0
- package/dist/connectors/microsoft/provider.json +118 -0
- package/dist/connectors/netsuite/connector.json +317 -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 +247 -0
- package/dist/connectors/netsuite/vendor.js.map +1 -0
- package/dist/connectors/odata/index.d.ts +33 -0
- package/dist/connectors/odata/index.js +460 -0
- package/dist/connectors/odata/index.js.map +1 -0
- package/dist/connectors/okta/connector.json +194 -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 +204 -0
- package/dist/connectors/okta/vendor.js.map +1 -0
- package/dist/connectors/outlook-calendar/connector.json +136 -0
- package/dist/connectors/outlook-calendar/index.d.ts +2 -0
- package/dist/connectors/outlook-calendar/index.js +4 -0
- package/dist/connectors/outlook-calendar/index.js.map +1 -0
- package/dist/connectors/outlook-calendar/tools.d.ts +65 -0
- package/dist/connectors/outlook-calendar/tools.js +398 -0
- package/dist/connectors/outlook-calendar/tools.js.map +1 -0
- package/dist/connectors/outlook-mail/connector.json +154 -0
- package/dist/connectors/outlook-mail/index.d.ts +2 -0
- package/dist/connectors/outlook-mail/index.js +4 -0
- package/dist/connectors/outlook-mail/index.js.map +1 -0
- package/dist/connectors/outlook-mail/tools.d.ts +8 -0
- package/dist/connectors/outlook-mail/tools.js +236 -0
- package/dist/connectors/outlook-mail/tools.js.map +1 -0
- package/dist/connectors/salesforce/connector.json +122 -0
- package/dist/connectors/salesforce/index.d.ts +8 -0
- package/dist/connectors/salesforce/index.js +7 -0
- package/dist/connectors/salesforce/index.js.map +1 -0
- package/dist/connectors/salesforce/soql.d.ts +3 -0
- package/dist/connectors/salesforce/soql.js +60 -0
- package/dist/connectors/salesforce/soql.js.map +1 -0
- package/dist/connectors/salesforce/tools.d.ts +9 -0
- package/dist/connectors/salesforce/tools.js +234 -0
- package/dist/connectors/salesforce/tools.js.map +1 -0
- package/dist/connectors/salesforce/vendor.d.ts +3 -0
- package/dist/connectors/salesforce/vendor.js +113 -0
- package/dist/connectors/salesforce/vendor.js.map +1 -0
- package/dist/connectors/sap-s4hana/connector.json +264 -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 +3 -0
- package/dist/connectors/servicenow/vendor.js +106 -0
- package/dist/connectors/servicenow/vendor.js.map +1 -0
- package/dist/connectors/sharepoint-files/connector.json +194 -0
- package/dist/connectors/sharepoint-files/excel.d.ts +16 -0
- package/dist/connectors/sharepoint-files/excel.js +300 -0
- package/dist/connectors/sharepoint-files/excel.js.map +1 -0
- package/dist/connectors/sharepoint-files/index.d.ts +8 -0
- package/dist/connectors/sharepoint-files/index.js +12 -0
- package/dist/connectors/sharepoint-files/index.js.map +1 -0
- package/dist/connectors/sharepoint-files/tools.d.ts +52 -0
- package/dist/connectors/sharepoint-files/tools.js +365 -0
- package/dist/connectors/sharepoint-files/tools.js.map +1 -0
- package/dist/connectors/sharepoint-files/vendor.d.ts +11 -0
- package/dist/connectors/sharepoint-files/vendor.js +167 -0
- package/dist/connectors/sharepoint-files/vendor.js.map +1 -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 +189 -0
- package/dist/connectors/slack/vendor.js.map +1 -0
- package/dist/connectors/soap/index.d.ts +16 -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 +16 -0
- package/dist/connectors/sql/index.js +214 -0
- package/dist/connectors/sql/index.js.map +1 -0
- package/dist/connectors/teams/connector.json +298 -0
- package/dist/connectors/teams/index.d.ts +2 -0
- package/dist/connectors/teams/index.js +5 -0
- package/dist/connectors/teams/index.js.map +1 -0
- package/dist/connectors/teams/tools.d.ts +7 -0
- package/dist/connectors/teams/tools.js +392 -0
- package/dist/connectors/teams/tools.js.map +1 -0
- package/dist/connectors/workday/connector.json +188 -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 +199 -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/branding.js +102 -0
- package/dist/packages/connector-kit/src/branding.js.map +1 -0
- package/dist/packages/connector-kit/src/certificate.d.ts +19 -0
- package/dist/packages/connector-kit/src/certificate.js +84 -0
- package/dist/packages/connector-kit/src/certificate.js.map +1 -0
- package/dist/packages/connector-kit/src/common.d.ts +36 -0
- package/dist/packages/connector-kit/src/common.js +110 -0
- package/dist/packages/connector-kit/src/common.js.map +1 -0
- package/dist/packages/connector-kit/src/connector.d.ts +1356 -0
- package/dist/packages/connector-kit/src/connector.js +1073 -0
- package/dist/packages/connector-kit/src/connector.js.map +1 -0
- package/dist/packages/connector-kit/src/fetch.d.ts +6 -0
- package/dist/packages/connector-kit/src/fetch.js +44 -0
- package/dist/packages/connector-kit/src/fetch.js.map +1 -0
- package/dist/packages/connector-kit/src/index.d.ts +5 -0
- package/dist/packages/connector-kit/src/index.js +6 -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 +98 -0
- package/dist/packages/connector-kit/src/oauth.js.map +1 -0
- package/dist/packages/connector-kit/src/types.d.ts +87 -0
- package/dist/packages/connector-kit/src/types.js +20 -0
- package/dist/packages/connector-kit/src/types.js.map +1 -0
- package/dist/packages/server/migrations/0001_tables.sql +268 -0
- package/dist/packages/server/migrations/0002_organizations.sql +72 -0
- package/dist/packages/server/migrations/0003_drop_unused.sql +3 -0
- package/dist/packages/server/migrations/0004_trigger_runners.sql +15 -0
- package/dist/packages/server/migrations/0005_run_runner.sql +3 -0
- package/dist/packages/server/migrations/0006_approvals.sql +36 -0
- package/dist/packages/server/migrations/0007_app_events.sql +110 -0
- package/dist/packages/server/migrations/rollback/to-legacy.sql +90 -0
- package/dist/packages/server/src/api.d.ts +3730 -0
- package/dist/packages/server/src/api.js +820 -0
- package/dist/packages/server/src/api.js.map +1 -0
- package/dist/packages/server/src/app.d.ts +23 -0
- package/dist/packages/server/src/app.js +467 -0
- package/dist/packages/server/src/app.js.map +1 -0
- package/dist/packages/server/src/builtin.d.ts +5 -0
- package/dist/packages/server/src/builtin.js +42 -0
- package/dist/packages/server/src/builtin.js.map +1 -0
- package/dist/packages/server/src/consent.d.ts +27 -0
- package/dist/packages/server/src/consent.js +36 -0
- package/dist/packages/server/src/consent.js.map +1 -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 +404 -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 +186 -0
- package/dist/packages/server/src/index.js.map +1 -0
- package/dist/packages/server/src/migrate.d.ts +11 -0
- package/dist/packages/server/src/migrate.js +134 -0
- package/dist/packages/server/src/migrate.js.map +1 -0
- package/dist/packages/server/src/openapi.d.ts +4 -0
- package/dist/packages/server/src/openapi.js +101 -0
- package/dist/packages/server/src/openapi.js.map +1 -0
- 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/secrets.js +76 -0
- package/dist/packages/server/src/secrets.js.map +1 -0
- package/dist/packages/server/src/server.d.ts +1 -0
- package/dist/packages/server/src/server.js +82 -0
- package/dist/packages/server/src/server.js.map +1 -0
- package/dist/packages/server/src/service.d.ts +767 -0
- package/dist/packages/server/src/service.js +924 -0
- package/dist/packages/server/src/service.js.map +1 -0
- package/dist/packages/server/src/store.d.ts +157 -0
- package/dist/packages/server/src/store.js +415 -0
- package/dist/packages/server/src/store.js.map +1 -0
- package/dist/packages/server/src/teams/activity.d.ts +123 -0
- package/dist/packages/server/src/teams/activity.js +188 -0
- package/dist/packages/server/src/teams/activity.js.map +1 -0
- package/dist/packages/server/src/teams/admin.d.ts +335 -0
- package/dist/packages/server/src/teams/admin.js +699 -0
- package/dist/packages/server/src/teams/admin.js.map +1 -0
- package/dist/packages/server/src/teams/approval.d.ts +57 -0
- package/dist/packages/server/src/teams/approval.js +118 -0
- package/dist/packages/server/src/teams/approval.js.map +1 -0
- package/dist/packages/server/src/teams/bot.d.ts +25 -0
- package/dist/packages/server/src/teams/bot.js +124 -0
- package/dist/packages/server/src/teams/bot.js.map +1 -0
- package/dist/packages/server/src/teams/claude.d.ts +46 -0
- package/dist/packages/server/src/teams/claude.js +165 -0
- package/dist/packages/server/src/teams/claude.js.map +1 -0
- package/dist/packages/server/src/teams/jwt.d.ts +17 -0
- package/dist/packages/server/src/teams/jwt.js +121 -0
- package/dist/packages/server/src/teams/jwt.js.map +1 -0
- package/dist/packages/server/src/teams/package.d.ts +79 -0
- package/dist/packages/server/src/teams/package.js +319 -0
- package/dist/packages/server/src/teams/package.js.map +1 -0
- package/dist/packages/server/src/teams/provision.d.ts +84 -0
- package/dist/packages/server/src/teams/provision.js +505 -0
- package/dist/packages/server/src/teams/provision.js.map +1 -0
- package/dist/packages/server/src/teams/runner.d.ts +80 -0
- package/dist/packages/server/src/teams/runner.js +187 -0
- package/dist/packages/server/src/teams/runner.js.map +1 -0
- package/dist/packages/server/src/teams/runtime.d.ts +91 -0
- package/dist/packages/server/src/teams/runtime.js +679 -0
- package/dist/packages/server/src/teams/runtime.js.map +1 -0
- package/dist/packages/server/src/teams/store.d.ts +233 -0
- package/dist/packages/server/src/teams/store.js +507 -0
- package/dist/packages/server/src/teams/store.js.map +1 -0
- package/package.json +68 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../connectors/sap-s4hana/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type Fetch, type Vendor } from "../../packages/connector-kit/src/types.js";
|
|
2
|
+
export declare const ODATA = "/sap/opu/odata/sap";
|
|
3
|
+
export declare function normalizeHost(input: string): string;
|
|
4
|
+
export declare function serviceRoot(path: string): string;
|
|
5
|
+
export declare function sapVendor(fetchImpl?: Fetch): Vendor;
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { guardedFetch } from "../http/index.js";
|
|
3
|
+
import { ConnectError, TokenCache, } from "../../packages/connector-kit/src/types.js";
|
|
4
|
+
// SAP S/4HANA's released OData v2 APIs under /sap/opu/odata/sap/<service>/, the same on
|
|
5
|
+
// S/4HANA Cloud (a communication user of the services' communication arrangements) and on
|
|
6
|
+
// premise through SAP Gateway (a technical user, with the client as sap-client). Basic auth,
|
|
7
|
+
// or on Cloud OAuth 2.0 client credentials at /sap/bc/sec/oauth2/token with the
|
|
8
|
+
// communication user as the client. Writes carry an x-csrf-token fetched first from the same
|
|
9
|
+
// service, with the session cookies it came with.
|
|
10
|
+
export const ODATA = "/sap/opu/odata/sap";
|
|
11
|
+
const HOST = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)*(?::\d{1,5})?$/;
|
|
12
|
+
const SAP_CLIENT = /^\d{3}$/;
|
|
13
|
+
const SERVICE = /^API_[A-Z0-9_]+$/;
|
|
14
|
+
// What connect reads to prove the user signs in: 401 is a refused sign-in, anything else
|
|
15
|
+
// (even 403 or 404 before the arrangement or service exists) means SAP knew the user.
|
|
16
|
+
const SIGN_IN_PROBE = `${ODATA}/API_BUSINESS_PARTNER/`;
|
|
17
|
+
export function normalizeHost(input) {
|
|
18
|
+
const raw = input.trim().toLowerCase();
|
|
19
|
+
if (raw.startsWith("http://"))
|
|
20
|
+
throw new ConnectError("SAP must be reached over https. Enter the https address.");
|
|
21
|
+
const host = raw.replace(/^https:\/\//, "").replace(/\/.*$/, "");
|
|
22
|
+
if (!HOST.test(host))
|
|
23
|
+
throw new ConnectError("Enter the API host name, for example my123456-api.s4hana.cloud.sap");
|
|
24
|
+
return host;
|
|
25
|
+
}
|
|
26
|
+
// The service a path belongs to: the CSRF token is fetched from its root.
|
|
27
|
+
export function serviceRoot(path) {
|
|
28
|
+
const m = /^\/sap\/opu\/odata\/sap\/(API_[A-Z0-9_]+)\//.exec(path);
|
|
29
|
+
if (!m)
|
|
30
|
+
throw new Error(`Not an SAP API path: ${path}`);
|
|
31
|
+
return `${ODATA}/${m[1]}/`;
|
|
32
|
+
}
|
|
33
|
+
export function sapVendor(fetchImpl = fetch) {
|
|
34
|
+
const tokens = new TokenCache();
|
|
35
|
+
const origin = (c) => `https://${c.config.host}`;
|
|
36
|
+
const withClient = (c, path) => c.config.sapClient
|
|
37
|
+
? `${path}${path.includes("?") ? "&" : "?"}sap-client=${c.config.sapClient}`
|
|
38
|
+
: path;
|
|
39
|
+
const basic = (c) => `Basic ${Buffer.from(`${c.config.user}:${c.secret.password}`).toString("base64")}`;
|
|
40
|
+
const cacheKey = (c) => createHash("sha256")
|
|
41
|
+
.update(`${c.config.host}\n${c.config.user}\n${c.secret.password}`)
|
|
42
|
+
.digest("hex");
|
|
43
|
+
async function reach(c, path, init) {
|
|
44
|
+
try {
|
|
45
|
+
return await guardedFetch([origin(c)], fetchImpl)(`${origin(c)}${withClient(c, path)}`, init);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
if (error instanceof ConnectError)
|
|
49
|
+
throw error;
|
|
50
|
+
throw new ConnectError(`${c.config.host} could not be reached from this service`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function mint(c) {
|
|
54
|
+
const res = await reach(c, "/sap/bc/sec/oauth2/token", {
|
|
55
|
+
method: "POST",
|
|
56
|
+
headers: {
|
|
57
|
+
authorization: basic(c),
|
|
58
|
+
accept: "application/json",
|
|
59
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
60
|
+
},
|
|
61
|
+
body: new URLSearchParams({ grant_type: "client_credentials" }),
|
|
62
|
+
});
|
|
63
|
+
const body = parse(await res.text());
|
|
64
|
+
if (!res.ok || typeof body?.access_token !== "string") {
|
|
65
|
+
const why = typeof body?.error_description === "string" ? body.error_description : null;
|
|
66
|
+
throw new ConnectError(`SAP refused the sign-in (${res.status})${why ? `: ${why.slice(0, 300)}` : ""}`);
|
|
67
|
+
}
|
|
68
|
+
const expiresIn = Number(body.expires_in);
|
|
69
|
+
if (!Number.isFinite(expiresIn) || expiresIn <= 60)
|
|
70
|
+
throw new ConnectError("SAP answered the sign-in without a usable token lifetime");
|
|
71
|
+
return { token: body.access_token, expiresIn };
|
|
72
|
+
}
|
|
73
|
+
async function authorization(c) {
|
|
74
|
+
return c.config.auth === "oauth"
|
|
75
|
+
? `Bearer ${await tokens.get(cacheKey(c), () => mint(c))}`
|
|
76
|
+
: basic(c);
|
|
77
|
+
}
|
|
78
|
+
async function send(c, request, extra = {}) {
|
|
79
|
+
const res = await reach(c, request.path, {
|
|
80
|
+
method: request.method,
|
|
81
|
+
headers: {
|
|
82
|
+
authorization: await authorization(c),
|
|
83
|
+
accept: "application/json",
|
|
84
|
+
"accept-language": "en",
|
|
85
|
+
...extra,
|
|
86
|
+
...(request.body === undefined ? {} : { "content-type": "application/json" }),
|
|
87
|
+
},
|
|
88
|
+
body: request.body === undefined ? undefined : JSON.stringify(request.body),
|
|
89
|
+
});
|
|
90
|
+
const raw = await res.text();
|
|
91
|
+
return { status: res.status, data: raw ? parse(raw) : null, headers: res.headers };
|
|
92
|
+
}
|
|
93
|
+
// The token is bound to the session the cookies name, so both go with the write. A refused
|
|
94
|
+
// fetch is answered as is (a 401 is retried with a new OAuth token).
|
|
95
|
+
async function once(c, request) {
|
|
96
|
+
if (request.method === "GET")
|
|
97
|
+
return send(c, request);
|
|
98
|
+
const res = await send(c, { method: "GET", path: serviceRoot(request.path) }, { "x-csrf-token": "Fetch" });
|
|
99
|
+
if (res.status < 200 || res.status >= 300)
|
|
100
|
+
return res;
|
|
101
|
+
const token = res.headers.get("x-csrf-token");
|
|
102
|
+
if (!token || token.toLowerCase() === "required")
|
|
103
|
+
throw new ConnectError("SAP did not hand out a CSRF token for the change");
|
|
104
|
+
const cookie = res.headers
|
|
105
|
+
.getSetCookie()
|
|
106
|
+
.map((s) => s.split(";")[0])
|
|
107
|
+
.join("; ");
|
|
108
|
+
return send(c, request, { "x-csrf-token": token, ...(cookie ? { cookie } : {}) });
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
async connect(fields) {
|
|
112
|
+
const deployment = fields.deployment === "on_premise" ? "on_premise" : "cloud";
|
|
113
|
+
const onPremise = deployment === "on_premise";
|
|
114
|
+
const host = normalizeHost((onPremise ? fields.gateway_host : fields.host) ?? "");
|
|
115
|
+
// Not asked on Cloud, which has no client to choose.
|
|
116
|
+
const sapClient = onPremise ? (fields.sap_client?.trim() ?? "") : "";
|
|
117
|
+
if (sapClient && !SAP_CLIENT.test(sapClient))
|
|
118
|
+
throw new ConnectError("The client is three digits, for example 100");
|
|
119
|
+
const user = fields.user?.trim();
|
|
120
|
+
const password = fields.password ?? "";
|
|
121
|
+
if (!user || !password)
|
|
122
|
+
throw new ConnectError("Enter the user name and password");
|
|
123
|
+
const auth = deployment === "cloud" && fields.auth === "oauth" ? "oauth" : "basic";
|
|
124
|
+
const system = sapClient ? `${host} client ${sapClient}` : host;
|
|
125
|
+
const conn = {
|
|
126
|
+
config: { deployment, auth, host, ...(sapClient ? { sapClient } : {}), user, system },
|
|
127
|
+
secret: { password },
|
|
128
|
+
};
|
|
129
|
+
if (auth === "oauth")
|
|
130
|
+
tokens.forget(cacheKey(conn));
|
|
131
|
+
const res = await send(conn, { method: "GET", path: SIGN_IN_PROBE });
|
|
132
|
+
if (res.status === 401)
|
|
133
|
+
throw new ConnectError(`SAP did not accept the user name and password for ${user}`);
|
|
134
|
+
return { ...conn, accountLabel: system };
|
|
135
|
+
},
|
|
136
|
+
async call(c, request) {
|
|
137
|
+
let res = await once(c, request);
|
|
138
|
+
if (res.status === 401 && c.config.auth === "oauth") {
|
|
139
|
+
tokens.forget(cacheKey(c));
|
|
140
|
+
res = await once(c, request);
|
|
141
|
+
}
|
|
142
|
+
return { status: res.status, data: res.data };
|
|
143
|
+
},
|
|
144
|
+
checks: {
|
|
145
|
+
// Which of the ticked capabilities' services this user can open (their service roots).
|
|
146
|
+
async services(c, { expected }) {
|
|
147
|
+
const reached = [];
|
|
148
|
+
const missing = [];
|
|
149
|
+
for (const service of expected.filter((s) => SERVICE.test(s))) {
|
|
150
|
+
const res = await send(c, { method: "GET", path: `${ODATA}/${service}/` });
|
|
151
|
+
if (res.status >= 200 && res.status < 300)
|
|
152
|
+
reached.push(service);
|
|
153
|
+
else
|
|
154
|
+
missing.push(`${service} (${res.status === 404 ? "not active" : res.status === 403 ? "not allowed for this user" : `answered ${res.status}`})`);
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
values: reached,
|
|
158
|
+
...(missing.length
|
|
159
|
+
? {
|
|
160
|
+
warning: `The user cannot use these services yet: ${missing.join(", ")}. Follow the setup steps for them.`,
|
|
161
|
+
}
|
|
162
|
+
: {}),
|
|
163
|
+
};
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
function parse(raw) {
|
|
169
|
+
try {
|
|
170
|
+
return JSON.parse(raw);
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return raw;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=vendor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../../connectors/sap-s4hana/vendor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "servicenow",
|
|
3
|
+
"name": "ServiceNow",
|
|
4
|
+
"description": "Let agents work on incidents, look up changes, devices and knowledge articles, and order from the service catalog in your ServiceNow instance.",
|
|
5
|
+
"logo": "/brand/registry/servicenow.svg",
|
|
6
|
+
"identity": "A ServiceNow integration user named \"{brand.microsoft.appName}\" with web service access only. Agents never see more than its roles allow.",
|
|
7
|
+
"accountKey": "instance",
|
|
8
|
+
"connectionKind": "guided",
|
|
9
|
+
"setup": [
|
|
10
|
+
{
|
|
11
|
+
"title": "Create an integration user",
|
|
12
|
+
"body": "Create a user named \"{brand.microsoft.appName}\" and select Web service access only, so it can call the API but never sign in to the ServiceNow interface.",
|
|
13
|
+
"click": [
|
|
14
|
+
"All > User Administration > Users > New",
|
|
15
|
+
"User ID: {brand.microsoft.appName}, First name: {brand.microsoft.appName}",
|
|
16
|
+
"Select Web service access only > Submit"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"title": "Give it the roles agents need",
|
|
21
|
+
"body": "Add these roles to the integration user. Each one matches something you allow below, so leave out any that agents will not use. Knowledge articles are read with the integration user's own access: it must be allowed to read the knowledge bases agents should search.",
|
|
22
|
+
"click": [
|
|
23
|
+
"All > User Administration > Users > {brand.microsoft.appName}",
|
|
24
|
+
"Roles tab > Edit > add each role below > Save"
|
|
25
|
+
],
|
|
26
|
+
"permissions": true
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"title": "Set its password",
|
|
30
|
+
"body": "Open the integration user, select Set Password, and copy the password it makes. You enter it below.",
|
|
31
|
+
"click": [
|
|
32
|
+
"All > User Administration > Users > {brand.microsoft.appName}",
|
|
33
|
+
"Set Password > Generate > Save Password"
|
|
34
|
+
],
|
|
35
|
+
"option": { "field": "auth", "value": "basic" }
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"title": "Turn on the client credentials sign-in",
|
|
39
|
+
"body": "ServiceNow turns this sign-in off by default. Create the system property glide.oauth.inbound.client.credential.grant_type.enabled, of type true | false, with the value true. You need the oauth_admin role (or admin).",
|
|
40
|
+
"click": [
|
|
41
|
+
"In the navigator filter, type sys_properties.list and press Enter > New",
|
|
42
|
+
"Name: glide.oauth.inbound.client.credential.grant_type.enabled",
|
|
43
|
+
"Type: true | false, Value: true > Submit"
|
|
44
|
+
],
|
|
45
|
+
"link": {
|
|
46
|
+
"label": "About client credentials in ServiceNow",
|
|
47
|
+
"href": "https://docs.servicenow.com/bundle/xanadu-platform-security/page/integrate/authentication/concept/client-credentials.html"
|
|
48
|
+
},
|
|
49
|
+
"option": { "field": "auth", "value": "oauth" }
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"title": "Create an OAuth application registry entry",
|
|
53
|
+
"body": "Create an OAuth API endpoint for external clients named \"{brand.microsoft.appName}\", and set its OAuth Application User to the integration user, so every call runs as that user. If the form does not show OAuth Application User, add it with Configure > Form Layout. Then copy the client ID and the client secret (select the lock icon to see it).",
|
|
54
|
+
"click": [
|
|
55
|
+
"All > System OAuth > Application Registry > New > Create an OAuth API endpoint for external clients",
|
|
56
|
+
"Name: {brand.microsoft.appName} > Submit, then open the new entry",
|
|
57
|
+
"Form menu > Configure > Form Layout > move OAuth Application User to Selected > Save",
|
|
58
|
+
"OAuth Application User: {brand.microsoft.appName} > Update"
|
|
59
|
+
],
|
|
60
|
+
"option": { "field": "auth", "value": "oauth" }
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"afterConnect": [],
|
|
64
|
+
"fields": [
|
|
65
|
+
{
|
|
66
|
+
"id": "instance",
|
|
67
|
+
"label": "Instance address",
|
|
68
|
+
"help": "The address you open ServiceNow at: your-company.service-now.com, or your company's own https address for it.",
|
|
69
|
+
"placeholder": "https://your-company.service-now.com",
|
|
70
|
+
"secret": false
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "auth",
|
|
74
|
+
"label": "Sign-in",
|
|
75
|
+
"secret": false,
|
|
76
|
+
"options": [
|
|
77
|
+
{
|
|
78
|
+
"value": "oauth",
|
|
79
|
+
"label": "OAuth application (recommended)",
|
|
80
|
+
"description": "An application registry entry that runs as the integration user. Its secret can be replaced without touching the user."
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"value": "basic",
|
|
84
|
+
"label": "User name and password",
|
|
85
|
+
"description": "The integration user's own password. Use this when your instance cannot turn on client credentials."
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "client_id",
|
|
91
|
+
"label": "Client ID",
|
|
92
|
+
"secret": false,
|
|
93
|
+
"requires": { "field": "auth", "value": "oauth" }
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "client_secret",
|
|
97
|
+
"label": "Client secret",
|
|
98
|
+
"secret": true,
|
|
99
|
+
"requires": { "field": "auth", "value": "oauth" }
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "username",
|
|
103
|
+
"label": "User ID",
|
|
104
|
+
"help": "The integration user's User ID.",
|
|
105
|
+
"secret": false,
|
|
106
|
+
"requires": { "field": "auth", "value": "basic" }
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "password",
|
|
110
|
+
"label": "Password",
|
|
111
|
+
"secret": true,
|
|
112
|
+
"requires": { "field": "auth", "value": "basic" }
|
|
113
|
+
}
|
|
114
|
+
],
|
|
115
|
+
"capabilities": [
|
|
116
|
+
{
|
|
117
|
+
"id": "read_incidents",
|
|
118
|
+
"label": "Read incidents",
|
|
119
|
+
"description": "Search and read incidents, with their comments and work notes.",
|
|
120
|
+
"scopes": [],
|
|
121
|
+
"permissions": ["sn_incident_read"],
|
|
122
|
+
"forbidden": "Give the integration user the sn_incident_read role.",
|
|
123
|
+
"tools": ["servicenow_search_incidents", "servicenow_get_incident"]
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"id": "create_incidents",
|
|
127
|
+
"label": "Open incidents",
|
|
128
|
+
"description": "Open new incidents.",
|
|
129
|
+
"scopes": [],
|
|
130
|
+
"permissions": ["sn_incident_write"],
|
|
131
|
+
"forbidden": "Give the integration user the sn_incident_write role.",
|
|
132
|
+
"tools": ["servicenow_create_incident"]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"id": "update_incidents",
|
|
136
|
+
"label": "Work on incidents",
|
|
137
|
+
"description": "Change and reassign incidents, add work notes and customer comments, and resolve incidents. A customer comment is usually emailed to the caller.",
|
|
138
|
+
"scopes": [],
|
|
139
|
+
"permissions": ["sn_incident_write"],
|
|
140
|
+
"forbidden": "Give the integration user the sn_incident_write role.",
|
|
141
|
+
"tools": [
|
|
142
|
+
"servicenow_update_incident",
|
|
143
|
+
"servicenow_add_incident_note",
|
|
144
|
+
"servicenow_resolve_incident"
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "read_changes",
|
|
149
|
+
"label": "Read change requests",
|
|
150
|
+
"description": "Search and read change requests and their plans.",
|
|
151
|
+
"scopes": [],
|
|
152
|
+
"permissions": ["sn_change_read"],
|
|
153
|
+
"forbidden": "Give the integration user the sn_change_read role.",
|
|
154
|
+
"tools": ["servicenow_search_changes", "servicenow_get_change"]
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "read_cmdb",
|
|
158
|
+
"label": "Look up devices and systems",
|
|
159
|
+
"description": "Find configuration items in the CMDB by name or serial number.",
|
|
160
|
+
"scopes": [],
|
|
161
|
+
"permissions": ["cmdb_read"],
|
|
162
|
+
"forbidden": "Give the integration user the cmdb_read role.",
|
|
163
|
+
"tools": ["servicenow_find_configuration_items"]
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"id": "read_knowledge",
|
|
167
|
+
"label": "Read knowledge articles",
|
|
168
|
+
"description": "Search and read published knowledge articles, as text.",
|
|
169
|
+
"scopes": [],
|
|
170
|
+
"permissions": [],
|
|
171
|
+
"forbidden": "Let the integration user read the knowledge bases agents should search (each knowledge base's Can Read user criteria).",
|
|
172
|
+
"tools": ["servicenow_search_knowledge", "servicenow_get_article"]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"id": "requests",
|
|
176
|
+
"label": "Browse the catalog and track requests",
|
|
177
|
+
"description": "Search the service catalog and follow requested items. Without the itil role agents see only the requests they placed.",
|
|
178
|
+
"scopes": [],
|
|
179
|
+
"permissions": ["itil"],
|
|
180
|
+
"forbidden": "Give the integration user the itil role.",
|
|
181
|
+
"tools": [
|
|
182
|
+
"servicenow_search_catalog_items",
|
|
183
|
+
"servicenow_get_catalog_item",
|
|
184
|
+
"servicenow_search_requests"
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"id": "order",
|
|
189
|
+
"label": "Order from the catalog",
|
|
190
|
+
"description": "Order catalog items for people. Each order starts the item's approvals and fulfillment.",
|
|
191
|
+
"note": "Orders go through the approvals your catalog items already have. An item with no approval is fulfilled as ordered.",
|
|
192
|
+
"scopes": [],
|
|
193
|
+
"permissions": [],
|
|
194
|
+
"tools": ["servicenow_order_catalog_item"]
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
"limits": [
|
|
198
|
+
{
|
|
199
|
+
"id": "groups",
|
|
200
|
+
"label": "Assignment groups",
|
|
201
|
+
"help": "Group names, each unique in your instance. Incidents and change requests of other groups are hidden and cannot be changed, and new incidents must go to one of these. Leave empty to allow every group.",
|
|
202
|
+
"kind": "list",
|
|
203
|
+
"required": false,
|
|
204
|
+
"pattern": "^[^\\^\\r\\n]{1,100}$"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"id": "companies",
|
|
208
|
+
"label": "Companies",
|
|
209
|
+
"help": "Company names. Incidents, change requests, configuration items and requested items of other companies are hidden and cannot be changed, and agents may open incidents and order only for people of these companies. Knowledge articles and the catalog are not narrowed. Leave empty to allow every company.",
|
|
210
|
+
"kind": "list",
|
|
211
|
+
"required": false,
|
|
212
|
+
"pattern": "^[^\\^\\r\\n]{1,100}$"
|
|
213
|
+
}
|
|
214
|
+
],
|
|
215
|
+
"verify": {
|
|
216
|
+
"method": "GET",
|
|
217
|
+
"path": "/api/now/table/sys_user?sysparm_query=sys_id%3Djavascript%3Ags.getUserID()&sysparm_fields=user_name&sysparm_limit=1",
|
|
218
|
+
"label": "Signed in as",
|
|
219
|
+
"show": "result[].user_name"
|
|
220
|
+
},
|
|
221
|
+
"discover": {
|
|
222
|
+
"method": "GET",
|
|
223
|
+
"path": "/api/now/table/sys_user_group?sysparm_query=active%3Dtrue%5EORDERBYname&sysparm_fields=name&sysparm_limit=500",
|
|
224
|
+
"label": "Assignment groups",
|
|
225
|
+
"show": "result[].name"
|
|
226
|
+
},
|
|
227
|
+
"revoke": "In ServiceNow, open System OAuth, then Application Registry, and set the {brand.microsoft.appName} entry to inactive, or open User Administration, then Users, and set the {brand.microsoft.appName} user to inactive."
|
|
228
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../connectors/servicenow/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,eAAe;IACb,EAAE,EAAE,YAAY;IAChB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;CAC/C,CAAC"}
|