@stigmer/react 0.0.83 → 0.0.84
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/index.d.ts +3 -3
- package/index.d.ts.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/library/ResourceListView.d.ts +57 -7
- package/library/ResourceListView.d.ts.map +1 -1
- package/library/ResourceListView.js +147 -37
- package/library/ResourceListView.js.map +1 -1
- package/library/index.d.ts +1 -1
- package/library/index.d.ts.map +1 -1
- package/library/index.js.map +1 -1
- package/mcp-server/McpServerConfigPanel.d.ts +45 -0
- package/mcp-server/McpServerConfigPanel.d.ts.map +1 -1
- package/mcp-server/McpServerConfigPanel.js +90 -14
- package/mcp-server/McpServerConfigPanel.js.map +1 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +168 -23
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/McpServerPicker.js +3 -3
- package/mcp-server/McpServerPicker.js.map +1 -1
- package/mcp-server/OAuthAppForm.d.ts +58 -0
- package/mcp-server/OAuthAppForm.d.ts.map +1 -0
- package/mcp-server/OAuthAppForm.js +67 -0
- package/mcp-server/OAuthAppForm.js.map +1 -0
- package/mcp-server/index.d.ts +6 -0
- package/mcp-server/index.d.ts.map +1 -1
- package/mcp-server/index.js +3 -0
- package/mcp-server/index.js.map +1 -1
- package/mcp-server/useDisconnectOAuth.d.ts +40 -0
- package/mcp-server/useDisconnectOAuth.d.ts.map +1 -0
- package/mcp-server/useDisconnectOAuth.js +46 -0
- package/mcp-server/useDisconnectOAuth.js.map +1 -0
- package/mcp-server/useMcpServerCredentials.d.ts +48 -0
- package/mcp-server/useMcpServerCredentials.d.ts.map +1 -1
- package/mcp-server/useMcpServerCredentials.js +18 -2
- package/mcp-server/useMcpServerCredentials.js.map +1 -1
- package/mcp-server/useOAuthGrantStatus.d.ts +9 -0
- package/mcp-server/useOAuthGrantStatus.d.ts.map +1 -1
- package/mcp-server/useOAuthGrantStatus.js +6 -1
- package/mcp-server/useOAuthGrantStatus.js.map +1 -1
- package/mcp-server/useOrgOAuthApp.d.ts +82 -0
- package/mcp-server/useOrgOAuthApp.d.ts.map +1 -0
- package/mcp-server/useOrgOAuthApp.js +160 -0
- package/mcp-server/useOrgOAuthApp.js.map +1 -0
- package/package.json +4 -4
- package/src/index.ts +3 -0
- package/src/library/ResourceListView.tsx +303 -46
- package/src/library/index.ts +4 -1
- package/src/mcp-server/McpServerConfigPanel.tsx +370 -45
- package/src/mcp-server/McpServerDetailView.tsx +447 -47
- package/src/mcp-server/McpServerPicker.tsx +3 -3
- package/src/mcp-server/OAuthAppForm.tsx +304 -0
- package/src/mcp-server/index.ts +9 -0
- package/src/mcp-server/useDisconnectOAuth.ts +76 -0
- package/src/mcp-server/useMcpServerCredentials.ts +70 -2
- package/src/mcp-server/useOAuthGrantStatus.ts +19 -1
- package/src/mcp-server/useOrgOAuthApp.ts +250 -0
- package/styles.css +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useCallback, useMemo, useState } from "react";
|
|
3
|
+
import { OAuthAppSource } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/status_pb";
|
|
3
4
|
import { VendorApprovalStatus } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1/spec_pb";
|
|
4
5
|
import { usePersonalEnvironment } from "../environment/usePersonalEnvironment";
|
|
5
6
|
import { diffEnv } from "../environment/diffEnv";
|
|
@@ -80,9 +81,18 @@ export function useMcpServerCredentials(org, mcpServer) {
|
|
|
80
81
|
const authMode = auth ? "oauth" : "manual";
|
|
81
82
|
const oauthTargetEnvVar = auth?.targetEnvVar || null;
|
|
82
83
|
const tokenLifetimeHint = auth?.tokenLifetimeHint || null;
|
|
84
|
+
const oauthStatus = mcpServer?.status?.oauthStatus;
|
|
83
85
|
const isVendorApprovalPending = authMode === "oauth" &&
|
|
84
|
-
|
|
85
|
-
const
|
|
86
|
+
oauthStatus?.vendorApprovalStatus === VendorApprovalStatus.PENDING;
|
|
87
|
+
const isVendorApprovalBlocked = authMode === "oauth" &&
|
|
88
|
+
(oauthStatus?.vendorApprovalStatus === VendorApprovalStatus.PENDING ||
|
|
89
|
+
oauthStatus?.vendorApprovalStatus === VendorApprovalStatus.REJECTED);
|
|
90
|
+
const vendorApprovalDocsUrl = oauthStatus?.vendorApprovalDocsUrl || null;
|
|
91
|
+
const effectiveOAuthSource = oauthStatus?.effectiveOauthSource ??
|
|
92
|
+
OAuthAppSource.OAUTH_APP_SOURCE_UNSPECIFIED;
|
|
93
|
+
const isOrgOAuthApp = effectiveOAuthSource === OAuthAppSource.OAUTH_APP_SOURCE_ORG_OVERRIDE;
|
|
94
|
+
const hasOAuthAppRef = Boolean(auth?.oauthAppRef?.slug);
|
|
95
|
+
const canBringOwnApp = authMode === "oauth" && hasOAuthAppRef && !isOrgOAuthApp;
|
|
86
96
|
const grantStatus = useOAuthGrantStatus(authMode === "oauth" ? (mcpServer?.metadata?.id ?? null) : null, authMode === "oauth" ? org : null);
|
|
87
97
|
const isOAuthConnected = authMode === "oauth" && grantStatus.connected;
|
|
88
98
|
const existingKeys = useMemo(() => new Set(Object.keys(personalEnv.environment?.spec?.data ?? {})), [personalEnv.environment]);
|
|
@@ -116,10 +126,16 @@ export function useMcpServerCredentials(org, mcpServer) {
|
|
|
116
126
|
authMode,
|
|
117
127
|
oauthTargetEnvVar,
|
|
118
128
|
isOAuthConnected,
|
|
129
|
+
connectionHealth: grantStatus.connectionHealth,
|
|
130
|
+
canDisconnect: isOAuthConnected,
|
|
119
131
|
accessTokenExpiresAt: grantStatus.accessTokenExpiresAt,
|
|
120
132
|
tokenLifetimeHint,
|
|
121
133
|
isVendorApprovalPending,
|
|
134
|
+
isVendorApprovalBlocked,
|
|
122
135
|
vendorApprovalDocsUrl,
|
|
136
|
+
effectiveOAuthSource,
|
|
137
|
+
isOrgOAuthApp,
|
|
138
|
+
canBringOwnApp,
|
|
123
139
|
missingVariables,
|
|
124
140
|
isReady,
|
|
125
141
|
isLoading: personalEnv.isLoading || grantStatus.isLoading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMcpServerCredentials.js","sourceRoot":"","sources":["../../src/mcp-server/useMcpServerCredentials.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useMcpServerCredentials.js","sourceRoot":"","sources":["../../src/mcp-server/useMcpServerCredentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OAuthConnectionHealth } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
|
|
1
2
|
/** Return value of {@link useOAuthGrantStatus}. */
|
|
2
3
|
export interface UseOAuthGrantStatusReturn {
|
|
3
4
|
/** Whether the user has an active OAuth grant for this resource + org. */
|
|
@@ -11,6 +12,14 @@ export interface UseOAuthGrantStatusReturn {
|
|
|
11
12
|
readonly targetEnvVar: string;
|
|
12
13
|
/** Auth method used (`"mcp_oauth"` or `"vendor_oauth"`), or empty string. */
|
|
13
14
|
readonly authMethod: string;
|
|
15
|
+
/**
|
|
16
|
+
* Health of the OAuth connection, as evaluated by the backend.
|
|
17
|
+
*
|
|
18
|
+
* Gives the frontend an actionable signal beyond the binary `connected`
|
|
19
|
+
* boolean: healthy, expired-but-refreshable, expired (re-auth needed),
|
|
20
|
+
* or no grant at all. `UNSPECIFIED` when the status has not been fetched.
|
|
21
|
+
*/
|
|
22
|
+
readonly connectionHealth: OAuthConnectionHealth;
|
|
14
23
|
/** `true` while the grant status is being fetched. */
|
|
15
24
|
readonly isLoading: boolean;
|
|
16
25
|
/** Error from the last failed request, or `null` when healthy. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOAuthGrantStatus.d.ts","sourceRoot":"","sources":["../../src/mcp-server/useOAuthGrantStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useOAuthGrantStatus.d.ts","sourceRoot":"","sources":["../../src/mcp-server/useOAuthGrantStatus.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EAEtB,MAAM,uDAAuD,CAAC;AAI/D,mDAAmD;AACnD,MAAM,WAAW,yBAAyB;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,+EAA+E;IAC/E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACjD,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAeD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,yBAAyB,CAmE3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useCallback, useEffect, useState } from "react";
|
|
3
3
|
import { create } from "@bufbuild/protobuf";
|
|
4
|
-
import { GetOAuthGrantStatusInputSchema } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
|
|
4
|
+
import { OAuthConnectionHealth, GetOAuthGrantStatusInputSchema, } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
|
|
5
5
|
import { useStigmer } from "../hooks";
|
|
6
6
|
import { toError } from "../internal/toError";
|
|
7
7
|
const BIGINT_ZERO = BigInt(0);
|
|
@@ -10,6 +10,7 @@ const IDLE = {
|
|
|
10
10
|
accessTokenExpiresAt: BIGINT_ZERO,
|
|
11
11
|
targetEnvVar: "",
|
|
12
12
|
authMethod: "",
|
|
13
|
+
connectionHealth: OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_UNSPECIFIED,
|
|
13
14
|
isLoading: false,
|
|
14
15
|
error: null,
|
|
15
16
|
refetch: () => { },
|
|
@@ -39,6 +40,7 @@ export function useOAuthGrantStatus(resourceId, org) {
|
|
|
39
40
|
const [accessTokenExpiresAt, setAccessTokenExpiresAt] = useState(BIGINT_ZERO);
|
|
40
41
|
const [targetEnvVar, setTargetEnvVar] = useState("");
|
|
41
42
|
const [authMethod, setAuthMethod] = useState("");
|
|
43
|
+
const [connectionHealth, setConnectionHealth] = useState(OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_UNSPECIFIED);
|
|
42
44
|
const [isLoading, setIsLoading] = useState(false);
|
|
43
45
|
const [error, setError] = useState(null);
|
|
44
46
|
const [fetchKey, setFetchKey] = useState(0);
|
|
@@ -49,6 +51,7 @@ export function useOAuthGrantStatus(resourceId, org) {
|
|
|
49
51
|
setAccessTokenExpiresAt(BIGINT_ZERO);
|
|
50
52
|
setTargetEnvVar("");
|
|
51
53
|
setAuthMethod("");
|
|
54
|
+
setConnectionHealth(OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_UNSPECIFIED);
|
|
52
55
|
setIsLoading(false);
|
|
53
56
|
setError(null);
|
|
54
57
|
return;
|
|
@@ -65,6 +68,7 @@ export function useOAuthGrantStatus(resourceId, org) {
|
|
|
65
68
|
setAccessTokenExpiresAt(result.accessTokenExpiresAt);
|
|
66
69
|
setTargetEnvVar(result.targetEnvVar);
|
|
67
70
|
setAuthMethod(result.authMethod);
|
|
71
|
+
setConnectionHealth(result.connectionHealth);
|
|
68
72
|
setIsLoading(false);
|
|
69
73
|
}, (err) => {
|
|
70
74
|
if (cancelled.current)
|
|
@@ -83,6 +87,7 @@ export function useOAuthGrantStatus(resourceId, org) {
|
|
|
83
87
|
accessTokenExpiresAt,
|
|
84
88
|
targetEnvVar,
|
|
85
89
|
authMethod,
|
|
90
|
+
connectionHealth,
|
|
86
91
|
isLoading,
|
|
87
92
|
error,
|
|
88
93
|
refetch,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOAuthGrantStatus.js","sourceRoot":"","sources":["../../src/mcp-server/useOAuthGrantStatus.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"useOAuthGrantStatus.js","sourceRoot":"","sources":["../../src/mcp-server/useOAuthGrantStatus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/** Return value of {@link useOrgOAuthApp}. */
|
|
2
|
+
export interface UseOrgOAuthAppReturn {
|
|
3
|
+
/** Whether an org-level BYOA override exists for this resource + org. */
|
|
4
|
+
readonly hasOverride: boolean;
|
|
5
|
+
/** System-generated ID of the override's OAuthApp, or `null` when absent. */
|
|
6
|
+
readonly oauthAppId: string | null;
|
|
7
|
+
/**
|
|
8
|
+
* Client ID from the override's OAuthApp (non-secret, safe to display).
|
|
9
|
+
* `null` when no override exists. Useful for admin verification of
|
|
10
|
+
* which app registration is active.
|
|
11
|
+
*/
|
|
12
|
+
readonly clientId: string | null;
|
|
13
|
+
/** `true` while the override status is being fetched. */
|
|
14
|
+
readonly isLoading: boolean;
|
|
15
|
+
/** Error from the last failed fetch, or `null` when healthy. */
|
|
16
|
+
readonly error: Error | null;
|
|
17
|
+
/** Discard cached data and re-fetch the override status. */
|
|
18
|
+
readonly refetch: () => void;
|
|
19
|
+
/**
|
|
20
|
+
* Create or update the org's BYOA OAuth app override.
|
|
21
|
+
*
|
|
22
|
+
* The backend clones endpoint URLs from the platform's OAuthApp template,
|
|
23
|
+
* creates an OAuthApp with the org's credentials, and binds it as the
|
|
24
|
+
* override for this resource. On success, call {@link refetch} to
|
|
25
|
+
* reflect the new state.
|
|
26
|
+
*
|
|
27
|
+
* @returns The system-generated ID of the created/updated OAuthApp.
|
|
28
|
+
*/
|
|
29
|
+
readonly setOrgOAuthApp: (clientId: string, clientSecret: string) => Promise<string>;
|
|
30
|
+
/** `true` while a set operation is in flight. */
|
|
31
|
+
readonly isSetting: boolean;
|
|
32
|
+
/** Error from the last failed set, or `null`. */
|
|
33
|
+
readonly setError: Error | null;
|
|
34
|
+
/**
|
|
35
|
+
* Remove the org's BYOA override for this resource.
|
|
36
|
+
*
|
|
37
|
+
* Deletes both the override binding and the OAuthApp resource created
|
|
38
|
+
* for it. After deletion, the resolution chain falls back to the
|
|
39
|
+
* platform default. Existing user grants that were issued with the
|
|
40
|
+
* org's OAuthApp will fail on next refresh.
|
|
41
|
+
*
|
|
42
|
+
* @returns `true` when the override was removed.
|
|
43
|
+
*/
|
|
44
|
+
readonly deleteOrgOAuthApp: () => Promise<boolean>;
|
|
45
|
+
/** `true` while a delete operation is in flight. */
|
|
46
|
+
readonly isDeleting: boolean;
|
|
47
|
+
/** Error from the last failed delete, or `null`. */
|
|
48
|
+
readonly deleteError: Error | null;
|
|
49
|
+
/** Reset all mutation error states. */
|
|
50
|
+
readonly clearErrors: () => void;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Hybrid data + behavior hook for managing org-level BYOA OAuth app overrides.
|
|
54
|
+
*
|
|
55
|
+
* **Data side**: Auto-fetches `getOrgOAuthApp` when both parameters are
|
|
56
|
+
* non-null. Returns override existence, OAuthApp ID, and client ID for
|
|
57
|
+
* display. Follows the same fetch-on-mount pattern as
|
|
58
|
+
* {@link useOAuthGrantStatus}.
|
|
59
|
+
*
|
|
60
|
+
* **Behavior side**: Exposes `setOrgOAuthApp` and `deleteOrgOAuthApp`
|
|
61
|
+
* mutations bound to the hook's resource + org context, eliminating
|
|
62
|
+
* parameter repetition at call sites.
|
|
63
|
+
*
|
|
64
|
+
* Pass `null` for either parameter to skip fetching (stable no-op).
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```tsx
|
|
68
|
+
* const orgApp = useOrgOAuthApp(mcpServer?.metadata?.id ?? null, org);
|
|
69
|
+
*
|
|
70
|
+
* if (orgApp.hasOverride) {
|
|
71
|
+
* return <span>Using your OAuth app (client: {orgApp.clientId})</span>;
|
|
72
|
+
* }
|
|
73
|
+
*
|
|
74
|
+
* const handleSubmit = async (clientId: string, clientSecret: string) => {
|
|
75
|
+
* await orgApp.setOrgOAuthApp(clientId, clientSecret);
|
|
76
|
+
* orgApp.refetch();
|
|
77
|
+
* credentials.refetch();
|
|
78
|
+
* };
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function useOrgOAuthApp(resourceId: string | null, org: string | null): UseOrgOAuthAppReturn;
|
|
82
|
+
//# sourceMappingURL=useOrgOAuthApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOrgOAuthApp.d.ts","sourceRoot":"","sources":["../../src/mcp-server/useOrgOAuthApp.ts"],"names":[],"mappings":"AAYA,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAE7B;;;;;;;;;OASG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;IAEhC;;;;;;;;;OASG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IAEnC,uCAAuC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;CAClC;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,oBAAoB,CAmItB"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
import { create } from "@bufbuild/protobuf";
|
|
4
|
+
import { GetOrgOAuthAppInputSchema, SetOrgOAuthAppInputSchema, DeleteOrgOAuthAppInputSchema, } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
|
|
5
|
+
import { useStigmer } from "../hooks";
|
|
6
|
+
import { toError } from "../internal/toError";
|
|
7
|
+
const IDLE = {
|
|
8
|
+
hasOverride: false,
|
|
9
|
+
oauthAppId: null,
|
|
10
|
+
clientId: null,
|
|
11
|
+
isLoading: false,
|
|
12
|
+
error: null,
|
|
13
|
+
refetch: () => { },
|
|
14
|
+
setOrgOAuthApp: () => Promise.resolve(""),
|
|
15
|
+
isSetting: false,
|
|
16
|
+
setError: null,
|
|
17
|
+
deleteOrgOAuthApp: () => Promise.resolve(false),
|
|
18
|
+
isDeleting: false,
|
|
19
|
+
deleteError: null,
|
|
20
|
+
clearErrors: () => { },
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Hybrid data + behavior hook for managing org-level BYOA OAuth app overrides.
|
|
24
|
+
*
|
|
25
|
+
* **Data side**: Auto-fetches `getOrgOAuthApp` when both parameters are
|
|
26
|
+
* non-null. Returns override existence, OAuthApp ID, and client ID for
|
|
27
|
+
* display. Follows the same fetch-on-mount pattern as
|
|
28
|
+
* {@link useOAuthGrantStatus}.
|
|
29
|
+
*
|
|
30
|
+
* **Behavior side**: Exposes `setOrgOAuthApp` and `deleteOrgOAuthApp`
|
|
31
|
+
* mutations bound to the hook's resource + org context, eliminating
|
|
32
|
+
* parameter repetition at call sites.
|
|
33
|
+
*
|
|
34
|
+
* Pass `null` for either parameter to skip fetching (stable no-op).
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```tsx
|
|
38
|
+
* const orgApp = useOrgOAuthApp(mcpServer?.metadata?.id ?? null, org);
|
|
39
|
+
*
|
|
40
|
+
* if (orgApp.hasOverride) {
|
|
41
|
+
* return <span>Using your OAuth app (client: {orgApp.clientId})</span>;
|
|
42
|
+
* }
|
|
43
|
+
*
|
|
44
|
+
* const handleSubmit = async (clientId: string, clientSecret: string) => {
|
|
45
|
+
* await orgApp.setOrgOAuthApp(clientId, clientSecret);
|
|
46
|
+
* orgApp.refetch();
|
|
47
|
+
* credentials.refetch();
|
|
48
|
+
* };
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export function useOrgOAuthApp(resourceId, org) {
|
|
52
|
+
const stigmer = useStigmer();
|
|
53
|
+
const [hasOverride, setHasOverride] = useState(false);
|
|
54
|
+
const [oauthAppId, setOauthAppId] = useState(null);
|
|
55
|
+
const [clientId, setClientId] = useState(null);
|
|
56
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
57
|
+
const [error, setError] = useState(null);
|
|
58
|
+
const [fetchKey, setFetchKey] = useState(0);
|
|
59
|
+
const [isSetting, setIsSetting] = useState(false);
|
|
60
|
+
const [setError_, setSetError] = useState(null);
|
|
61
|
+
const [isDeleting, setIsDeleting] = useState(false);
|
|
62
|
+
const [deleteError, setDeleteError] = useState(null);
|
|
63
|
+
const refetch = useCallback(() => setFetchKey((k) => k + 1), []);
|
|
64
|
+
const clearErrors = useCallback(() => {
|
|
65
|
+
setSetError(null);
|
|
66
|
+
setDeleteError(null);
|
|
67
|
+
}, []);
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
if (!resourceId || !org) {
|
|
70
|
+
setHasOverride(false);
|
|
71
|
+
setOauthAppId(null);
|
|
72
|
+
setClientId(null);
|
|
73
|
+
setIsLoading(false);
|
|
74
|
+
setError(null);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const cancelled = { current: false };
|
|
78
|
+
setIsLoading(true);
|
|
79
|
+
setError(null);
|
|
80
|
+
stigmer.mcpServer
|
|
81
|
+
.getOrgOAuthApp(create(GetOrgOAuthAppInputSchema, { resourceId, org }))
|
|
82
|
+
.then((result) => {
|
|
83
|
+
if (cancelled.current)
|
|
84
|
+
return;
|
|
85
|
+
setHasOverride(result.hasOverride);
|
|
86
|
+
setOauthAppId(result.oauthAppId || null);
|
|
87
|
+
setClientId(result.clientId || null);
|
|
88
|
+
setIsLoading(false);
|
|
89
|
+
}, (err) => {
|
|
90
|
+
if (cancelled.current)
|
|
91
|
+
return;
|
|
92
|
+
setError(toError(err));
|
|
93
|
+
setIsLoading(false);
|
|
94
|
+
});
|
|
95
|
+
return () => {
|
|
96
|
+
cancelled.current = true;
|
|
97
|
+
};
|
|
98
|
+
}, [resourceId, org, stigmer, fetchKey]);
|
|
99
|
+
const setOrgOAuthApp = useCallback(async (newClientId, clientSecret) => {
|
|
100
|
+
if (!resourceId || !org) {
|
|
101
|
+
throw new Error("useOrgOAuthApp: resourceId and org are required for setOrgOAuthApp");
|
|
102
|
+
}
|
|
103
|
+
setIsSetting(true);
|
|
104
|
+
setSetError(null);
|
|
105
|
+
try {
|
|
106
|
+
const result = await stigmer.mcpServer.setOrgOAuthApp(create(SetOrgOAuthAppInputSchema, {
|
|
107
|
+
resourceId,
|
|
108
|
+
org,
|
|
109
|
+
clientId: newClientId,
|
|
110
|
+
clientSecret,
|
|
111
|
+
}));
|
|
112
|
+
return result.oauthAppId;
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
const wrapped = toError(err);
|
|
116
|
+
setSetError(wrapped);
|
|
117
|
+
throw wrapped;
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
setIsSetting(false);
|
|
121
|
+
}
|
|
122
|
+
}, [stigmer, resourceId, org]);
|
|
123
|
+
const deleteOrgOAuthApp = useCallback(async () => {
|
|
124
|
+
if (!resourceId || !org) {
|
|
125
|
+
throw new Error("useOrgOAuthApp: resourceId and org are required for deleteOrgOAuthApp");
|
|
126
|
+
}
|
|
127
|
+
setIsDeleting(true);
|
|
128
|
+
setDeleteError(null);
|
|
129
|
+
try {
|
|
130
|
+
const result = await stigmer.mcpServer.deleteOrgOAuthApp(create(DeleteOrgOAuthAppInputSchema, { resourceId, org }));
|
|
131
|
+
return result.deleted;
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
const wrapped = toError(err);
|
|
135
|
+
setDeleteError(wrapped);
|
|
136
|
+
throw wrapped;
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
setIsDeleting(false);
|
|
140
|
+
}
|
|
141
|
+
}, [stigmer, resourceId, org]);
|
|
142
|
+
if (!resourceId || !org)
|
|
143
|
+
return { ...IDLE, refetch, clearErrors };
|
|
144
|
+
return {
|
|
145
|
+
hasOverride,
|
|
146
|
+
oauthAppId,
|
|
147
|
+
clientId,
|
|
148
|
+
isLoading,
|
|
149
|
+
error,
|
|
150
|
+
refetch,
|
|
151
|
+
setOrgOAuthApp,
|
|
152
|
+
isSetting,
|
|
153
|
+
setError: setError_,
|
|
154
|
+
deleteOrgOAuthApp,
|
|
155
|
+
isDeleting,
|
|
156
|
+
deleteError,
|
|
157
|
+
clearErrors,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=useOrgOAuthApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOrgOAuthApp.js","sourceRoot":"","sources":["../../src/mcp-server/useOrgOAuthApp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.84",
|
|
4
4
|
"description": "React provider and client hook for the Stigmer platform SDK",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@stigmer/theme": "0.0.
|
|
38
|
+
"@stigmer/theme": "0.0.84",
|
|
39
39
|
"react-markdown": "^10.1.0",
|
|
40
40
|
"remark-gfm": "^4.0.1",
|
|
41
41
|
"yaml": "^2.8.2"
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@base-ui/react": "^1.0.0",
|
|
45
45
|
"@bufbuild/protobuf": "^2.0.0",
|
|
46
|
-
"@stigmer/protos": "0.0.
|
|
47
|
-
"@stigmer/sdk": "0.0.
|
|
46
|
+
"@stigmer/protos": "0.0.84",
|
|
47
|
+
"@stigmer/sdk": "0.0.84",
|
|
48
48
|
"react": "^19.0.0",
|
|
49
49
|
"react-dom": "^19.0.0"
|
|
50
50
|
}
|
package/src/index.ts
CHANGED
|
@@ -222,6 +222,7 @@ export {
|
|
|
222
222
|
useMcpServerOAuthConnect,
|
|
223
223
|
useMcpServerCredentials,
|
|
224
224
|
useOAuthGrantStatus,
|
|
225
|
+
useDisconnectOAuth,
|
|
225
226
|
OAuthCallbackHandler,
|
|
226
227
|
McpServerPicker,
|
|
227
228
|
McpServerConfigPanel,
|
|
@@ -257,6 +258,7 @@ export type {
|
|
|
257
258
|
OAuthCallbackParams,
|
|
258
259
|
UseMcpServerCredentialsReturn,
|
|
259
260
|
UseOAuthGrantStatusReturn,
|
|
261
|
+
UseDisconnectOAuthReturn,
|
|
260
262
|
McpServerAuthMode,
|
|
261
263
|
} from "./mcp-server";
|
|
262
264
|
|
|
@@ -525,6 +527,7 @@ export {
|
|
|
525
527
|
export type {
|
|
526
528
|
ScopeToggleProps,
|
|
527
529
|
ResourceListViewProps,
|
|
530
|
+
ResourceListLayout,
|
|
528
531
|
ResourceCountCardProps,
|
|
529
532
|
ResourceListScope,
|
|
530
533
|
StigmerResourceKind,
|