@qwickapps/server 1.0.0 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +179 -80
- package/dist/core/control-panel.d.ts.map +1 -1
- package/dist/core/control-panel.js +37 -45
- package/dist/core/control-panel.js.map +1 -1
- package/dist/core/gateway.d.ts +32 -13
- package/dist/core/gateway.d.ts.map +1 -1
- package/dist/core/gateway.js +150 -99
- package/dist/core/gateway.js.map +1 -1
- package/dist/core/guards.d.ts +22 -0
- package/dist/core/guards.d.ts.map +1 -0
- package/dist/core/guards.js +167 -0
- package/dist/core/guards.js.map +1 -0
- package/dist/core/health-manager.d.ts.map +1 -1
- package/dist/core/health-manager.js +3 -9
- package/dist/core/health-manager.js.map +1 -1
- package/dist/core/logging.d.ts.map +1 -1
- package/dist/core/logging.js +1 -5
- package/dist/core/logging.js.map +1 -1
- package/dist/core/types.d.ts +104 -11
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/cache-plugin.d.ts +219 -0
- package/dist/plugins/cache-plugin.d.ts.map +1 -0
- package/dist/plugins/cache-plugin.js +326 -0
- package/dist/plugins/cache-plugin.js.map +1 -0
- package/dist/plugins/cache-plugin.test.d.ts +8 -0
- package/dist/plugins/cache-plugin.test.d.ts.map +1 -0
- package/dist/plugins/cache-plugin.test.js +188 -0
- package/dist/plugins/cache-plugin.test.js.map +1 -0
- package/dist/plugins/config-plugin.js +1 -1
- package/dist/plugins/config-plugin.js.map +1 -1
- package/dist/plugins/diagnostics-plugin.js +1 -1
- package/dist/plugins/diagnostics-plugin.js.map +1 -1
- package/dist/plugins/frontend-app-plugin.d.ts +39 -0
- package/dist/plugins/frontend-app-plugin.d.ts.map +1 -0
- package/dist/plugins/frontend-app-plugin.js +176 -0
- package/dist/plugins/frontend-app-plugin.js.map +1 -0
- package/dist/plugins/health-plugin.js +1 -1
- package/dist/plugins/health-plugin.js.map +1 -1
- package/dist/plugins/index.d.ts +8 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +5 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/logs-plugin.d.ts.map +1 -1
- package/dist/plugins/logs-plugin.js +1 -3
- package/dist/plugins/logs-plugin.js.map +1 -1
- package/dist/plugins/postgres-plugin.d.ts +155 -0
- package/dist/plugins/postgres-plugin.d.ts.map +1 -0
- package/dist/plugins/postgres-plugin.js +244 -0
- package/dist/plugins/postgres-plugin.js.map +1 -0
- package/dist/plugins/postgres-plugin.test.d.ts +8 -0
- package/dist/plugins/postgres-plugin.test.d.ts.map +1 -0
- package/dist/plugins/postgres-plugin.test.js +165 -0
- package/dist/plugins/postgres-plugin.test.js.map +1 -0
- package/dist-ui/assets/{index-Bk7ypbI4.js → index-CW1BviRn.js} +2 -2
- package/dist-ui/assets/{index-Bk7ypbI4.js.map → index-CW1BviRn.js.map} +1 -1
- package/dist-ui/index.html +1 -1
- package/package.json +18 -2
- package/src/core/control-panel.ts +41 -53
- package/src/core/gateway.ts +193 -124
- package/src/core/guards.ts +190 -0
- package/src/core/health-manager.ts +3 -9
- package/src/core/logging.ts +1 -5
- package/src/core/types.ts +115 -9
- package/src/index.ts +40 -0
- package/src/plugins/cache-plugin.test.ts +241 -0
- package/src/plugins/cache-plugin.ts +503 -0
- package/src/plugins/config-plugin.ts +1 -1
- package/src/plugins/diagnostics-plugin.ts +1 -1
- package/src/plugins/frontend-app-plugin.ts +211 -0
- package/src/plugins/health-plugin.ts +1 -1
- package/src/plugins/index.ts +13 -0
- package/src/plugins/logs-plugin.ts +1 -3
- package/src/plugins/postgres-plugin.test.ts +213 -0
- package/src/plugins/postgres-plugin.ts +345 -0
- package/ui/src/api/controlPanelApi.ts +1 -1
- package/ui/src/pages/LogsPage.tsx +6 -10
package/dist/core/gateway.js
CHANGED
|
@@ -17,56 +17,101 @@
|
|
|
17
17
|
import { createControlPanel } from './control-panel.js';
|
|
18
18
|
import { initializeLogging, getControlPanelLogger } from './logging.js';
|
|
19
19
|
import { createProxyMiddleware } from 'http-proxy-middleware';
|
|
20
|
-
import { randomBytes } from 'crypto';
|
|
21
20
|
import express from 'express';
|
|
22
21
|
import { existsSync } from 'fs';
|
|
23
22
|
import { resolve } from 'path';
|
|
24
23
|
/**
|
|
25
|
-
*
|
|
26
|
-
* - Skips localhost requests
|
|
27
|
-
* - Skips API routes (/api/v1/*) - they have their own service auth
|
|
28
|
-
* - Skips health endpoints - these should be public
|
|
29
|
-
* - Requires valid credentials for non-localhost control panel access
|
|
24
|
+
* Generate landing page HTML for the frontend app
|
|
30
25
|
*/
|
|
31
|
-
function
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
26
|
+
function generateLandingPageHtml(config, controlPanelPath) {
|
|
27
|
+
if (!config)
|
|
28
|
+
return '';
|
|
29
|
+
const primaryColor = '#6366f1';
|
|
30
|
+
const links = config.links || [
|
|
31
|
+
{ label: 'Control Panel', url: controlPanelPath },
|
|
32
|
+
];
|
|
33
|
+
const linksHtml = links
|
|
34
|
+
.map((link) => `<a href="${link.url}" class="link">${link.label}</a>`)
|
|
35
|
+
.join('');
|
|
36
|
+
return `<!DOCTYPE html>
|
|
37
|
+
<html lang="en">
|
|
38
|
+
<head>
|
|
39
|
+
<meta charset="UTF-8">
|
|
40
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
41
|
+
<title>${config.title}</title>
|
|
42
|
+
<style>
|
|
43
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
44
|
+
body {
|
|
45
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
46
|
+
background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
|
|
47
|
+
color: #e2e8f0;
|
|
48
|
+
min-height: 100vh;
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
justify-content: center;
|
|
52
|
+
}
|
|
53
|
+
.container {
|
|
54
|
+
text-align: center;
|
|
55
|
+
max-width: 600px;
|
|
56
|
+
padding: 2rem;
|
|
57
|
+
}
|
|
58
|
+
h1 {
|
|
59
|
+
font-size: 2.5rem;
|
|
60
|
+
color: ${primaryColor};
|
|
61
|
+
margin-bottom: 1rem;
|
|
62
|
+
}
|
|
63
|
+
p {
|
|
64
|
+
font-size: 1.125rem;
|
|
65
|
+
color: #94a3b8;
|
|
66
|
+
margin-bottom: 2rem;
|
|
67
|
+
line-height: 1.6;
|
|
68
|
+
}
|
|
69
|
+
.links {
|
|
70
|
+
display: flex;
|
|
71
|
+
flex-wrap: wrap;
|
|
72
|
+
gap: 1rem;
|
|
73
|
+
justify-content: center;
|
|
74
|
+
}
|
|
75
|
+
.link {
|
|
76
|
+
display: inline-block;
|
|
77
|
+
padding: 0.875rem 2rem;
|
|
78
|
+
background: ${primaryColor};
|
|
79
|
+
color: white;
|
|
80
|
+
text-decoration: none;
|
|
81
|
+
border-radius: 0.5rem;
|
|
82
|
+
font-weight: 500;
|
|
83
|
+
transition: all 0.2s;
|
|
84
|
+
}
|
|
85
|
+
.link:hover {
|
|
86
|
+
transform: translateY(-2px);
|
|
87
|
+
box-shadow: 0 10px 20px rgba(0,0,0,0.3);
|
|
88
|
+
}
|
|
89
|
+
.footer {
|
|
90
|
+
position: fixed;
|
|
91
|
+
bottom: 1rem;
|
|
92
|
+
left: 0;
|
|
93
|
+
right: 0;
|
|
94
|
+
text-align: center;
|
|
95
|
+
color: #64748b;
|
|
96
|
+
font-size: 0.875rem;
|
|
97
|
+
}
|
|
98
|
+
.footer a {
|
|
99
|
+
color: ${primaryColor};
|
|
100
|
+
text-decoration: none;
|
|
101
|
+
}
|
|
102
|
+
</style>
|
|
103
|
+
</head>
|
|
104
|
+
<body>
|
|
105
|
+
<div class="container">
|
|
106
|
+
<h1>${config.heading || config.title}</h1>
|
|
107
|
+
${config.description ? `<p>${config.description}</p>` : ''}
|
|
108
|
+
${linksHtml ? `<div class="links">${linksHtml}</div>` : ''}
|
|
109
|
+
</div>
|
|
110
|
+
<div class="footer">
|
|
111
|
+
Powered by <a href="https://qwickapps.com" target="_blank">QwickApps</a>
|
|
112
|
+
</div>
|
|
113
|
+
</body>
|
|
114
|
+
</html>`;
|
|
70
115
|
}
|
|
71
116
|
/**
|
|
72
117
|
* Create a gateway that proxies to an internal service
|
|
@@ -110,12 +155,10 @@ export function createGateway(config, serviceFactory) {
|
|
|
110
155
|
const gatewayPort = config.gatewayPort || parseInt(process.env.GATEWAY_PORT || process.env.PORT || '3101', 10);
|
|
111
156
|
const servicePort = config.servicePort || parseInt(process.env.SERVICE_PORT || '3100', 10);
|
|
112
157
|
const nodeEnv = process.env.NODE_ENV || 'development';
|
|
113
|
-
//
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
const
|
|
117
|
-
const basicAuthPassword = providedPassword || (authMode === 'auto' ? randomBytes(16).toString('base64url') : '');
|
|
118
|
-
const isPasswordAutoGenerated = !providedPassword && authMode === 'auto';
|
|
158
|
+
// Control panel mount path (defaults to /cpanel)
|
|
159
|
+
const controlPanelPath = config.controlPanelPath || '/cpanel';
|
|
160
|
+
// Guard configuration for control panel
|
|
161
|
+
const guardConfig = config.controlPanelGuard;
|
|
119
162
|
// API paths to proxy
|
|
120
163
|
const proxyPaths = config.proxyPaths || ['/api/v1'];
|
|
121
164
|
let service = null;
|
|
@@ -129,17 +172,17 @@ export function createGateway(config, serviceFactory) {
|
|
|
129
172
|
cors: config.corsOrigins ? { origins: config.corsOrigins } : undefined,
|
|
130
173
|
// Skip body parsing for proxied paths
|
|
131
174
|
skipBodyParserPaths: [...proxyPaths, '/health'],
|
|
132
|
-
//
|
|
133
|
-
|
|
175
|
+
// Mount path for control panel
|
|
176
|
+
mountPath: controlPanelPath,
|
|
177
|
+
// Route guard
|
|
178
|
+
guard: guardConfig,
|
|
179
|
+
// Custom UI path
|
|
180
|
+
customUiPath: config.customUiPath,
|
|
134
181
|
links: config.links,
|
|
135
182
|
},
|
|
136
183
|
plugins: config.plugins || [],
|
|
137
184
|
logger,
|
|
138
185
|
});
|
|
139
|
-
// Add basic auth middleware if enabled
|
|
140
|
-
if (authMode === 'basic' || authMode === 'auto') {
|
|
141
|
-
controlPanel.app.use(createBasicAuthMiddleware(basicAuthUser, basicAuthPassword, proxyPaths));
|
|
142
|
-
}
|
|
143
186
|
// Setup proxy middleware for API paths
|
|
144
187
|
const setupProxyMiddleware = () => {
|
|
145
188
|
const target = `http://localhost:${servicePort}`;
|
|
@@ -185,17 +228,36 @@ export function createGateway(config, serviceFactory) {
|
|
|
185
228
|
};
|
|
186
229
|
controlPanel.app.use(createProxyMiddleware(healthProxyOptions));
|
|
187
230
|
};
|
|
188
|
-
//
|
|
189
|
-
const
|
|
190
|
-
if (config.
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
res.
|
|
231
|
+
// Setup frontend app at root path
|
|
232
|
+
const setupFrontendApp = () => {
|
|
233
|
+
if (!config.frontendApp) {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const { redirectUrl, staticPath, landingPage } = config.frontendApp;
|
|
237
|
+
// Priority 1: Redirect
|
|
238
|
+
if (redirectUrl) {
|
|
239
|
+
logger.info(`Frontend app: Redirecting / to ${redirectUrl}`);
|
|
240
|
+
controlPanel.app.get('/', (_req, res) => {
|
|
241
|
+
res.redirect(redirectUrl);
|
|
242
|
+
});
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
// Priority 2: Serve static files
|
|
246
|
+
if (staticPath && existsSync(staticPath)) {
|
|
247
|
+
logger.info(`Frontend app: Serving static files from ${staticPath}`);
|
|
248
|
+
controlPanel.app.use('/', express.static(staticPath));
|
|
249
|
+
// SPA fallback for root
|
|
250
|
+
controlPanel.app.get('/', (_req, res) => {
|
|
251
|
+
res.sendFile(resolve(staticPath, 'index.html'));
|
|
252
|
+
});
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
// Priority 3: Landing page
|
|
256
|
+
if (landingPage) {
|
|
257
|
+
logger.info(`Frontend app: Serving landing page`);
|
|
258
|
+
controlPanel.app.get('/', (_req, res) => {
|
|
259
|
+
const html = generateLandingPageHtml(landingPage, controlPanelPath);
|
|
260
|
+
res.type('html').send(html);
|
|
199
261
|
});
|
|
200
262
|
}
|
|
201
263
|
};
|
|
@@ -207,45 +269,34 @@ export function createGateway(config, serviceFactory) {
|
|
|
207
269
|
logger.info(`Internal service started on port ${servicePort}`);
|
|
208
270
|
// 2. Setup proxy middleware (after service is started)
|
|
209
271
|
setupProxyMiddleware();
|
|
210
|
-
// 3. Setup
|
|
211
|
-
|
|
272
|
+
// 3. Setup frontend app at root path
|
|
273
|
+
setupFrontendApp();
|
|
212
274
|
// 4. Start control panel gateway
|
|
213
275
|
await controlPanel.start();
|
|
276
|
+
// Calculate API base path
|
|
277
|
+
const apiBasePath = controlPanelPath === '/' ? '/api' : `${controlPanelPath}/api`;
|
|
214
278
|
// Log startup info
|
|
215
|
-
logger.info(
|
|
216
|
-
logger.info(
|
|
217
|
-
logger.info(` ${
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
if (authMode === 'basic' || authMode === 'auto') {
|
|
224
|
-
logger.info(' Control Panel Auth: HTTP Basic Auth');
|
|
225
|
-
logger.info(' ----------------------------------------');
|
|
226
|
-
logger.info(` Username: ${basicAuthUser}`);
|
|
227
|
-
if (isPasswordAutoGenerated) {
|
|
228
|
-
logger.info(` Password: ${basicAuthPassword}`);
|
|
229
|
-
logger.info(' (auto-generated, set BASIC_AUTH_PASSWORD to use a fixed password)');
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
logger.info(' Password: ********** (from environment)');
|
|
233
|
-
}
|
|
234
|
-
logger.info(' ----------------------------------------');
|
|
279
|
+
logger.info(`${config.productName} Gateway`);
|
|
280
|
+
logger.info(`Gateway Port: ${gatewayPort} (public)`);
|
|
281
|
+
logger.info(`Service Port: ${servicePort} (internal)`);
|
|
282
|
+
if (guardConfig && guardConfig.type === 'basic') {
|
|
283
|
+
logger.info(`Control Panel Auth: HTTP Basic Auth - Username: ${guardConfig.username}`);
|
|
284
|
+
}
|
|
285
|
+
else if (guardConfig && guardConfig.type !== 'none') {
|
|
286
|
+
logger.info(`Control Panel Auth: ${guardConfig.type}`);
|
|
235
287
|
}
|
|
236
288
|
else {
|
|
237
|
-
logger.info('
|
|
289
|
+
logger.info('Control Panel Auth: None (not recommended)');
|
|
290
|
+
}
|
|
291
|
+
if (config.frontendApp) {
|
|
292
|
+
logger.info(`Frontend App: GET /`);
|
|
238
293
|
}
|
|
239
|
-
logger.info(
|
|
240
|
-
logger.info(
|
|
241
|
-
logger.info(`
|
|
242
|
-
logger.info(` GET /api/health - Gateway health`);
|
|
243
|
-
logger.info(` GET /health - Service health (proxied)`);
|
|
294
|
+
logger.info(`Control Panel UI: GET ${controlPanelPath.padEnd(20)}`);
|
|
295
|
+
logger.info(`Gateway Health: GET ${apiBasePath}/health`);
|
|
296
|
+
logger.info(`Service Health: GET /health`);
|
|
244
297
|
for (const apiPath of proxyPaths) {
|
|
245
|
-
logger.info(`
|
|
298
|
+
logger.info(`Service API: * ${apiPath}/*`);
|
|
246
299
|
}
|
|
247
|
-
logger.info('========================================');
|
|
248
|
-
logger.info('');
|
|
249
300
|
};
|
|
250
301
|
const stop = async () => {
|
|
251
302
|
logger.info('Shutting down gateway...');
|
package/dist/core/gateway.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/core/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAsB,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAgB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/core/gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route Guards for @qwickapps/server
|
|
3
|
+
*
|
|
4
|
+
* Provides authentication middleware for protecting routes.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
7
|
+
*/
|
|
8
|
+
import type { Request, RequestHandler } from 'express';
|
|
9
|
+
import type { RouteGuardConfig } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Create a route guard middleware from configuration
|
|
12
|
+
*/
|
|
13
|
+
export declare function createRouteGuard(config: RouteGuardConfig): RequestHandler;
|
|
14
|
+
/**
|
|
15
|
+
* Helper to check if a request is authenticated (for use in handlers)
|
|
16
|
+
*/
|
|
17
|
+
export declare function isAuthenticated(req: Request): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Get the authenticated user from the request
|
|
20
|
+
*/
|
|
21
|
+
export declare function getAuthenticatedUser(req: Request): any | null;
|
|
22
|
+
//# sourceMappingURL=guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/core/guards.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAA0B,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,KAAK,EACV,gBAAgB,EAIjB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,CAazE;AAiID;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAUrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,GAAG,IAAI,CAU7D"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route Guards for @qwickapps/server
|
|
3
|
+
*
|
|
4
|
+
* Provides authentication middleware for protecting routes.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2025 QwickApps.com. All rights reserved.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Create a route guard middleware from configuration
|
|
10
|
+
*/
|
|
11
|
+
export function createRouteGuard(config) {
|
|
12
|
+
switch (config.type) {
|
|
13
|
+
case 'none':
|
|
14
|
+
return (_req, _res, next) => next();
|
|
15
|
+
case 'basic':
|
|
16
|
+
return createBasicAuthGuard(config);
|
|
17
|
+
case 'supabase':
|
|
18
|
+
return createSupabaseGuard(config);
|
|
19
|
+
case 'auth0':
|
|
20
|
+
return createAuth0Guard(config);
|
|
21
|
+
default:
|
|
22
|
+
throw new Error(`Unknown guard type: ${config.type}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Create basic auth guard middleware
|
|
27
|
+
*/
|
|
28
|
+
function createBasicAuthGuard(config) {
|
|
29
|
+
const expectedAuth = `Basic ${Buffer.from(`${config.username}:${config.password}`).toString('base64')}`;
|
|
30
|
+
const realm = config.realm || 'Protected';
|
|
31
|
+
const excludePaths = config.excludePaths || [];
|
|
32
|
+
return (req, res, next) => {
|
|
33
|
+
// Check if path is excluded
|
|
34
|
+
if (excludePaths.some(path => req.path.startsWith(path))) {
|
|
35
|
+
return next();
|
|
36
|
+
}
|
|
37
|
+
const authHeader = req.headers.authorization;
|
|
38
|
+
if (authHeader === expectedAuth) {
|
|
39
|
+
return next();
|
|
40
|
+
}
|
|
41
|
+
res.setHeader('WWW-Authenticate', `Basic realm="${realm}"`);
|
|
42
|
+
res.status(401).json({
|
|
43
|
+
error: 'Unauthorized',
|
|
44
|
+
message: 'Authentication required.',
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Create Supabase auth guard middleware
|
|
50
|
+
*
|
|
51
|
+
* Validates JWT tokens from Supabase Auth
|
|
52
|
+
*/
|
|
53
|
+
function createSupabaseGuard(config) {
|
|
54
|
+
const excludePaths = config.excludePaths || [];
|
|
55
|
+
return async (req, res, next) => {
|
|
56
|
+
// Check if path is excluded
|
|
57
|
+
if (excludePaths.some(path => req.path.startsWith(path))) {
|
|
58
|
+
return next();
|
|
59
|
+
}
|
|
60
|
+
const authHeader = req.headers.authorization;
|
|
61
|
+
if (!authHeader || !authHeader.startsWith('Bearer ')) {
|
|
62
|
+
return res.status(401).json({
|
|
63
|
+
error: 'Unauthorized',
|
|
64
|
+
message: 'Missing or invalid authorization header. Expected: Bearer <token>',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const token = authHeader.substring(7);
|
|
68
|
+
try {
|
|
69
|
+
// Validate the JWT with Supabase
|
|
70
|
+
const response = await fetch(`${config.supabaseUrl}/auth/v1/user`, {
|
|
71
|
+
headers: {
|
|
72
|
+
Authorization: `Bearer ${token}`,
|
|
73
|
+
apikey: config.supabaseAnonKey,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
if (!response.ok) {
|
|
77
|
+
return res.status(401).json({
|
|
78
|
+
error: 'Unauthorized',
|
|
79
|
+
message: 'Invalid or expired token.',
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const user = await response.json();
|
|
83
|
+
req.user = user;
|
|
84
|
+
next();
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
return res.status(401).json({
|
|
88
|
+
error: 'Unauthorized',
|
|
89
|
+
message: 'Failed to validate token.',
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Create Auth0 guard middleware
|
|
96
|
+
*
|
|
97
|
+
* Uses express-openid-connect for Auth0 authentication
|
|
98
|
+
*/
|
|
99
|
+
function createAuth0Guard(config) {
|
|
100
|
+
// Lazy-load express-openid-connect to avoid requiring it when not used
|
|
101
|
+
let authMiddleware = null;
|
|
102
|
+
return async (req, res, next) => {
|
|
103
|
+
// Lazy initialize the middleware
|
|
104
|
+
if (!authMiddleware) {
|
|
105
|
+
try {
|
|
106
|
+
const { auth } = await import('express-openid-connect');
|
|
107
|
+
authMiddleware = auth({
|
|
108
|
+
authRequired: true,
|
|
109
|
+
auth0Logout: true,
|
|
110
|
+
secret: config.secret,
|
|
111
|
+
baseURL: config.baseUrl,
|
|
112
|
+
clientID: config.clientId,
|
|
113
|
+
issuerBaseURL: `https://${config.domain}`,
|
|
114
|
+
clientSecret: config.clientSecret,
|
|
115
|
+
idpLogout: true,
|
|
116
|
+
routes: {
|
|
117
|
+
login: config.routes?.login || '/login',
|
|
118
|
+
logout: config.routes?.logout || '/logout',
|
|
119
|
+
callback: config.routes?.callback || '/callback',
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
return res.status(500).json({
|
|
125
|
+
error: 'Configuration Error',
|
|
126
|
+
message: 'Auth0 is not properly configured. Install express-openid-connect package.',
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Check if path is excluded
|
|
131
|
+
const excludePaths = config.excludePaths || [];
|
|
132
|
+
if (excludePaths.some(path => req.path.startsWith(path))) {
|
|
133
|
+
return next();
|
|
134
|
+
}
|
|
135
|
+
// Apply Auth0 middleware
|
|
136
|
+
authMiddleware(req, res, next);
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Helper to check if a request is authenticated (for use in handlers)
|
|
141
|
+
*/
|
|
142
|
+
export function isAuthenticated(req) {
|
|
143
|
+
// Check for Auth0 session
|
|
144
|
+
if (req.oidc?.isAuthenticated?.()) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
// Check for Supabase user
|
|
148
|
+
if (req.user) {
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get the authenticated user from the request
|
|
155
|
+
*/
|
|
156
|
+
export function getAuthenticatedUser(req) {
|
|
157
|
+
// Check for Auth0 user
|
|
158
|
+
if (req.oidc?.user) {
|
|
159
|
+
return req.oidc.user;
|
|
160
|
+
}
|
|
161
|
+
// Check for Supabase user
|
|
162
|
+
if (req.user) {
|
|
163
|
+
return req.user;
|
|
164
|
+
}
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/core/guards.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-manager.d.ts","sourceRoot":"","sources":["../../src/core/health-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEvF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,SAAS,CAA0D;IAC3E,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"health-manager.d.ts","sourceRoot":"","sources":["../../src/core/health-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEvF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,SAAS,CAA0D;IAC3E,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAsBlC;;OAEG;YACW,QAAQ;IAwDtB;;OAEG;YACW,YAAY;IAmC1B;;OAEG;YACW,WAAW;IAuBzB;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAI/C;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAItD;;OAEG;IACH,mBAAmB,IAAI,YAAY;IAiBnC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B;;OAEG;IACH,QAAQ,IAAI,IAAI;CAOjB"}
|
|
@@ -29,10 +29,7 @@ export class HealthManager {
|
|
|
29
29
|
this.runCheck(check.name);
|
|
30
30
|
}, interval);
|
|
31
31
|
this.intervals.set(check.name, timer);
|
|
32
|
-
this.logger.
|
|
33
|
-
type: check.type,
|
|
34
|
-
interval,
|
|
35
|
-
});
|
|
32
|
+
this.logger.debug(`Health check registered: ${check.name} (${check.type}, ${interval}ms)`);
|
|
36
33
|
}
|
|
37
34
|
/**
|
|
38
35
|
* Run a health check
|
|
@@ -83,10 +80,7 @@ export class HealthManager {
|
|
|
83
80
|
message,
|
|
84
81
|
lastChecked: new Date(),
|
|
85
82
|
});
|
|
86
|
-
this.logger.warn(`
|
|
87
|
-
error: message,
|
|
88
|
-
latency,
|
|
89
|
-
});
|
|
83
|
+
this.logger.warn(`Health check failed: ${name} - ${message}`);
|
|
90
84
|
}
|
|
91
85
|
}
|
|
92
86
|
/**
|
|
@@ -186,7 +180,7 @@ export class HealthManager {
|
|
|
186
180
|
clearInterval(timer);
|
|
187
181
|
}
|
|
188
182
|
this.intervals.clear();
|
|
189
|
-
this.logger.
|
|
183
|
+
this.logger.debug('Health manager shutdown complete');
|
|
190
184
|
}
|
|
191
185
|
}
|
|
192
186
|
//# sourceMappingURL=health-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-manager.js","sourceRoot":"","sources":["../../src/core/health-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,OAAO,aAAa;IAMxB,YAAY,MAAc;QALlB,WAAM,GAA6B,IAAI,GAAG,EAAE,CAAC;QAC7C,YAAO,GAAmC,IAAI,GAAG,EAAE,CAAC;QACpD,cAAS,GAAgD,IAAI,GAAG,EAAE,CAAC;QAIzE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAkB;QACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEnC,oBAAoB;QACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YAC3B,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,uBAAuB;QACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,qBAAqB;QAC/D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE1B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEb,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"health-manager.js","sourceRoot":"","sources":["../../src/core/health-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAoC,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAyDD;;GAEG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,WAAW,CAAS;;IAO5B;;OAEG;IACH,UAAU,CAAC,MAAM,GAAE,aAAkB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/core/logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAoC,QAAQ,EAAgB,MAAM,oBAAoB,CAAC;AAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAyDD;;GAEG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,WAAW,CAAS;;IAO5B;;OAEG;IACH,UAAU,CAAC,MAAM,GAAE,aAAkB,GAAG,IAAI;IAoC5C;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAoBpC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,WAAW,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CAMpD;AAKD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,aAAkB,GAAG,gBAAgB,CAI9E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
package/dist/core/logging.js
CHANGED
|
@@ -102,12 +102,8 @@ class LoggingSubsystem {
|
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
104
|
this.initialized = true;
|
|
105
|
-
this.rootLogger.
|
|
106
|
-
logDir: this.config.logDir,
|
|
105
|
+
this.rootLogger.debug('Logging initialized', {
|
|
107
106
|
level: this.config.level,
|
|
108
|
-
fileLogging: this.config.fileLogging,
|
|
109
|
-
consoleOutput: this.config.consoleOutput,
|
|
110
|
-
usingPino: this.rootLogger.isUsingPino(),
|
|
111
107
|
});
|
|
112
108
|
}
|
|
113
109
|
/**
|