@arbium/enterprise-agent-connect 0.1.1 → 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/README.md +164 -12
- 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 +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/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 +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 +154 -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 +70 -0
- package/dist/connectors/jamf/vendor.js.map +1 -0
- package/dist/connectors/jira/connector.json +146 -3
- 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/jira/vendor.js +8 -2
- package/dist/connectors/jira/vendor.js.map +1 -1
- package/dist/connectors/microsoft/client.d.ts +66 -0
- package/dist/connectors/microsoft/client.js +26 -8
- package/dist/connectors/microsoft/client.js.map +1 -1
- 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/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/salesforce/vendor.js +9 -3
- package/dist/connectors/salesforce/vendor.js.map +1 -1
- 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/excel.d.ts +16 -0
- package/dist/connectors/sharepoint-files/index.d.ts +8 -0
- package/dist/connectors/sharepoint-files/index.js.map +1 -1
- 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 +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/index.d.ts +2 -0
- package/dist/connectors/teams/tools.d.ts +7 -0
- package/dist/connectors/teams/tools.js +3 -2
- package/dist/connectors/teams/tools.js.map +1 -1
- 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/certificate.d.ts +19 -0
- package/dist/packages/connector-kit/src/common.d.ts +36 -0
- package/dist/packages/connector-kit/src/common.js +4 -1
- package/dist/packages/connector-kit/src/common.js.map +1 -1
- package/dist/packages/connector-kit/src/connector.d.ts +1356 -0
- package/dist/packages/connector-kit/src/connector.js +634 -53
- package/dist/packages/connector-kit/src/connector.js.map +1 -1
- 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 +25 -6
- package/dist/packages/connector-kit/src/oauth.js.map +1 -1
- package/dist/packages/connector-kit/src/types.d.ts +87 -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 +3730 -0
- package/dist/packages/server/src/api.js +137 -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 +5 -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 +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 +68 -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 +767 -0
- package/dist/packages/server/src/service.js +19 -3
- package/dist/packages/server/src/service.js.map +1 -1
- package/dist/packages/server/src/store.d.ts +157 -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 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../connectors/okta/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type Fetch, type Vendor, type VendorRequest } from "../../packages/connector-kit/src/types.js";
|
|
2
|
+
export declare function normalizeOrg(input: string): string;
|
|
3
|
+
/** The scope a Management API call needs: okta.<resource>.read for a GET, .manage otherwise. */
|
|
4
|
+
export declare function scopeFor(request: VendorRequest): string;
|
|
5
|
+
export declare function parsePrivateKey(raw: string): string;
|
|
6
|
+
export declare function clientAssertion(input: {
|
|
7
|
+
clientId: string;
|
|
8
|
+
keyId: string;
|
|
9
|
+
privateKey: string;
|
|
10
|
+
tokenUrl: string;
|
|
11
|
+
}): string;
|
|
12
|
+
/** The `after` cursor of a Link header's rel="next" page. */
|
|
13
|
+
export declare function nextAfter(link: string | null): string | null;
|
|
14
|
+
export declare function oktaVendor(unguarded?: Fetch): Vendor;
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { createHash, createPrivateKey, randomUUID, sign } from "node:crypto";
|
|
2
|
+
import { vendorFetch, vendorUrl } from "../../packages/connector-kit/src/fetch.js";
|
|
3
|
+
import { vendorError } from "../../packages/connector-kit/src/oauth.js";
|
|
4
|
+
import { ConnectError, TokenCache, } from "../../packages/connector-kit/src/types.js";
|
|
5
|
+
// An Okta API service app: OAuth 2.0 client credentials from the org authorization server
|
|
6
|
+
// (`/oauth2/v1/token`), the app proving itself with a private_key_jwt client assertion (RS256,
|
|
7
|
+
// iss = sub = client id, aud = the token URL, 5 minutes). Okta has no catch-all scope, and a
|
|
8
|
+
// token request naming a scope the app was not granted is refused whole, so every call gets a
|
|
9
|
+
// token for the one scope its path and method need (`scopeFor`). Lists come back as
|
|
10
|
+
// `{items, after}`: Okta pages with a Link header, whose `after` is the next page's cursor.
|
|
11
|
+
// Sources: developer.okta.com/docs/guides/implement-oauth-for-okta-serviceapp,
|
|
12
|
+
// developer.okta.com/docs/api/openapi/okta-oauth/guides/client-auth (private_key_jwt) and
|
|
13
|
+
// developer.okta.com/docs/api/#pagination (read October 27, 2026).
|
|
14
|
+
// The org's own Okta address; an admin address (acme-admin.okta.com) is its org's too.
|
|
15
|
+
const ORG_HOST = /^[a-z0-9][a-z0-9-]*\.(okta|oktapreview|okta-emea|okta-gov)\.com$/;
|
|
16
|
+
const CLIENT_ID = /^[A-Za-z0-9_-]{8,64}$/;
|
|
17
|
+
const KEY_ID = /^[A-Za-z0-9_.-]{1,128}$/;
|
|
18
|
+
const RESOURCES = new Set(["users", "groups", "apps", "logs"]);
|
|
19
|
+
export function normalizeOrg(input) {
|
|
20
|
+
let host = input
|
|
21
|
+
.trim()
|
|
22
|
+
.toLowerCase()
|
|
23
|
+
.replace(/^https?:\/\//, "")
|
|
24
|
+
.replace(/\/.*$/, "");
|
|
25
|
+
if (/^[a-z0-9][a-z0-9-]*$/.test(host))
|
|
26
|
+
host = `${host}.okta.com`;
|
|
27
|
+
host = host.replace(/-admin\./, ".");
|
|
28
|
+
if (!ORG_HOST.test(host))
|
|
29
|
+
throw new ConnectError("Enter your Okta address, such as your-company.okta.com");
|
|
30
|
+
return host;
|
|
31
|
+
}
|
|
32
|
+
/** The scope a Management API call needs: okta.<resource>.read for a GET, .manage otherwise. */
|
|
33
|
+
export function scopeFor(request) {
|
|
34
|
+
const resource = /^\/api\/v1\/([a-z]+)(?:[/?]|$)/.exec(request.path)?.[1];
|
|
35
|
+
if (!resource || !RESOURCES.has(resource))
|
|
36
|
+
throw new Error(`No Okta scope for ${request.path}`);
|
|
37
|
+
return `okta.${resource}.${request.method === "GET" ? "read" : "manage"}`;
|
|
38
|
+
}
|
|
39
|
+
// Okta's console offers the generated key as PEM or as a JWK; either is kept as PKCS#8 PEM.
|
|
40
|
+
export function parsePrivateKey(raw) {
|
|
41
|
+
let key;
|
|
42
|
+
try {
|
|
43
|
+
const text = raw.trim();
|
|
44
|
+
key = text.startsWith("{")
|
|
45
|
+
? createPrivateKey({ key: JSON.parse(text), format: "jwk" })
|
|
46
|
+
: createPrivateKey(text);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
throw new ConnectError("The private key could not be read. Paste the whole key Okta showed.");
|
|
50
|
+
}
|
|
51
|
+
if (key.asymmetricKeyType !== "rsa")
|
|
52
|
+
throw new ConnectError("Okta signs in with an RSA key. Generate an RSA key in the app.");
|
|
53
|
+
return key.export({ type: "pkcs8", format: "pem" }).toString();
|
|
54
|
+
}
|
|
55
|
+
export function clientAssertion(input) {
|
|
56
|
+
const now = Math.floor(Date.now() / 1000);
|
|
57
|
+
const part = (o) => Buffer.from(JSON.stringify(o)).toString("base64url");
|
|
58
|
+
const signed = `${part({ alg: "RS256", typ: "JWT", kid: input.keyId || undefined })}.${part({
|
|
59
|
+
iss: input.clientId,
|
|
60
|
+
sub: input.clientId,
|
|
61
|
+
aud: input.tokenUrl,
|
|
62
|
+
iat: now,
|
|
63
|
+
exp: now + 300,
|
|
64
|
+
jti: randomUUID(),
|
|
65
|
+
})}`;
|
|
66
|
+
const signature = sign("sha256", Buffer.from(signed), input.privateKey).toString("base64url");
|
|
67
|
+
return `${signed}.${signature}`;
|
|
68
|
+
}
|
|
69
|
+
/** The `after` cursor of a Link header's rel="next" page. */
|
|
70
|
+
export function nextAfter(link) {
|
|
71
|
+
for (const part of (link ?? "").split(",")) {
|
|
72
|
+
const m = /<([^>]+)>\s*;\s*rel="next"/.exec(part);
|
|
73
|
+
if (m)
|
|
74
|
+
return URL.parse(m[1])?.searchParams.get("after") ?? null;
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
function safeJson(raw) {
|
|
79
|
+
try {
|
|
80
|
+
return JSON.parse(raw);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return raw;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
class ScopeRefused extends ConnectError {
|
|
87
|
+
}
|
|
88
|
+
export function oktaVendor(unguarded = fetch) {
|
|
89
|
+
const fetchImpl = vendorFetch("Okta", unguarded);
|
|
90
|
+
const tokens = new TokenCache();
|
|
91
|
+
function host(c) {
|
|
92
|
+
const org = c.config.org ?? "";
|
|
93
|
+
if (!ORG_HOST.test(org))
|
|
94
|
+
throw new Error("Okta connection has no org");
|
|
95
|
+
return `https://${org}`;
|
|
96
|
+
}
|
|
97
|
+
async function mint(c, scope) {
|
|
98
|
+
const tokenUrl = `${host(c)}/oauth2/v1/token`;
|
|
99
|
+
const res = await fetchImpl(tokenUrl, {
|
|
100
|
+
method: "POST",
|
|
101
|
+
headers: { "content-type": "application/x-www-form-urlencoded", accept: "application/json" },
|
|
102
|
+
body: new URLSearchParams({
|
|
103
|
+
grant_type: "client_credentials",
|
|
104
|
+
scope,
|
|
105
|
+
client_assertion_type: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
|
|
106
|
+
client_assertion: clientAssertion({
|
|
107
|
+
clientId: c.config.clientId,
|
|
108
|
+
keyId: c.config.keyId,
|
|
109
|
+
privateKey: c.secret.private_key,
|
|
110
|
+
tokenUrl,
|
|
111
|
+
}),
|
|
112
|
+
}),
|
|
113
|
+
});
|
|
114
|
+
const body = safeJson(await res.text());
|
|
115
|
+
if (!res.ok || typeof body?.access_token !== "string") {
|
|
116
|
+
const why = vendorError(body) || String(res.status);
|
|
117
|
+
if (body?.error === "invalid_scope")
|
|
118
|
+
throw new ScopeRefused(`Okta has not granted the app ${scope}: ${why}`);
|
|
119
|
+
if (/dpop/i.test(why))
|
|
120
|
+
throw new ConnectError(`Okta wants a proof-of-possession header (DPoP). In the app's General tab, edit Client Credentials and clear "Require Demonstrating Proof of Possession (DPoP) header in token requests". (${why})`);
|
|
121
|
+
throw new ConnectError(`Okta refused the app's sign-in: ${why}`);
|
|
122
|
+
}
|
|
123
|
+
return { token: body.access_token, expiresIn: Number(body.expires_in) || 3600 };
|
|
124
|
+
}
|
|
125
|
+
// Per credential and scope, so a new key never reuses an old token.
|
|
126
|
+
const cacheKey = (c, scope) => createHash("sha256")
|
|
127
|
+
.update([c.config.org, c.config.clientId, c.config.keyId, c.secret.private_key, scope].join("\n"))
|
|
128
|
+
.digest("hex");
|
|
129
|
+
async function send(c, token, request) {
|
|
130
|
+
const res = await fetchImpl(vendorUrl(host(c), request.path), {
|
|
131
|
+
method: request.method,
|
|
132
|
+
headers: {
|
|
133
|
+
authorization: `Bearer ${token}`,
|
|
134
|
+
accept: "application/json",
|
|
135
|
+
...request.headers,
|
|
136
|
+
...(request.body === undefined ? {} : { "content-type": "application/json" }),
|
|
137
|
+
},
|
|
138
|
+
body: request.body === undefined ? undefined : JSON.stringify(request.body),
|
|
139
|
+
});
|
|
140
|
+
const raw = await res.text();
|
|
141
|
+
const data = raw ? safeJson(raw) : null;
|
|
142
|
+
return {
|
|
143
|
+
status: res.status,
|
|
144
|
+
headers: Object.fromEntries(res.headers),
|
|
145
|
+
data: Array.isArray(data) ? { items: data, after: nextAfter(res.headers.get("link")) } : data,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
async connect(fields) {
|
|
150
|
+
const org = normalizeOrg(fields.org ?? "");
|
|
151
|
+
const clientId = fields.client_id?.trim() ?? "";
|
|
152
|
+
const keyId = fields.key_id?.trim() ?? "";
|
|
153
|
+
if (!CLIENT_ID.test(clientId))
|
|
154
|
+
throw new ConnectError("Enter the app's Client ID, from its General tab");
|
|
155
|
+
if (keyId && !KEY_ID.test(keyId))
|
|
156
|
+
throw new ConnectError("Enter the key's KID, shown beside the key in the app's General tab");
|
|
157
|
+
const connection = {
|
|
158
|
+
config: { org, clientId, keyId },
|
|
159
|
+
secret: { private_key: parsePrivateKey(fields.private_key ?? "") },
|
|
160
|
+
};
|
|
161
|
+
// okta.users.read is every connection's least: proves the key, the app and the org.
|
|
162
|
+
const scope = "okta.users.read";
|
|
163
|
+
await tokens.get(cacheKey(connection, scope), () => mint(connection, scope));
|
|
164
|
+
return { ...connection, accountLabel: org };
|
|
165
|
+
},
|
|
166
|
+
async call(connection, request) {
|
|
167
|
+
const scope = scopeFor(request);
|
|
168
|
+
const key = cacheKey(connection, scope);
|
|
169
|
+
const token = () => tokens.get(key, () => mint(connection, scope));
|
|
170
|
+
let res = await send(connection, await token(), request);
|
|
171
|
+
if (res.status === 401) {
|
|
172
|
+
tokens.forget(key);
|
|
173
|
+
res = await send(connection, await token(), request);
|
|
174
|
+
}
|
|
175
|
+
return res;
|
|
176
|
+
},
|
|
177
|
+
checks: {
|
|
178
|
+
// One token request per scope the ceiling needs: Okta answers invalid_scope for one
|
|
179
|
+
// not granted. Extra grants are the admin's choice, so only missing ones are named.
|
|
180
|
+
async scopes(connection, input) {
|
|
181
|
+
const granted = [];
|
|
182
|
+
for (const scope of input.expected)
|
|
183
|
+
try {
|
|
184
|
+
await mint(connection, scope);
|
|
185
|
+
granted.push(scope);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
if (!(error instanceof ScopeRefused))
|
|
189
|
+
throw error;
|
|
190
|
+
}
|
|
191
|
+
const missing = input.expected.filter((s) => !granted.includes(s));
|
|
192
|
+
return {
|
|
193
|
+
values: granted,
|
|
194
|
+
...(missing.length
|
|
195
|
+
? {
|
|
196
|
+
warning: `Missing: ${missing.join(", ")}. Grant ${missing.length > 1 ? "them" : "it"} on the app's Okta API Scopes tab, or agents cannot do what you ticked.`,
|
|
197
|
+
}
|
|
198
|
+
: {}),
|
|
199
|
+
};
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=vendor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../../connectors/okta/vendor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { type Toolset } from "../../packages/connector-kit/src/common.js";
|
|
2
|
+
export declare const MAX_RANGE_DAYS = 62;
|
|
3
|
+
export declare const MAX_OCCURRENCES = 999;
|
|
4
|
+
declare const DAYS: readonly ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
|
|
5
|
+
type Day = (typeof DAYS)[number];
|
|
6
|
+
export type RecurrenceInput = {
|
|
7
|
+
pattern: "daily" | "weekly" | "monthly" | "yearly";
|
|
8
|
+
interval: number;
|
|
9
|
+
days_of_week?: Day[];
|
|
10
|
+
end_date?: string;
|
|
11
|
+
count?: number;
|
|
12
|
+
};
|
|
13
|
+
/** The listing window as UTC instants; refused when unbounded, reversed or too long. */
|
|
14
|
+
export declare function eventWindow(start: string, end: string): {
|
|
15
|
+
start: string;
|
|
16
|
+
end: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Microsoft's patternedRecurrence for a series whose first event starts on `startDate`
|
|
20
|
+
* (YYYY-MM-DD, read in `timeZone`). Monthly and yearly repeat on the start's day (and month);
|
|
21
|
+
* weekly defaults to the start's weekday. Every series ends, by date or by count.
|
|
22
|
+
* https://learn.microsoft.com/graph/outlook-schedule-recurring-events
|
|
23
|
+
*/
|
|
24
|
+
export declare function recurrence(r: RecurrenceInput, startDate: string, timeZone: string): {
|
|
25
|
+
pattern: {
|
|
26
|
+
type: string;
|
|
27
|
+
interval: number;
|
|
28
|
+
daysOfWeek?: undefined;
|
|
29
|
+
dayOfMonth?: undefined;
|
|
30
|
+
month?: undefined;
|
|
31
|
+
} | {
|
|
32
|
+
type: string;
|
|
33
|
+
interval: number;
|
|
34
|
+
daysOfWeek: ("sunday" | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday")[];
|
|
35
|
+
dayOfMonth?: undefined;
|
|
36
|
+
month?: undefined;
|
|
37
|
+
} | {
|
|
38
|
+
type: string;
|
|
39
|
+
interval: number;
|
|
40
|
+
dayOfMonth: number;
|
|
41
|
+
daysOfWeek?: undefined;
|
|
42
|
+
month?: undefined;
|
|
43
|
+
} | {
|
|
44
|
+
type: string;
|
|
45
|
+
interval: number;
|
|
46
|
+
dayOfMonth: number;
|
|
47
|
+
month: number;
|
|
48
|
+
daysOfWeek?: undefined;
|
|
49
|
+
};
|
|
50
|
+
range: {
|
|
51
|
+
type: string;
|
|
52
|
+
startDate: string;
|
|
53
|
+
endDate: string;
|
|
54
|
+
recurrenceTimeZone: string;
|
|
55
|
+
numberOfOccurrences?: undefined;
|
|
56
|
+
} | {
|
|
57
|
+
type: string;
|
|
58
|
+
startDate: string;
|
|
59
|
+
numberOfOccurrences: number | undefined;
|
|
60
|
+
recurrenceTimeZone: string;
|
|
61
|
+
endDate?: undefined;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export declare const calendarTools: Toolset;
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ToolContext, type Toolset } from "../../packages/connector-kit/src/common.js";
|
|
2
|
+
export declare function nextPage(data: {
|
|
3
|
+
"@odata.nextLink"?: string;
|
|
4
|
+
}): string | null;
|
|
5
|
+
export declare function pageParam(cursor: string | undefined): string[];
|
|
6
|
+
export declare function mailboxPath(ctx: ToolContext): string;
|
|
7
|
+
export declare function ok(ctx: ToolContext, mark: (s: number) => void, req: Parameters<ToolContext["call"]>[0]): Promise<any>;
|
|
8
|
+
export declare const microsoftTools: Toolset;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Toolset } from "../../packages/connector-kit/src/common.js";
|
|
2
|
+
type ChildRelationship = {
|
|
3
|
+
childSObject: string;
|
|
4
|
+
cascadeDelete: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function cascadeChildren(children: ChildRelationship[], usable: Set<string>): string[];
|
|
7
|
+
export declare function cascadeRefusal(object: string, children: string[]): string;
|
|
8
|
+
export declare const salesforceTools: Toolset;
|
|
9
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
+
import { vendorFetch, vendorUrl } from "../../packages/connector-kit/src/fetch.js";
|
|
2
3
|
import { ConnectError, TokenCache, } from "../../packages/connector-kit/src/types.js";
|
|
3
4
|
// The customer's External Client App, client credentials flow, running as their integration
|
|
4
5
|
// user. Tokens come from their My Domain, and the API is called on the instance_url it returns.
|
|
@@ -26,7 +27,8 @@ function instanceUrl(raw) {
|
|
|
26
27
|
throw new ConnectError("Salesforce returned an unexpected address for your org");
|
|
27
28
|
return url.origin;
|
|
28
29
|
}
|
|
29
|
-
export function salesforceVendor(
|
|
30
|
+
export function salesforceVendor(unguarded = fetch) {
|
|
31
|
+
const fetchImpl = vendorFetch("Salesforce", unguarded);
|
|
30
32
|
const tokens = new TokenCache();
|
|
31
33
|
async function mint(myDomain, clientId, clientSecret) {
|
|
32
34
|
const res = await fetchImpl(`https://${myDomain}/services/oauth2/token`, {
|
|
@@ -54,7 +56,7 @@ export function salesforceVendor(fetchImpl = fetch) {
|
|
|
54
56
|
expiresIn: TOKEN_SECONDS,
|
|
55
57
|
}));
|
|
56
58
|
async function send(base, access, request) {
|
|
57
|
-
const res = await fetchImpl(
|
|
59
|
+
const res = await fetchImpl(vendorUrl(base, request.path), {
|
|
58
60
|
method: request.method,
|
|
59
61
|
headers: {
|
|
60
62
|
authorization: `Bearer ${access}`,
|
|
@@ -65,7 +67,11 @@ export function salesforceVendor(fetchImpl = fetch) {
|
|
|
65
67
|
body: request.body === undefined ? undefined : JSON.stringify(request.body),
|
|
66
68
|
});
|
|
67
69
|
const raw = await res.text();
|
|
68
|
-
return {
|
|
70
|
+
return {
|
|
71
|
+
status: res.status,
|
|
72
|
+
data: raw ? safeJson(raw) : null,
|
|
73
|
+
headers: Object.fromEntries(res.headers),
|
|
74
|
+
};
|
|
69
75
|
}
|
|
70
76
|
return {
|
|
71
77
|
async connect(fields) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../../connectors/salesforce/vendor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../../connectors/salesforce/vendor.ts"],"names":[],"mappings":"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"}
|