@vue-skuilder/express 0.1.23 → 0.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"app-factory.d.ts","sourceRoot":"","sources":["../src/app-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAK9B,OAAO,OAAO,MAAM,SAAS,CAAC;AAoB9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGzE,MAAM,WAAW,gBAAiB,SAAQ,OAAO,CAAC,OAAO;IACvD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAwBhE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CA+LvE;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DzE"}
1
+ {"version":3,"file":"app-factory.d.ts","sourceRoot":"","sources":["../src/app-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAK9B,OAAO,OAAO,MAAM,SAAS,CAAC;AA8B9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGzE,MAAM,WAAW,gBAAiB,SAAQ,OAAO,CAAC,OAAO;IACvD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AA0BhE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CA4MvE;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAoEzE"}
@@ -6,15 +6,17 @@ import cors from 'cors';
6
6
  import express from 'express';
7
7
  import morgan from 'morgan';
8
8
  import PostProcess from './attachment-preprocessing/index.js';
9
+ import { startPerUserProvisioning } from './peruser.js';
9
10
  import { ClassroomCreationQueue, ClassroomJoinQueue, ClassroomLeaveQueue, } from './client-requests/classroom-requests.js';
10
11
  import { CourseCreationQueue, initCourseDBDesignDocInsert, } from './client-requests/course-requests.js';
11
12
  import { packCourse } from './client-requests/pack-requests.js';
12
- import { requestIsAuthenticated } from './couchdb/authentication.js';
13
- import { getCouchDB, initializeCouchDB, useOrCreateCourseDB, useOrCreateDB } from './couchdb/index.js';
13
+ import { getAuthenticatedUser, requestIsAuthenticated, } from './couchdb/authentication.js';
14
+ import { getCouchDB, initializeCouchDB, useOrCreateCourseDB, useOrCreateDB, } from './couchdb/index.js';
14
15
  import { classroomDbDesignDoc } from './design-docs.js';
15
16
  import logger from './logger.js';
16
17
  import logsRouter from './routes/logs.js';
17
18
  import authRouter from './routes/auth.js';
19
+ import orchestrationRouter from './routes/orchestration.js';
18
20
  import { applyUsersDesignDocs } from './couchdb/userDesignDocs.js';
19
21
  /**
20
22
  * Type guard to determine if config is ExpressServerConfig (programmatic usage)
@@ -61,6 +63,7 @@ export function createExpressApp(config) {
61
63
  }));
62
64
  app.use('/logs', logsRouter);
63
65
  app.use('/auth', authRouter);
66
+ app.use('/orchestration', orchestrationRouter);
64
67
  // Routes
65
68
  app.get('/courses', (_req, res) => {
66
69
  void (async () => {
@@ -113,15 +116,19 @@ export function createExpressApp(config) {
113
116
  }
114
117
  catch (error) {
115
118
  logger.error('Error deleting course:', error);
116
- res.status(500).json({ success: false, error: 'Failed to delete course' });
119
+ res
120
+ .status(500)
121
+ .json({ success: false, error: 'Failed to delete course' });
117
122
  }
118
123
  })();
119
124
  });
120
125
  async function postHandler(req, res) {
121
- const auth = await requestIsAuthenticated(req);
122
- if (auth) {
126
+ // Use secure authentication that returns the actual session username
127
+ const authResult = await getAuthenticatedUser(req);
128
+ if (authResult.authenticated) {
129
+ const authenticatedUsername = authResult.username;
123
130
  const body = req.body;
124
- logger.info(`Authorized ${body.type ? body.type : '[unspecified request type]'} request made...`);
131
+ logger.info(`Authorized ${body.type ? body.type : '[unspecified request type]'} request from ${authenticatedUsername}...`);
125
132
  if (body.type === RequestEnum.CREATE_CLASSROOM) {
126
133
  const id = ClassroomCreationQueue.addRequest(body.data);
127
134
  body.response = await ClassroomCreationQueue.getResult(id);
@@ -136,8 +143,9 @@ export function createExpressApp(config) {
136
143
  res.json(body.response);
137
144
  }
138
145
  else if (body.type === RequestEnum.LEAVE_CLASSROOM) {
146
+ // SECURITY FIX: Use authenticated username from session, not user-supplied req.body.user
139
147
  const id = ClassroomLeaveQueue.addRequest({
140
- username: req.body.user,
148
+ username: authenticatedUsername,
141
149
  ...body.data,
142
150
  });
143
151
  body.response = await ClassroomLeaveQueue.getResult(id);
@@ -150,7 +158,8 @@ export function createExpressApp(config) {
150
158
  }
151
159
  else if (body.type === RequestEnum.ADD_COURSE_DATA) {
152
160
  const payload = prepareNote55(body.data.courseID, body.data.codeCourse, body.data.shape, body.data.data, body.data.author, body.data.tags, body.data.uploads);
153
- getCouchDB().use(`coursedb-${body.data.courseID}`)
161
+ getCouchDB()
162
+ .use(`coursedb-${body.data.courseID}`)
154
163
  .insert(payload)
155
164
  .then((r) => {
156
165
  logger.info(`\t\t\tCouchDB insert result: ${JSON.stringify(r)}`);
@@ -165,14 +174,15 @@ export function createExpressApp(config) {
165
174
  if (envConfig.NODE_ENV !== 'studio') {
166
175
  logger.info(`\tPACK_COURSE request received in production mode, but this is not supported!`);
167
176
  res.status(400);
168
- res.statusMessage = 'Packing courses is not supported in production mode.';
177
+ res.statusMessage =
178
+ 'Packing courses is not supported in production mode.';
169
179
  res.send();
170
180
  return;
171
181
  }
172
182
  body.response = await packCourse({
173
183
  courseId: body.courseId,
174
184
  outputPath: body.outputPath,
175
- couchdbUrl: body.couchdbUrl
185
+ couchdbUrl: body.couchdbUrl,
176
186
  });
177
187
  res.json(body.response);
178
188
  }
@@ -192,7 +202,8 @@ export function createExpressApp(config) {
192
202
  });
193
203
  app.get('/', (_req, res) => {
194
204
  let status = `Express service is running.\nVersion: ${envConfig.VERSION}\n`;
195
- getCouchDB().session()
205
+ getCouchDB()
206
+ .session()
196
207
  .then((s) => {
197
208
  if (s.ok) {
198
209
  status += 'Couchdb is running.\n';
@@ -245,6 +256,12 @@ export async function initializeServices(config) {
245
256
  // start the change-listener that does post-processing on user
246
257
  // media uploads
247
258
  void PostProcess();
259
+ // start the per-user database provisioning listener
260
+ // (replaces CouchDB's couch_peruser, which has a process leak)
261
+ // skip in studio mode — studio is a local single-user environment
262
+ if (envConfig.NODE_ENV !== 'studio') {
263
+ startPerUserProvisioning();
264
+ }
248
265
  initCourseDBDesignDocInsert().catch((error) => {
249
266
  logger.error(`Error in initCourseDBDesignDocInsert background task: ${error}`);
250
267
  if (error && typeof error === 'object') {
@@ -1 +1 @@
1
- {"version":3,"file":"app-factory.js","sourceRoot":"","sources":["../src/app-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-factory.js","sourceRoot":"","sources":["../src/app-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,iBAAiB,IAAI,WAAW,EAEhC,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,WAAW,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAYnE;;GAEG;AACH,SAAS,qBAAqB,CAC5B,MAAiB;IAEjB,OAAO,SAAS,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAA2B;IACrD,OAAO;QACL,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;QACrC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;QACzC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;QACtC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,OAAO,IAAI,aAAa;QACzC,UAAU,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;KACnC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAEtB,4DAA4D;IAC5D,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC;QAC7C,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC;IAEX,gCAAgC;IAChC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAE7B,+DAA+D;IAC/D,MAAM,WAAW,GACf,qBAAqB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI;QAC1C,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAE1C,mBAAmB;IACnB,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3B,GAAG,CAAC,GAAG,CACL,MAAM,CAAC,UAAU,EAAE;QACjB,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE;KACpE,CAAC,CACH,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC7B,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC7B,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IAE/C,SAAS;IACT,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QACnD,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,aAAa,EAAE,CAAC;gBACnD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QAClE,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAChE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,kDAAkD;gBAElG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;gBACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACxD,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QAC9D,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,iCAAiC,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;gBACvE,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;gBAC/C,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;oBACrD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,CAC1C,YAAY,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAClC,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;wBACf,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;wBAC5C,OAAO;oBACT,CAAC;oBACD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAE/D,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;wBACf,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9B,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC/C,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;gBAC9C,GAAG;qBACA,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,WAAW,CACxB,GAAqB,EACrB,GAAqB;QAErB,qEAAqE;QACrE,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7B,MAAM,qBAAqB,GAAG,UAAU,CAAC,QAAQ,CAAC;YAClD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,MAAM,CAAC,IAAI,CACT,cACE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,4BAC1B,iBAAiB,qBAAqB,KAAK,CAC5C,CAAC;YAEF,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,EAAE,GAAW,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChE,IAAI,CAAC,QAAQ,GAAG,MAAM,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACtD,mCAAmC;YACrC,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,cAAc,EAAE,CAAC;gBACpD,MAAM,EAAE,GAAW,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,IAAI,CAAC,QAAQ,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACvD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,eAAe,EAAE,CAAC;gBACrD,yFAAyF;gBACzF,MAAM,EAAE,GAAW,mBAAmB,CAAC,UAAU,CAAC;oBAChD,QAAQ,EAAE,qBAAqB;oBAC/B,GAAG,IAAI,CAAC,IAAI;iBACb,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACxD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,aAAa,EAAE,CAAC;gBACnD,MAAM,EAAE,GAAW,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7D,IAAI,CAAC,QAAQ,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACxD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,eAAe,EAAE,CAAC;gBACrD,MAAM,OAAO,GAAG,aAAa,CAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EACpB,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,IAAI,CAAC,IAAI,CAAC,IAAI,EACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAClB,CAAC;gBACF,UAAU,EAAE;qBACT,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;qBACrC,MAAM,CAAC,OAA6B,CAAC;qBACrC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oBACV,MAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACjE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBACX,MAAM,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAChE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC;YACP,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC;gBACjD,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CACT,+EAA+E,CAChF,CAAC;oBACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAChB,GAAG,CAAC,aAAa;wBACf,sDAAsD,CAAC;oBACzD,GAAG,CAAC,IAAI,EAAE,CAAC;oBACX,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,QAAQ,GAAG,MAAM,UAAU,CAAC;oBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACvC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,GAAG,CAAC,aAAa,GAAG,cAAc,CAAC;YACnC,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QAC5C,KAAK,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QACnD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAC5C,IAAI,MAAM,GAAG,yCAAyC,SAAS,CAAC,OAAO,IAAI,CAAC;QAE5E,UAAU,EAAE;aACT,OAAO,EAAE;aACT,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;gBACT,MAAM,IAAI,uBAAuB,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,8BAA8B,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,MAAM,IAAI,kCAAkC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAiB;IACxD,8BAA8B;IAC9B,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC;QAC7C,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC;IAEX,MAAM,mBAAmB,CAAC;QACxB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE;YACP,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;YAC5C,gBAAgB,EAAE,SAAS,CAAC,aAAa;YACzC,uBAAuB,EAAE,SAAS,CAAC,gBAAgB;YACnD,kBAAkB,EAAE,SAAS,CAAC,cAAc;SAC7C;KACF,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACb,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;QAClD,mFAAmF;QACnF,MAAM,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,IAAI,CAAC;QACH,MAAM,oBAAoB,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAC7D,4EAA4E;IAC9E,CAAC;IACD,IAAI,CAAC;QACH,8DAA8D;QAC9D,gBAAgB;QAChB,KAAK,WAAW,EAAE,CAAC;QAEnB,oDAAoD;QACpD,+DAA+D;QAC/D,kEAAkE;QAClE,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACpC,wBAAwB,EAAE,CAAC;QAC7B,CAAC;QAED,2BAA2B,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5C,MAAM,CAAC,KAAK,CACV,yDAAyD,KAAK,EAAE,CACjE,CAAC;YACF,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,CAAC,KAAK,CACV,sDAAsD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC9E,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACtC,KAAK,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,CACJ,MAAM,aAAa,CAAC,UAAU,CAAC,CAChC,CAAC,MAAM,CACN;gBACE,mBAAmB,EAAE,oBAAoB;aACpB,EACvB,eAAe,CAChB,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -34,8 +34,26 @@ Examples:
34
34
  `);
35
35
  }
36
36
  log(`FFMPEG path: ${FFMPEG}`);
37
+ // Fade durations in seconds — short enough to preserve consonant onsets,
38
+ // long enough to smooth out the noise-floor cut-in/cut-out
39
+ const FADE_IN_DURATION = 0.05; // 50ms
40
+ const FADE_OUT_DURATION = 0.1; // 100ms
41
+ function parseDuration(output) {
42
+ const match = output.match(/Duration:\s*(\d+):(\d+):(\d+)\.(\d+)/);
43
+ if (!match)
44
+ throw new Error('Could not parse duration from ffmpeg output');
45
+ const hours = parseInt(match[1]);
46
+ const minutes = parseInt(match[2]);
47
+ const seconds = parseInt(match[3]);
48
+ const frac = parseInt(match[4]) / Math.pow(10, match[4].length);
49
+ return hours * 3600 + minutes * 60 + seconds + frac;
50
+ }
51
+ async function getAudioDuration(filePath) {
52
+ const result = await exec(`"${FFMPEG}" -i "${filePath}" -f null -`);
53
+ return parseDuration(result.stderr);
54
+ }
37
55
  /**
38
- * Normalizes a single wav file to mp3 with loudnorm
56
+ * Normalizes a single wav file to mp3 with loudnorm and fade in/out
39
57
  * Same spec as the attachment preprocessing: I=-16:TP=-1.5:LRA=11
40
58
  */
41
59
  async function normalizeFile(inputPath, outputDir) {
@@ -45,6 +63,7 @@ async function normalizeFile(inputPath, outputDir) {
45
63
  const outputPath = path.join(targetDir, `${baseName}.normalized.mp3`);
46
64
  const PADDED = path.join(tmpDir, 'padded.wav');
47
65
  const PADDED_NORMALIZED = path.join(tmpDir, 'paddedNormalized.wav');
66
+ const TRIMMED = path.join(tmpDir, 'trimmed.wav');
48
67
  const NORMALIZED = path.join(tmpDir, 'normalized.mp3');
49
68
  try {
50
69
  log(`[${baseName}] Processing...`);
@@ -63,9 +82,17 @@ async function normalizeFile(inputPath, outputDir) {
63
82
  `measured_LRA=${data.input_lra}:measured_TP=${data.input_tp}:` +
64
83
  `measured_thresh=${data.input_thresh}:offset=${data.target_offset}:linear=true:` +
65
84
  `print_format=summary -ar 48k "${PADDED_NORMALIZED}"`);
66
- // Cut off the padded part and convert to mp3
67
- log(`[${baseName}] Cutting padding and encoding to mp3...`);
68
- await exec(`"${FFMPEG}" -i "${PADDED_NORMALIZED}" -ss 00:00:10.000 -acodec libmp3lame -b:a 192k "${NORMALIZED}"`);
85
+ // Cut off the padded silence (keep as wav to avoid double lossy encoding)
86
+ log(`[${baseName}] Cutting padding...`);
87
+ await exec(`"${FFMPEG}" -i "${PADDED_NORMALIZED}" -ss 00:00:10.000 "${TRIMMED}"`);
88
+ // Apply fade in/out and encode to mp3
89
+ const duration = await getAudioDuration(TRIMMED);
90
+ const fadeOutStart = Math.max(0, duration - FADE_OUT_DURATION);
91
+ log(`[${baseName}] Applying fades (in=${FADE_IN_DURATION}s, out=${FADE_OUT_DURATION}s @ ${fadeOutStart.toFixed(3)}s) and encoding to mp3...`);
92
+ await exec(`"${FFMPEG}" -i "${TRIMMED}" -af ` +
93
+ `"afade=t=in:st=0:d=${FADE_IN_DURATION}:curve=qsin,` +
94
+ `afade=t=out:st=${fadeOutStart}:d=${FADE_OUT_DURATION}:curve=qsin" ` +
95
+ `-acodec libmp3lame -b:a 192k "${NORMALIZED}"`);
69
96
  // Copy to output location
70
97
  fs.copyFileSync(NORMALIZED, outputPath);
71
98
  log(`[${baseName}] ✓ Saved to: ${outputPath}`);
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-local.js","sourceRoot":"","sources":["../../src/attachment-preprocessing/normalize-local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize-local.js","sourceRoot":"","sources":["../../src/attachment-preprocessing/normalize-local.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pack-requests.d.ts","sourceRoot":"","sources":["../../src/client-requests/pack-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAK9C,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+LlF;AAGD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"pack-requests.d.ts","sourceRoot":"","sources":["../../src/client-requests/pack-requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAK9C,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,wBAAsB,UAAU,CAC9B,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA6N7B;AAGD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC"}
@@ -29,7 +29,7 @@ export async function packCourse(data) {
29
29
  }
30
30
  else {
31
31
  // Fallback to ENV configuration for production mode
32
- logger.info(`ENV values - Protocol: "${ENV.COUCHDB_PROTOCOL}", Admin: "${ENV.COUCHDB_ADMIN}", Password: "${ENV.COUCHDB_PASSWORD}", Server: "${ENV.COUCHDB_SERVER}"`);
32
+ logger.info(`ENV values - Protocol: "${ENV.COUCHDB_PROTOCOL}", Admin: "${ENV.COUCHDB_ADMIN}", Password: PROBABLY_NOT_THE_PASSORD, Server: "${ENV.COUCHDB_SERVER}"`);
33
33
  const dbUrl = `${ENV.COUCHDB_PROTOCOL}://${ENV.COUCHDB_ADMIN}:${ENV.COUCHDB_PASSWORD}@${ENV.COUCHDB_SERVER}`;
34
34
  const dbName = `coursedb-${data.courseId}`;
35
35
  courseDbUrl = `${dbUrl}/${dbName}`;
@@ -53,9 +53,10 @@ export async function packCourse(data) {
53
53
  }
54
54
  else {
55
55
  // No output path provided - use default
56
- outputPath = ENV.NODE_ENV === 'studio' ?
57
- '/tmp/skuilder-studio-output' :
58
- process.cwd();
56
+ outputPath =
57
+ ENV.NODE_ENV === 'studio'
58
+ ? '/tmp/skuilder-studio-output'
59
+ : process.cwd();
59
60
  }
60
61
  logger.info(`Packing course ${data.courseId} from ${courseDbUrl} to ${outputPath}`);
61
62
  // Clean up existing output directory for replace-in-place functionality
@@ -101,7 +102,7 @@ export async function packCourse(data) {
101
102
  return {
102
103
  isDirectory: () => stats.isDirectory(),
103
104
  isFile: () => stats.isFile(),
104
- size: stats.size
105
+ size: stats.size,
105
106
  };
106
107
  },
107
108
  async writeFile(filePath, data) {
@@ -121,7 +122,7 @@ export async function packCourse(data) {
121
122
  },
122
123
  isAbsolute(filePath) {
123
124
  return path.isAbsolute(filePath);
124
- }
125
+ },
125
126
  };
126
127
  };
127
128
  const fsAdapter = await createFsAdapter();
@@ -144,7 +145,8 @@ export async function packCourse(data) {
144
145
  try {
145
146
  const manifestContent = await fsAdapter.readFile(manifestPath);
146
147
  const manifest = JSON.parse(manifestContent);
147
- courseTitle = manifest.courseName || manifest.courseConfig?.name || originalCourseId;
148
+ courseTitle =
149
+ manifest.courseName || manifest.courseConfig?.name || originalCourseId;
148
150
  }
149
151
  catch (error) {
150
152
  logger.warn(`Could not read manifest for course title, using courseId: ${error}`);
@@ -160,7 +162,9 @@ export async function packCourse(data) {
160
162
  },
161
163
  };
162
164
  const skuilderJsonPath = path.join(outputPath, 'skuilder.json');
163
- await fsAdapter.writeJson(skuilderJsonPath, courseSkuilderJson, { spaces: 2 });
165
+ await fsAdapter.writeJson(skuilderJsonPath, courseSkuilderJson, {
166
+ spaces: 2,
167
+ });
164
168
  logger.info(`Created skuilder.json for course: ${originalCourseId}`);
165
169
  const duration = Date.now() - startTime;
166
170
  const response = {
@@ -170,7 +174,7 @@ export async function packCourse(data) {
170
174
  attachmentsFound: packResult.attachmentsFound,
171
175
  filesWritten: packResult.filesWritten + 1, // +1 for skuilder.json
172
176
  totalFiles: packResult.filesWritten + 1, // Updated to reflect actual files written including skuilder.json
173
- duration: duration
177
+ duration: duration,
174
178
  };
175
179
  logger.info(`Pack completed in ${duration}ms. Attachments: ${response.attachmentsFound}, Files written: ${response.filesWritten}`);
176
180
  return response;
@@ -180,7 +184,7 @@ export async function packCourse(data) {
180
184
  const response = {
181
185
  status: Status.error,
182
186
  ok: false,
183
- errorText: error instanceof Error ? error.message : 'Pack operation failed'
187
+ errorText: error instanceof Error ? error.message : 'Pack operation failed',
184
188
  };
185
189
  return response;
186
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pack-requests.js","sourceRoot":"","sources":["../../src/client-requests/pack-requests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pack-requests.js","sourceRoot":"","sources":["../../src/client-requests/pack-requests.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,38 @@
1
1
  import { VueClientRequest } from '../app-factory.js';
2
- export declare function requestIsAdminAuthenticated(req: VueClientRequest): Promise<boolean>;
2
+ /**
3
+ * Result of authentication check.
4
+ * - If authenticated: { authenticated: true, username: string, isAdmin: boolean }
5
+ * - If not authenticated: { authenticated: false }
6
+ */
7
+ export type AuthResult = {
8
+ authenticated: true;
9
+ username: string;
10
+ isAdmin: boolean;
11
+ } | {
12
+ authenticated: false;
13
+ };
14
+ /**
15
+ * Get the authenticated user from the request's session cookie or authorization header.
16
+ * Returns the username from the session - does NOT trust req.body.user.
17
+ *
18
+ * This is the secure way to get the authenticated username - callers should use
19
+ * the returned username rather than trusting user-supplied data.
20
+ */
21
+ export declare function getAuthenticatedUser(req: VueClientRequest): Promise<AuthResult>;
22
+ /**
23
+ * Check if the request is authenticated (any valid user).
24
+ * Returns true if authenticated, false otherwise.
25
+ *
26
+ * @deprecated Use getAuthenticatedUser() instead to get the actual username
27
+ */
3
28
  export declare function requestIsAuthenticated(req: VueClientRequest): Promise<boolean>;
29
+ /**
30
+ * Check if the request is authenticated as an admin user.
31
+ * Returns true only if the session has _admin role.
32
+ *
33
+ * SECURITY FIX: No longer trusts req.body.user - only checks session role.
34
+ *
35
+ * @deprecated Use getAuthenticatedUser() and check isAdmin instead
36
+ */
37
+ export declare function requestIsAdminAuthenticated(req: VueClientRequest): Promise<boolean>;
4
38
  //# sourceMappingURL=authentication.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../src/couchdb/authentication.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgBrD,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,gBAAgB,oBAwBtE;AAMD,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,oBA0CjE"}
1
+ {"version":3,"file":"authentication.d.ts","sourceRoot":"","sources":["../../src/couchdb/authentication.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgBrD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,aAAa,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC3D;IAAE,aAAa,EAAE,KAAK,CAAA;CAAE,CAAC;AAE7B;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,UAAU,CAAC,CA0ErB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,OAAO,CAAC,CAGlB"}
@@ -1,69 +1,104 @@
1
1
  import Nano from 'nano';
2
2
  import { getCouchURLWithProtocol } from './index.js';
3
3
  import logger from '../logger.js';
4
- export async function requestIsAdminAuthenticated(req) {
5
- logRequest(req);
6
- const username = req.body.user;
7
- const authCookie = req.cookies.AuthSession ? req.cookies.AuthSession : 'null';
8
- if (authCookie === 'null') {
9
- return false;
10
- }
11
- else {
12
- return await Nano({
13
- cookie: 'AuthSession=' + authCookie,
14
- url: getCouchURLWithProtocol(),
15
- })
16
- .session()
17
- .then((s) => {
18
- logger.info(`AuthUser: ${JSON.stringify(s)}`);
19
- const isAdmin = s.userCtx.roles.indexOf('_admin') !== -1;
20
- const isLoggedInUser = s.userCtx.name === username;
21
- return isAdmin && isLoggedInUser;
22
- })
23
- .catch((_err) => {
24
- return false;
25
- });
26
- }
27
- }
28
- function logRequest(req) {
29
- logger.info(`${req.body.type} request from ${req.body.user}...`);
30
- }
31
- export async function requestIsAuthenticated(req) {
4
+ /**
5
+ * Get the authenticated user from the request's session cookie or authorization header.
6
+ * Returns the username from the session - does NOT trust req.body.user.
7
+ *
8
+ * This is the secure way to get the authenticated username - callers should use
9
+ * the returned username rather than trusting user-supplied data.
10
+ */
11
+ export async function getAuthenticatedUser(req) {
32
12
  logRequest(req);
33
13
  // Studio mode bypass: skip authentication for local development
34
14
  if (process.env.NODE_ENV === 'studio') {
35
15
  logger.info('Studio mode: bypassing authentication for local development');
36
- return true;
16
+ // In studio mode, trust the body.user since this is local development only
17
+ const studioUser = req.body.user || 'studio-user';
18
+ return { authenticated: true, username: studioUser, isAdmin: true };
37
19
  }
20
+ // Check for Basic auth header first
38
21
  if (req.headers.authorization) {
39
- const auth = Buffer.from(req.headers.authorization.split(' ')[1], 'base64')
40
- .toString('ascii')
41
- .split(':');
42
- const username = auth[0];
43
- const password = auth[1];
44
- const authResult = await Nano({
45
- url: getCouchURLWithProtocol(),
46
- }).auth(username, password);
47
- return authResult.ok;
22
+ const authHeader = req.headers.authorization;
23
+ if (authHeader.startsWith('Basic ')) {
24
+ const auth = Buffer.from(authHeader.split(' ')[1], 'base64')
25
+ .toString('ascii')
26
+ .split(':');
27
+ const username = auth[0];
28
+ const password = auth[1];
29
+ try {
30
+ const authResult = await Nano({
31
+ url: getCouchURLWithProtocol(),
32
+ }).auth(username, password);
33
+ if (authResult.ok) {
34
+ // Check if user has admin role by getting session
35
+ const nano = Nano({
36
+ url: getCouchURLWithProtocol(),
37
+ });
38
+ await nano.auth(username, password);
39
+ const session = (await nano.session());
40
+ const isAdmin = session.userCtx.roles.includes('_admin');
41
+ return { authenticated: true, username, isAdmin };
42
+ }
43
+ }
44
+ catch (err) {
45
+ logger.warn('Basic auth failed:', err);
46
+ }
47
+ }
48
+ return { authenticated: false };
48
49
  }
49
- const username = req.body.user;
50
- const authCookie = req.cookies.AuthSession ? req.cookies.AuthSession : 'null';
50
+ // Check for session cookie
51
+ const authCookie = req.cookies.AuthSession
52
+ ? req.cookies.AuthSession
53
+ : 'null';
51
54
  if (authCookie === 'null') {
52
- return false;
55
+ return { authenticated: false };
53
56
  }
54
- else {
55
- return await Nano({
57
+ try {
58
+ const session = (await Nano({
56
59
  cookie: 'AuthSession=' + authCookie,
57
60
  url: getCouchURLWithProtocol(),
58
- })
59
- .session()
60
- .then((s) => {
61
- logger.info(`AuthUser: ${JSON.stringify(s)}`);
62
- return s.userCtx.name === username;
63
- })
64
- .catch((_err) => {
65
- return false;
66
- });
61
+ }).session());
62
+ logger.info(`AuthUser: ${JSON.stringify(session)}`);
63
+ if (session.ok && session.userCtx.name) {
64
+ const isAdmin = session.userCtx.roles.includes('_admin');
65
+ return {
66
+ authenticated: true,
67
+ username: session.userCtx.name,
68
+ isAdmin,
69
+ };
70
+ }
71
+ return { authenticated: false };
72
+ }
73
+ catch (err) {
74
+ logger.warn('Session validation failed:', err);
75
+ return { authenticated: false };
67
76
  }
68
77
  }
78
+ /**
79
+ * Check if the request is authenticated (any valid user).
80
+ * Returns true if authenticated, false otherwise.
81
+ *
82
+ * @deprecated Use getAuthenticatedUser() instead to get the actual username
83
+ */
84
+ export async function requestIsAuthenticated(req) {
85
+ const result = await getAuthenticatedUser(req);
86
+ return result.authenticated;
87
+ }
88
+ /**
89
+ * Check if the request is authenticated as an admin user.
90
+ * Returns true only if the session has _admin role.
91
+ *
92
+ * SECURITY FIX: No longer trusts req.body.user - only checks session role.
93
+ *
94
+ * @deprecated Use getAuthenticatedUser() and check isAdmin instead
95
+ */
96
+ export async function requestIsAdminAuthenticated(req) {
97
+ const result = await getAuthenticatedUser(req);
98
+ return result.authenticated && result.isAdmin;
99
+ }
100
+ function logRequest(req) {
101
+ // Log the claimed user for debugging, but note this is NOT trusted
102
+ logger.info(`${req.body.type} request (claimed user: ${req.body.user})...`);
103
+ }
69
104
  //# sourceMappingURL=authentication.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/couchdb/authentication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../src/couchdb/authentication.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Per-user database provisioning daemon.
3
+ *
4
+ * Replaces CouchDB's built-in couch_peruser Erlang module, which has a
5
+ * process leak bug that causes unbounded memory growth:
6
+ * https://github.com/apache/couchdb/issues/5871
7
+ *
8
+ * Watches the _users database changes feed and ensures that every user
9
+ * has a corresponding userdb-{hex(username)} database with appropriate
10
+ * security settings. Replays from since=0 on every startup — this is
11
+ * cheap and removes the need to persist checkpoint state.
12
+ */
13
+ export declare function startPerUserProvisioning(): void;
14
+ //# sourceMappingURL=peruser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peruser.d.ts","sourceRoot":"","sources":["../src/peruser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8CH,wBAAgB,wBAAwB,IAAI,IAAI,CAsB/C"}