diff --git a/canvas/src/components/CreateWorkspaceDialog.tsx b/canvas/src/components/CreateWorkspaceDialog.tsx
index f03e61924..47f47f6ad 100644
--- a/canvas/src/components/CreateWorkspaceDialog.tsx
+++ b/canvas/src/components/CreateWorkspaceDialog.tsx
@@ -10,6 +10,7 @@ import {
buildProviderCatalog,
buildProviderCatalogFromRegistry,
findProviderForModel,
+ isPlatformManagedProvider,
type SelectorModel,
type SelectorValue,
type RegistryProvider,
@@ -290,7 +291,7 @@ export function CreateWorkspaceButton() {
setError("Model is required");
return;
}
- if (!isExternal && selectedLLMProvider?.envVars.length && !llmSecret.trim()) {
+ if (!isExternal && !isPlatformManagedProvider(selectedLLMProvider) && selectedLLMProvider?.envVars.length && !llmSecret.trim()) {
setError("Provider credential is required");
return;
}
@@ -325,7 +326,7 @@ export function CreateWorkspaceButton() {
? {
model: llmSelection.model.trim(),
llm_provider: nativeProvider.vendor,
- ...(nativeProvider.envVars.length > 0
+ ...(!isPlatformManagedProvider(nativeProvider) && nativeProvider.envVars.length > 0
? { secrets: { [nativeProvider.envVars[0]]: llmSecret.trim() } }
: {}),
}
@@ -521,7 +522,11 @@ export function CreateWorkspaceButton() {
idPrefix="create-workspace-llm"
variant="stack"
/>
- {selectedLLMProvider.envVars.length > 0 && (
+ {isPlatformManagedProvider(selectedLLMProvider) ? (
+
+ Platform-managed — no key required
+
+ ) : selectedLLMProvider.envVars.length > 0 && (