Skip to content

Commit 6379231

Browse files
committed
debug/providers-status
1 parent bf4b74c commit 6379231

3 files changed

Lines changed: 699 additions & 1 deletion

File tree

components.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ declare module 'vue' {
1818
ElAside: typeof import('element-plus/es')['ElAside']
1919
ElBacktop: typeof import('element-plus/es')['ElBacktop']
2020
ElButton: typeof import('element-plus/es')['ElButton']
21+
ElCard: typeof import('element-plus/es')['ElCard']
2122
ElCol: typeof import('element-plus/es')['ElCol']
2223
ElCollapse: typeof import('element-plus/es')['ElCollapse']
2324
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
@@ -27,6 +28,7 @@ declare module 'vue' {
2728
ElDropdown: typeof import('element-plus/es')['ElDropdown']
2829
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
2930
ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
31+
ElEmpty: typeof import('element-plus/es')['ElEmpty']
3032
ElFooter: typeof import('element-plus/es')['ElFooter']
3133
ElForm: typeof import('element-plus/es')['ElForm']
3234
ElFormItem: typeof import('element-plus/es')['ElFormItem']

server/routes/status.ts

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import type { Request, Response } from 'express'
3030
import { Container } from 'typedi'
3131
import OBPClientService from '../services/OBPClientService.js'
3232
import { OAuth2Service } from '../services/OAuth2Service.js'
33+
import { OAuth2ProviderManager } from '../services/OAuth2ProviderManager.js'
3334
import { commitId } from '../app.js'
3435
import {
3536
RESOURCE_DOCS_API_VERSION,
@@ -42,8 +43,14 @@ const router = Router()
4243
// Get services from container
4344
const obpClientService = Container.get(OBPClientService)
4445
const oauth2Service = Container.get(OAuth2Service)
46+
const providerManager = Container.get(OAuth2ProviderManager)
4547

46-
const connectors = ['akka_vDec2018', 'rest_vMar2019', 'stored_procedure_vDec2019', 'rabbitmq_vOct2024']
48+
const connectors = [
49+
'akka_vDec2018',
50+
'rest_vMar2019',
51+
'stored_procedure_vDec2019',
52+
'rabbitmq_vOct2024'
53+
]
4754

4855
/**
4956
* Helper function to check if response contains an error
@@ -225,4 +232,67 @@ router.get('/status/oauth2/reconnect', async (req: Request, res: Response) => {
225232
}
226233
})
227234

235+
/**
236+
* GET /status/providers
237+
* Get configured OAuth2 providers (for debugging)
238+
* Shows provider configuration with masked credentials
239+
*/
240+
router.get('/status/providers', (req: Request, res: Response) => {
241+
try {
242+
// Helper function to mask sensitive data (show first 3 and last 3 chars)
243+
const maskCredential = (value: string | undefined): string => {
244+
if (!value || value.length < 8) {
245+
return value ? '***masked***' : 'not configured'
246+
}
247+
return `${value.substring(0, 3)}...${value.substring(value.length - 3)}`
248+
}
249+
250+
// Get providers from manager
251+
const availableProviders = providerManager.getAvailableProviders()
252+
const allProviderStatus = providerManager.getAllProviderStatus()
253+
254+
// Get env configuration (masked)
255+
const envConfig = {
256+
obpOidc: {
257+
clientId: maskCredential(process.env.VITE_OBP_OAUTH2_CLIENT_ID),
258+
wellKnownUrl: process.env.VITE_OBP_OAUTH2_WELL_KNOWN_URL || 'not configured',
259+
redirectUrl: process.env.VITE_OBP_OAUTH2_REDIRECT_URL || 'not configured'
260+
},
261+
keycloak: {
262+
clientId: maskCredential(process.env.VITE_KEYCLOAK_CLIENT_ID),
263+
redirectUrl: process.env.VITE_KEYCLOAK_REDIRECT_URL || 'not configured'
264+
},
265+
google: {
266+
clientId: maskCredential(process.env.VITE_GOOGLE_CLIENT_ID),
267+
redirectUrl: process.env.VITE_GOOGLE_REDIRECT_URL || 'not configured'
268+
},
269+
github: {
270+
clientId: maskCredential(process.env.VITE_GITHUB_CLIENT_ID),
271+
redirectUrl: process.env.VITE_GITHUB_REDIRECT_URL || 'not configured'
272+
},
273+
custom: {
274+
providerName: process.env.VITE_CUSTOM_OIDC_PROVIDER_NAME || 'not configured',
275+
clientId: maskCredential(process.env.VITE_CUSTOM_OIDC_CLIENT_ID),
276+
redirectUrl: process.env.VITE_CUSTOM_OIDC_REDIRECT_URL || 'not configured'
277+
}
278+
}
279+
280+
res.json({
281+
summary: {
282+
totalConfigured: availableProviders.length,
283+
availableProviders: availableProviders,
284+
obpApiHost: process.env.VITE_OBP_API_HOST || 'not configured'
285+
},
286+
providerStatus: allProviderStatus,
287+
environmentConfig: envConfig,
288+
note: 'Credentials are masked for security. Format: first3...last3'
289+
})
290+
} catch (error) {
291+
console.error('Status: Error getting provider status:', error)
292+
res.status(500).json({
293+
error: error instanceof Error ? error.message : 'Unknown error'
294+
})
295+
}
296+
})
297+
228298
export default router

0 commit comments

Comments
 (0)