@samanhappy/mcphub 1.1.0 → 1.1.2

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 (125) hide show
  1. package/dist/betterAuth.js +5 -0
  2. package/dist/betterAuth.js.map +1 -1
  3. package/dist/clients/legacyMcpClient.js +1 -1
  4. package/dist/clients/legacyMcpClient.js.map +1 -1
  5. package/dist/clients/mcpSdkClient.js +28359 -0
  6. package/dist/clients/mcpSdkClient.js.map +7 -0
  7. package/dist/config/index.js +13 -7
  8. package/dist/config/index.js.map +1 -1
  9. package/dist/constants/smartRoutingDefaults.js +23 -0
  10. package/dist/constants/smartRoutingDefaults.js.map +1 -0
  11. package/dist/controllers/authController.js +5 -0
  12. package/dist/controllers/authController.js.map +1 -1
  13. package/dist/controllers/betterAuthController.js +3 -1
  14. package/dist/controllers/betterAuthController.js.map +1 -1
  15. package/dist/controllers/serverController.js +99 -18
  16. package/dist/controllers/serverController.js.map +1 -1
  17. package/dist/dao/ServerDao.js.map +1 -1
  18. package/dist/dao/ServerDaoDbImpl.js +13 -1
  19. package/dist/dao/ServerDaoDbImpl.js.map +1 -1
  20. package/dist/dao/UserDao.js +57 -34
  21. package/dist/dao/UserDao.js.map +1 -1
  22. package/dist/dao/base/JsonFileBaseDao.js +11 -6
  23. package/dist/dao/base/JsonFileBaseDao.js.map +1 -1
  24. package/dist/db/entities/Server.js +4 -0
  25. package/dist/db/entities/Server.js.map +1 -1
  26. package/dist/middlewares/auth.js +17 -0
  27. package/dist/middlewares/auth.js.map +1 -1
  28. package/dist/routes/index.js +3 -5
  29. package/dist/routes/index.js.map +1 -1
  30. package/dist/services/betterAuthConfig.js +18 -95
  31. package/dist/services/betterAuthConfig.js.map +1 -1
  32. package/dist/services/betterAuthSession.js +19 -3
  33. package/dist/services/betterAuthSession.js.map +1 -1
  34. package/dist/services/credentialBindingService.js +42 -0
  35. package/dist/services/credentialBindingService.js.map +1 -1
  36. package/dist/services/forwardAuthService.js +277 -0
  37. package/dist/services/forwardAuthService.js.map +1 -0
  38. package/dist/services/keepAliveService.js +1 -1
  39. package/dist/services/keepAliveService.js.map +1 -1
  40. package/dist/services/mcpOAuthProvider.js +24 -0
  41. package/dist/services/mcpOAuthProvider.js.map +1 -1
  42. package/dist/services/mcpService.js +51 -15
  43. package/dist/services/mcpService.js.map +1 -1
  44. package/dist/services/oauthSettingsStore.js +1 -1
  45. package/dist/services/oauthSettingsStore.js.map +1 -1
  46. package/dist/services/smartRoutingService.js +54 -52
  47. package/dist/services/smartRoutingService.js.map +1 -1
  48. package/dist/services/sseService.js +20 -0
  49. package/dist/services/sseService.js.map +1 -1
  50. package/dist/services/templateService.js +10 -9
  51. package/dist/services/templateService.js.map +1 -1
  52. package/dist/utils/migration.js +8 -6
  53. package/dist/utils/migration.js.map +1 -1
  54. package/dist/utils/serverAvailability.js +9 -0
  55. package/dist/utils/serverAvailability.js.map +1 -0
  56. package/dist/utils/serverConfigPersistence.js +12 -1
  57. package/dist/utils/serverConfigPersistence.js.map +1 -1
  58. package/dist/utils/serverConfigValidation.js +5 -1
  59. package/dist/utils/serverConfigValidation.js.map +1 -1
  60. package/dist/utils/settingResolvers.js +97 -0
  61. package/dist/utils/settingResolvers.js.map +1 -0
  62. package/dist/utils/settingsSync.js +198 -0
  63. package/dist/utils/settingsSync.js.map +1 -0
  64. package/dist/utils/smartRouting.js +36 -0
  65. package/dist/utils/smartRouting.js.map +1 -1
  66. package/dist/utils/ssrf.js +1 -1
  67. package/dist/utils/ssrf.js.map +1 -1
  68. package/dist/utils/stdioOptions.js +11 -0
  69. package/dist/utils/stdioOptions.js.map +1 -0
  70. package/frontend/dist/assets/{ActivityPage-Dp0qfFJ7.js → ActivityPage-DFLMe7o2.js} +2 -2
  71. package/frontend/dist/assets/{ActivityPage-Dp0qfFJ7.js.map → ActivityPage-DFLMe7o2.js.map} +1 -1
  72. package/frontend/dist/assets/{CopyClientConfigDialog-Bj0FEskD.js → CopyClientConfigDialog-DukyyXVp.js} +2 -2
  73. package/frontend/dist/assets/{CopyClientConfigDialog-Bj0FEskD.js.map → CopyClientConfigDialog-DukyyXVp.js.map} +1 -1
  74. package/frontend/dist/assets/{CredentialsPage-C-yB8aQU.js → CredentialsPage-BpBCEmEE.js} +2 -2
  75. package/frontend/dist/assets/{CredentialsPage-C-yB8aQU.js.map → CredentialsPage-BpBCEmEE.js.map} +1 -1
  76. package/frontend/dist/assets/{Dashboard-cbalSWB1.js → Dashboard-DjZkbAPt.js} +2 -2
  77. package/frontend/dist/assets/{Dashboard-cbalSWB1.js.map → Dashboard-DjZkbAPt.js.map} +1 -1
  78. package/frontend/dist/assets/{EndpointCopy-V8MoW7SG.js → EndpointCopy-Bv-_FPmR.js} +2 -2
  79. package/frontend/dist/assets/{EndpointCopy-V8MoW7SG.js.map → EndpointCopy-Bv-_FPmR.js.map} +1 -1
  80. package/frontend/dist/assets/{GroupsPage-DTXuiuqc.js → GroupsPage-B8BWRIWv.js} +2 -2
  81. package/frontend/dist/assets/{GroupsPage-DTXuiuqc.js.map → GroupsPage-B8BWRIWv.js.map} +1 -1
  82. package/frontend/dist/assets/LoginPage-OH73zcbT.js +2 -0
  83. package/frontend/dist/assets/LoginPage-OH73zcbT.js.map +1 -0
  84. package/frontend/dist/assets/{LogsPage-Bwv0shjb.js → LogsPage-B6P_uQvL.js} +2 -2
  85. package/frontend/dist/assets/{LogsPage-Bwv0shjb.js.map → LogsPage-B6P_uQvL.js.map} +1 -1
  86. package/frontend/dist/assets/{MarketPage-3jMYsH4H.js → MarketPage-CKjkgZpe.js} +2 -2
  87. package/frontend/dist/assets/{MarketPage-3jMYsH4H.js.map → MarketPage-CKjkgZpe.js.map} +1 -1
  88. package/frontend/dist/assets/{OAuthConsentPage-DI-IQ2gj.js → OAuthConsentPage-DjvtbLnm.js} +2 -2
  89. package/frontend/dist/assets/{OAuthConsentPage-DI-IQ2gj.js.map → OAuthConsentPage-DjvtbLnm.js.map} +1 -1
  90. package/frontend/dist/assets/{PromptsPage-BuVTifDV.js → PromptsPage-CCMb9OH2.js} +2 -2
  91. package/frontend/dist/assets/{PromptsPage-BuVTifDV.js.map → PromptsPage-CCMb9OH2.js.map} +1 -1
  92. package/frontend/dist/assets/{ResourcesPage-COSY92pD.js → ResourcesPage-BERaKn0d.js} +2 -2
  93. package/frontend/dist/assets/{ResourcesPage-COSY92pD.js.map → ResourcesPage-BERaKn0d.js.map} +1 -1
  94. package/frontend/dist/assets/{ServersPage-BlZvDfZE.js → ServersPage-BNsFiZez.js} +4 -4
  95. package/frontend/dist/assets/{ServersPage-BlZvDfZE.js.map → ServersPage-BNsFiZez.js.map} +1 -1
  96. package/frontend/dist/assets/SettingsPage-PiL7o9b9.js +12 -0
  97. package/frontend/dist/assets/SettingsPage-PiL7o9b9.js.map +1 -0
  98. package/frontend/dist/assets/{StatusDot-BHfWZAic.js → StatusDot-IWYCjv_t.js} +2 -2
  99. package/frontend/dist/assets/{StatusDot-BHfWZAic.js.map → StatusDot-IWYCjv_t.js.map} +1 -1
  100. package/frontend/dist/assets/{ToggleGroup-C33UH_Ob.js → ToggleGroup-B_NGGU8p.js} +2 -2
  101. package/frontend/dist/assets/{ToggleGroup-C33UH_Ob.js.map → ToggleGroup-B_NGGU8p.js.map} +1 -1
  102. package/frontend/dist/assets/{UsersPage-BXjVPFoF.js → UsersPage-D9QdH-ma.js} +2 -2
  103. package/frontend/dist/assets/{UsersPage-BXjVPFoF.js.map → UsersPage-D9QdH-ma.js.map} +1 -1
  104. package/frontend/dist/assets/{clipboard-r7a9vj44.js → clipboard-CFeeSZ4D.js} +2 -2
  105. package/frontend/dist/assets/{clipboard-r7a9vj44.js.map → clipboard-CFeeSZ4D.js.map} +1 -1
  106. package/frontend/dist/assets/index--NhF_yyy.css +1 -0
  107. package/frontend/dist/assets/index-RTKBtgGw.js +3 -0
  108. package/frontend/dist/assets/index-RTKBtgGw.js.map +1 -0
  109. package/frontend/dist/assets/{resourceService-5J2x7MrD.js → resourceService-BoJqsssR.js} +2 -2
  110. package/frontend/dist/assets/{resourceService-5J2x7MrD.js.map → resourceService-BoJqsssR.js.map} +1 -1
  111. package/frontend/dist/assets/{useCostData-CjmWUnd9.js → useCostData-Dld-MisV.js} +2 -2
  112. package/frontend/dist/assets/{useCostData-CjmWUnd9.js.map → useCostData-Dld-MisV.js.map} +1 -1
  113. package/frontend/dist/assets/variableDetection-C1abuc-p.js +16 -0
  114. package/frontend/dist/assets/variableDetection-C1abuc-p.js.map +1 -0
  115. package/frontend/dist/index.html +2 -2
  116. package/package.json +5 -3
  117. package/frontend/dist/assets/LoginPage-kfbiuyWa.js +0 -2
  118. package/frontend/dist/assets/LoginPage-kfbiuyWa.js.map +0 -1
  119. package/frontend/dist/assets/SettingsPage-V0TrX4k8.js +0 -12
  120. package/frontend/dist/assets/SettingsPage-V0TrX4k8.js.map +0 -1
  121. package/frontend/dist/assets/index-D-J2WUmj.css +0 -1
  122. package/frontend/dist/assets/index-pouDG4uY.js +0 -3
  123. package/frontend/dist/assets/index-pouDG4uY.js.map +0 -1
  124. package/frontend/dist/assets/variableDetection-CAv2g3qV.js +0 -16
  125. package/frontend/dist/assets/variableDetection-CAv2g3qV.js.map +0 -1
@@ -34,18 +34,21 @@ const ensureOAuthServerDefaults = (settings) => {
34
34
  // Settings cache
35
35
  let settingsCache = null;
36
36
  // mtime of the settings file our cache snapshot was read from. The file is
37
- // re-read when it is newer, mirroring JsonFileBaseDao so system settings do
37
+ // re-read when it changes, mirroring JsonFileBaseDao so system settings do
38
38
  // not behave differently from server definitions on external edits (#1081).
39
39
  let lastModified = 0;
40
+ // In-process writes can share the same filesystem mtime.
41
+ let settingsGeneration = 0;
42
+ export const getSettingsGeneration = () => settingsGeneration;
40
43
  export const getSettingsPath = () => {
41
44
  return getConfigFilePath('mcp_settings.json', 'Settings');
42
45
  };
43
- export const loadOriginalSettings = () => {
46
+ export const loadOriginalSettings = (persistDefaults = true) => {
44
47
  // If cache exists and the file hasn't changed, return cached data directly.
45
48
  if (settingsCache) {
46
49
  try {
47
50
  const stats = fs.statSync(getSettingsPath());
48
- if (lastModified >= stats.mtime.getTime()) {
51
+ if (lastModified === stats.mtimeMs) {
49
52
  return settingsCache;
50
53
  }
51
54
  }
@@ -70,9 +73,10 @@ export const loadOriginalSettings = () => {
70
73
  const settingsData = fs.readFileSync(settingsPath, 'utf8');
71
74
  const settings = JSON.parse(settingsData);
72
75
  const initialized = ensureOAuthServerDefaults(settings);
73
- if (initialized) {
76
+ if (initialized && persistDefaults) {
74
77
  try {
75
78
  fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2), 'utf8');
79
+ clearSettingsCache();
76
80
  }
77
81
  catch (writeError) {
78
82
  logger.error('Failed to persist default OAuth server configuration', {
@@ -84,7 +88,7 @@ export const loadOriginalSettings = () => {
84
88
  // Update cache
85
89
  settingsCache = settings;
86
90
  try {
87
- lastModified = fs.statSync(settingsPath).mtime.getTime();
91
+ lastModified = fs.statSync(settingsPath).mtimeMs;
88
92
  }
89
93
  catch {
90
94
  lastModified = Date.now();
@@ -104,9 +108,10 @@ export const saveSettings = (settings, user) => {
104
108
  try {
105
109
  const mergedSettings = dataService.mergeSettings(loadOriginalSettings(), settings, user);
106
110
  fs.writeFileSync(settingsPath, JSON.stringify(mergedSettings, null, 2), 'utf8');
107
- // Update cache after successful save
111
+ // Invalidate every DAO snapshot, including writes in the same mtime tick.
112
+ clearSettingsCache();
108
113
  settingsCache = mergedSettings;
109
- lastModified = Date.now();
114
+ lastModified = fs.statSync(settingsPath).mtimeMs;
110
115
  return true;
111
116
  }
112
117
  catch (error) {
@@ -118,6 +123,7 @@ export const saveSettings = (settings, user) => {
118
123
  * Clear settings cache, force next loadSettings call to re-read from file
119
124
  */
120
125
  export const clearSettingsCache = () => {
126
+ settingsGeneration += 1;
121
127
  settingsCache = null;
122
128
  lastModified = 0;
123
129
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Optional MCP tool fields that search_tools and describe_tool can include in a
3
+ * result next to the name, description, inputSchema and serverName they always
4
+ * carry. Listed in the order they appear in a result.
5
+ */
6
+ export const TOOL_DEFINITION_FIELDS = [
7
+ 'title',
8
+ 'annotations',
9
+ 'outputSchema',
10
+ 'execution',
11
+ 'icons',
12
+ '_meta',
13
+ ];
14
+ /**
15
+ * Fields included by default: short, and they help a model pick a tool
16
+ * (annotations carry readOnlyHint / destructiveHint). The rest are for clients
17
+ * rather than models and can be large (base64 icons, output schemas).
18
+ */
19
+ export const DEFAULT_TOOL_DEFINITION_FIELDS = [
20
+ 'title',
21
+ 'annotations',
22
+ ];
23
+ //# sourceMappingURL=smartRoutingDefaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smartRoutingDefaults.js","sourceRoot":"","sources":["../../src/constants/smartRoutingDefaults.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO;IACP,aAAa;IACb,cAAc;IACd,WAAW;IACX,OAAO;IACP,OAAO;CACC,CAAC;AAIX;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAmC;IAC5E,OAAO;IACP,aAAa;CACd,CAAC"}
@@ -6,12 +6,17 @@ import { JWT_SECRET } from '../config/jwt.js';
6
6
  import { validatePasswordStrength, isDefaultPassword } from '../utils/passwordValidation.js';
7
7
  import { getPackageVersion } from '../utils/version.js';
8
8
  import { logger } from '../utils/logger.js';
9
+ import { getBetterAuthRuntimeConfig } from '../services/betterAuthConfig.js';
9
10
  const dataService = getDataService();
10
11
  const TOKEN_EXPIRY = '24h';
11
12
  // Login user
12
13
  export const login = async (req, res) => {
13
14
  // Get translation function from request
14
15
  const t = req.t;
16
+ if ((await getBetterAuthRuntimeConfig()).disablePasswordLogin) {
17
+ res.status(403).json({ success: false, message: t('api.errors.password_login_disabled') });
18
+ return;
19
+ }
15
20
  // Validate request
16
21
  const errors = validationResult(req);
17
22
  if (!errors.isEmpty()) {
@@ -1 +1 @@
1
- {"version":3,"file":"authController.js","sourceRoot":"","sources":["../../src/controllers/authController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authController.js","sourceRoot":"","sources":["../../src/controllers/authController.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@ import { logger } from '../utils/logger.js';
4
4
  const dataService = getDataService();
5
5
  export const getBetterAuthUser = async (req, res) => {
6
6
  try {
7
- const user = await resolveBetterAuthUser(req);
7
+ // The dashboard bootstraps through this endpoint when it holds no local
8
+ // token, so a gateway-authenticated (forward auth) user enters directly.
9
+ const user = req.forwardAuthUser || (await resolveBetterAuthUser(req));
8
10
  if (!user) {
9
11
  res.status(401).json({ success: false, message: 'Unauthorized' });
10
12
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"betterAuthController.js","sourceRoot":"","sources":["../../src/controllers/betterAuthController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;IACpF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC;aAC9C;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"betterAuthController.js","sourceRoot":"","sources":["../../src/controllers/betterAuthController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;IACpF,IAAI,CAAC;QACH,wEAAwE;QACxE,yEAAyE;QACzE,MAAM,IAAI,GAAkB,GAAW,CAAC,eAAe,IAAI,CAAC,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC;aAC9C;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
- import { deleteCredentialBindings } from '../services/credentialBindingService.js';
1
+ import { copyCredentialBindings, deleteCredentialBindings, } from '../services/credentialBindingService.js';
2
+ import { StdioOptionsError } from '../utils/stdioOptions.js';
2
3
  import { CredentialBindingError } from '../utils/credentialTemplate.js';
3
4
  import { isDeepStrictEqual } from 'node:util';
4
5
  import { getServersInfo, addServer, addOrUpdateServer, removeServer, closeServer, getServerByName, notifyToolChanged, broadcastToolListChanged, broadcastPromptListChanged, broadcastResourceListChanged, syncToolEmbedding, toggleServerStatus, reconnectServer, reinstallServer, updateServerInfoVisibility, } from '../services/mcpService.js';
@@ -14,11 +15,12 @@ import { authorizationService } from '../services/authorizationService.js';
14
15
  import { presentServerForPrincipal, presentServerInfoForPrincipal, } from '../services/serverConfigPresenter.js';
15
16
  import { disconnectUpstreamOAuth } from '../services/upstreamOAuthDisconnectService.js';
16
17
  import { normalizeServerConfigForPersistence } from '../utils/serverConfigPersistence.js';
17
- import { isPrivilegedServerConfig } from '../utils/serverConfigValidation.js';
18
+ import { isPrivilegedServerConfig, ServerConfigValidationError, } from '../utils/serverConfigValidation.js';
18
19
  import { validateServerName } from '../utils/serverNameValidation.js';
19
20
  import { setCachedSystemConfig } from '../utils/systemConfigCache.js';
20
21
  import { DEFAULT_INSTALL_BASE_URL, withResolvedInstallBaseUrl } from '../utils/installBaseUrl.js';
21
- import { getSmartRoutingConfig, parseBooleanEnvVar, parseFullSchemaTopN, parseSimilarityThreshold, } from '../utils/smartRouting.js';
22
+ import { getSmartRoutingConfig, parseBooleanEnvVar, parseFullSchemaTopN, parseSimilarityThreshold, parseToolDefinitionFields, } from '../utils/smartRouting.js';
23
+ import { TOOL_DEFINITION_FIELDS } from '../constants/smartRoutingDefaults.js';
22
24
  import { previewOpenApiToolStats } from '../services/openApiToolStatsService.js';
23
25
  import { logger } from '../utils/logger.js';
24
26
  const getRequestUser = (req) => {
@@ -60,7 +62,9 @@ const ensureNonAdminCanManageConfig = (req, res, config) => {
60
62
  if (isPrivilegedServerConfig(config)) {
61
63
  res.status(403).json({
62
64
  success: false,
63
- message: 'Only admins can create or modify stdio-based servers',
65
+ message: config.oauth?.allowInsecureTokenEndpoint === true
66
+ ? 'Only admins can create or modify servers allowing HTTP OAuth token endpoints'
67
+ : 'Only admins can create or modify stdio-based servers',
64
68
  });
65
69
  return false;
66
70
  }
@@ -131,7 +135,9 @@ const toConnectionRelevantConfig = (config) => {
131
135
  const normalized = normalizeServerConfigForPersistence(config);
132
136
  const picked = {};
133
137
  for (const field of CONNECTION_RELEVANT_CONFIG_FIELDS) {
134
- picked[field] = normalized[field];
138
+ // Database mode reads unset columns (e.g. `proxy`) back as null, while a
139
+ // request leaves them out; both mean "not set".
140
+ picked[field] = normalized[field] ?? undefined;
135
141
  }
136
142
  const comparable = stripUndefinedDeep(picked);
137
143
  // Treat the default request timeout (60000, the dashboard form default) as
@@ -506,9 +512,19 @@ export const createServer = async (req, res) => {
506
512
  }
507
513
  }
508
514
  catch (error) {
509
- res.status(error instanceof CredentialBindingError ? 400 : 500).json({
515
+ res
516
+ .status(error instanceof CredentialBindingError ||
517
+ error instanceof StdioOptionsError ||
518
+ error instanceof ServerConfigValidationError
519
+ ? 400
520
+ : 500)
521
+ .json({
510
522
  success: false,
511
- message: error instanceof CredentialBindingError ? error.message : 'Internal server error',
523
+ message: error instanceof CredentialBindingError ||
524
+ error instanceof StdioOptionsError ||
525
+ error instanceof ServerConfigValidationError
526
+ ? error.message
527
+ : 'Internal server error',
512
528
  });
513
529
  }
514
530
  };
@@ -595,7 +611,16 @@ export const batchCreateServers = async (req, res) => {
595
611
  for (const server of servers) {
596
612
  const { name, config } = server;
597
613
  // Validate server configuration
598
- const validation = validateServerConfig(name, config);
614
+ let validation;
615
+ try {
616
+ validation = validateServerConfig(name, config);
617
+ }
618
+ catch (error) {
619
+ if (!(error instanceof StdioOptionsError) &&
620
+ !(error instanceof ServerConfigValidationError))
621
+ throw error;
622
+ validation = { valid: false, message: error.message };
623
+ }
599
624
  if (!validation.valid) {
600
625
  results.push({
601
626
  name: name || 'unknown',
@@ -617,7 +642,9 @@ export const batchCreateServers = async (req, res) => {
617
642
  results.push({
618
643
  name: serverName,
619
644
  success: false,
620
- message: 'Only admins can create or modify stdio-based servers',
645
+ message: normalizedConfig.oauth?.allowInsecureTokenEndpoint === true
646
+ ? 'Only admins can create or modify servers allowing HTTP OAuth token endpoints'
647
+ : 'Only admins can create or modify stdio-based servers',
621
648
  });
622
649
  failureCount++;
623
650
  continue;
@@ -845,7 +872,9 @@ export const updateServer = async (req, res) => {
845
872
  if (!existingServer) {
846
873
  return;
847
874
  }
848
- if (!ensureNonAdminCanManageConfig(req, res, normalizedConfig)) {
875
+ if ((existingServer.oauth?.allowInsecureTokenEndpoint === true &&
876
+ !ensureNonAdminCanManageConfig(req, res, existingServer)) ||
877
+ !ensureNonAdminCanManageConfig(req, res, normalizedConfig)) {
849
878
  return;
850
879
  }
851
880
  // Set default keep-alive interval for SSE servers if not specified
@@ -883,9 +912,28 @@ export const updateServer = async (req, res) => {
883
912
  }
884
913
  // Read the cached tool list before the runtime under the old name is closed
885
914
  const isBareToolName = bareToolNameCheck(name);
915
+ // Personal credential bindings follow a plain rename. A rename that also
916
+ // changes the connection (target, headers, credential slots, ...) drops
917
+ // them, so users bind again against the new definition. They are copied
918
+ // before the definition moves, so a binding that cannot be copied fails
919
+ // the request with the server, its references and every binding unchanged.
920
+ const keepBindings = !hasConnectionRelevantChange(existingServer, normalizedConfig);
921
+ if (keepBindings) {
922
+ await copyCredentialBindings(name, targetName);
923
+ }
886
924
  // Rename the server
887
- const renamed = await serverDao.rename(name, targetName);
925
+ let renamed;
926
+ try {
927
+ renamed = await serverDao.rename(name, targetName);
928
+ }
929
+ catch (error) {
930
+ if (keepBindings)
931
+ await deleteCredentialBindings({ serverName: targetName });
932
+ throw error;
933
+ }
888
934
  if (!renamed) {
935
+ if (keepBindings)
936
+ await deleteCredentialBindings({ serverName: targetName });
889
937
  res.status(404).json({
890
938
  success: false,
891
939
  message: 'Server not found',
@@ -898,6 +946,7 @@ export const updateServer = async (req, res) => {
898
946
  // rebuilds serverInfos. Without this explicit close the old stdio child
899
947
  // process tree is orphaned and leaks until the process restarts.
900
948
  closeServer(name);
949
+ // Kept bindings now have their copies under the new name.
901
950
  await deleteCredentialBindings({ serverName: name });
902
951
  // Update references in groups
903
952
  const groupDao = getGroupDao();
@@ -920,8 +969,8 @@ export const updateServer = async (req, res) => {
920
969
  // Drop embeddings stored under the old name so search_tools does not
921
970
  // advertise phantom tools; addOrUpdateServer below regenerates them
922
971
  // under the new name. A credential server never connects globally, so
923
- // its rows come back on the first per-user connect after a user binds
924
- // credentials again (the bindings were dropped above), or on a reindex.
972
+ // its rows come back on the first per-user connect under the new name
973
+ // (with a moved binding, or after a user binds again), or on a reindex.
925
974
  // A failure here must not abort the rename.
926
975
  try {
927
976
  await removeServerToolEmbeddings(name);
@@ -985,9 +1034,19 @@ export const updateServer = async (req, res) => {
985
1034
  }
986
1035
  }
987
1036
  catch (error) {
988
- res.status(error instanceof CredentialBindingError ? 400 : 500).json({
1037
+ res
1038
+ .status(error instanceof CredentialBindingError ||
1039
+ error instanceof StdioOptionsError ||
1040
+ error instanceof ServerConfigValidationError
1041
+ ? 400
1042
+ : 500)
1043
+ .json({
989
1044
  success: false,
990
- message: error instanceof CredentialBindingError ? error.message : 'Internal server error',
1045
+ message: error instanceof CredentialBindingError ||
1046
+ error instanceof StdioOptionsError ||
1047
+ error instanceof ServerConfigValidationError
1048
+ ? error.message
1049
+ : 'Internal server error',
991
1050
  });
992
1051
  }
993
1052
  };
@@ -1453,7 +1512,8 @@ export const updateSystemConfig = async (req, res) => {
1453
1512
  typeof smartRouting.embeddingMaxTokens === 'number' ||
1454
1513
  smartRouting.embeddingMaxTokens === null ||
1455
1514
  smartRouting.similarityThreshold !== undefined ||
1456
- smartRouting.fullSchemaTopN !== undefined);
1515
+ smartRouting.fullSchemaTopN !== undefined ||
1516
+ smartRouting.toolDefinitionFields !== undefined);
1457
1517
  const hasToolResultCompressionUpdate = toolResultCompression &&
1458
1518
  (typeof toolResultCompression.enabled === 'boolean' ||
1459
1519
  typeof toolResultCompression.minTokens === 'number' ||
@@ -1485,6 +1545,7 @@ export const updateSystemConfig = async (req, res) => {
1485
1545
  typeof auth.betterAuth.baseUrl === 'string' ||
1486
1546
  typeof auth.betterAuth.basePath === 'string' ||
1487
1547
  Array.isArray(auth.betterAuth.trustedOrigins) ||
1548
+ typeof auth.betterAuth.disablePasswordLogin === 'boolean' ||
1488
1549
  (auth.betterAuth.providers &&
1489
1550
  (typeof auth.betterAuth.providers.google?.enabled === 'boolean' ||
1490
1551
  typeof auth.betterAuth.providers.github?.enabled === 'boolean' ||
@@ -1811,8 +1872,8 @@ export const updateSystemConfig = async (req, res) => {
1811
1872
  // null explicitly clears the override, restoring the per-model default
1812
1873
  systemConfig.smartRouting.embeddingMaxTokens = undefined;
1813
1874
  }
1814
- // Search-time settings: null clears them back to the default, and neither
1815
- // one touches the stored embeddings, so they do not trigger a re-sync.
1875
+ // Search-time settings: null clears them back to the default, and none of
1876
+ // them touches the stored embeddings, so they do not trigger a re-sync.
1816
1877
  if (smartRouting.similarityThreshold === null) {
1817
1878
  systemConfig.smartRouting.similarityThreshold = undefined;
1818
1879
  }
@@ -1841,6 +1902,23 @@ export const updateSystemConfig = async (req, res) => {
1841
1902
  }
1842
1903
  systemConfig.smartRouting.fullSchemaTopN = topN;
1843
1904
  }
1905
+ if (smartRouting.toolDefinitionFields === null) {
1906
+ systemConfig.smartRouting.toolDefinitionFields = undefined;
1907
+ }
1908
+ else if (smartRouting.toolDefinitionFields !== undefined) {
1909
+ // An array only: the comma-separated form is for the env var
1910
+ const fields = Array.isArray(smartRouting.toolDefinitionFields)
1911
+ ? parseToolDefinitionFields(smartRouting.toolDefinitionFields)
1912
+ : undefined;
1913
+ if (fields === undefined) {
1914
+ res.status(400).json({
1915
+ success: false,
1916
+ message: `smartRouting.toolDefinitionFields must be an array of: ${TOOL_DEFINITION_FIELDS.join(', ')}`,
1917
+ });
1918
+ return;
1919
+ }
1920
+ systemConfig.smartRouting.toolDefinitionFields = fields;
1921
+ }
1844
1922
  // Check if we need to sync embeddings
1845
1923
  const isNowEnabled = systemConfig.smartRouting.enabled || false;
1846
1924
  const hasConfigChanged = previousSmartRoutingConfig.dbUrl !== systemConfig.smartRouting.dbUrl ||
@@ -1975,6 +2053,9 @@ export const updateSystemConfig = async (req, res) => {
1975
2053
  if (typeof auth.betterAuth.basePath === 'string') {
1976
2054
  target.basePath = auth.betterAuth.basePath.trim();
1977
2055
  }
2056
+ if (typeof auth.betterAuth.disablePasswordLogin === 'boolean') {
2057
+ target.disablePasswordLogin = auth.betterAuth.disablePasswordLogin;
2058
+ }
1978
2059
  if (Array.isArray(auth.betterAuth.trustedOrigins)) {
1979
2060
  target.trustedOrigins = auth.betterAuth.trustedOrigins
1980
2061
  .filter((origin) => typeof origin === 'string')