managed-deepagents 0.5.0-dev.84 → 0.5.0-dev.86
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 +1 -1
- package/dist/connectors/github/sandbox.d.ts.map +1 -1
- package/dist/connectors/github/sandbox.js +12 -2
- package/dist/connectors/github/sandbox.js.map +1 -1
- package/dist/connectors/langsmith/routes.d.ts +1 -1
- package/dist/connectors/langsmith/routes.js +5 -5
- package/dist/connectors/langsmith/routes.js.map +1 -1
- package/dist/connectors/marketplace/load.d.ts +0 -1
- package/dist/connectors/marketplace/load.d.ts.map +1 -1
- package/dist/connectors/marketplace/load.js +4 -63
- package/dist/connectors/marketplace/load.js.map +1 -1
- package/dist/connectors/toolserver/index.d.ts +1 -1
- package/dist/connectors/toolserver/index.js +1 -1
- package/dist/connectors/toolserver/integrations.d.ts.map +1 -1
- package/dist/connectors/toolserver/integrations.js +14 -3
- package/dist/connectors/toolserver/integrations.js.map +1 -1
- package/dist/connectors/toolserver/load.d.ts +1 -1
- package/dist/connectors/toolserver/load.js +3 -4
- package/dist/connectors/toolserver/load.js.map +1 -1
- package/dist/identity/actor-subject.d.ts +2 -2
- package/dist/identity/actor-subject.js +2 -2
- package/dist/identity/byo-oauth.d.ts +30 -6
- package/dist/identity/byo-oauth.d.ts.map +1 -1
- package/dist/identity/byo-oauth.js +69 -24
- package/dist/identity/byo-oauth.js.map +1 -1
- package/dist/identity/connect-provider.js +1 -1
- package/dist/identity/connect-provider.js.map +1 -1
- package/dist/identity/define-fleet-connect.d.ts +53 -0
- package/dist/identity/define-fleet-connect.d.ts.map +1 -0
- package/dist/identity/define-fleet-connect.js +76 -0
- package/dist/identity/define-fleet-connect.js.map +1 -0
- package/dist/identity/fleet-connect-hint.d.ts +2 -0
- package/dist/identity/fleet-connect-hint.d.ts.map +1 -1
- package/dist/identity/fleet-connect-hint.js +58 -2
- package/dist/identity/fleet-connect-hint.js.map +1 -1
- package/dist/identity/fleet-connect.d.ts +1 -0
- package/dist/identity/fleet-connect.d.ts.map +1 -1
- package/dist/identity/fleet-connect.js +2 -2
- package/dist/identity/fleet-connect.js.map +1 -1
- package/dist/identity/fleet-integration-connect.js +1 -1
- package/dist/identity/fleet.d.ts.map +1 -1
- package/dist/identity/fleet.js +2 -4
- package/dist/identity/fleet.js.map +1 -1
- package/dist/identity/github/connect-http.d.ts.map +1 -1
- package/dist/identity/github/connect-http.js +2 -1
- package/dist/identity/github/connect-http.js.map +1 -1
- package/dist/identity/github/oauth.d.ts +17 -16
- package/dist/identity/github/oauth.d.ts.map +1 -1
- package/dist/identity/github/oauth.js +91 -71
- package/dist/identity/github/oauth.js.map +1 -1
- package/dist/identity/google/connect-http.d.ts +11 -12
- package/dist/identity/google/connect-http.d.ts.map +1 -1
- package/dist/identity/google/connect-http.js +20 -37
- package/dist/identity/google/connect-http.js.map +1 -1
- package/dist/identity/google/oauth.d.ts +1 -1
- package/dist/identity/google/oauth.d.ts.map +1 -1
- package/dist/identity/index.d.ts +15 -6
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +61 -14
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/linkedin/connect-http.d.ts +11 -12
- package/dist/identity/linkedin/connect-http.d.ts.map +1 -1
- package/dist/identity/linkedin/connect-http.js +19 -37
- package/dist/identity/linkedin/connect-http.js.map +1 -1
- package/dist/identity/linkedin/oauth.d.ts +1 -1
- package/dist/identity/linkedin/oauth.d.ts.map +1 -1
- package/dist/identity/marketplace/connect.js +2 -2
- package/dist/identity/marketplace/connect.js.map +1 -1
- package/dist/identity/microsoft/connect-http.d.ts +11 -12
- package/dist/identity/microsoft/connect-http.d.ts.map +1 -1
- package/dist/identity/microsoft/connect-http.js +19 -37
- package/dist/identity/microsoft/connect-http.js.map +1 -1
- package/dist/identity/microsoft/oauth.d.ts +1 -1
- package/dist/identity/microsoft/oauth.d.ts.map +1 -1
- package/dist/identity/oauth-env.d.ts +42 -0
- package/dist/identity/oauth-env.d.ts.map +1 -0
- package/dist/identity/oauth-env.js +65 -0
- package/dist/identity/oauth-env.js.map +1 -0
- package/dist/identity/options.d.ts +21 -8
- package/dist/identity/options.d.ts.map +1 -1
- package/dist/identity/options.js +8 -8
- package/dist/identity/options.js.map +1 -1
- package/dist/identity/slack/connect-http.js +2 -2
- package/dist/identity/slack/connect-http.js.map +1 -1
- package/dist/identity/slack/oauth.d.ts +1 -30
- package/dist/identity/slack/oauth.d.ts.map +1 -1
- package/dist/identity/slack/oauth.js +2 -53
- package/dist/identity/slack/oauth.js.map +1 -1
- package/dist/identity/types.d.ts +22 -3
- package/dist/identity/types.d.ts.map +1 -1
- package/dist/identity/x/connect-http.d.ts +11 -12
- package/dist/identity/x/connect-http.d.ts.map +1 -1
- package/dist/identity/x/connect-http.js +19 -47
- package/dist/identity/x/connect-http.js.map +1 -1
- package/dist/runtime/auth.js +3 -3
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/backend.d.ts.map +1 -1
- package/dist/runtime/backend.js +26 -5
- package/dist/runtime/backend.js.map +1 -1
- package/dist/runtime/cors.d.ts +11 -1
- package/dist/runtime/cors.d.ts.map +1 -1
- package/dist/runtime/cors.js +22 -3
- package/dist/runtime/cors.js.map +1 -1
- package/dist/runtime/identity-http.js +2 -2
- package/dist/runtime/identity-http.js.map +1 -1
- package/dist/runtime/identity-runtime.d.ts +2 -2
- package/dist/runtime/identity-runtime.d.ts.map +1 -1
- package/dist/runtime/identity-runtime.js +5 -5
- package/dist/runtime/identity-runtime.js.map +1 -1
- package/dist/runtime/memory/lazy-context-backend.d.ts +8 -0
- package/dist/runtime/memory/lazy-context-backend.d.ts.map +1 -1
- package/dist/runtime/memory/lazy-context-backend.js +10 -0
- package/dist/runtime/memory/lazy-context-backend.js.map +1 -1
- package/dist/runtime/memory/user-repo.js +1 -1
- package/dist/runtime/memory/user-repo.js.map +1 -1
- package/dist/runtime/sandbox-manager.d.ts +22 -3
- package/dist/runtime/sandbox-manager.d.ts.map +1 -1
- package/dist/runtime/sandbox-manager.js +158 -27
- package/dist/runtime/sandbox-manager.js.map +1 -1
- package/dist/runtime/sandbox-stream-retry.d.ts +2 -0
- package/dist/runtime/sandbox-stream-retry.d.ts.map +1 -1
- package/dist/runtime/sandbox-stream-retry.js +32 -3
- package/dist/runtime/sandbox-stream-retry.js.map +1 -1
- package/dist/runtime/setup-script.d.ts.map +1 -1
- package/dist/runtime/setup-script.js +14 -2
- package/dist/runtime/setup-script.js.map +1 -1
- package/dist/runtime/validated-token.js +1 -1
- package/dist/runtime/validated-token.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/identity/marketplace/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,GAGxB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EACL,+BAA+B,GAEhC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/identity/marketplace/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Connect-with-Microsoft — thin adapter over {@link
|
|
2
|
+
* Connect-with-Microsoft — thin adapter over {@link defineFleetIntegrationConnect}.
|
|
3
3
|
*
|
|
4
4
|
* Mounted under `/identity/microsoft/*` when listed on `identity.connect`, or
|
|
5
5
|
* inferred from declared Microsoft toolserver connectors on a user-scoped
|
|
6
6
|
* deployment.
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
9
|
-
import { type FleetIntegrationConnectProviderOptions } from "../fleet-integration-connect.js";
|
|
8
|
+
import type { FleetIntegrationConnectProviderOptions } from "../fleet-integration-connect.js";
|
|
10
9
|
export declare const MICROSOFT_CONNECT_STATUS_PATH: string;
|
|
11
10
|
export declare const MICROSOFT_CONNECT_START_PATH: string;
|
|
12
11
|
export declare const MICROSOFT_CONNECT_CALLBACK_PATH: string;
|
|
13
12
|
export declare const MICROSOFT_CONNECT_LINK_PATH: string;
|
|
14
|
-
export declare
|
|
15
|
-
export declare
|
|
13
|
+
export declare const isMicrosoftActorSubjectEnabled: () => boolean;
|
|
14
|
+
export declare const enableMicrosoftActorSubject: () => void;
|
|
16
15
|
/**
|
|
17
16
|
* Enable actor-subject mode when Microsoft connectors imply per-user vault subjects.
|
|
18
17
|
*
|
|
19
18
|
* Prefer {@link enableActorSubjectIntegrationsFromConnectors} at compile seams.
|
|
20
19
|
*/
|
|
21
|
-
export declare
|
|
22
|
-
export declare
|
|
23
|
-
export declare
|
|
24
|
-
export declare
|
|
20
|
+
export declare const enableMicrosoftActorSubjectFromConnectors: (connectorKinds: readonly (string | undefined)[] | undefined, scope?: import("../connect-provider-types.js").IdentityConnectMountContext["scope"]) => void;
|
|
21
|
+
export declare const resetMicrosoftActorSubjectEnabledForTests: () => void;
|
|
22
|
+
export declare const isMicrosoftConnectConfigured: (env?: NodeJS.ProcessEnv) => boolean;
|
|
23
|
+
export declare const microsoftConnectUrl: (publicAppUrl: string) => string;
|
|
25
24
|
/** Options for {@link createMicrosoftIdentityConnectProvider}. */
|
|
26
25
|
export type MicrosoftIdentityConnectProviderOptions = FleetIntegrationConnectProviderOptions;
|
|
27
26
|
/** Build a Microsoft connect provider. */
|
|
28
|
-
export declare
|
|
27
|
+
export declare const createMicrosoftIdentityConnectProvider: (options?: FleetIntegrationConnectProviderOptions) => import("../connect-provider-types.js").IdentityConnectProvider;
|
|
29
28
|
/** Default Microsoft connect provider used as a built-in mount candidate. */
|
|
30
|
-
export declare const microsoftIdentityConnectProvider: IdentityConnectProvider;
|
|
29
|
+
export declare const microsoftIdentityConnectProvider: import("../connect-provider-types.js").IdentityConnectProvider;
|
|
31
30
|
/**
|
|
32
31
|
* Opt into Connect-with-Microsoft on `defineIdentity({ connect: […] })`.
|
|
33
32
|
*
|
|
@@ -35,5 +34,5 @@ export declare const microsoftIdentityConnectProvider: IdentityConnectProvider;
|
|
|
35
34
|
* user-scoped identity deployment mounts this provider and derives OAuth
|
|
36
35
|
* scopes automatically.
|
|
37
36
|
*/
|
|
38
|
-
export declare
|
|
37
|
+
export declare const connect: (options?: FleetIntegrationConnectProviderOptions) => import("../connect-provider-types.js").IdentityConnectProvider;
|
|
39
38
|
//# sourceMappingURL=connect-http.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-http.d.ts","sourceRoot":"","sources":["../../../src/identity/microsoft/connect-http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"connect-http.d.ts","sourceRoot":"","sources":["../../../src/identity/microsoft/connect-http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,iCAAiC,CAAC;AAQ9F,eAAO,MAAM,6BAA6B,QAAyB,CAAC;AACpE,eAAO,MAAM,4BAA4B,QAA0B,CAAC;AACpE,eAAO,MAAM,+BAA+B,QAA2B,CAAC;AACxE,eAAO,MAAM,2BAA2B,QAAuB,CAAC;AAEhE,eAAO,MAAM,8BAA8B,eAAkC,CAAC;AAC9E,eAAO,MAAM,2BAA2B,YAA+B,CAAC;AACxE;;;;GAIG;AACH,eAAO,MAAM,yCAAyC,4JACV,CAAC;AAC7C,eAAO,MAAM,yCAAyC,YACV,CAAC;AAC7C,eAAO,MAAM,4BAA4B,sCAAgC,CAAC;AAC1E,eAAO,MAAM,mBAAmB,kCAAuB,CAAC;AAExD,kEAAkE;AAClE,MAAM,MAAM,uCAAuC,GACjD,sCAAsC,CAAC;AAEzC,0CAA0C;AAC1C,eAAO,MAAM,sCAAsC,sHAA2B,CAAC;AAE/E,6EAA6E;AAC7E,eAAO,MAAM,gCAAgC,gEAAqB,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,sHAAoB,CAAC"}
|
|
@@ -1,49 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Connect-with-Microsoft — thin adapter over {@link
|
|
2
|
+
* Connect-with-Microsoft — thin adapter over {@link defineFleetIntegrationConnect}.
|
|
3
3
|
*
|
|
4
4
|
* Mounted under `/identity/microsoft/*` when listed on `identity.connect`, or
|
|
5
5
|
* inferred from declared Microsoft toolserver connectors on a user-scoped
|
|
6
6
|
* deployment.
|
|
7
7
|
*/
|
|
8
8
|
import { MICROSOFT_INTEGRATION } from "../../connectors/toolserver/integrations.js";
|
|
9
|
-
import {
|
|
10
|
-
import { identityConnectPaths } from "../connect-paths.js";
|
|
11
|
-
import { createFleetIntegrationConnectProvider, fleetIntegrationConnectUrl, isFleetIntegrationConnectConfigured, } from "../fleet-integration-connect.js";
|
|
9
|
+
import { defineFleetIntegrationConnect } from "../define-fleet-connect.js";
|
|
12
10
|
import { microsoftByoOauth } from "./oauth.js";
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export const
|
|
18
|
-
export
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
}
|
|
11
|
+
const microsoft = defineFleetIntegrationConnect({
|
|
12
|
+
integration: MICROSOFT_INTEGRATION,
|
|
13
|
+
byoClient: microsoftByoOauth,
|
|
14
|
+
});
|
|
15
|
+
export const MICROSOFT_CONNECT_STATUS_PATH = microsoft.paths.status;
|
|
16
|
+
export const MICROSOFT_CONNECT_START_PATH = microsoft.paths.connect;
|
|
17
|
+
export const MICROSOFT_CONNECT_CALLBACK_PATH = microsoft.paths.callback;
|
|
18
|
+
export const MICROSOFT_CONNECT_LINK_PATH = microsoft.paths.link;
|
|
19
|
+
export const isMicrosoftActorSubjectEnabled = microsoft.isActorSubjectEnabled;
|
|
20
|
+
export const enableMicrosoftActorSubject = microsoft.enableActorSubject;
|
|
24
21
|
/**
|
|
25
22
|
* Enable actor-subject mode when Microsoft connectors imply per-user vault subjects.
|
|
26
23
|
*
|
|
27
24
|
* Prefer {@link enableActorSubjectIntegrationsFromConnectors} at compile seams.
|
|
28
25
|
*/
|
|
29
|
-
export
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
export
|
|
33
|
-
resetActorSubjectEnabledForTests();
|
|
34
|
-
}
|
|
35
|
-
export function isMicrosoftConnectConfigured(env = process.env) {
|
|
36
|
-
return isFleetIntegrationConnectConfigured(microsoftByoOauth, env);
|
|
37
|
-
}
|
|
38
|
-
export function microsoftConnectUrl(publicAppUrl) {
|
|
39
|
-
return fleetIntegrationConnectUrl(MICROSOFT_INTEGRATION, publicAppUrl);
|
|
40
|
-
}
|
|
26
|
+
export const enableMicrosoftActorSubjectFromConnectors = microsoft.enableActorSubjectFromConnectors;
|
|
27
|
+
export const resetMicrosoftActorSubjectEnabledForTests = microsoft.resetActorSubjectEnabledForTests;
|
|
28
|
+
export const isMicrosoftConnectConfigured = microsoft.isConnectConfigured;
|
|
29
|
+
export const microsoftConnectUrl = microsoft.connectUrl;
|
|
41
30
|
/** Build a Microsoft connect provider. */
|
|
42
|
-
export
|
|
43
|
-
return createFleetIntegrationConnectProvider(MICROSOFT_INTEGRATION, microsoftByoOauth, options);
|
|
44
|
-
}
|
|
31
|
+
export const createMicrosoftIdentityConnectProvider = microsoft.createProvider;
|
|
45
32
|
/** Default Microsoft connect provider used as a built-in mount candidate. */
|
|
46
|
-
export const microsoftIdentityConnectProvider =
|
|
33
|
+
export const microsoftIdentityConnectProvider = microsoft.provider;
|
|
47
34
|
/**
|
|
48
35
|
* Opt into Connect-with-Microsoft on `defineIdentity({ connect: […] })`.
|
|
49
36
|
*
|
|
@@ -51,10 +38,5 @@ export const microsoftIdentityConnectProvider = createMicrosoftIdentityConnectPr
|
|
|
51
38
|
* user-scoped identity deployment mounts this provider and derives OAuth
|
|
52
39
|
* scopes automatically.
|
|
53
40
|
*/
|
|
54
|
-
export
|
|
55
|
-
enableMicrosoftActorSubject();
|
|
56
|
-
return options
|
|
57
|
-
? createMicrosoftIdentityConnectProvider(options)
|
|
58
|
-
: microsoftIdentityConnectProvider;
|
|
59
|
-
}
|
|
41
|
+
export const connect = microsoft.connect;
|
|
60
42
|
//# sourceMappingURL=connect-http.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-http.js","sourceRoot":"","sources":["../../../src/identity/microsoft/connect-http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,
|
|
1
|
+
{"version":3,"file":"connect-http.js","sourceRoot":"","sources":["../../../src/identity/microsoft/connect-http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,SAAS,GAAG,6BAA6B,CAAC;IAC9C,WAAW,EAAE,qBAAqB;IAClC,SAAS,EAAE,iBAAiB;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;AACpE,MAAM,CAAC,MAAM,4BAA4B,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;AACpE,MAAM,CAAC,MAAM,+BAA+B,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;AACxE,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AAEhE,MAAM,CAAC,MAAM,8BAA8B,GAAG,SAAS,CAAC,qBAAqB,CAAC;AAC9E,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC,kBAAkB,CAAC;AACxE;;;;GAIG;AACH,MAAM,CAAC,MAAM,yCAAyC,GACpD,SAAS,CAAC,gCAAgC,CAAC;AAC7C,MAAM,CAAC,MAAM,yCAAyC,GACpD,SAAS,CAAC,gCAAgC,CAAC;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,SAAS,CAAC,mBAAmB,CAAC;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC,UAAU,CAAC;AAMxD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,sCAAsC,GAAG,SAAS,CAAC,cAAc,CAAC;AAE/E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gCAAgC,GAAG,SAAS,CAAC,QAAQ,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC"}
|
|
@@ -17,7 +17,7 @@ export declare const MICROSOFT_OAUTH_TOKEN_URL_ENV: string;
|
|
|
17
17
|
export declare const MICROSOFT_OAUTH_USERINFO_URL_ENV: string;
|
|
18
18
|
/** Microsoft-bound OAuth state / connect-ticket helpers. */
|
|
19
19
|
export declare const microsoftOauthTickets: import("../oauth-tickets.js").OauthTickets;
|
|
20
|
-
export declare const resolveMicrosoftOauthRedirectBase: typeof import("../
|
|
20
|
+
export declare const resolveMicrosoftOauthRedirectBase: typeof import("../oauth-env.js").resolveOauthRedirectBase;
|
|
21
21
|
export declare const readMicrosoftOauthConfig: (env?: NodeJS.ProcessEnv) => ByoOauthConfig | null;
|
|
22
22
|
export declare const buildMicrosoftAuthorizeUrl: (config: ByoOauthConfig, state: string, redirectUri: string, scopes?: string) => string;
|
|
23
23
|
export declare const exchangeMicrosoftOauthCode: (config: ByoOauthConfig, code: string, redirectUri: string, fetchImpl?: typeof fetch) => Promise<import("../fleet-connect.js").FleetVaultByoTokenResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/identity/microsoft/oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAElD,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAqBnE,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,EAAE,cA2B9B,CAAC;AAEH,eAAO,MAAM,6BAA6B,QAAiC,CAAC;AAC5E,eAAO,MAAM,iCAAiC,QACV,CAAC;AACrC,eAAO,MAAM,0BAA0B,QAA+B,CAAC;AACvE,eAAO,MAAM,4BAA4B,QAAgC,CAAC;AAC1E,eAAO,MAAM,6BAA6B,QAAiC,CAAC;AAC5E,eAAO,MAAM,gCAAgC,QACV,CAAC;AAEpC,4DAA4D;AAC5D,eAAO,MAAM,qBAAqB,4CAA4B,CAAC;AAE/D,eAAO,MAAM,iCAAiC,
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/identity/microsoft/oauth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAElD,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAqBnE,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,EAAE,cA2B9B,CAAC;AAEH,eAAO,MAAM,6BAA6B,QAAiC,CAAC;AAC5E,eAAO,MAAM,iCAAiC,QACV,CAAC;AACrC,eAAO,MAAM,0BAA0B,QAA+B,CAAC;AACvE,eAAO,MAAM,4BAA4B,QAAgC,CAAC;AAC1E,eAAO,MAAM,6BAA6B,QAAiC,CAAC;AAC5E,eAAO,MAAM,gCAAgC,QACV,CAAC;AAEpC,4DAA4D;AAC5D,eAAO,MAAM,qBAAqB,4CAA4B,CAAC;AAE/D,eAAO,MAAM,iCAAiC,2DACP,CAAC;AAExC,eAAO,MAAM,wBAAwB,oDAA+B,CAAC;AACrE,eAAO,MAAM,0BAA0B,yFAAsC,CAAC;AAC9E,eAAO,MAAM,0BAA0B,0JAAiC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared deployment OAuth env keys and redirect-base resolution.
|
|
3
|
+
*
|
|
4
|
+
* Used by Slack OIDC, GitHub Connect, Fleet vault Connect, and BYO clients —
|
|
5
|
+
* not Slack-specific despite historical residence under `slack/oauth.ts`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const MDA_PUBLIC_APP_URL_ENV = "MDA_PUBLIC_APP_URL";
|
|
8
|
+
/**
|
|
9
|
+
* Public Agent Server base URL used for OAuth `redirect_uri`.
|
|
10
|
+
* Required on LangGraph Host where the ASGI request origin is an internal
|
|
11
|
+
* loopback (e.g. `http://localhost:5557`) rather than `*.langgraph.app`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const MDA_PUBLIC_API_URL_ENV = "MDA_PUBLIC_API_URL";
|
|
14
|
+
/**
|
|
15
|
+
* Signing key for OAuth `state` JWTs (Connect-with-X). Reuses the guest
|
|
16
|
+
* token key so deployments do not need a third secret; never a provider
|
|
17
|
+
* client secret (that value is an OAuth credential, not a signing key).
|
|
18
|
+
*/
|
|
19
|
+
export declare const OAUTH_STATE_SIGNING_KEY_ENV = "MDA_GUEST_SIGNING_KEY";
|
|
20
|
+
/** Server-side key for OAuth state JWTs; null when Connect cannot bind actors. */
|
|
21
|
+
export declare function readOauthStateSigningKey(env?: NodeJS.ProcessEnv): string | null;
|
|
22
|
+
/**
|
|
23
|
+
* Public base URL for OAuth `redirect_uri` (`…/identity/{provider}/callback`).
|
|
24
|
+
*
|
|
25
|
+
* Prefer an explicit public Agent Server URL over the ASGI request origin:
|
|
26
|
+
* LangGraph Host rewrites requests to an internal loopback that IdPs cannot
|
|
27
|
+
* use as a redirect.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveOauthRedirectBase(options: {
|
|
30
|
+
requestUrl: string;
|
|
31
|
+
headers?: Headers | {
|
|
32
|
+
get(name: string): string | null | undefined;
|
|
33
|
+
};
|
|
34
|
+
deploymentBaseUrl?: string;
|
|
35
|
+
env?: NodeJS.ProcessEnv;
|
|
36
|
+
}): string;
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated Use {@link resolveOauthRedirectBase}. Kept for callers that still
|
|
39
|
+
* import the historical Slack-named alias.
|
|
40
|
+
*/
|
|
41
|
+
export declare const resolveSlackOauthRedirectBase: typeof resolveOauthRedirectBase;
|
|
42
|
+
//# sourceMappingURL=oauth-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-env.d.ts","sourceRoot":"","sources":["../../src/identity/oauth-env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AAEnE,kFAAkF;AAClF,wBAAgB,wBAAwB,CACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,IAAI,CAGf;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAC;IACrE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,CAcT;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,iCAA2B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared deployment OAuth env keys and redirect-base resolution.
|
|
3
|
+
*
|
|
4
|
+
* Used by Slack OIDC, GitHub Connect, Fleet vault Connect, and BYO clients —
|
|
5
|
+
* not Slack-specific despite historical residence under `slack/oauth.ts`.
|
|
6
|
+
*/
|
|
7
|
+
import { isLoopbackHost, isLoopbackUrl } from "./loopback.js";
|
|
8
|
+
export const MDA_PUBLIC_APP_URL_ENV = "MDA_PUBLIC_APP_URL";
|
|
9
|
+
/**
|
|
10
|
+
* Public Agent Server base URL used for OAuth `redirect_uri`.
|
|
11
|
+
* Required on LangGraph Host where the ASGI request origin is an internal
|
|
12
|
+
* loopback (e.g. `http://localhost:5557`) rather than `*.langgraph.app`.
|
|
13
|
+
*/
|
|
14
|
+
export const MDA_PUBLIC_API_URL_ENV = "MDA_PUBLIC_API_URL";
|
|
15
|
+
/**
|
|
16
|
+
* Signing key for OAuth `state` JWTs (Connect-with-X). Reuses the guest
|
|
17
|
+
* token key so deployments do not need a third secret; never a provider
|
|
18
|
+
* client secret (that value is an OAuth credential, not a signing key).
|
|
19
|
+
*/
|
|
20
|
+
export const OAUTH_STATE_SIGNING_KEY_ENV = "MDA_GUEST_SIGNING_KEY";
|
|
21
|
+
/** Server-side key for OAuth state JWTs; null when Connect cannot bind actors. */
|
|
22
|
+
export function readOauthStateSigningKey(env = process.env) {
|
|
23
|
+
const key = env[OAUTH_STATE_SIGNING_KEY_ENV]?.trim();
|
|
24
|
+
return key || null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Public base URL for OAuth `redirect_uri` (`…/identity/{provider}/callback`).
|
|
28
|
+
*
|
|
29
|
+
* Prefer an explicit public Agent Server URL over the ASGI request origin:
|
|
30
|
+
* LangGraph Host rewrites requests to an internal loopback that IdPs cannot
|
|
31
|
+
* use as a redirect.
|
|
32
|
+
*/
|
|
33
|
+
export function resolveOauthRedirectBase(options) {
|
|
34
|
+
const env = options.env ?? process.env;
|
|
35
|
+
if (options.deploymentBaseUrl?.trim()) {
|
|
36
|
+
return options.deploymentBaseUrl.trim().replace(/\/$/, "");
|
|
37
|
+
}
|
|
38
|
+
const fromEnv = env[MDA_PUBLIC_API_URL_ENV]?.trim().replace(/\/$/, "");
|
|
39
|
+
if (fromEnv && !isLoopbackUrl(fromEnv)) {
|
|
40
|
+
return fromEnv;
|
|
41
|
+
}
|
|
42
|
+
const forwarded = publicOriginFromForwardedHeaders(options.headers);
|
|
43
|
+
if (forwarded) {
|
|
44
|
+
return forwarded;
|
|
45
|
+
}
|
|
46
|
+
return new URL(options.requestUrl).origin;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Use {@link resolveOauthRedirectBase}. Kept for callers that still
|
|
50
|
+
* import the historical Slack-named alias.
|
|
51
|
+
*/
|
|
52
|
+
export const resolveSlackOauthRedirectBase = resolveOauthRedirectBase;
|
|
53
|
+
function publicOriginFromForwardedHeaders(headers) {
|
|
54
|
+
if (!headers) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
const host = headers.get("x-forwarded-host")?.split(",")[0]?.trim();
|
|
58
|
+
if (!host || isLoopbackHost(host)) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
const proto = headers.get("x-forwarded-proto")?.split(",")[0]?.trim() ||
|
|
62
|
+
(host.includes("localhost") || host.startsWith("127.") ? "http" : "https");
|
|
63
|
+
return `${proto}://${host}`;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=oauth-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-env.js","sourceRoot":"","sources":["../../src/identity/oauth-env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AAEnE,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CACtC,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,CAAC;IACrD,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAKxC;IACC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,IAAI,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvE,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,SAAS,GAAG,gCAAgC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,wBAAwB,CAAC;AAEtE,SAAS,gCAAgC,CACvC,OAAoE;IAEpE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACpE,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;QACvD,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7E,OAAO,GAAG,KAAK,MAAM,IAAI,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -24,12 +24,12 @@ export type IdentityAuth = "backend" | ValidatedTokenProvider | ValidatedTokenPr
|
|
|
24
24
|
* The isolation boundary for the deployment — the one decision most projects
|
|
25
25
|
* make about identity.
|
|
26
26
|
*
|
|
27
|
-
* - `"
|
|
28
|
-
*
|
|
27
|
+
* - `"agent"` (default) — one shared memory slice; the agent acts as itself
|
|
28
|
+
* with the shared LangSmith vault (`mda connect` / Settings → Integrations).
|
|
29
|
+
* - `"user"` — every caller gets private threads, private memory, and acts as
|
|
30
|
+
* themselves downstream (per-caller Connect-with-X).
|
|
29
31
|
* - `"organization"` — callers belong to customer organizations; memory is
|
|
30
32
|
* shared within an organization and callers must present one.
|
|
31
|
-
* - `"agent"` — no per-caller isolation; one shared memory slice, the agent acts
|
|
32
|
-
* as itself. Machine-to-machine deployments.
|
|
33
33
|
* - `"none"` — no durable memory and no downstream credentials.
|
|
34
34
|
*/
|
|
35
35
|
export type IdentityScope = "user" | "organization" | "agent" | "none";
|
|
@@ -38,7 +38,7 @@ export type IdentityScope = "user" | "organization" | "agent" | "none";
|
|
|
38
38
|
* {@link IdentityScope}. Anything left unset follows `default`.
|
|
39
39
|
*/
|
|
40
40
|
export interface IdentityScopeOverrides {
|
|
41
|
-
/** Base scope the unset axes follow. Defaults to `"
|
|
41
|
+
/** Base scope the unset axes follow. Defaults to `"agent"`. */
|
|
42
42
|
default?: IdentityScope;
|
|
43
43
|
/** Who can open or resume a conversation. */
|
|
44
44
|
threads?: ThreadScope;
|
|
@@ -55,10 +55,23 @@ export interface IdentityScopeOverrides {
|
|
|
55
55
|
export interface IdentityOptions {
|
|
56
56
|
/** How callers authenticate. Defaults to `"backend"`. */
|
|
57
57
|
auth?: IdentityAuth;
|
|
58
|
-
/** The isolation boundary, or per-axis overrides. Defaults to `"
|
|
58
|
+
/** The isolation boundary, or per-axis overrides. Defaults to `"agent"`. */
|
|
59
59
|
scope?: IdentityScope | IdentityScopeOverrides;
|
|
60
|
-
/**
|
|
61
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Whether every caller must present an organization id.
|
|
62
|
+
*
|
|
63
|
+
* Inferred from `scope`: any axis set to `"organization"` → `"required"`,
|
|
64
|
+
* otherwise `"optional"`. Set this explicitly only when you need org
|
|
65
|
+
* partitioning without org-scoped memory — for example private per-user
|
|
66
|
+
* memory namespaced by customer org:
|
|
67
|
+
*
|
|
68
|
+
* ```ts
|
|
69
|
+
* defineIdentity({ scope: "user", organization: "required" })
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* Cannot be `"optional"` when an axis is organization-scoped.
|
|
73
|
+
*/
|
|
74
|
+
organization?: OrganizationRequirement;
|
|
62
75
|
/**
|
|
63
76
|
* Mint your own downstream credentials per caller. Providing this puts the
|
|
64
77
|
* credentials axis in custom mode — there is no separate flag to set.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/identity/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,WAAW,EACX,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,sBAAsB,GACtB,sBAAsB,EAAE,CAAC;AAE7B;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/identity/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,WAAW,EACX,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,sBAAsB,GACtB,sBAAsB,EAAE,CAAC;AAE7B;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,wCAAwC;IACxC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,aAAa,GAAG,sBAAsB,CAAC;IAC/C;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,wBAAwB,GAAG,mBAAmB,CAAC;IAC7D;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAC;CACrC;AAoCD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAsBhB"}
|
package/dist/identity/options.js
CHANGED
|
@@ -52,11 +52,11 @@ const CREDENTIAL_SCOPES = [
|
|
|
52
52
|
export function normalizeIdentity(options = {}) {
|
|
53
53
|
assertOptionKeys(options);
|
|
54
54
|
const scope = resolveScope(options);
|
|
55
|
-
const
|
|
56
|
-
assertOrganizationRequirement(options.
|
|
55
|
+
const organization = options.organization ?? inferOrganizationRequirement(scope);
|
|
56
|
+
assertOrganizationRequirement(options.organization, scope, organization);
|
|
57
57
|
const config = {
|
|
58
58
|
ingress: { http: resolveIngress(options.auth) },
|
|
59
|
-
|
|
59
|
+
organization,
|
|
60
60
|
scope,
|
|
61
61
|
};
|
|
62
62
|
if (options.credentials !== undefined) {
|
|
@@ -79,9 +79,9 @@ function resolveIngress(auth) {
|
|
|
79
79
|
return { mode: "validated_token", providers };
|
|
80
80
|
}
|
|
81
81
|
function resolveScope(options) {
|
|
82
|
-
const scope = options.scope ?? "
|
|
82
|
+
const scope = options.scope ?? "agent";
|
|
83
83
|
const overrides = typeof scope === "string" ? { default: scope } : scope;
|
|
84
|
-
const base = SCOPE_AXES[overrides.default ?? "
|
|
84
|
+
const base = SCOPE_AXES[overrides.default ?? "agent"];
|
|
85
85
|
if (base === undefined) {
|
|
86
86
|
throw new Error(`defineIdentity(...) unknown \`scope\` "${String(overrides.default)}". ` +
|
|
87
87
|
`Valid scopes: ${Object.keys(SCOPE_AXES).join(", ")}.`);
|
|
@@ -125,11 +125,11 @@ function assertOrganizationRequirement(declared, scope, resolved) {
|
|
|
125
125
|
if (declared !== undefined &&
|
|
126
126
|
declared !== "optional" &&
|
|
127
127
|
declared !== "required") {
|
|
128
|
-
throw new Error(`defineIdentity(...) \`
|
|
128
|
+
throw new Error(`defineIdentity(...) \`organization\` must be "optional" or "required" (received "${String(declared)}").`);
|
|
129
129
|
}
|
|
130
130
|
if (resolved === "optional" &&
|
|
131
131
|
inferOrganizationRequirement(scope) === "required") {
|
|
132
|
-
throw new Error('defineIdentity(...) organization-scoped isolation requires `
|
|
132
|
+
throw new Error('defineIdentity(...) organization-scoped isolation requires `organization: "required"`.');
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
/**
|
|
@@ -155,7 +155,7 @@ function resolveConnect(options) {
|
|
|
155
155
|
const KNOWN_OPTION_KEYS = new Set([
|
|
156
156
|
"auth",
|
|
157
157
|
"scope",
|
|
158
|
-
"
|
|
158
|
+
"organization",
|
|
159
159
|
"credentials",
|
|
160
160
|
"connect",
|
|
161
161
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/identity/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/identity/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Mounted under `/identity/slack/*` when listed on `identity.connect`.
|
|
5
5
|
*/
|
|
6
6
|
import { buildIdentityLinkRecord, getIdentityLinkStore, } from "./links.js";
|
|
7
|
-
import { buildSlackAuthorizeUrl, exchangeSlackOidcCode, MDA_PUBLIC_APP_URL_ENV, OAUTH_STATE_SIGNING_KEY_ENV, readOauthStateSigningKey, readSlackOidcConfig,
|
|
7
|
+
import { buildSlackAuthorizeUrl, exchangeSlackOidcCode, MDA_PUBLIC_APP_URL_ENV, OAUTH_STATE_SIGNING_KEY_ENV, readOauthStateSigningKey, readSlackOidcConfig, resolveOauthRedirectBase, slackOauthTickets, } from "./oauth.js";
|
|
8
8
|
import { identityConnectPaths } from "../connect-paths.js";
|
|
9
9
|
import { hasChannelForProvider, isUserScopedDeployment, } from "../connect-inference.js";
|
|
10
10
|
const PATHS = identityConnectPaths("slack");
|
|
@@ -82,7 +82,7 @@ export function createSlackIdentityConnectProvider(options = {}) {
|
|
|
82
82
|
await store().removeByUserId(userId);
|
|
83
83
|
},
|
|
84
84
|
resolveRedirectBase(options) {
|
|
85
|
-
return
|
|
85
|
+
return resolveOauthRedirectBase(options);
|
|
86
86
|
},
|
|
87
87
|
resolvePublicAppUrl() {
|
|
88
88
|
const oauth = readSlackOidcConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-http.js","sourceRoot":"","sources":["../../../src/identity/slack/connect-http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GAErB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"connect-http.js","sourceRoot":"","sources":["../../../src/identity/slack/connect-http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Slack OpenID Connect helpers for Connect-with-Slack account linking.
|
|
3
3
|
*/
|
|
4
|
+
export { MDA_PUBLIC_API_URL_ENV, MDA_PUBLIC_APP_URL_ENV, OAUTH_STATE_SIGNING_KEY_ENV, readOauthStateSigningKey, resolveOauthRedirectBase, resolveSlackOauthRedirectBase, } from "../oauth-env.js";
|
|
4
5
|
export declare const SLACK_CLIENT_ID_ENV = "SLACK_CLIENT_ID";
|
|
5
6
|
export declare const SLACK_CLIENT_SECRET_ENV = "SLACK_CLIENT_SECRET";
|
|
6
7
|
export declare const SLACK_TEAM_ID_ENV = "SLACK_TEAM_ID";
|
|
7
|
-
export declare const MDA_PUBLIC_APP_URL_ENV = "MDA_PUBLIC_APP_URL";
|
|
8
|
-
/**
|
|
9
|
-
* Public Agent Server base URL used for Slack OAuth `redirect_uri`.
|
|
10
|
-
* Required on LangGraph Host where the ASGI request origin is an internal
|
|
11
|
-
* loopback (e.g. `http://localhost:5557`) rather than `*.langgraph.app`.
|
|
12
|
-
*/
|
|
13
|
-
export declare const MDA_PUBLIC_API_URL_ENV = "MDA_PUBLIC_API_URL";
|
|
14
|
-
/**
|
|
15
|
-
* Signing key for OAuth `state` JWTs (Connect-with-Slack). Reuses the guest
|
|
16
|
-
* token key so deployments do not need a third secret; never the Slack
|
|
17
|
-
* client secret (that value is an OAuth credential, not a signing key).
|
|
18
|
-
*/
|
|
19
|
-
export declare const OAUTH_STATE_SIGNING_KEY_ENV = "MDA_GUEST_SIGNING_KEY";
|
|
20
8
|
/** Override Slack OIDC base (tests). */
|
|
21
9
|
export declare const SLACK_OIDC_BASE_ENV = "SLACK_OIDC_BASE";
|
|
22
10
|
/** Slack-bound OAuth state / connect-ticket helpers. */
|
|
@@ -35,23 +23,6 @@ export interface SlackOidcIdentity {
|
|
|
35
23
|
}
|
|
36
24
|
export declare function readSlackOidcConfig(env?: NodeJS.ProcessEnv): SlackOidcConfig | null;
|
|
37
25
|
export declare function slackConnectUrl(publicAppUrl: string): string;
|
|
38
|
-
/**
|
|
39
|
-
* Public base URL for Slack OAuth `redirect_uri` (`…/identity/slack/callback`).
|
|
40
|
-
*
|
|
41
|
-
* Prefer an explicit public Agent Server URL over the ASGI request origin:
|
|
42
|
-
* LangGraph Host rewrites requests to an internal loopback that Slack cannot
|
|
43
|
-
* use as a redirect.
|
|
44
|
-
*/
|
|
45
|
-
export declare function resolveSlackOauthRedirectBase(options: {
|
|
46
|
-
requestUrl: string;
|
|
47
|
-
headers?: Headers | {
|
|
48
|
-
get(name: string): string | null | undefined;
|
|
49
|
-
};
|
|
50
|
-
deploymentBaseUrl?: string;
|
|
51
|
-
env?: NodeJS.ProcessEnv;
|
|
52
|
-
}): string;
|
|
53
|
-
/** Server-side key for OAuth state JWTs; null when Connect cannot bind actors. */
|
|
54
|
-
export declare function readOauthStateSigningKey(env?: NodeJS.ProcessEnv): string | null;
|
|
55
26
|
export declare function buildSlackAuthorizeUrl(config: SlackOidcConfig, state: string, redirectUri: string): string;
|
|
56
27
|
export declare function exchangeSlackOidcCode(config: SlackOidcConfig, code: string, redirectUri: string): Promise<SlackOidcIdentity>;
|
|
57
28
|
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/identity/slack/oauth.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../src/identity/slack/oauth.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAC7D,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAIrD,wDAAwD;AACxD,eAAO,MAAM,iBAAiB,4CAA2B,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,eAAe,GAAG,IAAI,CAmBxB;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,MAAM,CAWR;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA4D5B"}
|
|
@@ -2,24 +2,12 @@
|
|
|
2
2
|
* Slack OpenID Connect helpers for Connect-with-Slack account linking.
|
|
3
3
|
*/
|
|
4
4
|
import { fetchWithTimeout, PROVIDER_HTTP_TIMEOUT_MS, } from "../../runtime/http.js";
|
|
5
|
-
import { isLoopbackHost, isLoopbackUrl } from "../loopback.js";
|
|
6
5
|
import { oauthTicketsFor } from "../oauth-tickets.js";
|
|
6
|
+
import { MDA_PUBLIC_APP_URL_ENV } from "../oauth-env.js";
|
|
7
|
+
export { MDA_PUBLIC_API_URL_ENV, MDA_PUBLIC_APP_URL_ENV, OAUTH_STATE_SIGNING_KEY_ENV, readOauthStateSigningKey, resolveOauthRedirectBase, resolveSlackOauthRedirectBase, } from "../oauth-env.js";
|
|
7
8
|
export const SLACK_CLIENT_ID_ENV = "SLACK_CLIENT_ID";
|
|
8
9
|
export const SLACK_CLIENT_SECRET_ENV = "SLACK_CLIENT_SECRET";
|
|
9
10
|
export const SLACK_TEAM_ID_ENV = "SLACK_TEAM_ID";
|
|
10
|
-
export const MDA_PUBLIC_APP_URL_ENV = "MDA_PUBLIC_APP_URL";
|
|
11
|
-
/**
|
|
12
|
-
* Public Agent Server base URL used for Slack OAuth `redirect_uri`.
|
|
13
|
-
* Required on LangGraph Host where the ASGI request origin is an internal
|
|
14
|
-
* loopback (e.g. `http://localhost:5557`) rather than `*.langgraph.app`.
|
|
15
|
-
*/
|
|
16
|
-
export const MDA_PUBLIC_API_URL_ENV = "MDA_PUBLIC_API_URL";
|
|
17
|
-
/**
|
|
18
|
-
* Signing key for OAuth `state` JWTs (Connect-with-Slack). Reuses the guest
|
|
19
|
-
* token key so deployments do not need a third secret; never the Slack
|
|
20
|
-
* client secret (that value is an OAuth credential, not a signing key).
|
|
21
|
-
*/
|
|
22
|
-
export const OAUTH_STATE_SIGNING_KEY_ENV = "MDA_GUEST_SIGNING_KEY";
|
|
23
11
|
/** Override Slack OIDC base (tests). */
|
|
24
12
|
export const SLACK_OIDC_BASE_ENV = "SLACK_OIDC_BASE";
|
|
25
13
|
const DEFAULT_OIDC_BASE = "https://slack.com";
|
|
@@ -45,45 +33,6 @@ export function readSlackOidcConfig(env = process.env) {
|
|
|
45
33
|
export function slackConnectUrl(publicAppUrl) {
|
|
46
34
|
return `${publicAppUrl.replace(/\/$/, "")}/settings`;
|
|
47
35
|
}
|
|
48
|
-
/**
|
|
49
|
-
* Public base URL for Slack OAuth `redirect_uri` (`…/identity/slack/callback`).
|
|
50
|
-
*
|
|
51
|
-
* Prefer an explicit public Agent Server URL over the ASGI request origin:
|
|
52
|
-
* LangGraph Host rewrites requests to an internal loopback that Slack cannot
|
|
53
|
-
* use as a redirect.
|
|
54
|
-
*/
|
|
55
|
-
export function resolveSlackOauthRedirectBase(options) {
|
|
56
|
-
const env = options.env ?? process.env;
|
|
57
|
-
if (options.deploymentBaseUrl?.trim()) {
|
|
58
|
-
return options.deploymentBaseUrl.trim().replace(/\/$/, "");
|
|
59
|
-
}
|
|
60
|
-
const fromEnv = env[MDA_PUBLIC_API_URL_ENV]?.trim().replace(/\/$/, "");
|
|
61
|
-
if (fromEnv && !isLoopbackUrl(fromEnv)) {
|
|
62
|
-
return fromEnv;
|
|
63
|
-
}
|
|
64
|
-
const forwarded = publicOriginFromForwardedHeaders(options.headers);
|
|
65
|
-
if (forwarded) {
|
|
66
|
-
return forwarded;
|
|
67
|
-
}
|
|
68
|
-
return new URL(options.requestUrl).origin;
|
|
69
|
-
}
|
|
70
|
-
function publicOriginFromForwardedHeaders(headers) {
|
|
71
|
-
if (!headers) {
|
|
72
|
-
return undefined;
|
|
73
|
-
}
|
|
74
|
-
const host = headers.get("x-forwarded-host")?.split(",")[0]?.trim();
|
|
75
|
-
if (!host || isLoopbackHost(host)) {
|
|
76
|
-
return undefined;
|
|
77
|
-
}
|
|
78
|
-
const proto = headers.get("x-forwarded-proto")?.split(",")[0]?.trim() ||
|
|
79
|
-
(host.includes("localhost") || host.startsWith("127.") ? "http" : "https");
|
|
80
|
-
return `${proto}://${host}`;
|
|
81
|
-
}
|
|
82
|
-
/** Server-side key for OAuth state JWTs; null when Connect cannot bind actors. */
|
|
83
|
-
export function readOauthStateSigningKey(env = process.env) {
|
|
84
|
-
const key = env[OAUTH_STATE_SIGNING_KEY_ENV]?.trim();
|
|
85
|
-
return key || null;
|
|
86
|
-
}
|
|
87
36
|
export function buildSlackAuthorizeUrl(config, state, redirectUri) {
|
|
88
37
|
const url = new URL(`${config.oidcBase}/openid/connect/authorize`);
|
|
89
38
|
url.searchParams.set("response_type", "code");
|