libre-webui 0.22.1 → 0.23.1

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 (237) hide show
  1. package/backend/dist/index.d.ts.map +1 -1
  2. package/backend/dist/index.js +8 -0
  3. package/backend/dist/index.js.map +1 -1
  4. package/backend/dist/middleware/auth.d.ts +15 -1
  5. package/backend/dist/middleware/auth.d.ts.map +1 -1
  6. package/backend/dist/middleware/auth.js +153 -33
  7. package/backend/dist/middleware/auth.js.map +1 -1
  8. package/backend/dist/persistence/index.d.ts +1 -0
  9. package/backend/dist/persistence/index.d.ts.map +1 -1
  10. package/backend/dist/persistence/index.js.map +1 -1
  11. package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
  12. package/backend/dist/persistence/postgresMigrationRegistry.js +2 -0
  13. package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
  14. package/backend/dist/persistence/postgresPersistence.d.ts.map +1 -1
  15. package/backend/dist/persistence/postgresPersistence.js +4 -0
  16. package/backend/dist/persistence/postgresPersistence.js.map +1 -1
  17. package/backend/dist/persistence/postgresSecurityRepositories.d.ts +7 -0
  18. package/backend/dist/persistence/postgresSecurityRepositories.d.ts.map +1 -0
  19. package/backend/dist/persistence/postgresSecurityRepositories.js +435 -0
  20. package/backend/dist/persistence/postgresSecurityRepositories.js.map +1 -0
  21. package/backend/dist/persistence/postgresTrustFoundationMigration.d.ts +8 -0
  22. package/backend/dist/persistence/postgresTrustFoundationMigration.d.ts.map +1 -0
  23. package/backend/dist/persistence/postgresTrustFoundationMigration.js +151 -0
  24. package/backend/dist/persistence/postgresTrustFoundationMigration.js.map +1 -0
  25. package/backend/dist/persistence/securityTypes.d.ts +196 -0
  26. package/backend/dist/persistence/securityTypes.d.ts.map +1 -0
  27. package/backend/dist/persistence/securityTypes.js +18 -0
  28. package/backend/dist/persistence/securityTypes.js.map +1 -0
  29. package/backend/dist/persistence/sqliteMigrations.d.ts +1 -0
  30. package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
  31. package/backend/dist/persistence/sqliteMigrations.js +311 -0
  32. package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
  33. package/backend/dist/persistence/sqlitePersistence.d.ts.map +1 -1
  34. package/backend/dist/persistence/sqlitePersistence.js +3 -0
  35. package/backend/dist/persistence/sqlitePersistence.js.map +1 -1
  36. package/backend/dist/persistence/sqliteSecurityRepositories.d.ts +6 -0
  37. package/backend/dist/persistence/sqliteSecurityRepositories.d.ts.map +1 -0
  38. package/backend/dist/persistence/sqliteSecurityRepositories.js +497 -0
  39. package/backend/dist/persistence/sqliteSecurityRepositories.js.map +1 -0
  40. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
  41. package/backend/dist/persistence/sqliteToPostgresMigration.js +55 -0
  42. package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
  43. package/backend/dist/persistence/types.d.ts +4 -0
  44. package/backend/dist/persistence/types.d.ts.map +1 -1
  45. package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
  46. package/backend/dist/platform/jobs/domainJobHandlers.js +7 -0
  47. package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
  48. package/backend/dist/routes/access.d.ts +3 -0
  49. package/backend/dist/routes/access.d.ts.map +1 -0
  50. package/backend/dist/routes/access.js +134 -0
  51. package/backend/dist/routes/access.js.map +1 -0
  52. package/backend/dist/routes/audit.d.ts +3 -0
  53. package/backend/dist/routes/audit.d.ts.map +1 -0
  54. package/backend/dist/routes/audit.js +82 -0
  55. package/backend/dist/routes/audit.js.map +1 -0
  56. package/backend/dist/routes/auth.d.ts.map +1 -1
  57. package/backend/dist/routes/auth.js +342 -14
  58. package/backend/dist/routes/auth.js.map +1 -1
  59. package/backend/dist/routes/groups.d.ts +3 -0
  60. package/backend/dist/routes/groups.d.ts.map +1 -0
  61. package/backend/dist/routes/groups.js +161 -0
  62. package/backend/dist/routes/groups.js.map +1 -0
  63. package/backend/dist/services/apiTokenService.d.ts +51 -0
  64. package/backend/dist/services/apiTokenService.d.ts.map +1 -0
  65. package/backend/dist/services/apiTokenService.js +220 -0
  66. package/backend/dist/services/apiTokenService.js.map +1 -0
  67. package/backend/dist/services/authService.d.ts +20 -4
  68. package/backend/dist/services/authService.d.ts.map +1 -1
  69. package/backend/dist/services/authService.js +44 -6
  70. package/backend/dist/services/authService.js.map +1 -1
  71. package/backend/dist/services/authSessionService.d.ts +34 -0
  72. package/backend/dist/services/authSessionService.d.ts.map +1 -0
  73. package/backend/dist/services/authSessionService.js +205 -0
  74. package/backend/dist/services/authSessionService.js.map +1 -0
  75. package/backend/dist/services/authorizationService.d.ts +64 -0
  76. package/backend/dist/services/authorizationService.d.ts.map +1 -0
  77. package/backend/dist/services/authorizationService.js +176 -0
  78. package/backend/dist/services/authorizationService.js.map +1 -0
  79. package/backend/dist/services/groupService.d.ts +27 -0
  80. package/backend/dist/services/groupService.d.ts.map +1 -0
  81. package/backend/dist/services/groupService.js +245 -0
  82. package/backend/dist/services/groupService.js.map +1 -0
  83. package/backend/dist/services/groupVectorPrincipalResolver.d.ts +12 -0
  84. package/backend/dist/services/groupVectorPrincipalResolver.d.ts.map +1 -0
  85. package/backend/dist/services/groupVectorPrincipalResolver.js +33 -0
  86. package/backend/dist/services/groupVectorPrincipalResolver.js.map +1 -0
  87. package/backend/dist/services/modelAccessService.d.ts +1 -0
  88. package/backend/dist/services/modelAccessService.d.ts.map +1 -1
  89. package/backend/dist/services/modelAccessService.js +3 -5
  90. package/backend/dist/services/modelAccessService.js.map +1 -1
  91. package/backend/dist/services/oauthSecurity.d.ts +12 -1
  92. package/backend/dist/services/oauthSecurity.d.ts.map +1 -1
  93. package/backend/dist/services/oauthSecurity.js +41 -0
  94. package/backend/dist/services/oauthSecurity.js.map +1 -1
  95. package/backend/dist/services/resourceGrantService.d.ts +28 -0
  96. package/backend/dist/services/resourceGrantService.d.ts.map +1 -0
  97. package/backend/dist/services/resourceGrantService.js +192 -0
  98. package/backend/dist/services/resourceGrantService.js.map +1 -0
  99. package/backend/dist/services/securityAuditService.d.ts +35 -0
  100. package/backend/dist/services/securityAuditService.d.ts.map +1 -0
  101. package/backend/dist/services/securityAuditService.js +159 -0
  102. package/backend/dist/services/securityAuditService.js.map +1 -0
  103. package/backend/dist/services/simpleGitHubOAuth.d.ts.map +1 -1
  104. package/backend/dist/services/simpleGitHubOAuth.js +4 -2
  105. package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
  106. package/backend/dist/services/simpleOidcOAuth.d.ts +62 -0
  107. package/backend/dist/services/simpleOidcOAuth.d.ts.map +1 -0
  108. package/backend/dist/services/simpleOidcOAuth.js +397 -0
  109. package/backend/dist/services/simpleOidcOAuth.js.map +1 -0
  110. package/backend/dist/services/webSearchService.d.ts +1 -0
  111. package/backend/dist/services/webSearchService.d.ts.map +1 -1
  112. package/backend/dist/services/webSearchService.js +3 -5
  113. package/backend/dist/services/webSearchService.js.map +1 -1
  114. package/backend/dist/services/websocketTicketService.d.ts +3 -1
  115. package/backend/dist/services/websocketTicketService.d.ts.map +1 -1
  116. package/backend/dist/services/websocketTicketService.js +4 -1
  117. package/backend/dist/services/websocketTicketService.js.map +1 -1
  118. package/backend/dist/services/workAccessService.d.ts +1 -0
  119. package/backend/dist/services/workAccessService.d.ts.map +1 -1
  120. package/backend/dist/services/workAccessService.js +3 -5
  121. package/backend/dist/services/workAccessService.js.map +1 -1
  122. package/backend/dist/services/workEventService.d.ts.map +1 -1
  123. package/backend/dist/services/workEventService.js +74 -18
  124. package/backend/dist/services/workEventService.js.map +1 -1
  125. package/backend/dist/services/workRuntimeService.d.ts +11 -0
  126. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  127. package/backend/dist/services/workRuntimeService.js +78 -23
  128. package/backend/dist/services/workRuntimeService.js.map +1 -1
  129. package/backend/dist/websocketServer.d.ts.map +1 -1
  130. package/backend/dist/websocketServer.js +25 -1
  131. package/backend/dist/websocketServer.js.map +1 -1
  132. package/backend/dist/workTerminalServer.d.ts.map +1 -1
  133. package/backend/dist/workTerminalServer.js +19 -1
  134. package/backend/dist/workTerminalServer.js.map +1 -1
  135. package/backend/dist/worker.js +2 -0
  136. package/backend/dist/worker.js.map +1 -1
  137. package/backend/package.json +1 -1
  138. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  139. package/frontend/dist/assets/index-BXMQqOXF.js +11 -0
  140. package/frontend/dist/assets/index-DBaj1DRj.css +1 -0
  141. package/frontend/dist/index.html +11 -11
  142. package/frontend/dist/js/ArtifactContainer-BUjOZ5M5.js +1 -0
  143. package/frontend/dist/js/{ArtifactDemoPage-BDBXYv9l.js → ArtifactDemoPage-QRve-734.js} +1 -1
  144. package/frontend/dist/js/{ArtifactSandboxFrame-BN16NtKe.js → ArtifactSandboxFrame-DhvA-t-7.js} +2 -2
  145. package/frontend/dist/js/ArtifactSlideOutPanel-B8w1Orr1.js +1 -0
  146. package/frontend/dist/js/ChatPage-DKVwaYxn.js +23 -0
  147. package/frontend/dist/js/FirstTimeSetup-DaQveC0v.js +1 -0
  148. package/frontend/dist/js/{GalleryPage-CV_vbE7X.js → GalleryPage-Cz-VvarV.js} +1 -1
  149. package/frontend/dist/js/{HomePage-P-e7Huco.js → HomePage-DF9pZ5V5.js} +1 -1
  150. package/frontend/dist/js/{LibreClawPage-Cee06SUM.js → LibreClawPage-Dw8YQyFj.js} +1 -1
  151. package/frontend/dist/js/{ModelManagerModals-D7jIT3v1.js → ModelManagerModals-CZAWUxjI.js} +1 -1
  152. package/frontend/dist/js/{ModelSelector-DXucbvrz.js → ModelSelector-Cc91MEm4.js} +1 -1
  153. package/frontend/dist/js/ModelsPage-BgaQuCry.js +2 -0
  154. package/frontend/dist/js/{NotesPage-rEIPWGIb.js → NotesPage-CRAo-TFI.js} +1 -1
  155. package/frontend/dist/js/{PersonasPage-BXtepFuD.js → PersonasPage-DpN8DQkY.js} +2 -2
  156. package/frontend/dist/js/{PluginUsagePage-hhu8cxsu.js → PluginUsagePage-5PXXZXle.js} +1 -1
  157. package/frontend/dist/js/{RichMessageContent-DkiEvdSg.js → RichMessageContent-C67tFlr1.js} +1 -1
  158. package/frontend/dist/js/SettingsModal-BEzMSDlp.js +1 -0
  159. package/frontend/dist/js/SystemPage-FUnoW7Er.js +1 -0
  160. package/frontend/dist/js/UserManagementPage-SBsRbt0H.js +1 -0
  161. package/frontend/dist/js/WorkPage-D3ChSFo-.js +6 -0
  162. package/frontend/dist/js/api-Dw_IuHaz.js +14 -0
  163. package/frontend/dist/js/{appStore-DRSSjaHn.js → appStore-DAT2R-5p.js} +2 -2
  164. package/frontend/dist/js/ar-D0z0P4rC.js +2 -0
  165. package/frontend/dist/js/{authStore-BVykIRec.js → authStore-CwSMGkEM.js} +3 -3
  166. package/frontend/dist/js/bn-BYYU41A7.js +2 -0
  167. package/frontend/dist/js/chatStore-BK6YcouV.js +3 -0
  168. package/frontend/dist/js/{config-BTlPm-cZ.js → config-0eBxRk6E.js} +1 -1
  169. package/frontend/dist/js/cs-BFx6KNZe.js +2 -0
  170. package/frontend/dist/js/da-DSDuY5Du.js +2 -0
  171. package/frontend/dist/js/de-YqhP0FmX.js +2 -0
  172. package/frontend/dist/js/es-Dpr_y1cN.js +2 -0
  173. package/frontend/dist/js/{estree-CfYahF_d.js → estree-Db_NKIE7.js} +1 -1
  174. package/frontend/dist/js/fr-nVg_iAEC.js +2 -0
  175. package/frontend/dist/js/hi-gHKYCgkP.js +2 -0
  176. package/frontend/dist/js/{html-BJsDX1UZ.js → html-INl_p8N8.js} +1 -1
  177. package/frontend/dist/js/id-C_yID1Zk.js +2 -0
  178. package/frontend/dist/js/is-MoRPLbOM.js +2 -0
  179. package/frontend/dist/js/it-BZTscLxR.js +2 -0
  180. package/frontend/dist/js/ja-DpIbtmZq.js +2 -0
  181. package/frontend/dist/js/ko-LkWggmjU.js +2 -0
  182. package/frontend/dist/js/{markdown-GLyuUNig.js → markdown-DQbfLH11.js} +1 -1
  183. package/frontend/dist/js/{messageCodeStyles-BHddEFP1.js → messageCodeStyles-D7zXzjgH.js} +2 -2
  184. package/frontend/dist/js/ms-p3XiQSAo.js +2 -0
  185. package/frontend/dist/js/nl-sEHHO2Kb.js +2 -0
  186. package/frontend/dist/js/pl-D2GD6PDW.js +2 -0
  187. package/frontend/dist/js/pt-DPkn3GUn.js +2 -0
  188. package/frontend/dist/js/ru-C42iHrEd.js +2 -0
  189. package/frontend/dist/js/{standalone-Dh56V0YW.js → standalone-CFSd7xCM.js} +1 -1
  190. package/frontend/dist/js/sv-CGvHo4os.js +2 -0
  191. package/frontend/dist/js/th-BaDNpCdY.js +2 -0
  192. package/frontend/dist/js/tr-BHQvi1cN.js +2 -0
  193. package/frontend/dist/js/{typescript-DRy7A9w4.js → typescript-BIFKSiW0.js} +1 -1
  194. package/frontend/dist/js/{ui-CuY4IifA.js → ui-CS8EAgvS.js} +2 -2
  195. package/frontend/dist/js/{ui-vendor-D3Ahl1x5.js → ui-vendor-54SgntkX.js} +1 -1
  196. package/frontend/dist/js/uk-7pNGS1b2.js +2 -0
  197. package/frontend/dist/js/vi-DgAfh6mo.js +2 -0
  198. package/frontend/dist/js/{workApi-DHuYNHLf.js → workApi-DlmJ72dN.js} +2 -2
  199. package/frontend/dist/js/zh-FRTz6ZqA.js +2 -0
  200. package/package.json +2 -2
  201. package/frontend/dist/assets/index-Jtx9Amhz.js +0 -16
  202. package/frontend/dist/assets/index-kxtZQLV6.css +0 -1
  203. package/frontend/dist/js/ArtifactContainer-fZegtmva.js +0 -1
  204. package/frontend/dist/js/ArtifactSlideOutPanel-x1fS85Ww.js +0 -1
  205. package/frontend/dist/js/ChatPage-C_pXh7WN.js +0 -23
  206. package/frontend/dist/js/FirstTimeSetup-oRrlZnBm.js +0 -1
  207. package/frontend/dist/js/ModelsPage-C3_fZpMM.js +0 -2
  208. package/frontend/dist/js/SettingsModal-BNxCtJ51.js +0 -1
  209. package/frontend/dist/js/SystemPage-BvvKFuoG.js +0 -1
  210. package/frontend/dist/js/UserManagementPage-BccyR7si.js +0 -1
  211. package/frontend/dist/js/WorkPage-BgxrvY3I.js +0 -6
  212. package/frontend/dist/js/api-BvPDxsUQ.js +0 -14
  213. package/frontend/dist/js/ar-xTSvTq05.js +0 -2
  214. package/frontend/dist/js/bn-iYAsohEA.js +0 -2
  215. package/frontend/dist/js/chatStore-UPp5TV_t.js +0 -3
  216. package/frontend/dist/js/cs-YBHN88Hb.js +0 -2
  217. package/frontend/dist/js/da-D7qlLy_k.js +0 -2
  218. package/frontend/dist/js/de-DV671k2c.js +0 -2
  219. package/frontend/dist/js/es-kyBgzNq-.js +0 -2
  220. package/frontend/dist/js/fr-Cw1vut7I.js +0 -2
  221. package/frontend/dist/js/hi-DWEFC024.js +0 -2
  222. package/frontend/dist/js/id-DlMHjjy0.js +0 -2
  223. package/frontend/dist/js/is-B9E_a7dG.js +0 -2
  224. package/frontend/dist/js/it-DawmVbLC.js +0 -2
  225. package/frontend/dist/js/ja-DmVvwY3W.js +0 -2
  226. package/frontend/dist/js/ko-DzOPpkVs.js +0 -2
  227. package/frontend/dist/js/ms-DpsaOPht.js +0 -2
  228. package/frontend/dist/js/nl-B1d8W22n.js +0 -2
  229. package/frontend/dist/js/pl-nCncRVgt.js +0 -2
  230. package/frontend/dist/js/pt-DHw8fGuu.js +0 -2
  231. package/frontend/dist/js/ru-Derl_YP_.js +0 -2
  232. package/frontend/dist/js/sv-pJAfBVo0.js +0 -2
  233. package/frontend/dist/js/th-C_7fIGnk.js +0 -2
  234. package/frontend/dist/js/tr-CPqsJvaP.js +0 -2
  235. package/frontend/dist/js/uk-3o8P_kFi.js +0 -2
  236. package/frontend/dist/js/vi-Dv6N7OVD.js +0 -2
  237. package/frontend/dist/js/zh-qg5iqtPi.js +0 -2
@@ -22,11 +22,15 @@ import { authService } from '../services/authService.js';
22
22
  import { authenticate, requireAdmin, } from '../middleware/auth.js';
23
23
  import { encryptionService } from '../services/encryptionService.js';
24
24
  import { turnstileService } from '../services/turnstileService.js';
25
- import { beginOAuthFlow, consumeOAuthSessionCookie, consumeOAuthState, setOAuthSessionCookie, } from '../services/oauthSecurity.js';
25
+ import { beginOAuthFlow, beginOAuthFlowWithPayload, consumeOAuthSessionCookie, consumeOAuthState, consumeOAuthStatePayload, setOAuthSessionCookie, } from '../services/oauthSecurity.js';
26
26
  import { validatePasswordStrength } from '../utils/hash.js';
27
27
  import { createLogger } from '../utils/logger.js';
28
28
  import { WebSocketTicketRateLimitError, websocketTicketService, } from '../services/websocketTicketService.js';
29
29
  import { coordinatedRateLimit } from '../middleware/coordinatedRateLimit.js';
30
+ import { findSessionById, listSessionsForUser, revokeAllAuthSessions, revokeAuthSession, } from '../services/authSessionService.js';
31
+ import { createApiToken, findTokenById, isApiTokenScope, listTokensForUser, revokeApiToken, toPublicToken, } from '../services/apiTokenService.js';
32
+ import { hashClientIp, recordAuditEvent, } from '../services/securityAuditService.js';
33
+ import { OidcError, oidcOAuthService } from '../services/simpleOidcOAuth.js';
30
34
  const router = express.Router();
31
35
  const logger = createLogger('auth-routes');
32
36
  // Fallback frontend URL for OAuth redirects
@@ -62,11 +66,14 @@ const signupRateLimiter = coordinatedRateLimit({
62
66
  limit: 5,
63
67
  message: 'Too many authentication attempts, please try again later',
64
68
  });
65
- // Rate limiter for general auth routes: 100 requests per 15 minutes
69
+ // Rate limiter for general auth routes. This bucket also serves the session
70
+ // and API-token management endpoints, so it is sized to never starve an
71
+ // interactive user; the credential endpoints keep their own strict
72
+ // coordinated limiters above.
66
73
  const generalAuthRateLimiter = rateLimit({
67
74
  keyPrefix: 'auth-general',
68
75
  windowMs: 15 * 60 * 1000, // 15 minutes
69
- max: 100, // limit each IP to 100 requests per windowMs
76
+ max: 300, // limit each IP to 300 requests per windowMs
70
77
  message: {
71
78
  success: false,
72
79
  message: 'Too many requests, please try again later',
@@ -74,12 +81,26 @@ const generalAuthRateLimiter = rateLimit({
74
81
  standardHeaders: true,
75
82
  legacyHeaders: false,
76
83
  });
84
+ // WebSocket tickets get their own bucket: every chat reconnect consumes one,
85
+ // and a reconnect storm competing with sign-in traffic must not lock either
86
+ // out. The ticket service additionally enforces per-user and global quotas.
87
+ const ticketRateLimiter = rateLimit({
88
+ keyPrefix: 'auth-ticket',
89
+ windowMs: 5 * 60 * 1000,
90
+ max: 120,
91
+ message: {
92
+ success: false,
93
+ message: 'Too many WebSocket ticket requests, please try again later',
94
+ },
95
+ standardHeaders: true,
96
+ legacyHeaders: false,
97
+ });
77
98
  /**
78
99
  * Exchange the normal Authorization header for a short-lived, one-use
79
100
  * WebSocket ticket. This keeps the durable JWT out of URLs, proxy logs, and
80
101
  * browser history while retaining browser-compatible WebSocket authentication.
81
102
  */
82
- router.post('/websocket-ticket', generalAuthRateLimiter, authenticate, async (req, res) => {
103
+ router.post('/websocket-ticket', ticketRateLimiter, authenticate, async (req, res) => {
83
104
  res.set('Cache-Control', 'no-store');
84
105
  const audience = req.body?.audience;
85
106
  const taskId = req.body?.taskId;
@@ -100,7 +121,7 @@ router.post('/websocket-ticket', generalAuthRateLimiter, authenticate, async (re
100
121
  }
101
122
  const sessionExpiresAt = (req.user?.exp ?? 0) * 1000;
102
123
  try {
103
- const ticket = await websocketTicketService.issue(req.user.userId, sessionExpiresAt, audience, audience === 'work-terminal' ? taskId.trim() : undefined);
124
+ const ticket = await websocketTicketService.issue(req.user.userId, sessionExpiresAt, audience, audience === 'work-terminal' ? taskId.trim() : undefined, req.auth?.kind === 'session' ? req.auth.sessionId : undefined);
104
125
  res.json({ success: true, data: ticket });
105
126
  }
106
127
  catch (error) {
@@ -136,14 +157,31 @@ router.post('/login', loginRateLimiter, async (req, res) => {
136
157
  });
137
158
  return;
138
159
  }
139
- const result = await authService.login(username, password);
160
+ const result = await authService.login(username, password, {
161
+ kind: 'password',
162
+ ip: getClientIp(req),
163
+ userAgent: req.headers['user-agent'],
164
+ });
140
165
  if (!result) {
166
+ void recordAuditEvent({
167
+ action: 'auth.login',
168
+ result: 'failure',
169
+ ipHash: hashClientIp(getClientIp(req)),
170
+ details: { username: String(username).slice(0, 64) },
171
+ });
141
172
  res.status(401).json({
142
173
  success: false,
143
174
  message: 'Invalid credentials',
144
175
  });
145
176
  return;
146
177
  }
178
+ void recordAuditEvent({
179
+ action: 'auth.login',
180
+ result: result.status === 'authenticated' ? 'success' : 'denied',
181
+ actorUserId: result.user.id,
182
+ ipHash: hashClientIp(getClientIp(req)),
183
+ details: { method: 'password', status: result.status },
184
+ });
147
185
  if (result.status === 'pending') {
148
186
  res.status(403).json({
149
187
  success: false,
@@ -175,9 +213,16 @@ router.post('/login', loginRateLimiter, async (req, res) => {
175
213
  */
176
214
  router.post('/logout', generalAuthRateLimiter, authenticate, async (req, res) => {
177
215
  try {
178
- // In a stateless JWT system, logout is handled client-side
179
- // But we can log it for audit purposes
180
- logger.debug(`User ${req.user?.username} logged out`);
216
+ // Revoke the server-side session so the JWT stops working everywhere,
217
+ // not just in this browser.
218
+ if (req.auth?.kind === 'session' && req.user) {
219
+ await revokeAuthSession(req.auth.sessionId, req.user.userId);
220
+ }
221
+ void recordAuditEvent({
222
+ action: 'auth.logout',
223
+ result: 'success',
224
+ actorUserId: req.user?.userId ?? null,
225
+ });
181
226
  res.json({
182
227
  success: true,
183
228
  message: 'Logged out successfully',
@@ -191,6 +236,167 @@ router.post('/logout', generalAuthRateLimiter, authenticate, async (req, res) =>
191
236
  });
192
237
  }
193
238
  });
239
+ /** List this account's sessions, newest activity first. */
240
+ router.get('/sessions', generalAuthRateLimiter, authenticate, async (req, res) => {
241
+ try {
242
+ const sessions = await listSessionsForUser(req.user.userId);
243
+ const currentSessionId = req.auth?.kind === 'session' ? req.auth.sessionId : null;
244
+ res.json({
245
+ success: true,
246
+ data: sessions.map(session => ({
247
+ id: session.id,
248
+ kind: session.kind,
249
+ userAgent: session.user_agent,
250
+ createdAt: new Date(session.created_at).toISOString(),
251
+ lastSeenAt: new Date(session.last_seen_at).toISOString(),
252
+ expiresAt: new Date(session.expires_at).toISOString(),
253
+ revokedAt: session.revoked_at
254
+ ? new Date(session.revoked_at).toISOString()
255
+ : null,
256
+ current: session.id === currentSessionId,
257
+ })),
258
+ });
259
+ }
260
+ catch (error) {
261
+ logger.error('Session inventory error:', error);
262
+ res
263
+ .status(500)
264
+ .json({ success: false, message: 'Internal server error' });
265
+ }
266
+ });
267
+ /** Revoke every other session ("sign out everywhere else"). */
268
+ router.post('/sessions/revoke-others', generalAuthRateLimiter, authenticate, async (req, res) => {
269
+ try {
270
+ const currentSessionId = req.auth?.kind === 'session' ? req.auth.sessionId : undefined;
271
+ const revoked = await revokeAllAuthSessions(req.user.userId, req.user.userId, currentSessionId);
272
+ void recordAuditEvent({
273
+ action: 'session.revoke-others',
274
+ result: 'success',
275
+ actorUserId: req.user.userId,
276
+ details: { revokedCount: revoked.length },
277
+ });
278
+ res.json({ success: true, data: { revokedCount: revoked.length } });
279
+ }
280
+ catch (error) {
281
+ logger.error('Session revocation error:', error);
282
+ res
283
+ .status(500)
284
+ .json({ success: false, message: 'Internal server error' });
285
+ }
286
+ });
287
+ /** Revoke one session by id (own sessions only; admins may revoke any). */
288
+ router.delete('/sessions/:id', generalAuthRateLimiter, authenticate, async (req, res) => {
289
+ try {
290
+ const session = await findSessionById(req.params.id);
291
+ const isOwn = session?.user_id === req.user.userId;
292
+ const isAdmin = req.user.role === 'admin';
293
+ if (!session || (!isOwn && !isAdmin)) {
294
+ res.status(404).json({ success: false, message: 'Session not found' });
295
+ return;
296
+ }
297
+ const revoked = await revokeAuthSession(session.id, req.user.userId);
298
+ void recordAuditEvent({
299
+ action: 'session.revoke',
300
+ result: 'success',
301
+ actorUserId: req.user.userId,
302
+ targetType: 'auth-session',
303
+ targetId: session.id,
304
+ details: { targetUserId: session.user_id },
305
+ });
306
+ res.json({ success: true, data: { revoked } });
307
+ }
308
+ catch (error) {
309
+ logger.error('Session revocation error:', error);
310
+ res
311
+ .status(500)
312
+ .json({ success: false, message: 'Internal server error' });
313
+ }
314
+ });
315
+ /** List this account's API tokens (hashes never leave the server). */
316
+ router.get('/tokens', generalAuthRateLimiter, authenticate, async (req, res) => {
317
+ try {
318
+ const tokens = await listTokensForUser(req.user.userId);
319
+ res.json({ success: true, data: tokens.map(toPublicToken) });
320
+ }
321
+ catch (error) {
322
+ logger.error('Token list error:', error);
323
+ res
324
+ .status(500)
325
+ .json({ success: false, message: 'Internal server error' });
326
+ }
327
+ });
328
+ /** Create a scoped API token; the secret is returned exactly once. */
329
+ router.post('/tokens', generalAuthRateLimiter, authenticate, async (req, res) => {
330
+ try {
331
+ if (req.auth?.kind === 'api-token') {
332
+ res.status(403).json({
333
+ success: false,
334
+ message: 'API tokens cannot create other tokens',
335
+ });
336
+ return;
337
+ }
338
+ const { name, scopes, expiresInDays } = req.body ?? {};
339
+ const requestedScopes = Array.isArray(scopes)
340
+ ? scopes.filter(isApiTokenScope)
341
+ : [];
342
+ if (requestedScopes.includes('admin') && req.user.role !== 'admin') {
343
+ res.status(403).json({
344
+ success: false,
345
+ message: 'Only administrators may mint admin-scoped tokens',
346
+ });
347
+ return;
348
+ }
349
+ const created = await createApiToken(req.user.userId, {
350
+ name: typeof name === 'string' ? name : '',
351
+ scopes: requestedScopes,
352
+ ...(typeof expiresInDays === 'number' ? { expiresInDays } : {}),
353
+ });
354
+ void recordAuditEvent({
355
+ action: 'token.create',
356
+ result: 'success',
357
+ actorUserId: req.user.userId,
358
+ targetType: 'api-token',
359
+ targetId: created.record.id,
360
+ details: { name: created.record.name, scopes: requestedScopes },
361
+ });
362
+ res.status(201).json({
363
+ success: true,
364
+ data: { token: created.token, record: toPublicToken(created.record) },
365
+ });
366
+ }
367
+ catch (error) {
368
+ const message = error instanceof Error ? error.message : 'Internal server error';
369
+ res.status(400).json({ success: false, message });
370
+ }
371
+ });
372
+ /** Revoke an API token (own tokens; admins may revoke any). */
373
+ router.delete('/tokens/:id', generalAuthRateLimiter, authenticate, async (req, res) => {
374
+ try {
375
+ const record = await findTokenById(req.params.id);
376
+ const isOwn = record?.user_id === req.user.userId;
377
+ const isAdmin = req.user.role === 'admin';
378
+ if (!record || (!isOwn && !isAdmin)) {
379
+ res.status(404).json({ success: false, message: 'Token not found' });
380
+ return;
381
+ }
382
+ const revoked = await revokeApiToken(record.id);
383
+ void recordAuditEvent({
384
+ action: 'token.revoke',
385
+ result: 'success',
386
+ actorUserId: req.user.userId,
387
+ targetType: 'api-token',
388
+ targetId: record.id,
389
+ details: { targetUserId: record.user_id },
390
+ });
391
+ res.json({ success: true, data: { revoked } });
392
+ }
393
+ catch (error) {
394
+ logger.error('Token revocation error:', error);
395
+ res
396
+ .status(500)
397
+ .json({ success: false, message: 'Internal server error' });
398
+ }
399
+ });
194
400
  /**
195
401
  * Verify token endpoint
196
402
  */
@@ -312,7 +518,11 @@ router.post('/signup', signupRateLimiter, async (req, res) => {
312
518
  });
313
519
  return;
314
520
  }
315
- const result = await authService.signup(username, password, email);
521
+ const result = await authService.signup(username, password, email, {
522
+ kind: 'signup',
523
+ ip: getClientIp(req),
524
+ userAgent: req.headers['user-agent'],
525
+ });
316
526
  if (!result) {
317
527
  res.status(500).json({
318
528
  success: false,
@@ -320,6 +530,13 @@ router.post('/signup', signupRateLimiter, async (req, res) => {
320
530
  });
321
531
  return;
322
532
  }
533
+ void recordAuditEvent({
534
+ action: 'auth.signup',
535
+ result: 'success',
536
+ actorUserId: result.user.id,
537
+ ipHash: hashClientIp(getClientIp(req)),
538
+ details: { status: result.status },
539
+ });
323
540
  const systemInfo = await authService.getSystemInfo();
324
541
  if (result.status === 'pending') {
325
542
  res.status(202).json({
@@ -397,8 +614,19 @@ router.get('/oauth/github/callback', generalAuthRateLimiter, async (req, res) =>
397
614
  if (user.status !== 'active') {
398
615
  return res.redirect(pendingApprovalRedirect());
399
616
  }
400
- // Generate JWT token using existing auth service
401
- const token = authService.generateToken(user);
617
+ // Issue a revocable session-bound JWT
618
+ const token = await authService.issueSession(user, {
619
+ kind: 'oauth:github',
620
+ ip: getClientIp(req),
621
+ userAgent: req.headers['user-agent'],
622
+ });
623
+ void recordAuditEvent({
624
+ action: 'auth.login',
625
+ result: 'success',
626
+ actorUserId: user.id,
627
+ ipHash: hashClientIp(getClientIp(req)),
628
+ details: { method: 'oauth:github' },
629
+ });
402
630
  logger.debug('GitHub OAuth successful for user:', user.username);
403
631
  setOAuthSessionCookie(req, res, token);
404
632
  res.redirect(frontendRedirect('?auth=success'));
@@ -462,8 +690,19 @@ router.get('/oauth/huggingface/callback', generalAuthRateLimiter, async (req, re
462
690
  if (user.status !== 'active') {
463
691
  return res.redirect(pendingApprovalRedirect());
464
692
  }
465
- // Generate JWT token
466
- const token = authService.generateToken(user);
693
+ // Issue a revocable session-bound JWT
694
+ const token = await authService.issueSession(user, {
695
+ kind: 'oauth:huggingface',
696
+ ip: getClientIp(req),
697
+ userAgent: req.headers['user-agent'],
698
+ });
699
+ void recordAuditEvent({
700
+ action: 'auth.login',
701
+ result: 'success',
702
+ actorUserId: user.id,
703
+ ipHash: hashClientIp(getClientIp(req)),
704
+ details: { method: 'oauth:huggingface' },
705
+ });
467
706
  logger.debug('Hugging Face OAuth successful for user:', user.username);
468
707
  setOAuthSessionCookie(req, res, token);
469
708
  res.redirect(frontendRedirect('?auth=success'));
@@ -479,6 +718,95 @@ router.get('/oauth/huggingface/callback', generalAuthRateLimiter, async (req, re
479
718
  router.get('/oauth/huggingface/status', generalAuthRateLimiter, (req, res) => {
480
719
  res.json({ configured: isHuggingFaceConfigured });
481
720
  });
721
+ /**
722
+ * Generic OIDC - Start authentication (PKCE + state + nonce)
723
+ */
724
+ router.get('/oauth/oidc', generalAuthRateLimiter, async (req, res) => {
725
+ if (!oidcOAuthService.isConfigured()) {
726
+ return res.status(404).json({ error: 'OIDC is not configured' });
727
+ }
728
+ try {
729
+ const pkce = oidcOAuthService.createPkcePair();
730
+ const nonce = oidcOAuthService.createNonce();
731
+ const state = beginOAuthFlowWithPayload(req, res, 'oidc', {
732
+ verifier: pkce.verifier,
733
+ nonce,
734
+ });
735
+ const authUrl = await oidcOAuthService.getAuthUrl(state, nonce, pkce.challenge);
736
+ res.redirect(authUrl);
737
+ }
738
+ catch (error) {
739
+ logger.error('OIDC start error:', error);
740
+ res.redirect(oauthErrorRedirect('oauth_failed'));
741
+ }
742
+ });
743
+ /**
744
+ * Generic OIDC - Handle callback: verify state, exchange with PKCE,
745
+ * validate the ID token against JWKS, then issue a session-bound JWT.
746
+ */
747
+ router.get('/oauth/oidc/callback', generalAuthRateLimiter, async (req, res) => {
748
+ try {
749
+ if (!oidcOAuthService.isConfigured()) {
750
+ return res.redirect(oauthErrorRedirect('oauth_not_configured'));
751
+ }
752
+ const { code, state } = req.query;
753
+ const payload = consumeOAuthStatePayload(req, res, 'oidc', typeof state === 'string' ? state : '');
754
+ if (!payload ||
755
+ !payload.verifier ||
756
+ !payload.nonce ||
757
+ !code ||
758
+ typeof code !== 'string') {
759
+ return res.redirect(oauthErrorRedirect('oauth_failed'));
760
+ }
761
+ const exchanged = await oidcOAuthService.exchangeCode(code, payload.verifier);
762
+ const claims = await oidcOAuthService.verifyIdToken(exchanged.idToken, payload.nonce);
763
+ const user = await oidcOAuthService.processClaims(claims);
764
+ if (user.status !== 'active') {
765
+ return res.redirect(pendingApprovalRedirect());
766
+ }
767
+ const token = await authService.issueSession(user, {
768
+ kind: 'oidc',
769
+ ip: getClientIp(req),
770
+ userAgent: req.headers['user-agent'],
771
+ });
772
+ void recordAuditEvent({
773
+ action: 'auth.login',
774
+ result: 'success',
775
+ actorUserId: user.id,
776
+ ipHash: hashClientIp(getClientIp(req)),
777
+ details: { method: 'oidc' },
778
+ });
779
+ setOAuthSessionCookie(req, res, token);
780
+ res.redirect(frontendRedirect('?auth=success'));
781
+ }
782
+ catch (error) {
783
+ logger.error('OIDC callback error:', error);
784
+ void recordAuditEvent({
785
+ action: 'auth.login',
786
+ result: 'failure',
787
+ ipHash: hashClientIp(getClientIp(req)),
788
+ details: {
789
+ method: 'oidc',
790
+ reason: error instanceof OidcError ? error.code : 'unknown',
791
+ },
792
+ });
793
+ const reason = error instanceof OidcError &&
794
+ (error.code === 'registration-disabled' || error.code === 'email-in-use')
795
+ ? error.code.replace(/-/g, '_')
796
+ : 'oauth_failed';
797
+ res.redirect(oauthErrorRedirect(reason));
798
+ }
799
+ });
800
+ /**
801
+ * Check if generic OIDC is configured (includes the login button label)
802
+ */
803
+ router.get('/oauth/oidc/status', generalAuthRateLimiter, (req, res) => {
804
+ const configured = oidcOAuthService.isConfigured();
805
+ res.json({
806
+ configured,
807
+ ...(configured ? { displayName: oidcOAuthService.displayName } : {}),
808
+ });
809
+ });
482
810
  /**
483
811
  * Exchange the short-lived HttpOnly OAuth transfer cookie for the application's
484
812
  * normal bearer-token response. The cookie is cleared even when it is invalid.
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare const router: import("express-serve-static-core").Router;
2
+ export default router;
3
+ //# sourceMappingURL=groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/routes/groups.ts"],"names":[],"mappings":"AAsCA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eAqKjB,MAAM"}