import { useState } from "react"; import { Helmet } from "react-helmet"; import { faArrowUpRightFromSquare, faBookOpen } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useNavigate } from "@tanstack/react-router"; import { Button, Card, CardTitle, FormControl, Input } from "@app/components/v2"; import { useWorkspace } from "@app/context"; import { useSaveIntegrationAccessToken } from "@app/hooks/api"; export const DatabricksAuthorizePage = () => { const navigate = useNavigate(); const { mutateAsync, isPending } = useSaveIntegrationAccessToken(); const [apiKey, setApiKey] = useState(""); const [instanceURL, setInstanceURL] = useState(""); const [apiKeyErrorText, setApiKeyErrorText] = useState(""); const [instanceURLErrorText, setInstanceURLErrorText] = useState(""); const { currentWorkspace } = useWorkspace(); const handleButtonClick = async () => { try { setApiKeyErrorText(""); setInstanceURLErrorText(""); if (apiKey.length === 0) { setApiKeyErrorText("API Key cannot be blank"); return; } if (instanceURL.length === 0) { setInstanceURLErrorText("Instance URL cannot be blank"); return; } const integrationAuth = await mutateAsync({ workspaceId: currentWorkspace.id, integration: "databricks", url: instanceURL.replace(/\/$/, ""), accessToken: apiKey }); navigate({ to: "/projects/secret-management/$projectId/integrations/databricks/create", params: { projectId: currentWorkspace.id }, search: { integrationAuthId: integrationAuth.id } }); } catch (err) { console.error(err); } }; return (
Authorize Databricks Integration
Databricks logo
Databricks Integration
Docs
setInstanceURL(e.target.value)} placeholder="https://xxxx.cloud.databricks.com" /> setApiKey(e.target.value)} type="password" />
); };