fa-mcp-sdk 0.4.29 → 0.4.32

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.
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Admin panel authentication middleware
3
3
  * Supports 4 authentication types: permanentServerTokens, basic, jwtToken, ntlm
4
+ * adminAuth.type accepts a single type or an array of types
4
5
  */
5
6
  import chalk from 'chalk';
6
7
  import { appConfig } from '../bootstrap/init-config.js';
@@ -14,41 +15,43 @@ import { setupNTLMAuthentication } from './token-generator/ntlm/ntlm-integration
14
15
  const logger = lgr.getSubLogger({ name: chalk.yellow('admin-auth') });
15
16
  const { adminAuth, auth } = appConfig.webServer || {};
16
17
  /**
17
- * Validates admin auth configuration
18
- * Returns error message if configuration is invalid, null if valid
18
+ * Normalizes adminAuth.type to an array
19
19
  */
20
- export function validateAdminAuthConfig() {
21
- if (!adminAuth?.enabled) {
22
- return null; // Disabled, no validation needed
20
+ export function getAdminAuthTypes() {
21
+ if (!adminAuth?.type) {
22
+ return [];
23
23
  }
24
- const authType = adminAuth.type;
24
+ return Array.isArray(adminAuth.type) ? adminAuth.type : [adminAuth.type];
25
+ }
26
+ /**
27
+ * Validates admin auth configuration for a single type
28
+ */
29
+ function validateSingleAuthType(authType) {
25
30
  switch (authType) {
26
31
  case 'permanentServerTokens': {
27
32
  const tokens = auth?.permanentServerTokens;
28
33
  if (!Array.isArray(tokens) || !tokens.filter(Boolean).length) {
29
- return 'adminAuth type is "permanentServerTokens" but no tokens are configured in webServer.auth.permanentServerTokens';
34
+ return `adminAuth type "${authType}" but no tokens are configured in webServer.auth.permanentServerTokens`;
30
35
  }
31
36
  break;
32
37
  }
33
38
  case 'basic': {
34
39
  const basic = auth?.basic;
35
40
  if (!basic?.username || !basic?.password) {
36
- return 'adminAuth type is "basic" but username or password is missing in webServer.auth.basic';
41
+ return `adminAuth type "${authType}" but username or password is missing in webServer.auth.basic`;
37
42
  }
38
43
  break;
39
44
  }
40
45
  case 'jwtToken': {
41
46
  const jwt = auth?.jwtToken;
42
47
  if (!jwt?.encryptKey || jwt.encryptKey.length < 8) {
43
- return 'adminAuth type is "jwtToken" but encryptKey is missing or too short in webServer.auth.jwtToken';
48
+ return `adminAuth type "${authType}" but encryptKey is missing or too short in webServer.auth.jwtToken`;
44
49
  }
45
50
  break;
46
51
  }
47
52
  case 'ntlm': {
48
- // NTLM doesn't require credentials in webServer.auth, just AD config
49
- // The isNTLMEnabled function checks for AD configuration
50
53
  if (!isNTLMEnabled) {
51
- return 'adminAuth type is "ntlm" but no AD configuration found (ad.domains is empty or missing)';
54
+ return `adminAuth type "${authType}" but no AD configuration found (ad.domains is empty or missing)`;
52
55
  }
53
56
  break;
54
57
  }
@@ -57,6 +60,81 @@ export function validateAdminAuthConfig() {
57
60
  }
58
61
  return null;
59
62
  }
63
+ /**
64
+ * Validates admin auth configuration
65
+ * Returns error message if configuration is invalid, null if valid
66
+ */
67
+ export function validateAdminAuthConfig() {
68
+ if (!adminAuth?.enabled) {
69
+ return null; // Disabled, no validation needed
70
+ }
71
+ const types = getAdminAuthTypes();
72
+ if (types.length === 0) {
73
+ return 'adminAuth is enabled but no type is configured';
74
+ }
75
+ for (const t of types) {
76
+ const error = validateSingleAuthType(t);
77
+ if (error) {
78
+ return error;
79
+ }
80
+ }
81
+ return null;
82
+ }
83
+ /**
84
+ * Returns the list of auth methods available for the admin login UI.
85
+ * Maps auth types to UI categories: 'token' (permanentServerTokens, jwtToken) or 'basic'.
86
+ */
87
+ export function getAdminAuthMethods() {
88
+ if (!adminAuth?.enabled) {
89
+ return [];
90
+ }
91
+ const types = getAdminAuthTypes();
92
+ const methods = [];
93
+ for (const t of types) {
94
+ if (t === 'permanentServerTokens' || t === 'jwtToken') {
95
+ methods.push('token');
96
+ }
97
+ else if (t === 'basic') {
98
+ methods.push('basic');
99
+ }
100
+ // ntlm is handled by browser-native dialog, not by the login modal
101
+ }
102
+ return [...new Set(methods)];
103
+ }
104
+ /**
105
+ * Try authenticating a request against a single auth type.
106
+ * Returns auth result or null if this type doesn't match the request.
107
+ */
108
+ function tryAuthType(authType, scheme, credentials) {
109
+ switch (authType) {
110
+ case 'permanentServerTokens': {
111
+ if (scheme === 'basic') {
112
+ return null;
113
+ } // Not a bearer/token
114
+ const result = checkPermanentToken(credentials);
115
+ return result.errorReason
116
+ ? { success: false, error: result.errorReason }
117
+ : { success: true, username: 'ServerToken' };
118
+ }
119
+ case 'basic': {
120
+ if (scheme !== 'basic') {
121
+ return null;
122
+ } // Not basic auth
123
+ return checkBasicAuth(credentials);
124
+ }
125
+ case 'jwtToken': {
126
+ if (scheme === 'basic') {
127
+ return null;
128
+ } // Not a bearer/token
129
+ const result = checkJwtToken({ token: credentials });
130
+ return result.errorReason
131
+ ? { success: false, error: result.errorReason }
132
+ : { success: true, username: result.payload?.user || 'JWT User', payload: result.payload };
133
+ }
134
+ default:
135
+ return null;
136
+ }
137
+ }
60
138
  /**
61
139
  * Creates admin authentication middleware based on adminAuth.type config
62
140
  */
@@ -74,13 +152,14 @@ export function createAdminAuthMW() {
74
152
  next();
75
153
  }];
76
154
  }
77
- const authType = adminAuth.type;
78
- // logger.info(`Admin authentication enabled with type: ${authType}`);
79
- // For NTLM, use existing NTLM middleware
80
- if (authType === 'ntlm') {
155
+ const types = getAdminAuthTypes();
156
+ // If the only type is NTLM, use existing NTLM middleware
157
+ if (types.length === 1 && types[0] === 'ntlm') {
81
158
  return setupNTLMAuthentication();
82
159
  }
83
- // For other auth types, create standard middleware
160
+ // Filter out ntlm from the types that can be handled by the standard middleware
161
+ const standardTypes = types.filter((t) => t !== 'ntlm');
162
+ // For standard auth types, create middleware
84
163
  return [
85
164
  (req, res, next) => {
86
165
  // Set default NTLM info for compatibility with token-generator templates
@@ -92,64 +171,45 @@ export function createAdminAuthMW() {
92
171
  const { scheme, credentials } = getTokenFromHttpHeader(req);
93
172
  // If no credentials provided, request authentication
94
173
  if (!credentials) {
95
- return sendAuthRequired(res, authType);
174
+ return sendAuthRequired(res, standardTypes);
96
175
  }
97
- let authResult;
98
- switch (authType) {
99
- case 'permanentServerTokens': {
100
- const result = checkPermanentToken(credentials);
101
- authResult = result.errorReason
102
- ? { success: false, error: result.errorReason }
103
- : { success: true, username: 'ServerToken' };
104
- break;
105
- }
106
- case 'basic': {
107
- if (scheme !== 'basic') {
108
- return sendAuthRequired(res, authType, 'Basic authentication required');
176
+ // Try each configured auth type in order
177
+ for (const authType of standardTypes) {
178
+ const result = tryAuthType(authType, scheme || '', credentials);
179
+ if (result && result.success) {
180
+ req.ntlm = {
181
+ isAuthenticated: true,
182
+ username: result.username || 'Authenticated',
183
+ domain: authType,
184
+ };
185
+ if (result.payload) {
186
+ req.authPayload = result.payload;
109
187
  }
110
- authResult = checkBasicAuth(credentials);
111
- break;
112
- }
113
- case 'jwtToken': {
114
- const result = checkJwtToken({ token: credentials });
115
- authResult = result.errorReason
116
- ? { success: false, error: result.errorReason }
117
- : { success: true, username: result.payload?.user || 'JWT User', payload: result.payload };
118
- break;
188
+ return next();
119
189
  }
120
- default:
121
- authResult = { success: false, error: `Unknown auth type: ${authType}` };
122
190
  }
123
- if (!authResult.success) {
124
- logger.debug(`Admin auth failed: ${authResult.error}`);
125
- return sendAuthRequired(res, authType, authResult.error);
126
- }
127
- // Set authenticated user info
128
- req.ntlm = {
129
- isAuthenticated: true,
130
- username: authResult.username || 'Authenticated',
131
- domain: authType,
132
- };
133
- if (authResult.payload) {
134
- req.authPayload = authResult.payload;
135
- }
136
- next();
191
+ logger.debug('Admin auth failed: no matching auth type');
192
+ return sendAuthRequired(res, standardTypes, 'Authentication failed');
137
193
  },
138
194
  ];
139
195
  }
140
196
  /**
141
197
  * Send authentication required response
142
198
  */
143
- function sendAuthRequired(res, authType, message) {
199
+ function sendAuthRequired(res, authTypes, message) {
144
200
  const errorMessage = message || 'Authentication required';
145
- switch (authType) {
146
- case 'basic':
147
- res.setHeader('WWW-Authenticate', 'Basic realm="Admin Panel"');
148
- break;
149
- case 'permanentServerTokens':
150
- case 'jwtToken':
151
- res.setHeader('WWW-Authenticate', 'Bearer realm="Admin Panel"');
152
- break;
201
+ const hasBasic = authTypes.includes('basic');
202
+ const hasBearer = authTypes.includes('permanentServerTokens') || authTypes.includes('jwtToken');
203
+ // Set WWW-Authenticate headers for each supported scheme
204
+ const challenges = [];
205
+ if (hasBearer) {
206
+ challenges.push('Bearer realm="Admin Panel"');
207
+ }
208
+ if (hasBasic) {
209
+ challenges.push('Basic realm="Admin Panel"');
210
+ }
211
+ if (challenges.length) {
212
+ res.setHeader('WWW-Authenticate', challenges.join(', '));
153
213
  }
154
214
  res.status(401).json({
155
215
  success: false,
@@ -1 +1 @@
1
- {"version":3,"file":"admin-auth.js","sourceRoot":"","sources":["../../../src/core/auth/admin-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-auth.js","sourceRoot":"","sources":["../../../src/core/auth/admin-auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"startup-info.d.ts","sourceRoot":"","sources":["../../../src/core/bootstrap/startup-info.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,WAAW,GAAU,MAAM;IACtC,YAAY,EAAE,GAAG,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;CACpD,kBAgEA,CAAC"}
1
+ {"version":3,"file":"startup-info.d.ts","sourceRoot":"","sources":["../../../src/core/bootstrap/startup-info.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,WAAW,GAAU,MAAM;IACtC,YAAY,EAAE,GAAG,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC;CACpD,kBAiEA,CAAC"}
@@ -54,6 +54,7 @@ export const startupInfo = async (args) => {
54
54
  ...dbInfo,
55
55
  ['MCP Auth', mcpAuthInfo],
56
56
  ['Admin Auth', adminAuthInfo],
57
+ ['Gen JWT API', cfg.webServer?.genJwtApiEnable ? 'POST /gen-jwt' : 'disabled'],
57
58
  ...(args.customStartupInfo || []),
58
59
  consulInfoItem,
59
60
  ].filter(Boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"startup-info.js","sourceRoot":"","sources":["../../../src/core/bootstrap/startup-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup-info.js","sourceRoot":"","sources":["../../../src/core/bootstrap/startup-info.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-router.d.ts","sourceRoot":"","sources":["../../../src/core/web/admin-router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAgFpD;;GAEG;AACH,wBAAgB,iBAAiB,IAAK,MAAM,CAgR3C"}
1
+ {"version":3,"file":"admin-router.d.ts","sourceRoot":"","sources":["../../../src/core/web/admin-router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAwFpD;;GAEG;AACH,wBAAgB,iBAAiB,IAAK,MAAM,CAkR3C"}
@@ -6,7 +6,7 @@ import { dirname, join } from 'path';
6
6
  import { fileURLToPath } from 'url';
7
7
  import chalk from 'chalk';
8
8
  import { Router } from 'express';
9
- import { createAdminAuthMW } from '../auth/admin-auth.js';
9
+ import { createAdminAuthMW, getAdminAuthMethods, getAdminAuthTypes } from '../auth/admin-auth.js';
10
10
  import { checkJwtToken, generateToken } from '../auth/jwt.js';
11
11
  import { isNTLMEnabled } from '../auth/token-generator/ntlm/ntlm-domain-config.js';
12
12
  import { getSessionStats } from '../auth/token-generator/ntlm/ntlm-session-storage.js';
@@ -26,10 +26,17 @@ const timeToSeconds = {
26
26
  years: 60 * 60 * 24 * 365,
27
27
  };
28
28
  const { adminAuth } = appConfig.webServer || {};
29
- const adminAuthType = adminAuth?.enabled === true ? adminAuth.type : undefined;
30
- const ntlmEnabled = adminAuthType === 'ntlm' && isNTLMEnabled;
31
- // Check if auth type requires Bearer token (handled by frontend modal)
32
- const requiresBearerToken = adminAuthType === 'permanentServerTokens' || adminAuthType === 'jwtToken';
29
+ const adminAuthTypes = adminAuth?.enabled === true ? getAdminAuthTypes() : [];
30
+ const ntlmEnabled = adminAuthTypes.includes('ntlm') && isNTLMEnabled;
31
+ // Check if auth requires Bearer token modal (handled by frontend)
32
+ // Bearer-only means all types are token-based (no basic, no ntlm)
33
+ const hasTokenAuth = adminAuthTypes.includes('permanentServerTokens') || adminAuthTypes.includes('jwtToken');
34
+ const hasBasicAuth = adminAuthTypes.includes('basic');
35
+ const hasNtlmAuth = adminAuthTypes.includes('ntlm') && isNTLMEnabled;
36
+ // The frontend handles auth when we have token-based or basic types (not ntlm-only)
37
+ const requiresFrontendAuth = (hasTokenAuth || hasBasicAuth) && !hasNtlmAuth;
38
+ // For backward compat: requiresBearerToken is true when only token-based types (no basic, no ntlm)
39
+ const requiresBearerToken = hasTokenAuth && !hasBasicAuth && !hasNtlmAuth;
33
40
  /**
34
41
  * Checks custom authorization for Token Generator access
35
42
  * Returns null if authorized, or AuthResult with error if not
@@ -44,14 +51,14 @@ async function checkTokenGenAuthorization(req) {
44
51
  // Build input based on auth type
45
52
  const input = {
46
53
  user: req.ntlm?.username || 'Unknown',
47
- authType: (adminAuthType || 'permanentServerTokens'),
54
+ authType: (adminAuthTypes[0] || 'permanentServerTokens'),
48
55
  };
49
56
  // Add domain for NTLM
50
- if (adminAuthType === 'ntlm' && req.ntlm?.domain) {
57
+ if (adminAuthTypes.includes('ntlm') && req.ntlm?.domain) {
51
58
  input.domain = req.ntlm.domain;
52
59
  }
53
60
  // Add payload for JWT
54
- if (adminAuthType === 'jwtToken') {
61
+ if (adminAuthTypes.includes('jwtToken')) {
55
62
  input.payload = req.authPayload;
56
63
  }
57
64
  try {
@@ -78,24 +85,26 @@ export function createAdminRouter() {
78
85
  // ============================
79
86
  // PUBLIC ENDPOINTS (no auth required)
80
87
  // ============================
81
- // Public endpoint - auth config (frontend needs this to know if token modal is required)
88
+ // Public endpoint - auth config (frontend needs this to know which login form to show)
82
89
  router.get('/api/auth-config', (req, res) => {
83
90
  res.json({
84
91
  success: true,
85
- authType: adminAuthType || null,
92
+ authType: adminAuthTypes.length === 1 ? adminAuthTypes[0] : (adminAuthTypes.length ? adminAuthTypes : null),
86
93
  requiresBearerToken,
94
+ requiresFrontendAuth,
95
+ methods: getAdminAuthMethods(),
87
96
  timestamp: new Date().toISOString(),
88
97
  });
89
98
  });
90
- // Main admin page - always serve HTML (auth is handled by frontend for Bearer tokens)
91
- // For NTLM/Basic - middleware will handle auth before this route
92
- if (requiresBearerToken) {
93
- // For Bearer token auth: serve page without auth, frontend will handle token modal
99
+ // Main admin page - always serve HTML (auth is handled by frontend for token/basic)
100
+ // For NTLM-only - middleware will handle auth before this route
101
+ if (requiresFrontendAuth) {
102
+ // For frontend-handled auth: serve page without auth, frontend will handle modal
94
103
  router.get('/', (req, res) => {
95
- logger.info('Admin page accessed (Bearer token auth - frontend handles authentication)');
104
+ logger.info('Admin page accessed (frontend handles authentication)');
96
105
  res.sendFile(join(staticPath, 'index.html'));
97
106
  });
98
- // Logout for Bearer token auth - just return success, frontend clears sessionStorage
107
+ // Logout for frontend auth - just return success, frontend clears sessionStorage
99
108
  router.get('/logout', (req, res) => {
100
109
  res.setHeader('Clear-Site-Data', '"storage"');
101
110
  return res.status(200).json({
@@ -111,8 +120,8 @@ export function createAdminRouter() {
111
120
  const adminAuthMW = createAdminAuthMW();
112
121
  router.use(adminAuthMW);
113
122
  // Note: Static files (CSS, JS) are served globally at /static/token-gen/ by server-http.ts
114
- // Main admin page - for NTLM/Basic auth (middleware already authenticated)
115
- if (!requiresBearerToken) {
123
+ // Main admin page - for NTLM-only auth (middleware already authenticated)
124
+ if (!requiresFrontendAuth) {
116
125
  router.get('/', (req, res) => {
117
126
  const username = req.ntlm?.username || 'Unknown';
118
127
  const domain = req.ntlm?.domain || 'Unknown';
@@ -123,7 +132,7 @@ export function createAdminRouter() {
123
132
  // Logout for NTLM auth
124
133
  router.get('/logout', (req, res) => {
125
134
  logger.info(`Logout requested by: ${req.ntlm?.domain || 'Unknown'}\\${req.ntlm?.username || 'Unknown'}`);
126
- if (adminAuthType === 'ntlm') {
135
+ if (hasNtlmAuth) {
127
136
  res.setHeader('WWW-Authenticate', 'NTLM');
128
137
  res.setHeader('Clear-Site-Data', '"cookies", "storage"');
129
138
  return res.status(401).send('Authentication required - please login again');
@@ -251,7 +260,7 @@ export function createAdminRouter() {
251
260
  primaryColor: appConfig.uiColor.primary,
252
261
  authenticatedUser: `${domain}\\${username}`,
253
262
  isAuthenticated,
254
- authType: adminAuthType,
263
+ authType: adminAuthTypes.length === 1 ? adminAuthTypes[0] : adminAuthTypes,
255
264
  ntlmEnabled,
256
265
  timestamp: new Date().toISOString(),
257
266
  });
@@ -264,7 +273,7 @@ export function createAdminRouter() {
264
273
  success: false,
265
274
  error: error.message,
266
275
  serviceName: appConfig.name,
267
- authType: adminAuthType,
276
+ authType: adminAuthTypes.length === 1 ? adminAuthTypes[0] : adminAuthTypes,
268
277
  ntlmEnabled,
269
278
  });
270
279
  }
@@ -276,11 +285,11 @@ export function createAdminRouter() {
276
285
  const domain = req.ntlm?.domain || 'Unknown';
277
286
  const isAuthenticated = req.ntlm?.isAuthenticated || false;
278
287
  // Determine if logout is available (for all auth types except disabled)
279
- const canLogout = isAuthenticated && !!adminAuthType;
288
+ const canLogout = isAuthenticated && adminAuthTypes.length > 0;
280
289
  // Format user display based on auth type
281
290
  let userDisplay = null;
282
291
  if (isAuthenticated) {
283
- if (adminAuthType === 'ntlm') {
292
+ if (adminAuthTypes.includes('ntlm')) {
284
293
  userDisplay = `${domain}\\${username}`;
285
294
  }
286
295
  else {
@@ -289,7 +298,7 @@ export function createAdminRouter() {
289
298
  }
290
299
  res.json({
291
300
  success: true,
292
- authType: adminAuthType || null,
301
+ authType: adminAuthTypes.length === 1 ? adminAuthTypes[0] : (adminAuthTypes.length ? adminAuthTypes : null),
293
302
  isAuthenticated,
294
303
  user: userDisplay,
295
304
  canLogout,
@@ -300,7 +309,7 @@ export function createAdminRouter() {
300
309
  res.json({
301
310
  success: false,
302
311
  error: error.message,
303
- authType: adminAuthType || null,
312
+ authType: adminAuthTypes.length === 1 ? adminAuthTypes[0] : (adminAuthTypes.length ? adminAuthTypes : null),
304
313
  });
305
314
  }
306
315
  });
@@ -1 +1 @@
1
- {"version":3,"file":"admin-router.js","sourceRoot":"","sources":["../../../src/core/web/admin-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-router.js","sourceRoot":"","sources":["../../../src/core/web/admin-router.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server-http.d.ts","sourceRoot":"","sources":["../../../src/core/web/server-http.ts"],"names":[],"mappings":"AAiDA,eAAO,MAAM,cAAc,SAA8B,CAAC;AAyC1D;;GAEG;AACH,wBAAsB,eAAe,IAAK,OAAO,CAAC,IAAI,CAAC,CAydtD"}
1
+ {"version":3,"file":"server-http.d.ts","sourceRoot":"","sources":["../../../src/core/web/server-http.ts"],"names":[],"mappings":"AAkDA,eAAO,MAAM,cAAc,SAA8B,CAAC;AAyC1D;;GAEG;AACH,wBAAsB,eAAe,IAAK,OAAO,CAAC,IAAI,CAAC,CA6iBtD"}
@@ -9,6 +9,7 @@ import { RateLimiterMemory } from 'rate-limiter-flexible';
9
9
  import { createAgentTesterRouter } from '../agent-tester/agent-tester-router.js';
10
10
  import { validateAdminAuthConfig } from '../auth/admin-auth.js';
11
11
  import { createAgentTesterSessionMW } from '../auth/agent-tester-auth.js';
12
+ import { generateToken, MIN_ENCRYPT_KEY_LENGTH } from '../auth/jwt.js';
12
13
  import { createAuthMW } from '../auth/middleware.js';
13
14
  import { appConfig, getProjectData } from '../bootstrap/init-config.js';
14
15
  import { getMainDBConnectionStatus } from '../db/pg-db.js';
@@ -145,6 +146,73 @@ export async function startHttpServer() {
145
146
  const adminRouter = createAdminRouter();
146
147
  app.use('/admin', adminRouter);
147
148
  }
149
+ // JWT generation API endpoint
150
+ if (appConfig.webServer.genJwtApiEnable) {
151
+ const encryptKey = appConfig.webServer.auth?.jwtToken?.encryptKey;
152
+ if (!encryptKey || encryptKey.length < MIN_ENCRYPT_KEY_LENGTH || encryptKey === '***') {
153
+ logger.error('genJwtApiEnable is true but webServer.auth.jwtToken.encryptKey is not configured');
154
+ }
155
+ else {
156
+ const TTL_MULTIPLIERS = { s: 1, m: 60, d: 86400, y: 31536000 };
157
+ app.post('/gen-jwt', authMW, (req, res) => {
158
+ try {
159
+ const { username, ttl, service, params } = req.body;
160
+ if (!username || !username.trim()) {
161
+ return res.status(400).json({ success: false, error: 'username is required' });
162
+ }
163
+ if (!ttl || !ttl.trim()) {
164
+ return res.status(400).json({ success: false, error: 'ttl is required. Format: <N>s | <N>m | <N>d | <N>y' });
165
+ }
166
+ const ttlMatch = /^(\d+)([smdy])$/.exec(ttl.trim());
167
+ if (!ttlMatch) {
168
+ return res.status(400).json({ success: false, error: `Invalid ttl format "${ttl}". Expected: <N>s | <N>m | <N>d | <N>y` });
169
+ }
170
+ const ttlValue = parseInt(ttlMatch[1], 10);
171
+ const ttlUnit = ttlMatch[2];
172
+ if (ttlValue <= 0) {
173
+ return res.status(400).json({ success: false, error: 'ttl value must be greater than 0' });
174
+ }
175
+ const liveTimeSec = ttlValue * TTL_MULTIPLIERS[ttlUnit];
176
+ // Build payload
177
+ const payload = {};
178
+ if (service && service.trim()) {
179
+ payload.service = service.trim();
180
+ }
181
+ // Parse params — string "key=value;key=value" or object
182
+ if (params) {
183
+ if (typeof params === 'string') {
184
+ for (const pair of params.split(';')) {
185
+ const eqIdx = pair.indexOf('=');
186
+ if (eqIdx > 0) {
187
+ const key = pair.substring(0, eqIdx).trim();
188
+ const value = pair.substring(eqIdx + 1).trim();
189
+ if (key) {
190
+ payload[key] = value;
191
+ }
192
+ }
193
+ }
194
+ }
195
+ else if (typeof params === 'object') {
196
+ Object.assign(payload, params);
197
+ }
198
+ }
199
+ const token = generateToken(username.trim(), liveTimeSec, payload);
200
+ const expire = Date.now() + (liveTimeSec * 1000);
201
+ return res.json({
202
+ success: true,
203
+ token,
204
+ user: username.trim().toLowerCase(),
205
+ expire: new Date(expire).toISOString(),
206
+ ttlSeconds: liveTimeSec,
207
+ });
208
+ }
209
+ catch (error) {
210
+ logger.error('Error generating JWT token:', error);
211
+ return res.status(500).json({ success: false, error: error.message });
212
+ }
213
+ });
214
+ }
215
+ }
148
216
  const at = appConfig.agentTester;
149
217
  // Agent Tester routes
150
218
  if (at?.enabled) {
@@ -436,6 +504,9 @@ export async function startHttpServer() {
436
504
  availableEndpoints.openapi = 'GET /api/openapi.json';
437
505
  availableEndpoints.openapiYaml = 'GET /api/openapi.yaml';
438
506
  }
507
+ if (appConfig.webServer.genJwtApiEnable) {
508
+ availableEndpoints.genJwt = 'POST /gen-jwt';
509
+ }
439
510
  if (isAdminEnabled) {
440
511
  availableEndpoints.admin = 'GET /admin';
441
512
  }