diff --git a/src/app/(dashboard)/dashboard/providers/[id]/page.tsx b/src/app/(dashboard)/dashboard/providers/[id]/page.tsx index 063183b372..cac8ba720c 100644 --- a/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +++ b/src/app/(dashboard)/dashboard/providers/[id]/page.tsx @@ -19,9 +19,11 @@ import { Toggle, Select, ProxyConfigModal, + NoAuthProviderCard, } from "@/shared/components"; import { LOCAL_PROVIDERS, + FREE_PROVIDERS, getProviderAlias, isOpenAICompatibleProvider, isAnthropicCompatibleProvider, @@ -1084,6 +1086,7 @@ export default function ProviderDetailPage() { providerInfo?.toggleAuthType === "oauth" || providerInfo?.toggleAuthType === "free"; const providerSupportsPat = supportsApiKeyOnFreeProvider(providerId); const isOAuth = providerSupportsOAuth && !providerSupportsPat; + const isFreeNoAuth = FREE_PROVIDERS[providerId]?.noAuth === true; const registryModels = getModelsByProviderId(providerId); // Prefer synced API-discovered models when available, then merge built-ins // and user-managed custom models without duplicating IDs. @@ -3167,7 +3170,8 @@ export default function ProviderDetailPage() { )} {/* Connections */} - {!isUpstreamProxyProvider && ( + {!isUpstreamProxyProvider && isFreeNoAuth && } + {!isUpstreamProxyProvider && !isFreeNoAuth && (
diff --git a/src/shared/components/NoAuthProviderCard.tsx b/src/shared/components/NoAuthProviderCard.tsx new file mode 100644 index 0000000000..d4bceb4693 --- /dev/null +++ b/src/shared/components/NoAuthProviderCard.tsx @@ -0,0 +1,21 @@ +"use client"; + +import Card from "./Card"; + +export default function NoAuthProviderCard() { + return ( + +
+
+ lock_open +
+
+

No authentication required

+

+ This provider is ready to use immediately — no signup or API key needed. +

+
+
+
+ ); +} diff --git a/src/shared/components/index.tsx b/src/shared/components/index.tsx index 568c9e44e0..af975c2826 100644 --- a/src/shared/components/index.tsx +++ b/src/shared/components/index.tsx @@ -32,6 +32,7 @@ export { default as NotificationToast } from "./NotificationToast"; export { default as FilterBar } from "./FilterBar"; export { default as ColumnToggle } from "./ColumnToggle"; export { default as DataTable } from "./DataTable"; +export { default as NoAuthProviderCard } from "./NoAuthProviderCard"; // Layouts export * from "./layouts";