diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx index 369b90bb2a..b813178612 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/base.tsx @@ -72,6 +72,7 @@ import { useUpdateKnowledgeBase, } from '@/hooks/queries/kb/knowledge' import { useInlineRename } from '@/hooks/use-inline-rename' +import { useOAuthReturnForKBConnectors } from '@/hooks/use-oauth-return' const logger = createLogger('KnowledgeBase') @@ -189,6 +190,7 @@ export function KnowledgeBase({ }: KnowledgeBaseProps) { const params = useParams() const workspaceId = propWorkspaceId || (params.workspaceId as string) + useOAuthReturnForKBConnectors(id) const { removeKnowledgeBase } = useKnowledgeBasesList(workspaceId, { enabled: false }) const userPermissions = useUserPermissionsContext() diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/add-connector-modal/add-connector-modal.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/add-connector-modal/add-connector-modal.tsx index 5d3a7a9337..17048ab27e 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/add-connector-modal/add-connector-modal.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/add-connector-modal/add-connector-modal.tsx @@ -20,6 +20,7 @@ import { Tooltip, } from '@/components/emcn' import { useSession } from '@/lib/auth/auth-client' +import { consumeOAuthReturnContext, writeOAuthReturnContext } from '@/lib/credentials/client-state' import { getCanonicalScopesForProvider, getProviderIdFromServiceId, @@ -288,8 +289,25 @@ export function AddConnectorModal({ open, onOpenChange, knowledgeBaseId }: AddCo return } + writeOAuthReturnContext({ + origin: 'kb-connectors', + knowledgeBaseId, + displayName, + providerId: connectorProviderId, + preCount: credentials.length, + workspaceId, + requestedAt: Date.now(), + }) + setShowOAuthModal(true) - }, [connectorConfig, connectorProviderId, workspaceId, session?.user?.name]) + }, [ + connectorConfig, + connectorProviderId, + workspaceId, + session?.user?.name, + knowledgeBaseId, + credentials.length, + ]) const filteredEntries = useMemo(() => { const term = searchTerm.toLowerCase().trim() @@ -575,11 +593,14 @@ export function AddConnectorModal({ open, onOpenChange, knowledgeBaseId }: AddCo {connectorConfig && connectorConfig.auth.mode === 'oauth' && connectorProviderId && ( setShowOAuthModal(false)} + onClose={() => { + consumeOAuthReturnContext() + setShowOAuthModal(false) + }} provider={connectorProviderId} toolName={connectorConfig.name} requiredScopes={getCanonicalScopesForProvider(connectorProviderId)} - newScopes={connectorConfig.auth.requiredScopes || []} + newScopes={[]} serviceId={connectorConfig.auth.provider} /> )} diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx index 58884a0de3..3abc3d5082 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connectors-section/connectors-section.tsx @@ -27,6 +27,7 @@ import { Tooltip, } from '@/components/emcn' import { cn } from '@/lib/core/utils/cn' +import { consumeOAuthReturnContext, writeOAuthReturnContext } from '@/lib/credentials/client-state' import { getCanonicalScopesForProvider, getProviderIdFromServiceId, @@ -444,7 +445,18 @@ function ConnectorCard({ {canEdit && (