Feat: Deprecate API keys

This commit is contained in:
Daniel Hougaard
2024-03-13 17:46:48 +01:00
parent 8c028889a6
commit ab1b9fb164
3 changed files with 87 additions and 71 deletions
@@ -2,7 +2,7 @@ import { useTranslation } from "react-i18next";
import { faPlus } from "@fortawesome/free-solid-svg-icons"; import { faPlus } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { Button } from "@app/components/v2"; import { Button, Tooltip } from "@app/components/v2";
import { usePopUp } from "@app/hooks/usePopUp"; import { usePopUp } from "@app/hooks/usePopUp";
import { AddAPIKeyModal } from "./AddAPIKeyModal"; import { AddAPIKeyModal } from "./AddAPIKeyModal";
@@ -10,17 +10,17 @@ import { APIKeyTable } from "./APIKeyTable";
export const APIKeySection = () => { export const APIKeySection = () => {
const { t } = useTranslation(); const { t } = useTranslation();
const { popUp, handlePopUpOpen, handlePopUpToggle } = usePopUp([ const { popUp, handlePopUpOpen, handlePopUpToggle } = usePopUp(["addAPIKey"] as const);
"addAPIKey"
] as const);
return ( return (
<div className="mb-6 p-4 bg-mineshaft-900 rounded-lg border border-mineshaft-600"> <div className="mb-6 rounded-lg border border-mineshaft-600 bg-mineshaft-900 p-4">
<div className="flex justify-between mb-8"> <div className="mb-8 flex justify-between">
<p className="text-xl font-semibold text-mineshaft-100"> <p className="text-xl font-semibold text-mineshaft-100">
{t("settings.personal.api-keys.title")} {t("settings.personal.api-keys.title")}
</p> </p>
<Tooltip content="API Keys are deprecated and will be removed in the future.">
<Button <Button
isDisabled
colorSchema="secondary" colorSchema="secondary"
type="submit" type="submit"
leftIcon={<FontAwesomeIcon icon={faPlus} />} leftIcon={<FontAwesomeIcon icon={faPlus} />}
@@ -28,12 +28,10 @@ export const APIKeySection = () => {
> >
Add API Key Add API Key
</Button> </Button>
</Tooltip>
</div> </div>
<APIKeyTable /> <APIKeyTable />
<AddAPIKeyModal <AddAPIKeyModal popUp={popUp} handlePopUpToggle={handlePopUpToggle} />
popUp={popUp}
handlePopUpToggle={handlePopUpToggle}
/>
</div> </div>
); );
} };
@@ -1,11 +1,5 @@
import { APIKeySection } from "../APIKeySection"; import { APIKeySection } from "../APIKeySection";
// import { APIKeyV2Section } from "../APIKeyV2Section";
export const PersonalAPIKeyTab = () => { export const PersonalAPIKeyTab = () => {
return ( return <APIKeySection />;
<> };
{/* <APIKeyV2Section /> */}
<APIKeySection />
</>
);
}
@@ -1,5 +1,8 @@
import { Fragment } from "react" import { Fragment } from "react";
import { Tab } from "@headlessui/react" import Link from "next/link";
import { faWarning } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { Tab } from "@headlessui/react";
import { PersonalAPIKeyTab } from "../PersonalAPIKeyTab"; import { PersonalAPIKeyTab } from "../PersonalAPIKeyTab";
import { PersonalAuthTab } from "../PersonalAuthTab"; import { PersonalAuthTab } from "../PersonalAuthTab";
@@ -14,13 +17,15 @@ const tabs = [
export const PersonalTabGroup = () => { export const PersonalTabGroup = () => {
return ( return (
<Tab.Group> <Tab.Group>
<Tab.List className="mb-4 border-b-2 border-mineshaft-800 w-full"> <Tab.List className="mb-4 w-full border-b-2 border-mineshaft-800">
{tabs.map((tab) => ( {tabs.map((tab) => (
<Tab as={Fragment} key={tab.key}> <Tab as={Fragment} key={tab.key}>
{({ selected }) => ( {({ selected }) => (
<button <button
type="button" type="button"
className={`w-30 py-2 mx-2 mr-4 font-medium text-sm outline-none ${selected ? "border-b border-white text-white" : "text-mineshaft-400"}`} className={`w-30 mx-2 mr-4 py-2 text-sm font-medium outline-none ${
selected ? "border-b border-white text-white" : "text-mineshaft-400"
}`}
> >
{tab.name} {tab.name}
</button> </button>
@@ -36,9 +41,28 @@ export const PersonalTabGroup = () => {
<PersonalAuthTab /> <PersonalAuthTab />
</Tab.Panel> </Tab.Panel>
<Tab.Panel> <Tab.Panel>
<div className="space-y-3">
<div className="mt-4 flex w-full flex-row items-center rounded-md border border-primary-600/70 bg-primary/[.07] p-4 text-base text-white">
<FontAwesomeIcon icon={faWarning} className="pr-6 text-4xl text-white/80" />
<div className="flex w-full flex-col text-sm">
<span className="mb-4 text-lg font-semibold">API Keys are deprecated</span>
<p>
API Keys are deprecated and will be removed in the future.
<br /> Please use Machine Identity authentication for your applications and
services.
</p>
<Link href="https://infisical.com/docs/documentation/platform/identities/overview">
<a target="_blank" className="font-semibold text-primary-400">
Learn more about Machine Identities
</a>
</Link>
</div>
</div>
<PersonalAPIKeyTab /> <PersonalAPIKeyTab />
</div>
</Tab.Panel> </Tab.Panel>
</Tab.Panels> </Tab.Panels>
</Tab.Group> </Tab.Group>
); );
} };