Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
454fa5f
started apis
MichaelUnkey Aug 6, 2025
819fb22
workspace apis started
MichaelUnkey Aug 6, 2025
96fadd8
working side nav
MichaelUnkey Aug 6, 2025
a30762a
workspace provider
MichaelUnkey Aug 7, 2025
e4ce923
fix ratelimit api nav
MichaelUnkey Aug 7, 2025
93b5a93
working again
MichaelUnkey Aug 7, 2025
efa3899
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Aug 7, 2025
64d1077
change slug to workspaceId
MichaelUnkey Aug 8, 2025
577d06f
add workspace provider
MichaelUnkey Aug 11, 2025
19a503d
redirects
MichaelUnkey Aug 12, 2025
52ced6e
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Aug 12, 2025
426c858
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Aug 13, 2025
e2f54b5
small fix to key link
MichaelUnkey Aug 13, 2025
6115987
[autofix.ci] apply automated fixes
autofix-ci[bot] Aug 13, 2025
b77ad52
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Aug 15, 2025
e2e17a0
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Aug 20, 2025
ff82f23
fix import
MichaelUnkey Aug 20, 2025
3c31586
use loading for usworkspace
MichaelUnkey Aug 20, 2025
4d38ca9
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Aug 21, 2025
eb06cf0
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Aug 21, 2025
123e706
removed accidental ratelimit changes
MichaelUnkey Aug 21, 2025
b505044
rabbit changes
MichaelUnkey Aug 22, 2025
7e2cc3a
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Aug 22, 2025
f490f9c
Merge branch 'slug-routing' into eng-1893-a-user-can-access-apis-with…
MichaelUnkey Aug 25, 2025
c07bc33
db change and new workspace slug
MichaelUnkey Aug 25, 2025
0560ccc
Merge branch 'main' of https://github.com/unkeyed/unkey into workspac…
MichaelUnkey Aug 25, 2025
b255d98
rabbits
MichaelUnkey Aug 26, 2025
f4eb278
small changes
MichaelUnkey Aug 26, 2025
506e25a
Merge branch 'main' of https://github.com/unkeyed/unkey into workspac…
MichaelUnkey Aug 26, 2025
c676bce
remove journal
MichaelUnkey Aug 26, 2025
bb7900d
rabbit
MichaelUnkey Aug 26, 2025
f6b2383
Merge branch 'main' of https://github.com/unkeyed/unkey into workspac…
MichaelUnkey Aug 26, 2025
d52e206
Merge branch 'workspace-slug-in-db' into eng-1893-a-user-can-access-a…
MichaelUnkey Aug 26, 2025
0860e1d
merge
MichaelUnkey Aug 27, 2025
796f213
make slug not null in schema
MichaelUnkey Sep 2, 2025
6fe2a16
[autofix.ci] apply automated fixes
autofix-ci[bot] Sep 4, 2025
2d054b1
Merge branch 'main' of https://github.com/unkeyed/unkey into workspac…
MichaelUnkey Sep 4, 2025
22f3a0a
minor changes to keep tests unique for slugs column
MichaelUnkey Sep 4, 2025
4947d6a
update missed tools local db slug
MichaelUnkey Sep 4, 2025
60cd16c
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Sep 5, 2025
a9e035e
Merge branch 'workspace-slug-not-null' into eng-1893-a-user-can-acces…
MichaelUnkey Sep 5, 2025
7360dc5
updated after db change
MichaelUnkey Sep 8, 2025
33eae90
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Sep 8, 2025
6a8ff59
Merge branch 'eng-1893-a-user-can-access-apis-within-workspace-contex…
MichaelUnkey Sep 8, 2025
e0a4d0f
Merge branch 'main' of https://github.com/unkeyed/unkey into eng-1893…
MichaelUnkey Sep 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useCreateIdentity } from "@/app/(app)/apis/[apiId]/_components/create-key/hooks/use-create-identity";
import { useFetchIdentities } from "@/app/(app)/apis/[apiId]/_components/create-key/hooks/use-fetch-identities";
import { createIdentityOptions } from "@/app/(app)/apis/[apiId]/_components/create-key/hooks/use-fetch-identities/create-identity-options";
import { useCreateIdentity } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/hooks/use-create-identity";
import { useFetchIdentities } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/hooks/use-fetch-identities";
import { createIdentityOptions } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/hooks/use-fetch-identities/create-identity-options";
import { FormCombobox } from "@/components/ui/form-combobox";
import type { Identity } from "@unkey/db";
import { TriangleWarning2 } from "@unkey/icons";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import { ConfirmPopover } from "@/components/confirmation-popover";
import { Dialog, DialogContent } from "@/components/ui/dialog";
import { useWorkspace } from "@/providers/workspace-provider";
import { ArrowRight, Check, Key2, Plus } from "@unkey/icons";
import { Button, InfoTooltip, toast } from "@unkey/ui";
import { useRouter } from "next/navigation";
Expand All @@ -24,13 +25,13 @@ export const KeyCreatedSuccessDialog = ({
keyspaceId?: string | null;
onCreateAnother?: () => void;
}) => {
const { workspace } = useWorkspace();
const [isConfirmOpen, setIsConfirmOpen] = useState(false);
const [pendingAction, setPendingAction] = useState<
"close" | "create-another" | "go-to-details" | null
>(null);
const dividerRef = useRef<HTMLDivElement>(null);
const router = useRouter();

// Prevent accidental tab/window close when dialog is open
useEffect(() => {
if (!isOpen) {
Expand Down Expand Up @@ -90,7 +91,7 @@ export const KeyCreatedSuccessDialog = ({
});
return;
}
router.push(`/apis/${apiId}/keys/${keyspaceId}/${keyData.id}`);
router.push(`/${workspace?.slug}/apis/${apiId}/keys/${keyspaceId}/${keyData.id}`);
break;

default:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use client";

import { SecretKey } from "@/app/(app)/apis/[apiId]/_components/create-key/components/secret-key";
import { SecretKey } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/components/secret-key";
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
import { CircleInfo } from "@unkey/icons";
import { Code, CopyButton, VisibleButton } from "@unkey/ui";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"use client";
import { DEFAULT_DRAGGABLE_WIDTH } from "@/app/(app)/logs/constants";
import { ResizablePanel } from "@/components/logs/details/resizable-panel";
import { useWorkspace } from "@/providers/workspace-provider";
import type { KeysOverviewLog } from "@unkey/clickhouse/src/keys/keys";
import { TimestampInfo } from "@unkey/ui";
import Link from "next/link";
Expand Down Expand Up @@ -37,8 +38,8 @@ export const KeysOverviewLogDetails = ({
setSelectedLog,
apiId,
}: KeysOverviewLogDetailsProps) => {
const { workspace } = useWorkspace();
const panelStyle = useMemo(() => createPanelStyle(distanceToTop), [distanceToTop]);

if (!log) {
return null;
}
Expand Down Expand Up @@ -68,7 +69,7 @@ export const KeysOverviewLogDetails = ({
<Link
title={`View details for ${log.key_id}`}
className="font-mono underline decoration-dotted"
href={`/apis/${apiId}/keys/${log.key_details?.key_auth_id}/${log.key_id}`}
href={`/${workspace?.slug}/apis/${apiId}/keys/${log.key_details?.key_auth_id}/${log.key_id}`}
>
<div className="font-mono font-medium truncate">{log.key_id}</div>
</Link>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"use client";
import { shortenId } from "@/lib/shorten-id";
import { cn } from "@/lib/utils";
import { useWorkspace } from "@/providers/workspace-provider";
import type { KeysOverviewLog } from "@unkey/clickhouse/src/keys/keys";
import { TriangleWarning2 } from "@unkey/icons";
import { InfoTooltip, Loading } from "@unkey/ui";
Expand Down Expand Up @@ -44,11 +45,11 @@ const getWarningMessage = (severity: string, errorRate: number) => {
};

export const KeyIdentifierColumn = ({ log, apiId, onNavigate }: KeyIdentifierColumnProps) => {
const { workspace } = useWorkspace();
const router = useRouter();
const errorPercentage = getErrorPercentage(log);
const severity = getErrorSeverity(log);
const hasErrors = severity !== "none";

const [isNavigating, setIsNavigating] = useState(false);

const handleLinkClick = useCallback(
Expand All @@ -58,9 +59,11 @@ export const KeyIdentifierColumn = ({ log, apiId, onNavigate }: KeyIdentifierCol

onNavigate?.();

router.push(`/apis/${apiId}/keys/${log.key_details?.key_auth_id}/${log.key_id}`);
router.push(
`/${workspace?.slug}/apis/${apiId}/keys/${log.key_details?.key_auth_id}/${log.key_id}`,
);
},
[apiId, log.key_id, log.key_details?.key_auth_id, onNavigate, router.push],
[apiId, log.key_id, log.key_details?.key_auth_id, onNavigate, router.push, workspace?.slug],
);

return (
Expand All @@ -83,7 +86,7 @@ export const KeyIdentifierColumn = ({ log, apiId, onNavigate }: KeyIdentifierCol
<Link
title={`View details for ${log.key_id}`}
className="font-mono group-hover:underline decoration-dotted"
href={`/apis/${apiId}/keys/${log.key_details?.key_auth_id}/${log.key_id}`}
href={`/${workspace?.slug}/apis/${apiId}/keys/${log.key_details?.key_auth_id}/${log.key_id}`}
onClick={handleLinkClick}
>
<div className="font-mono font-medium truncate flex items-center">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@ import { Navbar } from "@/components/navigation/navbar";
import { useIsMobile } from "@/hooks/use-mobile";
import { shortenId } from "@/lib/shorten-id";
import { trpc } from "@/lib/trpc/client";
import { useWorkspace } from "@/providers/workspace-provider";
import { ChevronExpandY, Gear, Nodes, Plus, TaskUnchecked } from "@unkey/icons";
import dynamic from "next/dynamic";
import { navigation } from "./constants";
import { getKeysTableActionItems } from "./keys/[keyAuthId]/_components/components/table/components/actions/keys-table-action.popover.constants";

const CreateKeyDialog = dynamic(
Expand Down Expand Up @@ -45,12 +47,13 @@ export const ApisNavbar = ({
text: string;
};
}) => {
const { workspace } = useWorkspace();

const isMobile = useIsMobile();
const trpcUtils = trpc.useUtils();
const { data: layoutData, isLoading } = trpc.api.queryApiKeyDetails.useQuery({
apiId,
});

// Only fetch key data when we have keyspaceId and keyId
const shouldFetchKey = Boolean(keyspaceId && keyId);
const {
Expand Down Expand Up @@ -80,12 +83,11 @@ export const ApisNavbar = ({

// Extract the specific key from the response
const specificKey = keyData?.keys.find((key) => key.id === keyId);

if (!layoutData || isLoading || (shouldFetchKey && isKeyLoading)) {
return (
<Navbar>
<Navbar.Breadcrumbs icon={<Nodes />}>
<Navbar.Breadcrumbs.Link href="/apis">APIs</Navbar.Breadcrumbs.Link>
<Navbar.Breadcrumbs.Link href={`/${workspace?.slug}/apis`}>APIs</Navbar.Breadcrumbs.Link>
<Navbar.Breadcrumbs.Link href="#" isIdentifier className="group" noop>
<div className="h-6 w-20 bg-grayA-3 rounded animate-pulse transition-all " />
</Navbar.Breadcrumbs.Link>
Expand Down Expand Up @@ -126,18 +128,25 @@ export const ApisNavbar = ({

const { currentApi, workspaceApis } = layoutData;

// Define base path for API navigation
const base = `/${workspace?.slug}/apis/${currentApi.id}`;
const navItems = navigation(currentApi.id, currentApi.keyAuthId ?? "");

return (
<>
<div className="w-full">
<Navbar className="w-full flex justify-between">
<Navbar.Breadcrumbs className="flex-1 w-full" icon={<Nodes />}>
{!isMobile && (
<>
<Navbar.Breadcrumbs.Link href="/apis" className="max-md:hidden">
<Navbar.Breadcrumbs.Link
href={`/${workspace?.slug}/apis`}
className="max-md:hidden"
>
APIs
</Navbar.Breadcrumbs.Link>
<Navbar.Breadcrumbs.Link
href={`/apis/${currentApi.id}`}
href={base}
isIdentifier
className="group max-md:hidden"
noop
Expand All @@ -146,7 +155,7 @@ export const ApisNavbar = ({
items={workspaceApis.map((api) => ({
id: api.id,
label: api.name,
href: `/apis/${api.id}`,
href: `/${workspace?.slug}/apis/${api.id}`,
}))}
shortcutKey="N"
>
Expand All @@ -159,23 +168,11 @@ export const ApisNavbar = ({
)}
<Navbar.Breadcrumbs.Link href={activePage?.href ?? ""} noop active={!specificKey}>
<QuickNavPopover
items={[
{
id: "requests",
label: "Requests",
href: `/apis/${currentApi.id}`,
},
{
id: "keys",
label: "Keys",
href: `/apis/${currentApi.id}/keys/${currentApi.keyAuthId}`,
},
{
id: "settings",
label: "Settings",
href: `/apis/${currentApi.id}/settings`,
},
]}
items={navItems.map((item) => ({
id: item.segment,
label: item.label,
href: item.href,
}))}
>
<div className="hover:bg-gray-3 rounded-lg flex items-center gap-1 p-1">
{activePage?.text ?? ""}
Expand All @@ -185,7 +182,7 @@ export const ApisNavbar = ({
</Navbar.Breadcrumbs.Link>
{specificKey && (
<Navbar.Breadcrumbs.Link
href={`/apis/${currentApi.id}/keys/${currentApi.keyAuthId}/${specificKey.id}`}
href={`${base}/keys/${currentApi.keyAuthId}/${specificKey.id}`}
className="max-md:hidden"
isLast
isIdentifier
Expand Down
24 changes: 24 additions & 0 deletions apps/dashboard/app/(app)/[workspace]/apis/[apiId]/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { useWorkspace } from "@/providers/workspace-provider";

export const navigation = (apiId: string, keyAuthId: string) => {
const { workspace } = useWorkspace();

const base = `/${workspace?.slug}/apis/${apiId}`;
return [
{
label: "Requests",
href: base,
segment: "requests",
},
{
label: "Keys",
href: `${base}/keys/${keyAuthId}`,
segment: "keys",
},
{
label: "Settings",
href: `${base}/settings`,
segment: "settings",
},
];
};
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { OUTCOME_BACKGROUND_COLORS } from "@/app/(app)/apis/[apiId]/_overview/constants";
import { formatOutcomeName } from "@/app/(app)/apis/[apiId]/_overview/utils";
import { OUTCOME_BACKGROUND_COLORS } from "@/app/(app)/[workspace]/apis/[apiId]/_overview/constants";
import { formatOutcomeName } from "@/app/(app)/[workspace]/apis/[apiId]/_overview/utils";
import { KEY_VERIFICATION_OUTCOMES } from "@unkey/clickhouse/src/keys/keys";

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { getOutcomeColor, getOutcomeOptions } from "@/app/(app)/apis/[apiId]/_overview/utils";
import {
getOutcomeColor,
getOutcomeOptions,
} from "@/app/(app)/[workspace]/apis/[apiId]/_overview/utils";
import { FilterCheckbox } from "@/components/logs/checkbox/filter-checkbox";
import { useFilters } from "../../../../hooks/use-filters";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { StatusBadge } from "@/app/(app)/apis/[apiId]/settings/components/status-badge";
import { StatusBadge } from "@/app/(app)/[workspace]/apis/[apiId]/settings/components/status-badge";
import {
ControlsContainer,
ControlsLeft,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,30 @@
"use client";

import { useWorkspace } from "@/providers/workspace-provider";
import { redirect, useRouter } from "next/navigation";
import { ApisNavbar } from "../../../api-id-navbar";
import { KeyDetailsLogsClient } from "./logs-client";

export default function KeyDetailsPage(props: {
params: { apiId: string; keyAuthId: string; keyId: string };
}) {
const { apiId, keyAuthId: keyspaceId, keyId } = props.params;
const { workspace, error } = useWorkspace();
const router = useRouter();

if (!workspace || error) {
return redirect("/new");
}

router.replace(`/${workspace?.slug}/apis/${apiId}/keys/${keyspaceId}/${keyId}`);
return (
<div className="w-full">
<ApisNavbar
apiId={apiId}
keyspaceId={keyspaceId}
keyId={keyId}
activePage={{
href: `/apis/${apiId}/keys/${keyspaceId}`,
href: `/${workspace?.slug}/apis/${apiId}/keys/${keyspaceId}/${keyId}`,
text: "Keys",
}}
/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { LogsDateTime } from "@/app/(app)/apis/_components/controls/components/logs-datetime";
import { LogsDateTime } from "@/app/(app)/[workspace]/apis/_components/controls/components/logs-datetime";
import { ControlsContainer, ControlsLeft } from "@/components/logs/controls-container";
import { LogsFilters } from "./components/logs-filters";
import { LogsSearch } from "./components/logs-search";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { UsageSetup } from "@/app/(app)/apis/[apiId]/_components/create-key/components/credits-setup";
import { UsageSetup } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/components/credits-setup";
import {
type CreditsFormValues,
creditsSchema,
} from "@/app/(app)/apis/[apiId]/_components/create-key/create-key.schema";
} from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/create-key.schema";
import type { ActionComponentProps } from "@/components/logs/table-action.popover";
import { usePersistedForm } from "@/hooks/use-persisted-form";
import { trpc } from "@/lib/trpc/client";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { refillSchema } from "@/app/(app)/apis/[apiId]/_components/create-key/create-key.schema";
import { getDefaultValues } from "@/app/(app)/apis/[apiId]/_components/create-key/create-key.utils";
import type { refillSchema } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/create-key.schema";
import { getDefaultValues } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/create-key.utils";
import type { KeyDetails } from "@/lib/trpc/routers/api/keys/query-api-keys/schema";
import type { z } from "zod";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { ExpirationSetup } from "@/app/(app)/apis/[apiId]/_components/create-key/components/expiration-setup";
import { ExpirationSetup } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/components/expiration-setup";
import {
type ExpirationFormValues,
expirationSchema,
} from "@/app/(app)/apis/[apiId]/_components/create-key/create-key.schema";
} from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/create-key.schema";
import type { ActionComponentProps } from "@/components/logs/table-action.popover";
import { usePersistedForm } from "@/hooks/use-persisted-form";
import type { KeyDetails } from "@/lib/trpc/routers/api/keys/query-api-keys/schema";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { getDefaultValues } from "@/app/(app)/apis/[apiId]/_components/create-key/create-key.utils";
import { getDefaultValues } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/create-key.utils";
import type { KeyDetails } from "@/lib/trpc/routers/api/keys/query-api-keys/schema";

export const getKeyExpirationDefaults = (keyDetails: KeyDetails) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ExternalIdField } from "@/app/(app)/apis/[apiId]/_components/create-key/components/external-id-field";
import { ExternalIdField } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/components/external-id-field";
import { ConfirmPopover } from "@/components/confirmation-popover";
import type { ActionComponentProps } from "@/components/logs/table-action.popover";
import type { KeyDetails } from "@/lib/trpc/routers/api/keys/query-api-keys/schema";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { nameSchema } from "@/app/(app)/apis/[apiId]/_components/create-key/create-key.schema";
import { nameSchema } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/create-key.schema";
import type { ActionComponentProps } from "@/components/logs/table-action.popover";
import { usePersistedForm } from "@/hooks/use-persisted-form";
import type { KeyDetails } from "@/lib/trpc/routers/api/keys/query-api-keys/schema";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { MetadataSetup } from "@/app/(app)/apis/[apiId]/_components/create-key/components/metadata-setup";
import { MetadataSetup } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/components/metadata-setup";
import {
type MetadataFormValues,
metadataSchema,
} from "@/app/(app)/apis/[apiId]/_components/create-key/create-key.schema";
} from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/create-key.schema";
import type { ActionComponentProps } from "@/components/logs/table-action.popover";
import { usePersistedForm } from "@/hooks/use-persisted-form";
import type { KeyDetails } from "@/lib/trpc/routers/api/keys/query-api-keys/schema";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { RatelimitSetup } from "@/app/(app)/apis/[apiId]/_components/create-key/components/ratelimit-setup";
import { RatelimitSetup } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/components/ratelimit-setup";
import {
type RatelimitFormValues,
ratelimitSchema,
} from "@/app/(app)/apis/[apiId]/_components/create-key/create-key.schema";
} from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/create-key.schema";
import type { ActionComponentProps } from "@/components/logs/table-action.popover";
import { usePersistedForm } from "@/hooks/use-persisted-form";
import type { KeyDetails } from "@/lib/trpc/routers/api/keys/query-api-keys/schema";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { getDefaultValues } from "@/app/(app)/apis/[apiId]/_components/create-key/create-key.utils";
import { getDefaultValues } from "@/app/(app)/[workspace]/apis/[apiId]/_components/create-key/create-key.utils";
import type { KeyDetails } from "@/lib/trpc/routers/api/keys/query-api-keys/schema";

export const getKeyRatelimitsDefaults = (keyDetails: KeyDetails) => {
Expand Down
Loading