libre-webui 0.22.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +8 -0
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/main.js +2 -2
- package/backend/dist/main.js.map +1 -1
- package/backend/dist/middleware/auth.d.ts +15 -1
- package/backend/dist/middleware/auth.d.ts.map +1 -1
- package/backend/dist/middleware/auth.js +153 -33
- package/backend/dist/middleware/auth.js.map +1 -1
- package/backend/dist/persistence/index.d.ts +1 -0
- package/backend/dist/persistence/index.d.ts.map +1 -1
- package/backend/dist/persistence/index.js.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.js +2 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
- package/backend/dist/persistence/postgresPersistence.d.ts.map +1 -1
- package/backend/dist/persistence/postgresPersistence.js +4 -0
- package/backend/dist/persistence/postgresPersistence.js.map +1 -1
- package/backend/dist/persistence/postgresSecurityRepositories.d.ts +7 -0
- package/backend/dist/persistence/postgresSecurityRepositories.d.ts.map +1 -0
- package/backend/dist/persistence/postgresSecurityRepositories.js +435 -0
- package/backend/dist/persistence/postgresSecurityRepositories.js.map +1 -0
- package/backend/dist/persistence/postgresTrustFoundationMigration.d.ts +8 -0
- package/backend/dist/persistence/postgresTrustFoundationMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresTrustFoundationMigration.js +151 -0
- package/backend/dist/persistence/postgresTrustFoundationMigration.js.map +1 -0
- package/backend/dist/persistence/securityTypes.d.ts +196 -0
- package/backend/dist/persistence/securityTypes.d.ts.map +1 -0
- package/backend/dist/persistence/securityTypes.js +18 -0
- package/backend/dist/persistence/securityTypes.js.map +1 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts +1 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.js +311 -0
- package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
- package/backend/dist/persistence/sqlitePersistence.d.ts.map +1 -1
- package/backend/dist/persistence/sqlitePersistence.js +3 -0
- package/backend/dist/persistence/sqlitePersistence.js.map +1 -1
- package/backend/dist/persistence/sqliteSecurityRepositories.d.ts +6 -0
- package/backend/dist/persistence/sqliteSecurityRepositories.d.ts.map +1 -0
- package/backend/dist/persistence/sqliteSecurityRepositories.js +497 -0
- package/backend/dist/persistence/sqliteSecurityRepositories.js.map +1 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.js +55 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
- package/backend/dist/persistence/types.d.ts +4 -0
- package/backend/dist/persistence/types.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.js +12 -0
- package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
- package/backend/dist/platform/storage/storageFactory.d.ts +2 -0
- package/backend/dist/platform/storage/storageFactory.d.ts.map +1 -1
- package/backend/dist/platform/storage/storageFactory.js +15 -3
- package/backend/dist/platform/storage/storageFactory.js.map +1 -1
- package/backend/dist/routes/access.d.ts +3 -0
- package/backend/dist/routes/access.d.ts.map +1 -0
- package/backend/dist/routes/access.js +134 -0
- package/backend/dist/routes/access.js.map +1 -0
- package/backend/dist/routes/audit.d.ts +3 -0
- package/backend/dist/routes/audit.d.ts.map +1 -0
- package/backend/dist/routes/audit.js +82 -0
- package/backend/dist/routes/audit.js.map +1 -0
- package/backend/dist/routes/auth.d.ts.map +1 -1
- package/backend/dist/routes/auth.js +322 -11
- package/backend/dist/routes/auth.js.map +1 -1
- package/backend/dist/routes/groups.d.ts +3 -0
- package/backend/dist/routes/groups.d.ts.map +1 -0
- package/backend/dist/routes/groups.js +161 -0
- package/backend/dist/routes/groups.js.map +1 -0
- package/backend/dist/routes/jobs.d.ts.map +1 -1
- package/backend/dist/routes/jobs.js +9 -0
- package/backend/dist/routes/jobs.js.map +1 -1
- package/backend/dist/services/apiTokenService.d.ts +51 -0
- package/backend/dist/services/apiTokenService.d.ts.map +1 -0
- package/backend/dist/services/apiTokenService.js +220 -0
- package/backend/dist/services/apiTokenService.js.map +1 -0
- package/backend/dist/services/authService.d.ts +20 -4
- package/backend/dist/services/authService.d.ts.map +1 -1
- package/backend/dist/services/authService.js +44 -6
- package/backend/dist/services/authService.js.map +1 -1
- package/backend/dist/services/authSessionService.d.ts +34 -0
- package/backend/dist/services/authSessionService.d.ts.map +1 -0
- package/backend/dist/services/authSessionService.js +205 -0
- package/backend/dist/services/authSessionService.js.map +1 -0
- package/backend/dist/services/authorizationService.d.ts +64 -0
- package/backend/dist/services/authorizationService.d.ts.map +1 -0
- package/backend/dist/services/authorizationService.js +176 -0
- package/backend/dist/services/authorizationService.js.map +1 -0
- package/backend/dist/services/groupService.d.ts +27 -0
- package/backend/dist/services/groupService.d.ts.map +1 -0
- package/backend/dist/services/groupService.js +245 -0
- package/backend/dist/services/groupService.js.map +1 -0
- package/backend/dist/services/groupVectorPrincipalResolver.d.ts +12 -0
- package/backend/dist/services/groupVectorPrincipalResolver.d.ts.map +1 -0
- package/backend/dist/services/groupVectorPrincipalResolver.js +33 -0
- package/backend/dist/services/groupVectorPrincipalResolver.js.map +1 -0
- package/backend/dist/services/modelAccessService.d.ts +1 -0
- package/backend/dist/services/modelAccessService.d.ts.map +1 -1
- package/backend/dist/services/modelAccessService.js +3 -5
- package/backend/dist/services/modelAccessService.js.map +1 -1
- package/backend/dist/services/oauthSecurity.d.ts +12 -1
- package/backend/dist/services/oauthSecurity.d.ts.map +1 -1
- package/backend/dist/services/oauthSecurity.js +41 -0
- package/backend/dist/services/oauthSecurity.js.map +1 -1
- package/backend/dist/services/pluginService.d.ts.map +1 -1
- package/backend/dist/services/pluginService.js +35 -2
- package/backend/dist/services/pluginService.js.map +1 -1
- package/backend/dist/services/resourceGrantService.d.ts +28 -0
- package/backend/dist/services/resourceGrantService.d.ts.map +1 -0
- package/backend/dist/services/resourceGrantService.js +192 -0
- package/backend/dist/services/resourceGrantService.js.map +1 -0
- package/backend/dist/services/securityAuditService.d.ts +35 -0
- package/backend/dist/services/securityAuditService.d.ts.map +1 -0
- package/backend/dist/services/securityAuditService.js +159 -0
- package/backend/dist/services/securityAuditService.js.map +1 -0
- package/backend/dist/services/simpleGitHubOAuth.d.ts.map +1 -1
- package/backend/dist/services/simpleGitHubOAuth.js +4 -2
- package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
- package/backend/dist/services/simpleOidcOAuth.d.ts +62 -0
- package/backend/dist/services/simpleOidcOAuth.d.ts.map +1 -0
- package/backend/dist/services/simpleOidcOAuth.js +397 -0
- package/backend/dist/services/simpleOidcOAuth.js.map +1 -0
- package/backend/dist/services/webSearchService.d.ts +1 -0
- package/backend/dist/services/webSearchService.d.ts.map +1 -1
- package/backend/dist/services/webSearchService.js +3 -5
- package/backend/dist/services/webSearchService.js.map +1 -1
- package/backend/dist/services/websocketTicketService.d.ts +3 -1
- package/backend/dist/services/websocketTicketService.d.ts.map +1 -1
- package/backend/dist/services/websocketTicketService.js +4 -1
- package/backend/dist/services/websocketTicketService.js.map +1 -1
- package/backend/dist/services/workAccessService.d.ts +1 -0
- package/backend/dist/services/workAccessService.d.ts.map +1 -1
- package/backend/dist/services/workAccessService.js +3 -5
- package/backend/dist/services/workAccessService.js.map +1 -1
- package/backend/dist/services/workEventService.d.ts.map +1 -1
- package/backend/dist/services/workEventService.js +74 -18
- package/backend/dist/services/workEventService.js.map +1 -1
- package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeService.js +19 -1
- package/backend/dist/services/workRuntimeService.js.map +1 -1
- package/backend/dist/utils/pluginUpload.d.ts.map +1 -1
- package/backend/dist/utils/pluginUpload.js +10 -7
- package/backend/dist/utils/pluginUpload.js.map +1 -1
- package/backend/dist/websocketServer.d.ts.map +1 -1
- package/backend/dist/websocketServer.js +25 -1
- package/backend/dist/websocketServer.js.map +1 -1
- package/backend/dist/workTerminalServer.d.ts.map +1 -1
- package/backend/dist/workTerminalServer.js +19 -1
- package/backend/dist/workTerminalServer.js.map +1 -1
- package/backend/dist/worker.js +4 -2
- package/backend/dist/worker.js.map +1 -1
- package/backend/package.json +1 -1
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/assets/index-CudKJ5Bs.js +27 -0
- package/frontend/dist/assets/index-DBaj1DRj.css +1 -0
- package/frontend/dist/index.html +11 -11
- package/frontend/dist/js/ArtifactContainer-CigyGLnW.js +1 -0
- package/frontend/dist/js/{ArtifactDemoPage-B0gN3YTl.js → ArtifactDemoPage-CITpRQXa.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-CLBXQkZs.js → ArtifactSandboxFrame-C8_7sKm1.js} +2 -2
- package/frontend/dist/js/ArtifactSlideOutPanel-D1f9zUZN.js +1 -0
- package/frontend/dist/js/ChatPage-D-Q1SGlI.js +23 -0
- package/frontend/dist/js/FirstTimeSetup-DwvqU8Jk.js +1 -0
- package/frontend/dist/js/{GalleryPage-W4uI043I.js → GalleryPage-CFU6YW9r.js} +1 -1
- package/frontend/dist/js/{HomePage-DlxehbyO.js → HomePage-CEoZABYG.js} +1 -1
- package/frontend/dist/js/{LibreClawPage-CgD0_G_F.js → LibreClawPage-VV4sD4-v.js} +1 -1
- package/frontend/dist/js/{ModelManagerModals-D7jIT3v1.js → ModelManagerModals-CZAWUxjI.js} +1 -1
- package/frontend/dist/js/{ModelSelector-BYxJU1UV.js → ModelSelector-DVN9nTCB.js} +1 -1
- package/frontend/dist/js/ModelsPage-Ce41crA_.js +2 -0
- package/frontend/dist/js/{NotesPage-CDECOl4V.js → NotesPage-BV08Gh2X.js} +1 -1
- package/frontend/dist/js/{PersonasPage-CjSLPrgS.js → PersonasPage-CSpK5FvR.js} +2 -2
- package/frontend/dist/js/{PluginUsagePage-DJOXJuH4.js → PluginUsagePage-B9YPhusn.js} +1 -1
- package/frontend/dist/js/{RichMessageContent-Debeh6bi.js → RichMessageContent-C3qddYMx.js} +1 -1
- package/frontend/dist/js/SettingsModal-CQSumlFr.js +1 -0
- package/frontend/dist/js/SystemPage-7KbZlMb_.js +1 -0
- package/frontend/dist/js/UserManagementPage-DnyW0Wmx.js +1 -0
- package/frontend/dist/js/WorkPage-B3cuSSwH.js +6 -0
- package/frontend/dist/js/api-DSzsasYT.js +14 -0
- package/frontend/dist/js/{appStore-DKwC2vgn.js → appStore-CYhqdjge.js} +2 -2
- package/frontend/dist/js/ar-D0z0P4rC.js +2 -0
- package/frontend/dist/js/{authStore-OaTuapL7.js → authStore-CnSn5zM7.js} +3 -3
- package/frontend/dist/js/bn-BYYU41A7.js +2 -0
- package/frontend/dist/js/chatStore-P1aGCgiF.js +3 -0
- package/frontend/dist/js/{config-DPEEuTAe.js → config-EEx_rELa.js} +1 -1
- package/frontend/dist/js/cs-BFx6KNZe.js +2 -0
- package/frontend/dist/js/da-DSDuY5Du.js +2 -0
- package/frontend/dist/js/de-YqhP0FmX.js +2 -0
- package/frontend/dist/js/es-Dpr_y1cN.js +2 -0
- package/frontend/dist/js/{estree-ChwJsD2w.js → estree-Dc6SMAYy.js} +1 -1
- package/frontend/dist/js/fr-nVg_iAEC.js +2 -0
- package/frontend/dist/js/hi-gHKYCgkP.js +2 -0
- package/frontend/dist/js/{html-DFrVjciF.js → html-Bax5_Bzw.js} +1 -1
- package/frontend/dist/js/id-C_yID1Zk.js +2 -0
- package/frontend/dist/js/is-MoRPLbOM.js +2 -0
- package/frontend/dist/js/it-BZTscLxR.js +2 -0
- package/frontend/dist/js/ja-DpIbtmZq.js +2 -0
- package/frontend/dist/js/ko-LkWggmjU.js +2 -0
- package/frontend/dist/js/{markdown-FLLx7b67.js → markdown-DxaneQad.js} +1 -1
- package/frontend/dist/js/{messageCodeStyles-CBkkZY4n.js → messageCodeStyles-CxXrl4jD.js} +2 -2
- package/frontend/dist/js/ms-p3XiQSAo.js +2 -0
- package/frontend/dist/js/nl-sEHHO2Kb.js +2 -0
- package/frontend/dist/js/pl-D2GD6PDW.js +2 -0
- package/frontend/dist/js/pt-DPkn3GUn.js +2 -0
- package/frontend/dist/js/ru-C42iHrEd.js +2 -0
- package/frontend/dist/js/{standalone-i8-5bg5p.js → standalone-CCpjftAD.js} +1 -1
- package/frontend/dist/js/sv-CGvHo4os.js +2 -0
- package/frontend/dist/js/th-BaDNpCdY.js +2 -0
- package/frontend/dist/js/tr-BHQvi1cN.js +2 -0
- package/frontend/dist/js/{typescript-CQ3x-Uni.js → typescript-DtQEF6kq.js} +1 -1
- package/frontend/dist/js/{ui-BHhR3Vok.js → ui-CUMAcARd.js} +2 -2
- package/frontend/dist/js/{ui-vendor-D3Ahl1x5.js → ui-vendor-54SgntkX.js} +1 -1
- package/frontend/dist/js/uk-7pNGS1b2.js +2 -0
- package/frontend/dist/js/vi-DgAfh6mo.js +2 -0
- package/frontend/dist/js/{workApi-Czu69yWS.js → workApi-vRuNfpEf.js} +2 -2
- package/frontend/dist/js/zh-FRTz6ZqA.js +2 -0
- package/package.json +2 -2
- package/frontend/dist/assets/index-CUhEG7E2.js +0 -33
- package/frontend/dist/assets/index-kxtZQLV6.css +0 -1
- package/frontend/dist/js/ArtifactContainer-BTEDhBnv.js +0 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-CfqHPFdE.js +0 -1
- package/frontend/dist/js/ChatPage-DIkAXZWA.js +0 -23
- package/frontend/dist/js/FirstTimeSetup-B8phXGNA.js +0 -1
- package/frontend/dist/js/ModelsPage-C4XdCKP5.js +0 -2
- package/frontend/dist/js/SettingsModal-cUqAeYUP.js +0 -1
- package/frontend/dist/js/SystemPage-DxPw0GS7.js +0 -1
- package/frontend/dist/js/UserManagementPage-CEdYFe_Z.js +0 -1
- package/frontend/dist/js/WorkPage-DDVeuG_9.js +0 -6
- package/frontend/dist/js/api-IzobHGND.js +0 -14
- package/frontend/dist/js/ar-xTSvTq05.js +0 -2
- package/frontend/dist/js/bn-iYAsohEA.js +0 -2
- package/frontend/dist/js/chatStore-DXGUVLXD.js +0 -3
- package/frontend/dist/js/cs-YBHN88Hb.js +0 -2
- package/frontend/dist/js/da-D7qlLy_k.js +0 -2
- package/frontend/dist/js/de-DV671k2c.js +0 -2
- package/frontend/dist/js/es-kyBgzNq-.js +0 -2
- package/frontend/dist/js/fr-Cw1vut7I.js +0 -2
- package/frontend/dist/js/hi-DWEFC024.js +0 -2
- package/frontend/dist/js/id-DlMHjjy0.js +0 -2
- package/frontend/dist/js/is-B9E_a7dG.js +0 -2
- package/frontend/dist/js/it-DawmVbLC.js +0 -2
- package/frontend/dist/js/ja-DmVvwY3W.js +0 -2
- package/frontend/dist/js/ko-DzOPpkVs.js +0 -2
- package/frontend/dist/js/ms-DpsaOPht.js +0 -2
- package/frontend/dist/js/nl-B1d8W22n.js +0 -2
- package/frontend/dist/js/pl-nCncRVgt.js +0 -2
- package/frontend/dist/js/pt-DHw8fGuu.js +0 -2
- package/frontend/dist/js/ru-Derl_YP_.js +0 -2
- package/frontend/dist/js/sv-pJAfBVo0.js +0 -2
- package/frontend/dist/js/th-C_7fIGnk.js +0 -2
- package/frontend/dist/js/tr-CPqsJvaP.js +0 -2
- package/frontend/dist/js/uk-3o8P_kFi.js +0 -2
- package/frontend/dist/js/vi-Dv6N7OVD.js +0 -2
- 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
|
|
@@ -100,7 +104,7 @@ router.post('/websocket-ticket', generalAuthRateLimiter, authenticate, async (re
|
|
|
100
104
|
}
|
|
101
105
|
const sessionExpiresAt = (req.user?.exp ?? 0) * 1000;
|
|
102
106
|
try {
|
|
103
|
-
const ticket = await websocketTicketService.issue(req.user.userId, sessionExpiresAt, audience, audience === 'work-terminal' ? taskId.trim() : undefined);
|
|
107
|
+
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
108
|
res.json({ success: true, data: ticket });
|
|
105
109
|
}
|
|
106
110
|
catch (error) {
|
|
@@ -136,14 +140,31 @@ router.post('/login', loginRateLimiter, async (req, res) => {
|
|
|
136
140
|
});
|
|
137
141
|
return;
|
|
138
142
|
}
|
|
139
|
-
const result = await authService.login(username, password
|
|
143
|
+
const result = await authService.login(username, password, {
|
|
144
|
+
kind: 'password',
|
|
145
|
+
ip: getClientIp(req),
|
|
146
|
+
userAgent: req.headers['user-agent'],
|
|
147
|
+
});
|
|
140
148
|
if (!result) {
|
|
149
|
+
void recordAuditEvent({
|
|
150
|
+
action: 'auth.login',
|
|
151
|
+
result: 'failure',
|
|
152
|
+
ipHash: hashClientIp(getClientIp(req)),
|
|
153
|
+
details: { username: String(username).slice(0, 64) },
|
|
154
|
+
});
|
|
141
155
|
res.status(401).json({
|
|
142
156
|
success: false,
|
|
143
157
|
message: 'Invalid credentials',
|
|
144
158
|
});
|
|
145
159
|
return;
|
|
146
160
|
}
|
|
161
|
+
void recordAuditEvent({
|
|
162
|
+
action: 'auth.login',
|
|
163
|
+
result: result.status === 'authenticated' ? 'success' : 'denied',
|
|
164
|
+
actorUserId: result.user.id,
|
|
165
|
+
ipHash: hashClientIp(getClientIp(req)),
|
|
166
|
+
details: { method: 'password', status: result.status },
|
|
167
|
+
});
|
|
147
168
|
if (result.status === 'pending') {
|
|
148
169
|
res.status(403).json({
|
|
149
170
|
success: false,
|
|
@@ -175,9 +196,16 @@ router.post('/login', loginRateLimiter, async (req, res) => {
|
|
|
175
196
|
*/
|
|
176
197
|
router.post('/logout', generalAuthRateLimiter, authenticate, async (req, res) => {
|
|
177
198
|
try {
|
|
178
|
-
//
|
|
179
|
-
//
|
|
180
|
-
|
|
199
|
+
// Revoke the server-side session so the JWT stops working everywhere,
|
|
200
|
+
// not just in this browser.
|
|
201
|
+
if (req.auth?.kind === 'session' && req.user) {
|
|
202
|
+
await revokeAuthSession(req.auth.sessionId, req.user.userId);
|
|
203
|
+
}
|
|
204
|
+
void recordAuditEvent({
|
|
205
|
+
action: 'auth.logout',
|
|
206
|
+
result: 'success',
|
|
207
|
+
actorUserId: req.user?.userId ?? null,
|
|
208
|
+
});
|
|
181
209
|
res.json({
|
|
182
210
|
success: true,
|
|
183
211
|
message: 'Logged out successfully',
|
|
@@ -191,6 +219,167 @@ router.post('/logout', generalAuthRateLimiter, authenticate, async (req, res) =>
|
|
|
191
219
|
});
|
|
192
220
|
}
|
|
193
221
|
});
|
|
222
|
+
/** List this account's sessions, newest activity first. */
|
|
223
|
+
router.get('/sessions', generalAuthRateLimiter, authenticate, async (req, res) => {
|
|
224
|
+
try {
|
|
225
|
+
const sessions = await listSessionsForUser(req.user.userId);
|
|
226
|
+
const currentSessionId = req.auth?.kind === 'session' ? req.auth.sessionId : null;
|
|
227
|
+
res.json({
|
|
228
|
+
success: true,
|
|
229
|
+
data: sessions.map(session => ({
|
|
230
|
+
id: session.id,
|
|
231
|
+
kind: session.kind,
|
|
232
|
+
userAgent: session.user_agent,
|
|
233
|
+
createdAt: new Date(session.created_at).toISOString(),
|
|
234
|
+
lastSeenAt: new Date(session.last_seen_at).toISOString(),
|
|
235
|
+
expiresAt: new Date(session.expires_at).toISOString(),
|
|
236
|
+
revokedAt: session.revoked_at
|
|
237
|
+
? new Date(session.revoked_at).toISOString()
|
|
238
|
+
: null,
|
|
239
|
+
current: session.id === currentSessionId,
|
|
240
|
+
})),
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
logger.error('Session inventory error:', error);
|
|
245
|
+
res
|
|
246
|
+
.status(500)
|
|
247
|
+
.json({ success: false, message: 'Internal server error' });
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
/** Revoke every other session ("sign out everywhere else"). */
|
|
251
|
+
router.post('/sessions/revoke-others', generalAuthRateLimiter, authenticate, async (req, res) => {
|
|
252
|
+
try {
|
|
253
|
+
const currentSessionId = req.auth?.kind === 'session' ? req.auth.sessionId : undefined;
|
|
254
|
+
const revoked = await revokeAllAuthSessions(req.user.userId, req.user.userId, currentSessionId);
|
|
255
|
+
void recordAuditEvent({
|
|
256
|
+
action: 'session.revoke-others',
|
|
257
|
+
result: 'success',
|
|
258
|
+
actorUserId: req.user.userId,
|
|
259
|
+
details: { revokedCount: revoked.length },
|
|
260
|
+
});
|
|
261
|
+
res.json({ success: true, data: { revokedCount: revoked.length } });
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
logger.error('Session revocation error:', error);
|
|
265
|
+
res
|
|
266
|
+
.status(500)
|
|
267
|
+
.json({ success: false, message: 'Internal server error' });
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
/** Revoke one session by id (own sessions only; admins may revoke any). */
|
|
271
|
+
router.delete('/sessions/:id', generalAuthRateLimiter, authenticate, async (req, res) => {
|
|
272
|
+
try {
|
|
273
|
+
const session = await findSessionById(req.params.id);
|
|
274
|
+
const isOwn = session?.user_id === req.user.userId;
|
|
275
|
+
const isAdmin = req.user.role === 'admin';
|
|
276
|
+
if (!session || (!isOwn && !isAdmin)) {
|
|
277
|
+
res.status(404).json({ success: false, message: 'Session not found' });
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
const revoked = await revokeAuthSession(session.id, req.user.userId);
|
|
281
|
+
void recordAuditEvent({
|
|
282
|
+
action: 'session.revoke',
|
|
283
|
+
result: 'success',
|
|
284
|
+
actorUserId: req.user.userId,
|
|
285
|
+
targetType: 'auth-session',
|
|
286
|
+
targetId: session.id,
|
|
287
|
+
details: { targetUserId: session.user_id },
|
|
288
|
+
});
|
|
289
|
+
res.json({ success: true, data: { revoked } });
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
logger.error('Session revocation error:', error);
|
|
293
|
+
res
|
|
294
|
+
.status(500)
|
|
295
|
+
.json({ success: false, message: 'Internal server error' });
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
/** List this account's API tokens (hashes never leave the server). */
|
|
299
|
+
router.get('/tokens', generalAuthRateLimiter, authenticate, async (req, res) => {
|
|
300
|
+
try {
|
|
301
|
+
const tokens = await listTokensForUser(req.user.userId);
|
|
302
|
+
res.json({ success: true, data: tokens.map(toPublicToken) });
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
logger.error('Token list error:', error);
|
|
306
|
+
res
|
|
307
|
+
.status(500)
|
|
308
|
+
.json({ success: false, message: 'Internal server error' });
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
/** Create a scoped API token; the secret is returned exactly once. */
|
|
312
|
+
router.post('/tokens', generalAuthRateLimiter, authenticate, async (req, res) => {
|
|
313
|
+
try {
|
|
314
|
+
if (req.auth?.kind === 'api-token') {
|
|
315
|
+
res.status(403).json({
|
|
316
|
+
success: false,
|
|
317
|
+
message: 'API tokens cannot create other tokens',
|
|
318
|
+
});
|
|
319
|
+
return;
|
|
320
|
+
}
|
|
321
|
+
const { name, scopes, expiresInDays } = req.body ?? {};
|
|
322
|
+
const requestedScopes = Array.isArray(scopes)
|
|
323
|
+
? scopes.filter(isApiTokenScope)
|
|
324
|
+
: [];
|
|
325
|
+
if (requestedScopes.includes('admin') && req.user.role !== 'admin') {
|
|
326
|
+
res.status(403).json({
|
|
327
|
+
success: false,
|
|
328
|
+
message: 'Only administrators may mint admin-scoped tokens',
|
|
329
|
+
});
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
const created = await createApiToken(req.user.userId, {
|
|
333
|
+
name: typeof name === 'string' ? name : '',
|
|
334
|
+
scopes: requestedScopes,
|
|
335
|
+
...(typeof expiresInDays === 'number' ? { expiresInDays } : {}),
|
|
336
|
+
});
|
|
337
|
+
void recordAuditEvent({
|
|
338
|
+
action: 'token.create',
|
|
339
|
+
result: 'success',
|
|
340
|
+
actorUserId: req.user.userId,
|
|
341
|
+
targetType: 'api-token',
|
|
342
|
+
targetId: created.record.id,
|
|
343
|
+
details: { name: created.record.name, scopes: requestedScopes },
|
|
344
|
+
});
|
|
345
|
+
res.status(201).json({
|
|
346
|
+
success: true,
|
|
347
|
+
data: { token: created.token, record: toPublicToken(created.record) },
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
const message = error instanceof Error ? error.message : 'Internal server error';
|
|
352
|
+
res.status(400).json({ success: false, message });
|
|
353
|
+
}
|
|
354
|
+
});
|
|
355
|
+
/** Revoke an API token (own tokens; admins may revoke any). */
|
|
356
|
+
router.delete('/tokens/:id', generalAuthRateLimiter, authenticate, async (req, res) => {
|
|
357
|
+
try {
|
|
358
|
+
const record = await findTokenById(req.params.id);
|
|
359
|
+
const isOwn = record?.user_id === req.user.userId;
|
|
360
|
+
const isAdmin = req.user.role === 'admin';
|
|
361
|
+
if (!record || (!isOwn && !isAdmin)) {
|
|
362
|
+
res.status(404).json({ success: false, message: 'Token not found' });
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
const revoked = await revokeApiToken(record.id);
|
|
366
|
+
void recordAuditEvent({
|
|
367
|
+
action: 'token.revoke',
|
|
368
|
+
result: 'success',
|
|
369
|
+
actorUserId: req.user.userId,
|
|
370
|
+
targetType: 'api-token',
|
|
371
|
+
targetId: record.id,
|
|
372
|
+
details: { targetUserId: record.user_id },
|
|
373
|
+
});
|
|
374
|
+
res.json({ success: true, data: { revoked } });
|
|
375
|
+
}
|
|
376
|
+
catch (error) {
|
|
377
|
+
logger.error('Token revocation error:', error);
|
|
378
|
+
res
|
|
379
|
+
.status(500)
|
|
380
|
+
.json({ success: false, message: 'Internal server error' });
|
|
381
|
+
}
|
|
382
|
+
});
|
|
194
383
|
/**
|
|
195
384
|
* Verify token endpoint
|
|
196
385
|
*/
|
|
@@ -312,7 +501,11 @@ router.post('/signup', signupRateLimiter, async (req, res) => {
|
|
|
312
501
|
});
|
|
313
502
|
return;
|
|
314
503
|
}
|
|
315
|
-
const result = await authService.signup(username, password, email
|
|
504
|
+
const result = await authService.signup(username, password, email, {
|
|
505
|
+
kind: 'signup',
|
|
506
|
+
ip: getClientIp(req),
|
|
507
|
+
userAgent: req.headers['user-agent'],
|
|
508
|
+
});
|
|
316
509
|
if (!result) {
|
|
317
510
|
res.status(500).json({
|
|
318
511
|
success: false,
|
|
@@ -320,6 +513,13 @@ router.post('/signup', signupRateLimiter, async (req, res) => {
|
|
|
320
513
|
});
|
|
321
514
|
return;
|
|
322
515
|
}
|
|
516
|
+
void recordAuditEvent({
|
|
517
|
+
action: 'auth.signup',
|
|
518
|
+
result: 'success',
|
|
519
|
+
actorUserId: result.user.id,
|
|
520
|
+
ipHash: hashClientIp(getClientIp(req)),
|
|
521
|
+
details: { status: result.status },
|
|
522
|
+
});
|
|
323
523
|
const systemInfo = await authService.getSystemInfo();
|
|
324
524
|
if (result.status === 'pending') {
|
|
325
525
|
res.status(202).json({
|
|
@@ -397,8 +597,19 @@ router.get('/oauth/github/callback', generalAuthRateLimiter, async (req, res) =>
|
|
|
397
597
|
if (user.status !== 'active') {
|
|
398
598
|
return res.redirect(pendingApprovalRedirect());
|
|
399
599
|
}
|
|
400
|
-
//
|
|
401
|
-
const token = authService.
|
|
600
|
+
// Issue a revocable session-bound JWT
|
|
601
|
+
const token = await authService.issueSession(user, {
|
|
602
|
+
kind: 'oauth:github',
|
|
603
|
+
ip: getClientIp(req),
|
|
604
|
+
userAgent: req.headers['user-agent'],
|
|
605
|
+
});
|
|
606
|
+
void recordAuditEvent({
|
|
607
|
+
action: 'auth.login',
|
|
608
|
+
result: 'success',
|
|
609
|
+
actorUserId: user.id,
|
|
610
|
+
ipHash: hashClientIp(getClientIp(req)),
|
|
611
|
+
details: { method: 'oauth:github' },
|
|
612
|
+
});
|
|
402
613
|
logger.debug('GitHub OAuth successful for user:', user.username);
|
|
403
614
|
setOAuthSessionCookie(req, res, token);
|
|
404
615
|
res.redirect(frontendRedirect('?auth=success'));
|
|
@@ -462,8 +673,19 @@ router.get('/oauth/huggingface/callback', generalAuthRateLimiter, async (req, re
|
|
|
462
673
|
if (user.status !== 'active') {
|
|
463
674
|
return res.redirect(pendingApprovalRedirect());
|
|
464
675
|
}
|
|
465
|
-
//
|
|
466
|
-
const token = authService.
|
|
676
|
+
// Issue a revocable session-bound JWT
|
|
677
|
+
const token = await authService.issueSession(user, {
|
|
678
|
+
kind: 'oauth:huggingface',
|
|
679
|
+
ip: getClientIp(req),
|
|
680
|
+
userAgent: req.headers['user-agent'],
|
|
681
|
+
});
|
|
682
|
+
void recordAuditEvent({
|
|
683
|
+
action: 'auth.login',
|
|
684
|
+
result: 'success',
|
|
685
|
+
actorUserId: user.id,
|
|
686
|
+
ipHash: hashClientIp(getClientIp(req)),
|
|
687
|
+
details: { method: 'oauth:huggingface' },
|
|
688
|
+
});
|
|
467
689
|
logger.debug('Hugging Face OAuth successful for user:', user.username);
|
|
468
690
|
setOAuthSessionCookie(req, res, token);
|
|
469
691
|
res.redirect(frontendRedirect('?auth=success'));
|
|
@@ -479,6 +701,95 @@ router.get('/oauth/huggingface/callback', generalAuthRateLimiter, async (req, re
|
|
|
479
701
|
router.get('/oauth/huggingface/status', generalAuthRateLimiter, (req, res) => {
|
|
480
702
|
res.json({ configured: isHuggingFaceConfigured });
|
|
481
703
|
});
|
|
704
|
+
/**
|
|
705
|
+
* Generic OIDC - Start authentication (PKCE + state + nonce)
|
|
706
|
+
*/
|
|
707
|
+
router.get('/oauth/oidc', generalAuthRateLimiter, async (req, res) => {
|
|
708
|
+
if (!oidcOAuthService.isConfigured()) {
|
|
709
|
+
return res.status(404).json({ error: 'OIDC is not configured' });
|
|
710
|
+
}
|
|
711
|
+
try {
|
|
712
|
+
const pkce = oidcOAuthService.createPkcePair();
|
|
713
|
+
const nonce = oidcOAuthService.createNonce();
|
|
714
|
+
const state = beginOAuthFlowWithPayload(req, res, 'oidc', {
|
|
715
|
+
verifier: pkce.verifier,
|
|
716
|
+
nonce,
|
|
717
|
+
});
|
|
718
|
+
const authUrl = await oidcOAuthService.getAuthUrl(state, nonce, pkce.challenge);
|
|
719
|
+
res.redirect(authUrl);
|
|
720
|
+
}
|
|
721
|
+
catch (error) {
|
|
722
|
+
logger.error('OIDC start error:', error);
|
|
723
|
+
res.redirect(oauthErrorRedirect('oauth_failed'));
|
|
724
|
+
}
|
|
725
|
+
});
|
|
726
|
+
/**
|
|
727
|
+
* Generic OIDC - Handle callback: verify state, exchange with PKCE,
|
|
728
|
+
* validate the ID token against JWKS, then issue a session-bound JWT.
|
|
729
|
+
*/
|
|
730
|
+
router.get('/oauth/oidc/callback', generalAuthRateLimiter, async (req, res) => {
|
|
731
|
+
try {
|
|
732
|
+
if (!oidcOAuthService.isConfigured()) {
|
|
733
|
+
return res.redirect(oauthErrorRedirect('oauth_not_configured'));
|
|
734
|
+
}
|
|
735
|
+
const { code, state } = req.query;
|
|
736
|
+
const payload = consumeOAuthStatePayload(req, res, 'oidc', typeof state === 'string' ? state : '');
|
|
737
|
+
if (!payload ||
|
|
738
|
+
!payload.verifier ||
|
|
739
|
+
!payload.nonce ||
|
|
740
|
+
!code ||
|
|
741
|
+
typeof code !== 'string') {
|
|
742
|
+
return res.redirect(oauthErrorRedirect('oauth_failed'));
|
|
743
|
+
}
|
|
744
|
+
const exchanged = await oidcOAuthService.exchangeCode(code, payload.verifier);
|
|
745
|
+
const claims = await oidcOAuthService.verifyIdToken(exchanged.idToken, payload.nonce);
|
|
746
|
+
const user = await oidcOAuthService.processClaims(claims);
|
|
747
|
+
if (user.status !== 'active') {
|
|
748
|
+
return res.redirect(pendingApprovalRedirect());
|
|
749
|
+
}
|
|
750
|
+
const token = await authService.issueSession(user, {
|
|
751
|
+
kind: 'oidc',
|
|
752
|
+
ip: getClientIp(req),
|
|
753
|
+
userAgent: req.headers['user-agent'],
|
|
754
|
+
});
|
|
755
|
+
void recordAuditEvent({
|
|
756
|
+
action: 'auth.login',
|
|
757
|
+
result: 'success',
|
|
758
|
+
actorUserId: user.id,
|
|
759
|
+
ipHash: hashClientIp(getClientIp(req)),
|
|
760
|
+
details: { method: 'oidc' },
|
|
761
|
+
});
|
|
762
|
+
setOAuthSessionCookie(req, res, token);
|
|
763
|
+
res.redirect(frontendRedirect('?auth=success'));
|
|
764
|
+
}
|
|
765
|
+
catch (error) {
|
|
766
|
+
logger.error('OIDC callback error:', error);
|
|
767
|
+
void recordAuditEvent({
|
|
768
|
+
action: 'auth.login',
|
|
769
|
+
result: 'failure',
|
|
770
|
+
ipHash: hashClientIp(getClientIp(req)),
|
|
771
|
+
details: {
|
|
772
|
+
method: 'oidc',
|
|
773
|
+
reason: error instanceof OidcError ? error.code : 'unknown',
|
|
774
|
+
},
|
|
775
|
+
});
|
|
776
|
+
const reason = error instanceof OidcError &&
|
|
777
|
+
(error.code === 'registration-disabled' || error.code === 'email-in-use')
|
|
778
|
+
? error.code.replace(/-/g, '_')
|
|
779
|
+
: 'oauth_failed';
|
|
780
|
+
res.redirect(oauthErrorRedirect(reason));
|
|
781
|
+
}
|
|
782
|
+
});
|
|
783
|
+
/**
|
|
784
|
+
* Check if generic OIDC is configured (includes the login button label)
|
|
785
|
+
*/
|
|
786
|
+
router.get('/oauth/oidc/status', generalAuthRateLimiter, (req, res) => {
|
|
787
|
+
const configured = oidcOAuthService.isConfigured();
|
|
788
|
+
res.json({
|
|
789
|
+
configured,
|
|
790
|
+
...(configured ? { displayName: oidcOAuthService.displayName } : {}),
|
|
791
|
+
});
|
|
792
|
+
});
|
|
482
793
|
/**
|
|
483
794
|
* Exchange the short-lived HttpOnly OAuth transfer cookie for the application's
|
|
484
795
|
* 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 @@
|
|
|
1
|
+
{"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/routes/groups.ts"],"names":[],"mappings":"AAsCA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eAqKjB,MAAM"}
|