Replace one-secret provider dialog with per-auth-type fields
OAuth, account, and cloud providers previously fell into the same password input as API key providers, which made them impossible to connect properly. Split the connect dialog by auth type: - api_key: secret + model (unchanged) - oauth_pkce / account_subscription: button that opens the provider's official sign-in URL in a session-partitioned BrowserWindow, then a paste field for the access token returned by the provider - cloud: multi-field form (base URL, region, project, deployment, credential) serialized into the encrypted secret payload Each catalog entry now carries signInUrl and credentialHelp so the dialog can render the right instructions without baking copy into the renderer. Backed by a new launchProviderSignIn IPC method on ProviderService that opens a hardened popup (nodeIntegration off, contextIsolation on, sandbox on, permission denies) and records an audit event.
This commit is contained in:
1 parent
f2ac1be5de
commit
dc791ec984
10 files changed
+283
-54
No files matched your search
@@ -18,6 +18,7 @@ import type {
|
||||
DeleteOrganizationInput,
|
||||
ImportFileInput,
|
||||
ImportSkillDirectoryInput,
|
||||
LaunchProviderSignInInput,
|
||||
LaunchSocialLoginInput,
|
||||
ResolveAgentSkillsInput,
|
||||
SaveProviderCredentialInput,
|
||||
@@ -47,6 +48,7 @@ export interface DesktopApi {
|
||||
sendMessage(input: SendMessageInput): Promise<DesktopResult<AppSnapshot>>;
|
||||
markChatSpaceRead(input: MarkChatSpaceReadInput): Promise<DesktopResult<AppSnapshot>>;
|
||||
saveProviderCredential(input: SaveProviderCredentialInput): Promise<DesktopResult<AppSnapshot>>;
|
||||
launchProviderSignIn(input: LaunchProviderSignInInput): Promise<DesktopResult<null>>;
|
||||
createProviderResponse(input: CreateProviderResponseInput): Promise<DesktopResult<AppSnapshot>>;
|
||||
importSkillDirectory(input: ImportSkillDirectoryInput): Promise<DesktopResult<AppSnapshot>>;
|
||||
bindSkill(input: BindSkillInput): Promise<DesktopResult<AppSnapshot>>;
|
||||
|
||||
Reference in new issue
Block a user