diff --git a/components.d.ts b/components.d.ts index a436ca1..dbf69a4 100644 --- a/components.d.ts +++ b/components.d.ts @@ -51,4 +51,7 @@ declare module 'vue' { SvelteDropdown: typeof import('./src/components/SvelteDropdown.vue')['default'] ToolCall: typeof import('./src/components/ToolCall.vue')['default'] } + export interface ComponentCustomProperties { + vLoading: typeof import('element-plus/es')['ElLoadingDirective'] + } } diff --git a/src/router/index.ts b/src/router/index.ts index 1de3877..4b23143 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -39,6 +39,7 @@ import APIServerErrorView from '../views/APIServerErrorView.vue' import APIServerStatusView from '../views/APIServerStatusView.vue' import { isServerUp, OBP_API_DEFAULT_RESOURCE_DOC_VERSION } from '../obp' import MessageDocsContent from '@/components/CodeBlock.vue' +import ProvidersStatusView from '../views/ProvidersStatusView.vue' export default async function router(): Promise { const isServerActive = await isServerUp() @@ -54,6 +55,11 @@ export default async function router(): Promise { name: 'status', component: APIServerStatusView }, + { + path: '/debug/providers-status', + name: 'providers-status', + component: ProvidersStatusView + }, { path: '/glossary', name: 'glossary', diff --git a/src/routes/debug/providers-status/+page.svelte b/src/routes/debug/providers-status/+page.svelte deleted file mode 100644 index acae0d0..0000000 --- a/src/routes/debug/providers-status/+page.svelte +++ /dev/null @@ -1,626 +0,0 @@ - - - - - - OAuth2 Provider Configuration Status - - -
-

OAuth2 Provider Configuration Status

- -
-

This page shows which OAuth2/OIDC identity providers are configured and available for login.

-

Note: Client secrets are masked for security.

-
- - {#if loading} -
-
- Loading provider status... -
- {:else if error} -
-

Error loading provider status:

-

{error}

-
- {:else if status} -
- -
-
- Summary - -
-
-
- - {status.summary.totalConfigured} -
-
- - {status.summary.availableProviders.join(', ') || 'None'} -
-
- - {status.summary.obpApiHost} -
-
-
- - -

Active Providers

- {#if status.providerStatus.length === 0} -
-

No providers configured

- - View Setup Guide - -
- {:else} -
- {#each status.providerStatus as provider (provider.name)} -
-
- {getProviderDisplayName(provider.name)} - - {provider.status} - -
-
-
- - {provider.name} -
-
- - - {provider.available ? 'Available' : 'Unavailable'} - -
-
- - {formatDate(provider.lastChecked)} -
- {#if provider.error} -
- - {provider.error} -
- {/if} -
-
- {/each} -
- {/if} - - -

Environment Configuration

-
- {#each Object.entries(status.environmentConfig) as [providerKey, config]} -
- - {#if expandedProviders.has(providerKey)} -
- {#each Object.entries(config) as [key, value]} -
- - {value} -
- {/each} -
- {/if} -
- {/each} -
- -
- ℹ️ - {status.note} -
-
- {/if} -
- - diff --git a/src/views/ProvidersStatusView.vue b/src/views/ProvidersStatusView.vue new file mode 100644 index 0000000..f19356a --- /dev/null +++ b/src/views/ProvidersStatusView.vue @@ -0,0 +1,476 @@ + + + + + + +