@baasix/baasix 0.1.61 → 0.1.63

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.
Files changed (126) hide show
  1. package/dist/app/404/index.html +1 -1
  2. package/dist/app/404.html +1 -1
  3. package/dist/app/_next/static/chunks/2667-7993936698bf75a9.js +1 -0
  4. package/dist/app/_next/static/chunks/3233-ae028c73c510ebea.js +1 -0
  5. package/dist/app/_next/static/chunks/4033-ea89dd457b87cead.js +1 -0
  6. package/dist/app/_next/static/chunks/799-d4372ad380b0dec6.js +1 -0
  7. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/all-activity/{page-a7e9f0b39624b489.js → page-8e1f084e807ff5ee.js} +1 -1
  8. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/email-log/{page-40f2b9ecf73e74b5.js → page-4e08df2865fe9d0f.js} +1 -1
  9. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/notifications/{page-21fcdd2f0b3549db.js → page-3a5070a5088835ae.js} +1 -1
  10. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/sessions/{page-82662735f1ec476a.js → page-edfa379cab0d3ccb.js} +1 -1
  11. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/workflow-executions/{page-4a781c95e5fb25f0.js → page-d007890f17b60862.js} +1 -1
  12. package/dist/app/_next/static/chunks/app/(authenticated)/activity-log/workflow-logs/{page-70bf8d31074dcba0.js → page-976e9829706ac8f2.js} +1 -1
  13. package/dist/app/_next/static/chunks/app/(authenticated)/dashboard/page-6bff6e8911fc5036.js +1 -0
  14. package/dist/app/_next/static/chunks/app/(authenticated)/data-browser/{page-d5715b9743d8dba4.js → page-fbb7a4d4f2a4353d.js} +1 -1
  15. package/dist/app/_next/static/chunks/app/(authenticated)/file-manager/{page-c008de2bcf6811b9.js → page-cea6a2c1670d4ef5.js} +1 -1
  16. package/dist/app/_next/static/chunks/app/(authenticated)/layout-b7f18737e4c308a4.js +1 -0
  17. package/dist/app/_next/static/chunks/app/(authenticated)/settings/migrations/page-505c3389890685b9.js +1 -0
  18. package/dist/app/_next/static/chunks/app/(authenticated)/settings/permissions/{page-2d3043500adcdb12.js → page-ed80f4bd5d81df95.js} +1 -1
  19. package/dist/app/_next/static/chunks/app/(authenticated)/settings/project/{page-6a58f15efb013e17.js → page-310b8ce72d0516ea.js} +1 -1
  20. package/dist/app/_next/static/chunks/app/(authenticated)/settings/roles/{page-00cf3e4483986407.js → page-fd62dc19ac88dd64.js} +1 -1
  21. package/dist/app/_next/static/chunks/app/(authenticated)/settings/schema/page-3d91124704c2e853.js +1 -0
  22. package/dist/app/_next/static/chunks/app/(authenticated)/settings/schema-diff/page-cae8772a7ae93b9a.js +1 -0
  23. package/dist/app/_next/static/chunks/app/(authenticated)/settings/tasks/{page-fa3c401992a2fb8f.js → page-1479604bbfc53a83.js} +1 -1
  24. package/dist/app/_next/static/chunks/app/(authenticated)/settings/templates/edit/{page-4ce715d527c717a8.js → page-a611195661ce22bd.js} +1 -1
  25. package/dist/app/_next/static/chunks/app/(authenticated)/settings/templates/{page-aafbfd4f12875738.js → page-6787b62a4960304f.js} +1 -1
  26. package/dist/app/_next/static/chunks/app/(authenticated)/settings/tenants/{page-f34d97ce6f68183b.js → page-856d4af5fbd76c8e.js} +1 -1
  27. package/dist/app/_next/static/chunks/app/(authenticated)/users/invites/{page-20dd05a8745b6283.js → page-ed5493d55f6c1db8.js} +1 -1
  28. package/dist/app/_next/static/chunks/app/(authenticated)/users/list/{page-479a164304f4de3f.js → page-02e6ef533bdc3bbc.js} +1 -1
  29. package/dist/app/_next/static/chunks/app/(authenticated)/users/{page-909d7be1b8d9800c.js → page-faf321b61a6fdeef.js} +1 -1
  30. package/dist/app/_next/static/chunks/app/(authenticated)/users/preferences/{page-e3fbcc425e1710e5.js → page-2116015e962a2ecc.js} +1 -1
  31. package/dist/app/_next/static/chunks/app/(authenticated)/users/user-roles/{page-3f654c69d79269f7.js → page-7d1bcbbfc8f0694b.js} +1 -1
  32. package/dist/app/_next/static/chunks/app/(authenticated)/workflows/edit/{page-753cf274fd329860.js → page-45c465caaa5679bd.js} +1 -1
  33. package/dist/app/_next/static/chunks/app/(authenticated)/workflows/{page-33c1c69678122839.js → page-7f9cb24aaa798f42.js} +1 -1
  34. package/dist/app/_next/static/chunks/{main-324e91f5a430cddf.js → main-8ffa7219a08e42cf.js} +1 -1
  35. package/dist/app/_next/static/chunks/{webpack-b29732cfe967a5f5.js → webpack-7a100cbf9402e7ea.js} +1 -1
  36. package/dist/app/_next/static/css/45276c37be155f45.css +3 -0
  37. package/dist/app/activity-log/all-activity/index.html +1 -1
  38. package/dist/app/activity-log/all-activity/index.txt +3 -3
  39. package/dist/app/activity-log/email-log/index.html +1 -1
  40. package/dist/app/activity-log/email-log/index.txt +3 -3
  41. package/dist/app/activity-log/index.html +1 -1
  42. package/dist/app/activity-log/index.txt +2 -2
  43. package/dist/app/activity-log/notifications/index.html +1 -1
  44. package/dist/app/activity-log/notifications/index.txt +3 -3
  45. package/dist/app/activity-log/sessions/index.html +1 -1
  46. package/dist/app/activity-log/sessions/index.txt +3 -3
  47. package/dist/app/activity-log/workflow-executions/index.html +1 -1
  48. package/dist/app/activity-log/workflow-executions/index.txt +3 -3
  49. package/dist/app/activity-log/workflow-logs/index.html +1 -1
  50. package/dist/app/activity-log/workflow-logs/index.txt +3 -3
  51. package/dist/app/change-password/index.html +1 -1
  52. package/dist/app/change-password/index.txt +2 -2
  53. package/dist/app/dashboard/index.html +1 -1
  54. package/dist/app/dashboard/index.txt +3 -3
  55. package/dist/app/data-browser/index.html +1 -1
  56. package/dist/app/data-browser/index.txt +3 -3
  57. package/dist/app/file-manager/index.html +1 -1
  58. package/dist/app/file-manager/index.txt +3 -3
  59. package/dist/app/forgot-password/index.html +1 -1
  60. package/dist/app/forgot-password/index.txt +1 -1
  61. package/dist/app/index.html +1 -1
  62. package/dist/app/index.txt +1 -1
  63. package/dist/app/login/index.html +1 -1
  64. package/dist/app/login/index.txt +1 -1
  65. package/dist/app/register/index.html +1 -1
  66. package/dist/app/register/index.txt +1 -1
  67. package/dist/app/settings/migrations/index.html +1 -1
  68. package/dist/app/settings/migrations/index.txt +3 -3
  69. package/dist/app/settings/permissions/index.html +1 -1
  70. package/dist/app/settings/permissions/index.txt +3 -3
  71. package/dist/app/settings/project/index.html +1 -1
  72. package/dist/app/settings/project/index.txt +3 -3
  73. package/dist/app/settings/roles/index.html +1 -1
  74. package/dist/app/settings/roles/index.txt +3 -3
  75. package/dist/app/settings/schema/index.html +1 -1
  76. package/dist/app/settings/schema/index.txt +3 -3
  77. package/dist/app/settings/schema-diff/index.html +1 -0
  78. package/dist/app/settings/schema-diff/index.txt +14 -0
  79. package/dist/app/settings/tasks/index.html +1 -1
  80. package/dist/app/settings/tasks/index.txt +3 -3
  81. package/dist/app/settings/templates/edit/index.html +1 -1
  82. package/dist/app/settings/templates/edit/index.txt +3 -3
  83. package/dist/app/settings/templates/index.html +1 -1
  84. package/dist/app/settings/templates/index.txt +3 -3
  85. package/dist/app/settings/tenants/index.html +1 -1
  86. package/dist/app/settings/tenants/index.txt +3 -3
  87. package/dist/app/users/index.html +1 -1
  88. package/dist/app/users/index.txt +3 -3
  89. package/dist/app/users/invites/index.html +1 -1
  90. package/dist/app/users/invites/index.txt +3 -3
  91. package/dist/app/users/list/index.html +1 -1
  92. package/dist/app/users/list/index.txt +3 -3
  93. package/dist/app/users/preferences/index.html +1 -1
  94. package/dist/app/users/preferences/index.txt +3 -3
  95. package/dist/app/users/user-roles/index.html +1 -1
  96. package/dist/app/users/user-roles/index.txt +3 -3
  97. package/dist/app/workflows/detail/index.html +1 -1
  98. package/dist/app/workflows/detail/index.txt +2 -2
  99. package/dist/app/workflows/edit/index.html +1 -1
  100. package/dist/app/workflows/edit/index.txt +3 -3
  101. package/dist/app/workflows/execution/index.html +1 -1
  102. package/dist/app/workflows/execution/index.txt +2 -2
  103. package/dist/app/workflows/index.html +1 -1
  104. package/dist/app/workflows/index.txt +3 -3
  105. package/dist/routes/mcp.route.d.ts.map +1 -1
  106. package/dist/routes/mcp.route.js +283 -2
  107. package/dist/routes/mcp.route.js.map +1 -1
  108. package/dist/routes/schema-diff.route.d.ts +7 -0
  109. package/dist/routes/schema-diff.route.d.ts.map +1 -0
  110. package/dist/routes/schema-diff.route.js +320 -0
  111. package/dist/routes/schema-diff.route.js.map +1 -0
  112. package/dist/services/ItemsService.d.ts +5 -4
  113. package/dist/services/ItemsService.d.ts.map +1 -1
  114. package/dist/services/ItemsService.js +30 -26
  115. package/dist/services/ItemsService.js.map +1 -1
  116. package/package.json +1 -1
  117. package/dist/app/_next/static/chunks/2033-8355304f13887db5.js +0 -1
  118. package/dist/app/_next/static/chunks/4952-1b97320cf61f3f21.js +0 -1
  119. package/dist/app/_next/static/chunks/6547-1aaab011e6089042.js +0 -1
  120. package/dist/app/_next/static/chunks/app/(authenticated)/dashboard/page-1ceeac9e72997a8a.js +0 -1
  121. package/dist/app/_next/static/chunks/app/(authenticated)/layout-2a4b221af5cbbade.js +0 -1
  122. package/dist/app/_next/static/chunks/app/(authenticated)/settings/migrations/page-6681c14dd478cc9a.js +0 -1
  123. package/dist/app/_next/static/chunks/app/(authenticated)/settings/schema/page-e7f836d3a7f7c5d0.js +0 -1
  124. package/dist/app/_next/static/css/17a2e01c4184b106.css +0 -3
  125. /package/dist/app/_next/static/{ORfvBD2VaKIB_8_7O9AgQ → O6PA41CeUjDJQ4sma7vMH}/_buildManifest.js +0 -0
  126. /package/dist/app/_next/static/{ORfvBD2VaKIB_8_7O9AgQ → O6PA41CeUjDJQ4sma7vMH}/_ssgManifest.js +0 -0
@@ -16,7 +16,8 @@
16
16
  * Note: @ts-nocheck is used because the MCP SDK types cause TypeScript
17
17
  * to hang during compilation due to complex generic type inference.
18
18
  */
19
- import { randomUUID } from "crypto";
19
+ import { randomUUID, createHash } from "crypto";
20
+ import bodyParser from "body-parser";
20
21
  import env from "../utils/env.js";
21
22
  // ==================== Lazy-loaded Dependencies ====================
22
23
  let StreamableHTTPServerTransport;
@@ -42,6 +43,64 @@ async function loadMCPDependencies() {
42
43
  }
43
44
  // Cache for email/password-based login (per email)
44
45
  const loginCache = new Map();
46
+ // ==================== OAuth 2.1 for MCP Remote Auth ====================
47
+ // In-memory stores for OAuth clients, authorization codes, and access tokens
48
+ const oauthClients = new Map();
49
+ const authorizationCodes = new Map();
50
+ const oauthAccessTokens = new Map();
51
+ function escapeHtml(unsafe) {
52
+ return String(unsafe || '')
53
+ .replace(/&/g, "&")
54
+ .replace(/</g, "&lt;")
55
+ .replace(/>/g, "&gt;")
56
+ .replace(/"/g, "&quot;")
57
+ .replace(/'/g, "&#039;");
58
+ }
59
+ function renderLoginPage(res, params) {
60
+ const html = `<!DOCTYPE html>
61
+ <html lang="en">
62
+ <head>
63
+ <meta charset="UTF-8">
64
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
65
+ <title>Baasix - MCP Authorization</title>
66
+ <style>
67
+ * { box-sizing: border-box; margin: 0; padding: 0; }
68
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #f0f2f5; }
69
+ .card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 2px 12px rgba(0,0,0,.08); width: 360px; }
70
+ h2 { font-size: 1.25rem; margin-bottom: 0.25rem; }
71
+ .subtitle { color: #666; font-size: 0.875rem; margin-bottom: 1.5rem; }
72
+ label { display: block; font-size: 0.875rem; font-weight: 500; margin-bottom: 0.25rem; color: #333; }
73
+ input[type="email"], input[type="password"] { width: 100%; padding: 0.5rem 0.75rem; margin-bottom: 1rem; border: 1px solid #ddd; border-radius: 6px; font-size: 0.875rem; }
74
+ input:focus { outline: none; border-color: #0070f3; box-shadow: 0 0 0 2px rgba(0,112,243,.15); }
75
+ button { width: 100%; padding: 0.625rem; background: #0070f3; color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 0.875rem; font-weight: 500; }
76
+ button:hover { background: #005bb5; }
77
+ .error { background: #fef2f2; color: #dc2626; padding: 0.5rem 0.75rem; border-radius: 6px; font-size: 0.8125rem; margin-bottom: 1rem; }
78
+ </style>
79
+ </head>
80
+ <body><div class="card">
81
+ <h2>Baasix MCP</h2>
82
+ <p class="subtitle">Sign in to authorize MCP access</p>
83
+ ${params.error ? `<div class="error">${escapeHtml(params.error)}</div>` : ''}
84
+ <form method="POST">
85
+ <input type="hidden" name="client_id" value="${escapeHtml(params.client_id)}">
86
+ <input type="hidden" name="redirect_uri" value="${escapeHtml(params.redirect_uri)}">
87
+ <input type="hidden" name="response_type" value="${escapeHtml(params.response_type)}">
88
+ <input type="hidden" name="state" value="${escapeHtml(params.state || '')}">
89
+ <input type="hidden" name="scope" value="${escapeHtml(params.scope || '')}">
90
+ <input type="hidden" name="code_challenge" value="${escapeHtml(params.code_challenge || '')}">
91
+ <input type="hidden" name="code_challenge_method" value="${escapeHtml(params.code_challenge_method || '')}">
92
+ <label for="email">Email</label>
93
+ <input type="email" id="email" name="email" placeholder="you@example.com" required autofocus>
94
+ <label for="password">Password</label>
95
+ <input type="password" id="password" name="password" placeholder="Password" required>
96
+ <button type="submit">Sign In</button>
97
+ </form>
98
+ </div></body></html>`;
99
+ res.setHeader("Content-Type", "text/html");
100
+ res.send(html);
101
+ }
102
+ // URL-encoded body parser for OAuth form submissions
103
+ const urlencodedParser = bodyParser.urlencoded({ extended: true });
45
104
  /**
46
105
  * Login using email and password via internal auth service (no HTTP round-trip).
47
106
  * Uses getAuthInstance().signIn() directly, same as the auth route handlers.
@@ -153,9 +212,17 @@ async function getAccountability(req) {
153
212
  if (authHeader?.startsWith("Bearer ")) {
154
213
  const token = authHeader.substring(7).trim();
155
214
  if (token) {
215
+ // Check if it's an OAuth access token from MCP OAuth flow
216
+ const oauthToken = oauthAccessTokens.get(token);
217
+ if (oauthToken && oauthToken.expires_at > Date.now()) {
218
+ return { accountability: oauthToken.accountability };
219
+ }
220
+ if (oauthToken) {
221
+ oauthAccessTokens.delete(token); // Clean up expired token
222
+ }
156
223
  // req.accountability is already populated by auth middleware with the full shape:
157
224
  // { user: { id, email, isAdmin, role, ... }, role: { id, name, isTenantSpecific }, permissions, tenant, ipaddress }
158
- if (req.accountability?.user || req.accountability?.role) {
225
+ if (req.accountability?.user) {
159
226
  return {
160
227
  accountability: {
161
228
  user: req.accountability.user || null,
@@ -200,6 +267,220 @@ const registerEndpoint = async (app, _context) => {
200
267
  await loadMCPDependencies();
201
268
  const mcpPath = env.get("MCP_PATH") || "/mcp";
202
269
  console.info(`[MCP] Registering MCP endpoint at ${mcpPath}`);
270
+ // ==================== OAuth 2.1 Endpoints for MCP Remote Auth ====================
271
+ const baseURL = env.get("BASE_URL") || `http://localhost:${env.get("PORT") || 4400}`;
272
+ // OAuth Protected Resource Metadata (RFC 9728)
273
+ app.get(`/.well-known/oauth-protected-resource${mcpPath}`, (_req, res) => {
274
+ res.json({
275
+ resource: `${baseURL}${mcpPath}`,
276
+ authorization_servers: [baseURL],
277
+ bearer_methods_supported: ["header"],
278
+ scopes_supported: ["mcp:tools"],
279
+ });
280
+ });
281
+ // Also serve at root path as fallback
282
+ app.get("/.well-known/oauth-protected-resource", (_req, res) => {
283
+ res.json({
284
+ resource: `${baseURL}${mcpPath}`,
285
+ authorization_servers: [baseURL],
286
+ bearer_methods_supported: ["header"],
287
+ scopes_supported: ["mcp:tools"],
288
+ });
289
+ });
290
+ // OAuth Authorization Server Metadata (RFC 8414)
291
+ app.get("/.well-known/oauth-authorization-server", (_req, res) => {
292
+ res.json({
293
+ issuer: baseURL,
294
+ authorization_endpoint: `${baseURL}${mcpPath}/oauth/authorize`,
295
+ token_endpoint: `${baseURL}${mcpPath}/oauth/token`,
296
+ registration_endpoint: `${baseURL}${mcpPath}/oauth/register`,
297
+ response_types_supported: ["code"],
298
+ grant_types_supported: ["authorization_code"],
299
+ token_endpoint_auth_methods_supported: ["client_secret_basic", "client_secret_post", "none"],
300
+ code_challenge_methods_supported: ["S256"],
301
+ scopes_supported: ["mcp:tools"],
302
+ });
303
+ });
304
+ // Dynamic Client Registration (RFC 7591)
305
+ app.post(`${mcpPath}/oauth/register`, (req, res) => {
306
+ const body = req.body;
307
+ const client_id = randomUUID();
308
+ const client_secret = randomUUID();
309
+ const tokenEndpointAuthMethod = body.token_endpoint_auth_method || "client_secret_basic";
310
+ const isPublic = tokenEndpointAuthMethod === "none";
311
+ oauthClients.set(client_id, {
312
+ client_id,
313
+ client_secret: isPublic ? "" : client_secret,
314
+ redirect_uris: body.redirect_uris || [],
315
+ client_name: body.client_name,
316
+ token_endpoint_auth_method: tokenEndpointAuthMethod,
317
+ created_at: Date.now(),
318
+ });
319
+ const response = {
320
+ client_id,
321
+ client_id_issued_at: Math.floor(Date.now() / 1000),
322
+ ...body,
323
+ };
324
+ if (!isPublic) {
325
+ response.client_secret = client_secret;
326
+ response.client_secret_expires_at = 0;
327
+ }
328
+ console.info(`[MCP OAuth] Client registered: ${client_id} (${body.client_name || 'unnamed'})`);
329
+ res.status(201).json(response);
330
+ });
331
+ // Authorization Endpoint - GET (show login form)
332
+ app.get(`${mcpPath}/oauth/authorize`, (req, res) => {
333
+ const { client_id, redirect_uri, response_type, state, scope, code_challenge, code_challenge_method } = req.query;
334
+ if (response_type !== "code") {
335
+ res.status(400).json({ error: "unsupported_response_type" });
336
+ return;
337
+ }
338
+ const client = oauthClients.get(client_id);
339
+ if (!client) {
340
+ res.status(400).json({ error: "invalid_client", error_description: "Unknown client_id" });
341
+ return;
342
+ }
343
+ if (redirect_uri && !client.redirect_uris.includes(redirect_uri)) {
344
+ res.status(400).json({ error: "invalid_request", error_description: "Invalid redirect_uri" });
345
+ return;
346
+ }
347
+ renderLoginPage(res, { client_id, redirect_uri, response_type, state, scope, code_challenge, code_challenge_method });
348
+ });
349
+ // Authorization Endpoint - POST (handle login form submission)
350
+ app.post(`${mcpPath}/oauth/authorize`, urlencodedParser, async (req, res) => {
351
+ const { email, password, client_id, redirect_uri, state, scope, code_challenge, code_challenge_method } = req.body;
352
+ const client = oauthClients.get(client_id);
353
+ if (!client) {
354
+ renderLoginPage(res, { client_id, redirect_uri, response_type: "code", state, scope, code_challenge, code_challenge_method, error: "Unknown client" });
355
+ return;
356
+ }
357
+ if (redirect_uri && !client.redirect_uris.includes(redirect_uri)) {
358
+ renderLoginPage(res, { client_id, redirect_uri, response_type: "code", state, scope, code_challenge, code_challenge_method, error: "Invalid redirect URI" });
359
+ return;
360
+ }
361
+ const ip = req.ip || "127.0.0.1";
362
+ const accountability = await performLogin(email, password, `oauth:${email}`, ip);
363
+ if (!accountability) {
364
+ renderLoginPage(res, { client_id, redirect_uri, response_type: "code", state, scope, code_challenge, code_challenge_method, error: "Invalid email or password" });
365
+ return;
366
+ }
367
+ // Generate authorization code
368
+ const code = randomUUID();
369
+ authorizationCodes.set(code, {
370
+ client_id,
371
+ redirect_uri,
372
+ scope: scope || "mcp:tools",
373
+ code_challenge,
374
+ code_challenge_method,
375
+ expires_at: Date.now() + 10 * 60 * 1000,
376
+ accountability,
377
+ });
378
+ const redirectURL = new URL(redirect_uri);
379
+ redirectURL.searchParams.set("code", code);
380
+ if (state)
381
+ redirectURL.searchParams.set("state", state);
382
+ console.info(`[MCP OAuth] Authorization code issued for user ${accountability.user?.email}`);
383
+ res.redirect(302, redirectURL.toString());
384
+ });
385
+ // Token Endpoint
386
+ app.post(`${mcpPath}/oauth/token`, urlencodedParser, async (req, res) => {
387
+ const { grant_type, code, redirect_uri, code_verifier, client_id: body_client_id, client_secret: body_client_secret } = req.body;
388
+ let client_id = body_client_id;
389
+ let client_secret = body_client_secret;
390
+ // Parse Basic auth header
391
+ const tokenAuthHeader = req.headers["authorization"];
392
+ if (tokenAuthHeader?.startsWith("Basic ")) {
393
+ try {
394
+ const decoded = Buffer.from(tokenAuthHeader.substring(6), "base64").toString();
395
+ const colonIdx = decoded.indexOf(":");
396
+ if (colonIdx === -1)
397
+ throw new Error("Invalid format");
398
+ client_id = decodeURIComponent(decoded.substring(0, colonIdx));
399
+ client_secret = decodeURIComponent(decoded.substring(colonIdx + 1));
400
+ }
401
+ catch {
402
+ res.status(401).json({ error: "invalid_client", error_description: "Invalid Basic auth header" });
403
+ return;
404
+ }
405
+ }
406
+ if (grant_type !== "authorization_code") {
407
+ res.status(400).json({ error: "unsupported_grant_type" });
408
+ return;
409
+ }
410
+ if (!code) {
411
+ res.status(400).json({ error: "invalid_request", error_description: "code is required" });
412
+ return;
413
+ }
414
+ const authCode = authorizationCodes.get(code);
415
+ if (!authCode) {
416
+ res.status(400).json({ error: "invalid_grant", error_description: "Invalid or expired authorization code" });
417
+ return;
418
+ }
419
+ // Delete the code (single use)
420
+ authorizationCodes.delete(code);
421
+ if (authCode.expires_at < Date.now()) {
422
+ res.status(400).json({ error: "invalid_grant", error_description: "Authorization code expired" });
423
+ return;
424
+ }
425
+ if (authCode.client_id !== client_id) {
426
+ res.status(400).json({ error: "invalid_client", error_description: "client_id mismatch" });
427
+ return;
428
+ }
429
+ if (authCode.redirect_uri && authCode.redirect_uri !== redirect_uri) {
430
+ res.status(400).json({ error: "invalid_grant", error_description: "redirect_uri mismatch" });
431
+ return;
432
+ }
433
+ // Validate client credentials for confidential clients
434
+ const client = oauthClients.get(client_id);
435
+ if (client && client.token_endpoint_auth_method !== "none") {
436
+ if (client.client_secret && client.client_secret !== client_secret) {
437
+ res.status(401).json({ error: "invalid_client", error_description: "Invalid client credentials" });
438
+ return;
439
+ }
440
+ }
441
+ // PKCE verification
442
+ if (authCode.code_challenge) {
443
+ if (!code_verifier) {
444
+ res.status(400).json({ error: "invalid_request", error_description: "code_verifier is required" });
445
+ return;
446
+ }
447
+ let challenge;
448
+ if (authCode.code_challenge_method === "S256") {
449
+ challenge = createHash("sha256").update(code_verifier).digest("base64url");
450
+ }
451
+ else {
452
+ challenge = code_verifier;
453
+ }
454
+ if (challenge !== authCode.code_challenge) {
455
+ res.status(400).json({ error: "invalid_grant", error_description: "PKCE verification failed" });
456
+ return;
457
+ }
458
+ }
459
+ // Generate access token
460
+ const access_token = randomUUID();
461
+ oauthAccessTokens.set(access_token, {
462
+ client_id,
463
+ scope: authCode.scope,
464
+ expires_at: Date.now() + 60 * 60 * 1000, // 1 hour
465
+ accountability: authCode.accountability,
466
+ });
467
+ // Clean up expired tokens periodically
468
+ if (oauthAccessTokens.size % 100 === 0) {
469
+ const now = Date.now();
470
+ for (const [key, val] of oauthAccessTokens) {
471
+ if (val.expires_at < now)
472
+ oauthAccessTokens.delete(key);
473
+ }
474
+ }
475
+ console.info(`[MCP OAuth] Access token issued for client ${client_id}`);
476
+ res.json({
477
+ access_token,
478
+ token_type: "Bearer",
479
+ expires_in: 3600,
480
+ scope: authCode.scope,
481
+ });
482
+ });
483
+ // ==================== End OAuth 2.1 Endpoints ====================
203
484
  /**
204
485
  * Handle MCP requests via Streamable HTTP transport
205
486
  * Supports both POST (for requests) and GET (for SSE notifications)
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.route.js","sourceRoot":"","sources":["../../baasix/routes/mcp.route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.route.js","sourceRoot":"","sources":["../../baasix/routes/mcp.route.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Express } from "../types/index.js";
2
+ declare const _default: {
3
+ id: string;
4
+ handler: (app: Express, context?: any) => void;
5
+ };
6
+ export default _default;
7
+ //# sourceMappingURL=schema-diff.route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-diff.route.d.ts","sourceRoot":"","sources":["../../baasix/routes/schema-diff.route.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;;;mBAuDlB,OAAO,YAAY,GAAG;;AA4SrD,wBAGE"}