diff --git a/web/src/client/app.ts b/web/src/client/app.ts index 91ee4306..e4f71dcc 100644 --- a/web/src/client/app.ts +++ b/web/src/client/app.ts @@ -742,15 +742,11 @@ export class VibeTunnelApp extends LitElement { @close=${this.handleCloseSSHKeyManager} > - - ${this.currentView !== 'auth' - ? html` -
- Logs - v${VERSION} -
- ` - : ''} + +
+ Logs + v${VERSION} +
`; } } diff --git a/web/src/client/components/log-viewer.ts b/web/src/client/components/log-viewer.ts index a4c9c1ae..0c995c26 100644 --- a/web/src/client/components/log-viewer.ts +++ b/web/src/client/components/log-viewer.ts @@ -49,7 +49,7 @@ export class LogViewer extends LitElement { try { // Get log info const infoResponse = await fetch('/api/logs/info', { - headers: this.authClient.getAuthHeader(), + headers: { ...this.authClient.getAuthHeader() }, }); if (infoResponse.ok) { const info = await infoResponse.json(); @@ -58,7 +58,7 @@ export class LogViewer extends LitElement { // Get raw logs const response = await fetch('/api/logs/raw', { - headers: this.authClient.getAuthHeader(), + headers: { ...this.authClient.getAuthHeader() }, }); if (!response.ok) { throw new Error('Failed to load logs'); @@ -179,7 +179,7 @@ export class LogViewer extends LitElement { try { const response = await fetch('/api/logs/clear', { method: 'DELETE', - headers: this.authClient.getAuthHeader(), + headers: { ...this.authClient.getAuthHeader() }, }); if (!response.ok) { throw new Error('Failed to clear logs'); @@ -194,7 +194,7 @@ export class LogViewer extends LitElement { private async downloadLogs(): Promise { try { const response = await fetch('/api/logs/raw', { - headers: this.authClient.getAuthHeader(), + headers: { ...this.authClient.getAuthHeader() }, }); if (!response.ok) { throw new Error('Failed to download logs'); diff --git a/web/src/server/middleware/auth.ts b/web/src/server/middleware/auth.ts index 49aa20f5..e15d40e1 100644 --- a/web/src/server/middleware/auth.ts +++ b/web/src/server/middleware/auth.ts @@ -19,10 +19,11 @@ interface AuthenticatedRequest extends Request { export function createAuthMiddleware(config: AuthConfig) { return (req: AuthenticatedRequest, res: Response, next: NextFunction) => { - // Skip auth for health check endpoint, auth endpoints, and push notifications + // Skip auth for health check endpoint, auth endpoints, client logging, and push notifications if ( req.path === '/api/health' || req.path.startsWith('/api/auth') || + req.path.startsWith('/api/logs') || req.path.startsWith('/api/push') ) { return next();