enterprise-logging-system 1.0.12 → 1.0.13

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 (43) hide show
  1. package/dist/backend/controllers/LogController.d.ts +4 -0
  2. package/dist/backend/controllers/LogController.d.ts.map +1 -1
  3. package/dist/backend/controllers/LogController.js +98 -2
  4. package/dist/backend/controllers/LogController.js.map +1 -1
  5. package/dist/backend/repositories/AccessLogRepository.d.ts +5 -1
  6. package/dist/backend/repositories/AccessLogRepository.d.ts.map +1 -1
  7. package/dist/backend/repositories/AccessLogRepository.js +51 -0
  8. package/dist/backend/repositories/AccessLogRepository.js.map +1 -1
  9. package/dist/backend/repositories/ChangeLogRepository.d.ts +5 -0
  10. package/dist/backend/repositories/ChangeLogRepository.d.ts.map +1 -1
  11. package/dist/backend/repositories/ChangeLogRepository.js +51 -0
  12. package/dist/backend/repositories/ChangeLogRepository.js.map +1 -1
  13. package/dist/backend/repositories/ExportLogRepository.d.ts +5 -0
  14. package/dist/backend/repositories/ExportLogRepository.d.ts.map +1 -1
  15. package/dist/backend/repositories/ExportLogRepository.js +41 -0
  16. package/dist/backend/repositories/ExportLogRepository.js.map +1 -1
  17. package/dist/backend/repositories/SessionLogRepository.d.ts +5 -1
  18. package/dist/backend/repositories/SessionLogRepository.d.ts.map +1 -1
  19. package/dist/backend/repositories/SessionLogRepository.js +39 -0
  20. package/dist/backend/repositories/SessionLogRepository.js.map +1 -1
  21. package/dist/backend/routes.d.ts +20 -0
  22. package/dist/backend/routes.d.ts.map +1 -0
  23. package/dist/backend/routes.js +42 -0
  24. package/dist/backend/routes.js.map +1 -0
  25. package/dist/backend/services/LoggingService.d.ts +5 -1
  26. package/dist/backend/services/LoggingService.d.ts.map +1 -1
  27. package/dist/backend/services/LoggingService.js +13 -0
  28. package/dist/backend/services/LoggingService.js.map +1 -1
  29. package/dist/frontend/activity-monitor/ActivityMonitor.d.ts +69 -5
  30. package/dist/frontend/activity-monitor/ActivityMonitor.d.ts.map +1 -1
  31. package/dist/frontend/activity-monitor/ActivityMonitor.js +322 -26
  32. package/dist/frontend/activity-monitor/ActivityMonitor.js.map +1 -1
  33. package/dist/frontend/index.d.ts +1 -1
  34. package/dist/frontend/index.d.ts.map +1 -1
  35. package/dist/frontend/index.js +4 -1
  36. package/dist/frontend/index.js.map +1 -1
  37. package/dist/index.d.ts +31 -7
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +41 -8
  40. package/dist/index.js.map +1 -1
  41. package/dist/shared/types/index.d.ts +64 -0
  42. package/dist/shared/types/index.d.ts.map +1 -1
  43. package/package.json +1 -1
@@ -11,6 +11,10 @@ export declare class LogController {
11
11
  endSession(req: Request, res: Response): Promise<void>;
12
12
  recordHeartbeat(req: Request, res: Response): Promise<void>;
13
13
  recordActivity(req: Request, res: Response): Promise<void>;
14
+ listAccessLogs(req: Request, res: Response): Promise<void>;
15
+ listSessionLogs(req: Request, res: Response): Promise<void>;
16
+ listChangeLogs(req: Request, res: Response): Promise<void>;
17
+ listExportLogs(req: Request, res: Response): Promise<void>;
14
18
  getUserTimeline(req: Request, res: Response): Promise<void>;
15
19
  getSessionDetails(req: Request, res: Response): Promise<void>;
16
20
  getEntityHistory(req: Request, res: Response): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"LogController.d.ts","sourceRoot":"","sources":["../../../src/backend/controllers/LogController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,qBAAa,aAAa;IACZ,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAG5C,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3D,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7D,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA6DlE"}
1
+ {"version":3,"file":"LogController.d.ts","sourceRoot":"","sources":["../../../src/backend/controllers/LogController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAqB5D,qBAAa,aAAa;IACZ,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAG5C,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1D,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3D,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1D,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB1D,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3D,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7D,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA6DlE"}
@@ -1,6 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LogController = void 0;
4
+ const parseNum = (v, defaultVal) => {
5
+ if (v === undefined || v === null)
6
+ return defaultVal;
7
+ const n = Number(v);
8
+ return Number.isFinite(n) ? n : defaultVal;
9
+ };
10
+ const parseQuery = (q) => ({
11
+ page: parseNum(q.page, 1),
12
+ limit: parseNum(q.limit, 20),
13
+ sortBy: typeof q.sortBy === 'string' ? q.sortBy : undefined,
14
+ sortOrder: q.sortOrder === 'asc' || q.sortOrder === 'desc' ? q.sortOrder : undefined
15
+ });
4
16
  class LogController {
5
17
  loggingService;
6
18
  constructor(loggingService) {
@@ -91,6 +103,90 @@ class LogController {
91
103
  res.status(500).json({ success: false, error: error.message });
92
104
  }
93
105
  }
106
+ // List endpoints (GET with search & pagination)
107
+ async listAccessLogs(req, res) {
108
+ try {
109
+ const q = { ...req.query, ...req.body };
110
+ const query = {
111
+ ...parseQuery(q),
112
+ tenantId: q.tenantId,
113
+ userId: q.userId,
114
+ sessionId: q.sessionId,
115
+ pageId: q.pageId,
116
+ activityType: q.activityType,
117
+ type: q.type === 'PAGE_OPEN' || q.type === 'ACTION_PERFORMED' ? q.type : undefined,
118
+ startDate: q.startDate,
119
+ endDate: q.endDate,
120
+ search: q.search
121
+ };
122
+ const result = await this.loggingService.listAccessLogs(query);
123
+ res.json({ success: true, ...result });
124
+ }
125
+ catch (error) {
126
+ res.status(500).json({ success: false, error: error.message });
127
+ }
128
+ }
129
+ async listSessionLogs(req, res) {
130
+ try {
131
+ const q = { ...req.query, ...req.body };
132
+ const query = {
133
+ ...parseQuery(q),
134
+ tenantId: q.tenantId,
135
+ userId: q.userId,
136
+ startDate: q.startDate,
137
+ endDate: q.endDate,
138
+ activeOnly: q.activeOnly === 'true' || q.activeOnly === true,
139
+ search: q.search
140
+ };
141
+ const result = await this.loggingService.listSessionLogs(query);
142
+ res.json({ success: true, ...result });
143
+ }
144
+ catch (error) {
145
+ res.status(500).json({ success: false, error: error.message });
146
+ }
147
+ }
148
+ async listChangeLogs(req, res) {
149
+ try {
150
+ const q = { ...req.query, ...req.body };
151
+ const query = {
152
+ ...parseQuery(q),
153
+ tenantId: q.tenantId,
154
+ userId: q.userId,
155
+ entityType: q.entityType,
156
+ entityId: q.entityId,
157
+ type: q.type === 'CREATE' || q.type === 'UPDATE' || q.type === 'DELETE' || q.type === 'RESTORE' ? q.type : undefined,
158
+ status: q.status === 'SUCCESS' || q.status === 'FAILURE' ? q.status : undefined,
159
+ startDate: q.startDate,
160
+ endDate: q.endDate,
161
+ search: q.search
162
+ };
163
+ const result = await this.loggingService.listChangeLogs(query);
164
+ res.json({ success: true, ...result });
165
+ }
166
+ catch (error) {
167
+ res.status(500).json({ success: false, error: error.message });
168
+ }
169
+ }
170
+ async listExportLogs(req, res) {
171
+ try {
172
+ const q = { ...req.query, ...req.body };
173
+ const query = {
174
+ ...parseQuery(q),
175
+ tenantId: q.tenantId,
176
+ userId: q.userId,
177
+ exportType: q.exportType === 'CSV' || q.exportType === 'EXCEL' || q.exportType === 'PDF' || q.exportType === 'JSON' ? q.exportType : undefined,
178
+ status: q.status === 'SUCCESS' || q.status === 'FAILED' || q.status === 'IN_PROGRESS' ? q.status : undefined,
179
+ startDate: q.startDate,
180
+ endDate: q.endDate,
181
+ search: q.search
182
+ };
183
+ const result = await this.loggingService.listExportLogs(query);
184
+ res.json({ success: true, ...result });
185
+ }
186
+ catch (error) {
187
+ res.status(500).json({ success: false, error: error.message });
188
+ }
189
+ }
94
190
  // Query endpoints
95
191
  async getUserTimeline(req, res) {
96
192
  try {
@@ -128,8 +224,8 @@ class LogController {
128
224
  }
129
225
  async getExportHistory(req, res) {
130
226
  try {
131
- const { userId } = req.body;
132
- const { exportType } = req.query;
227
+ const userId = (req.query.userId ?? req.body?.userId);
228
+ const exportType = (req.query.exportType ?? req.body?.exportType);
133
229
  const result = await this.loggingService.getExportHistory(userId, exportType);
134
230
  res.json({ success: true, data: result });
135
231
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LogController.js","sourceRoot":"","sources":["../../../src/backend/controllers/LogController.ts"],"names":[],"mappings":";;;AAGA,MAAa,aAAa;IACJ;IAApB,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAEtD,uBAAuB;IACvB,KAAK,CAAC,WAAW,CAAC,GAAY,EAAE,GAAa;QAC3C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3D,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAY,EAAE,GAAa;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,SAAS,CAAC,GAAY,EAAE,GAAa;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,SAAS,CAAC,GAAY,EAAE,GAAa;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,KAAK,CAAC,YAAY,CAAC,GAAY,EAAE,GAAa;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAY,EAAE,GAAa;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAY,EAAE,GAAa;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAY,EAAE,GAAa;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACnE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,eAAe,CAAC,GAAY,EAAE,GAAa;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAG,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAEjD,MAAM,SAAS,GAAG;gBAChB,SAAS,EAAE,IAAI,IAAI,CAAC,SAAmB,CAAC;gBACxC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAiB,CAAC;aACrC,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAY,EAAE,GAAa;QACjD,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACtE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAY,EAAE,GAAa;QAChD,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAChF,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAY,EAAE,GAAa;QAChD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAoB,CAAC,CAAC;YACxF,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,eAAe,CAAC,GAAY,EAAE,GAAa;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAE/C,0BAA0B;YAC1B,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;wBACnD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAW;wBAC9C,MAAM;wBACN,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAW,IAAI,MAAM;wBACxD,SAAS;wBACT,SAAS,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;wBACvB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;wBAC1C,GAAG,KAAK,CAAC,IAAI;qBACd,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;wBACjD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAW;wBAC9C,MAAM;wBACN,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAW,IAAI,MAAM;wBACxD,SAAS;wBACT,SAAS,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;wBACvB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;wBAC1C,GAAG,KAAK,CAAC,IAAI;qBACd,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;gBACD,iEAAiE;qBAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;wBACjD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAW;wBAC9C,MAAM;wBACN,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAW,IAAI,MAAM;wBACxD,SAAS;wBACT,SAAS,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;wBACvB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;wBAC1C,GAAG,KAAK,CAAC,IAAI;qBACd,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;qBACI,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;wBACjD,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAW;wBAC9C,MAAM;wBACN,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAW,IAAI,MAAM;wBACxD,SAAS;wBACT,SAAS,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;wBACvB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;wBAC1C,GAAG,KAAK,CAAC,IAAI;qBACd,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF;AAtMD,sCAsMC"}
1
+ {"version":3,"file":"LogController.js","sourceRoot":"","sources":["../../../src/backend/controllers/LogController.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,17 @@
1
1
  import { Db } from 'mongodb';
2
2
  import { BaseRepository } from './BaseRepository';
3
3
  import { AccessLog } from '../models/AccessLog';
4
- import { DateRange } from '../../shared/types';
4
+ import { DateRange, AccessLogListQuery, ListResult } from '../../shared/types';
5
5
  export declare class AccessLogRepository extends BaseRepository<AccessLog> {
6
6
  constructor(db: Db);
7
7
  logPageView(log: Omit<AccessLog, '_id' | 'type' | 'indexes'>): Promise<AccessLog>;
8
8
  logAction(log: Omit<AccessLog, '_id' | 'type' | 'indexes'>): Promise<AccessLog>;
9
9
  getUserTimeline(userId: string, dateRange: DateRange): Promise<AccessLog[]>;
10
10
  getSessionActivities(sessionId: string): Promise<AccessLog[]>;
11
+ /**
12
+ * List access logs with filters, search, and pagination
13
+ */
14
+ list(query: AccessLogListQuery): Promise<ListResult<AccessLog>>;
11
15
  updateActivityDuration(logId: string, endTime: Date): Promise<AccessLog | null>;
12
16
  private generateId;
13
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AccessLogRepository.d.ts","sourceRoot":"","sources":["../../../src/backend/repositories/AccessLogRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAoB,MAAM,oBAAoB,CAAC;AAEjE,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,SAAS,CAAC;gBACpD,EAAE,EAAE,EAAE;IAIZ,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAejF,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAe/E,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO3E,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAI7D,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAYrF,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"AccessLogRepository.d.ts","sourceRoot":"","sources":["../../../src/backend/repositories/AccessLogRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAoB,kBAAkB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEjG,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,SAAS,CAAC;gBACpD,EAAE,EAAE,EAAE;IAIZ,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAejF,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAe/E,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO3E,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAInE;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAyC/D,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAYrF,OAAO,CAAC,UAAU;CAGnB"}
@@ -42,6 +42,57 @@ class AccessLogRepository extends BaseRepository_1.BaseRepository {
42
42
  async getSessionActivities(sessionId) {
43
43
  return this.find({ sessionId }, { sort: { timestamp: 1 } });
44
44
  }
45
+ /**
46
+ * List access logs with filters, search, and pagination
47
+ */
48
+ async list(query) {
49
+ const filter = {};
50
+ if (query.tenantId)
51
+ filter.tenantId = query.tenantId;
52
+ if (query.userId)
53
+ filter.userId = query.userId;
54
+ if (query.sessionId)
55
+ filter.sessionId = query.sessionId;
56
+ if (query.pageId)
57
+ filter.pageId = query.pageId;
58
+ if (query.activityType)
59
+ filter.activityType = query.activityType;
60
+ if (query.type)
61
+ filter.type = query.type;
62
+ if (query.startDate || query.endDate) {
63
+ filter.timestamp = {};
64
+ if (query.startDate)
65
+ filter.timestamp.$gte = new Date(query.startDate);
66
+ if (query.endDate)
67
+ filter.timestamp.$lte = new Date(query.endDate);
68
+ }
69
+ if (query.search && query.search.trim()) {
70
+ const searchRegex = { $regex: query.search.trim(), $options: 'i' };
71
+ filter.$or = [
72
+ { pageTitle: searchRegex },
73
+ { pageUrl: searchRegex },
74
+ { activityName: searchRegex },
75
+ { pageRoute: searchRegex }
76
+ ];
77
+ }
78
+ const page = Math.max(1, query.page ?? 1);
79
+ const limit = Math.min(100, Math.max(1, query.limit ?? 20));
80
+ const sortKey = query.sortBy && ['timestamp', 'startTime', 'activityType', 'pageId'].includes(query.sortBy)
81
+ ? query.sortBy
82
+ : 'timestamp';
83
+ const sortOrder = query.sortOrder === 'asc' ? 1 : -1;
84
+ const sort = { [sortKey]: sortOrder };
85
+ const result = await this.paginate(filter, page, limit, sort);
86
+ return {
87
+ data: result.data,
88
+ total: result.total,
89
+ page: result.page,
90
+ limit,
91
+ totalPages: result.totalPages,
92
+ hasNext: result.page < result.totalPages,
93
+ hasPrev: result.page > 1
94
+ };
95
+ }
45
96
  async updateActivityDuration(logId, endTime) {
46
97
  const log = await this.findById(logId);
47
98
  if (!log)
@@ -1 +1 @@
1
- {"version":3,"file":"AccessLogRepository.js","sourceRoot":"","sources":["../../../src/backend/repositories/AccessLogRepository.ts"],"names":[],"mappings":";;;AACA,qDAAkD;AAClD,mDAAoE;AAGpE,MAAa,mBAAoB,SAAQ,+BAAyB;IAChE,YAAY,EAAM;QAChB,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,8BAAkB,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,GAAgD;QAChE,MAAM,SAAS,GAAc;YAC3B,GAAG,GAAG;YACN,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,gBAAgB,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;gBAC5E,gBAAgB,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,YAAY,EAAE;gBACxD,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;aAC1D;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAgD;QAC9D,MAAM,SAAS,GAAc;YAC3B,GAAG,GAAG;YACN,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE;gBACP,gBAAgB,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;gBAC5E,gBAAgB,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,YAAY,EAAE;gBACxD,aAAa,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE;aAC1D;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,SAAoB;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC;YACf,MAAM;YACN,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE;SAClE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,SAAiB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,KAAa,EAAE,OAAa;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAEvE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACxB,OAAO;YACP,cAAc,EAAE,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC;IAEO,UAAU;QAChB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;CACF;AA7DD,kDA6DC"}
1
+ {"version":3,"file":"AccessLogRepository.js","sourceRoot":"","sources":["../../../src/backend/repositories/AccessLogRepository.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,17 @@
1
1
  import { Db } from 'mongodb';
2
2
  import { BaseRepository } from './BaseRepository';
3
3
  import { ChangeLog } from '../models/ChangeLog';
4
+ import type { ChangeLogListQuery, ListResult } from '../../shared/types';
4
5
  export declare class ChangeLogRepository extends BaseRepository<ChangeLog> {
5
6
  constructor(db: Db);
6
7
  logChange(log: Omit<ChangeLog, '_id' | 'indexes'>): Promise<ChangeLog>;
7
8
  getEntityHistory(entityType: string, entityId: string): Promise<ChangeLog[]>;
8
9
  getUserChanges(userId: string, entityType?: string): Promise<ChangeLog[]>;
9
10
  getFieldChanges(entityType: string, field: string): Promise<ChangeLog[]>;
11
+ /**
12
+ * List change (audit) logs with filters, search, and pagination
13
+ */
14
+ list(query: ChangeLogListQuery): Promise<ListResult<ChangeLog>>;
10
15
  private generateId;
11
16
  }
12
17
  //# sourceMappingURL=ChangeLogRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeLogRepository.d.ts","sourceRoot":"","sources":["../../../src/backend/repositories/ChangeLogRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAmC,MAAM,qBAAqB,CAAC;AAEjF,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,SAAS,CAAC;gBACpD,EAAE,EAAE,EAAE;IAIZ,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IActE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5E,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IASzE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQ9E,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"ChangeLogRepository.d.ts","sourceRoot":"","sources":["../../../src/backend/repositories/ChangeLogRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAmC,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEzE,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,SAAS,CAAC;gBACpD,EAAE,EAAE,EAAE;IAIZ,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IActE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5E,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IASzE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQ9E;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAyCrE,OAAO,CAAC,UAAU;CAGnB"}
@@ -39,6 +39,57 @@ class ChangeLogRepository extends BaseRepository_1.BaseRepository {
39
39
  { $limit: 100 }
40
40
  ]);
41
41
  }
42
+ /**
43
+ * List change (audit) logs with filters, search, and pagination
44
+ */
45
+ async list(query) {
46
+ const filter = {};
47
+ if (query.tenantId)
48
+ filter.tenantId = query.tenantId;
49
+ if (query.userId)
50
+ filter.userId = query.userId;
51
+ if (query.entityType)
52
+ filter.entityType = query.entityType;
53
+ if (query.entityId)
54
+ filter.entityId = query.entityId;
55
+ if (query.type)
56
+ filter.type = query.type;
57
+ if (query.status)
58
+ filter.status = query.status;
59
+ if (query.startDate || query.endDate) {
60
+ filter.timestamp = {};
61
+ if (query.startDate)
62
+ filter.timestamp.$gte = new Date(query.startDate);
63
+ if (query.endDate)
64
+ filter.timestamp.$lte = new Date(query.endDate);
65
+ }
66
+ if (query.search && query.search.trim()) {
67
+ const searchRegex = { $regex: query.search.trim(), $options: 'i' };
68
+ filter.$or = [
69
+ { entityType: searchRegex },
70
+ { entityId: searchRegex },
71
+ { reason: searchRegex },
72
+ { comment: searchRegex }
73
+ ];
74
+ }
75
+ const page = Math.max(1, query.page ?? 1);
76
+ const limit = Math.min(100, Math.max(1, query.limit ?? 20));
77
+ const sortKey = query.sortBy && ['timestamp', 'entityType', 'entityId', 'type'].includes(query.sortBy)
78
+ ? query.sortBy
79
+ : 'timestamp';
80
+ const sortOrder = query.sortOrder === 'asc' ? 1 : -1;
81
+ const sort = { [sortKey]: sortOrder };
82
+ const result = await this.paginate(filter, page, limit, sort);
83
+ return {
84
+ data: result.data,
85
+ total: result.total,
86
+ page: result.page,
87
+ limit,
88
+ totalPages: result.totalPages,
89
+ hasNext: result.page < result.totalPages,
90
+ hasPrev: result.page > 1
91
+ };
92
+ }
42
93
  generateId() {
43
94
  return `chg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
44
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeLogRepository.js","sourceRoot":"","sources":["../../../src/backend/repositories/ChangeLogRepository.ts"],"names":[],"mappings":";;;AACA,qDAAkD;AAClD,mDAAiF;AAEjF,MAAa,mBAAoB,SAAQ,+BAAyB;IAChE,YAAY,EAAM;QAChB,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,8BAAkB,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAuC;QACrD,MAAM,SAAS,GAAc;YAC3B,GAAG,GAAG;YACN,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,OAAO,EAAE;gBACP,aAAa,EAAE,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAClD,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE;gBAC/C,WAAW,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE;aAC5D;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,QAAgB;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC;YACf,UAAU;YACV,QAAQ;SACT,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,UAAmB;QACtD,MAAM,MAAM,GAAQ,EAAE,MAAM,EAAE,CAAC;QAC/B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,UAAkB,EAAE,KAAa;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE;YAClD,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YAC5B,EAAE,MAAM,EAAE,GAAG,EAAE;SAChB,CAAC,CAAC;IACL,CAAC;IAEO,UAAU;QAChB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;CACF;AA9CD,kDA8CC"}
1
+ {"version":3,"file":"ChangeLogRepository.js","sourceRoot":"","sources":["../../../src/backend/repositories/ChangeLogRepository.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,16 @@
1
1
  import { Db } from 'mongodb';
2
2
  import { BaseRepository } from './BaseRepository';
3
3
  import { ExportLog } from '../models/ExportLog';
4
+ import type { ExportLogListQuery, ListResult } from '../../shared/types';
4
5
  export declare class ExportLogRepository extends BaseRepository<ExportLog> {
5
6
  constructor(db: Db);
6
7
  logExport(log: Omit<ExportLog, '_id' | 'type' | 'indexes'>): Promise<ExportLog>;
7
8
  updateExportStatus(logId: string, status: 'SUCCESS' | 'FAILED' | 'IN_PROGRESS', downloadUrl?: string, errorMessage?: string): Promise<ExportLog | null>;
8
9
  getUserExports(userId: string, exportType?: string): Promise<ExportLog[]>;
10
+ /**
11
+ * List export logs with filters, search, and pagination
12
+ */
13
+ list(query: ExportLogListQuery): Promise<ListResult<ExportLog>>;
9
14
  private generateId;
10
15
  }
11
16
  //# sourceMappingURL=ExportLogRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExportLogRepository.d.ts","sourceRoot":"","sources":["../../../src/backend/repositories/ExportLogRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AAEpE,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,SAAS,CAAC;gBACpD,EAAE,EAAE,EAAE;IAIZ,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAe/E,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,aAAa,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAcvJ,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAS/E,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"ExportLogRepository.d.ts","sourceRoot":"","sources":["../../../src/backend/repositories/ExportLogRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEzE,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,SAAS,CAAC;gBACpD,EAAE,EAAE,EAAE;IAIZ,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAe/E,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,aAAa,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAcvJ,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAS/E;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAiCrE,OAAO,CAAC,UAAU;CAGnB"}
@@ -37,6 +37,47 @@ class ExportLogRepository extends BaseRepository_1.BaseRepository {
37
37
  }
38
38
  return this.find(filter, { sort: { timestamp: -1 } });
39
39
  }
40
+ /**
41
+ * List export logs with filters, search, and pagination
42
+ */
43
+ async list(query) {
44
+ const filter = {};
45
+ if (query.tenantId)
46
+ filter.tenantId = query.tenantId;
47
+ if (query.userId)
48
+ filter.userId = query.userId;
49
+ if (query.exportType)
50
+ filter.exportType = query.exportType;
51
+ if (query.status)
52
+ filter.status = query.status;
53
+ if (query.startDate || query.endDate) {
54
+ filter.timestamp = {};
55
+ if (query.startDate)
56
+ filter.timestamp.$gte = new Date(query.startDate);
57
+ if (query.endDate)
58
+ filter.timestamp.$lte = new Date(query.endDate);
59
+ }
60
+ if (query.search && query.search.trim()) {
61
+ filter.fileName = { $regex: query.search.trim(), $options: 'i' };
62
+ }
63
+ const page = Math.max(1, query.page ?? 1);
64
+ const limit = Math.min(100, Math.max(1, query.limit ?? 20));
65
+ const sortKey = query.sortBy && ['timestamp', 'fileName', 'exportType', 'status', 'recordCount'].includes(query.sortBy)
66
+ ? query.sortBy
67
+ : 'timestamp';
68
+ const sortOrder = query.sortOrder === 'asc' ? 1 : -1;
69
+ const sort = { [sortKey]: sortOrder };
70
+ const result = await this.paginate(filter, page, limit, sort);
71
+ return {
72
+ data: result.data,
73
+ total: result.total,
74
+ page: result.page,
75
+ limit,
76
+ totalPages: result.totalPages,
77
+ hasNext: result.page < result.totalPages,
78
+ hasPrev: result.page > 1
79
+ };
80
+ }
40
81
  generateId() {
41
82
  return `exp_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
42
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExportLogRepository.js","sourceRoot":"","sources":["../../../src/backend/repositories/ExportLogRepository.ts"],"names":[],"mappings":";;;AACA,qDAAkD;AAClD,mDAAoE;AAEpE,MAAa,mBAAoB,SAAQ,+BAAyB;IAChE,YAAY,EAAM;QAChB,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,8BAAkB,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAgD;QAC9D,MAAM,SAAS,GAAc;YAC3B,GAAG,GAAG;YACN,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE;gBACP,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE;gBAC/C,WAAW,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE;gBACvD,aAAa,EAAE,GAAG,CAAC,QAAQ;aAC5B;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,MAA4C,EAAE,WAAoB,EAAE,YAAqB;QAC/H,MAAM,MAAM,GAAuB,EAAE,MAAM,EAAE,CAAC;QAE9C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;QACnC,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,UAAmB;QACtD,MAAM,MAAM,GAAQ,EAAE,MAAM,EAAE,CAAC;QAC/B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAEO,UAAU;QAChB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;CACF;AA9CD,kDA8CC"}
1
+ {"version":3,"file":"ExportLogRepository.js","sourceRoot":"","sources":["../../../src/backend/repositories/ExportLogRepository.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Db } from 'mongodb';
2
2
  import { BaseRepository } from './BaseRepository';
3
3
  import { SessionLog } from '../models/SessionLog';
4
- import { DateRange } from '../../shared/types';
4
+ import { DateRange, SessionLogListQuery, ListResult } from '../../shared/types';
5
5
  export declare class SessionLogRepository extends BaseRepository<SessionLog> {
6
6
  private readonly DEFAULT_IDLE_THRESHOLD;
7
7
  constructor(db: Db);
@@ -13,6 +13,10 @@ export declare class SessionLogRepository extends BaseRepository<SessionLog> {
13
13
  getUserSessions(userId: string, dateRange: DateRange): Promise<SessionLog[]>;
14
14
  getActiveSessions(): Promise<SessionLog[]>;
15
15
  findBySessionId(sessionId: string): Promise<SessionLog | null>;
16
+ /**
17
+ * List session logs with filters, search, and pagination
18
+ */
19
+ list(query: SessionLogListQuery): Promise<ListResult<SessionLog>>;
16
20
  private closeLastActivityPeriod;
17
21
  private calculateDurations;
18
22
  private generateId;
@@ -1 +1 @@
1
- {"version":3,"file":"SessionLogRepository.d.ts","sourceRoot":"","sources":["../../../src/backend/repositories/SessionLogRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAuC,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,qBAAa,oBAAqB,SAAQ,cAAc,CAAC,UAAU,CAAC;IAClE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiB;gBAE5C,EAAE,EAAE,EAAE;IAIZ,QAAQ,CACZ,GAAG,EAAE,IAAI,CACP,UAAU,EACR,KAAK,GACL,MAAM,GACN,iBAAiB,GACjB,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,SAAS,CACZ,GACA,OAAO,CAAC,UAAU,CAAC;IA8BhB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,SAAS,GAAG,OAAgB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAyBvG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAgDjF,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAY9D,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAgBlG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO5E,iBAAiB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAM1C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIpE,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"SessionLogRepository.d.ts","sourceRoot":"","sources":["../../../src/backend/repositories/SessionLogRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAuC,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhF,qBAAa,oBAAqB,SAAQ,cAAc,CAAC,UAAU,CAAC;IAClE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAiB;gBAE5C,EAAE,EAAE,EAAE;IAIZ,QAAQ,CACZ,GAAG,EAAE,IAAI,CACP,UAAU,EACR,KAAK,GACL,MAAM,GACN,iBAAiB,GACjB,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,SAAS,CACZ,GACA,OAAO,CAAC,UAAU,CAAC;IA8BhB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,SAAS,GAAG,OAAgB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAyBvG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAgDjF,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAY9D,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAgBlG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO5E,iBAAiB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAM1C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIpE;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAgCvE,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,UAAU;CAGnB"}
@@ -138,6 +138,45 @@ class SessionLogRepository extends BaseRepository_1.BaseRepository {
138
138
  async findBySessionId(sessionId) {
139
139
  return this.findOne({ sessionId });
140
140
  }
141
+ /**
142
+ * List session logs with filters, search, and pagination
143
+ */
144
+ async list(query) {
145
+ const filter = {};
146
+ if (query.tenantId)
147
+ filter.tenantId = query.tenantId;
148
+ if (query.userId)
149
+ filter.userId = query.userId;
150
+ if (query.activeOnly)
151
+ filter.logoutTime = { $exists: false };
152
+ if (query.startDate || query.endDate) {
153
+ filter.loginTime = {};
154
+ if (query.startDate)
155
+ filter.loginTime.$gte = new Date(query.startDate);
156
+ if (query.endDate)
157
+ filter.loginTime.$lte = new Date(query.endDate);
158
+ }
159
+ if (query.search && query.search.trim()) {
160
+ filter.sessionId = { $regex: query.search.trim(), $options: 'i' };
161
+ }
162
+ const page = Math.max(1, query.page ?? 1);
163
+ const limit = Math.min(100, Math.max(1, query.limit ?? 20));
164
+ const sortKey = query.sortBy && ['loginTime', 'logoutTime', 'sessionDuration', 'lastActivityTime'].includes(query.sortBy)
165
+ ? query.sortBy
166
+ : 'loginTime';
167
+ const sortOrder = query.sortOrder === 'asc' ? 1 : -1;
168
+ const sort = { [sortKey]: sortOrder };
169
+ const result = await this.paginate(filter, page, limit, sort);
170
+ return {
171
+ data: result.data,
172
+ total: result.total,
173
+ page: result.page,
174
+ limit,
175
+ totalPages: result.totalPages,
176
+ hasNext: result.page < result.totalPages,
177
+ hasPrev: result.page > 1
178
+ };
179
+ }
141
180
  closeLastActivityPeriod(periods, endTime) {
142
181
  if (periods.length === 0)
143
182
  return periods;
@@ -1 +1 @@
1
- {"version":3,"file":"SessionLogRepository.js","sourceRoot":"","sources":["../../../src/backend/repositories/SessionLogRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionLogRepository.js","sourceRoot":"","sources":["../../../src/backend/repositories/SessionLogRepository.ts"],"names":[],"mappings":";;;AACA,qDAAkD;AAClD,qDAAuF;AAGvF,MAAa,oBAAqB,SAAQ,+BAA0B;IACjD,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;IAErE,YAAY,EAAM;QAChB,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,gCAAmB,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,GAaC;QAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAe;YAC7B,GAAG,GAAG;YACN,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,IAAI,EAAE,OAAO;YACb,eAAe,EAAE,CAAC;oBAChB,SAAS,EAAE,GAAG;oBACd,OAAO,EAAE,GAAG;oBACZ,QAAQ,EAAE,CAAC;oBACX,IAAI,EAAE,QAAQ;oBACd,gBAAgB,EAAE,GAAG;iBACtB,CAAC;YACF,cAAc,EAAE,CAAC;YACjB,iBAAiB,EAAE,GAAG;YACtB,iBAAiB,EAAE,EAAE;YACrB,mBAAmB,EAAE,CAAC;YACtB,iBAAiB,EAAE,CAAC;YACpB,eAAe,EAAE,CAAC;YAClB,gBAAgB,EAAE,GAAG;YACrB,OAAO,EAAE;gBACP,mBAAmB,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE;gBACrE,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;gBAC7B,gBAAgB,EAAE,GAAG;aACtB;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,SAAuC,MAAM;QAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;QAE5D,iCAAiC;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAElF,kCAAkC;QAClC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAEjF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YAC9B,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,GAAG;YACf,YAAY,EAAE,MAAM;YACpB,eAAe,EAAE,cAAc;YAC/B,eAAe;YACf,mBAAmB,EAAE,cAAc;YACnC,iBAAiB,EAAE,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,YAAkB;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;QAEjE,IAAI,cAAc,GAAG,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QAElD,+DAA+D;QAC/D,IAAI,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YACrC,+BAA+B;YAC/B,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YAE5E,kBAAkB;YAClB,cAAc,CAAC,IAAI,CAAC;gBAClB,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,MAAM;gBACZ,gBAAgB,EAAE,YAAY;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,2BAA2B;YAC3B,UAAU,CAAC,OAAO,GAAG,YAAY,CAAC;YAClC,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YACxF,UAAU,CAAC,gBAAgB,GAAG,YAAY,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,0BAA0B;YAC1B,cAAc,CAAC,IAAI,CAAC;gBAClB,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,gBAAgB,EAAE,YAAY;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YAC9B,eAAe,EAAE,cAAc;YAC/B,gBAAgB,EAAE,YAAY;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YAC9B,cAAc,EAAE,OAAO,CAAC,cAAc,GAAG,CAAC;YAC1C,iBAAiB,EAAE,GAAG;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,KAA2B;QACzE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,iBAAiB,GAAG,CAAC,GAAG,OAAO,CAAC,iBAAiB,EAAE;gBACvD,SAAS,EAAE,GAAG;gBACd,KAAK;gBACL,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YAC9B,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,SAAoB;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC;YACf,MAAM;YACN,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE;SAClE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC;YACf,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,KAA0B;QACnC,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACrD,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/C,IAAI,KAAK,CAAC,UAAU;YAAE,MAAM,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7D,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,SAAS;gBAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACvE,IAAI,KAAK,CAAC,OAAO;gBAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACvH,CAAC,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC,WAAW,CAAC;QAChB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,SAAmB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK;YACL,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU;YACxC,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;SACzB,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAAC,OAAyB,EAAE,OAAa;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAEzC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAEpC,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG;YAC1C,GAAG,UAAU;YACb,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;SACvE,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,kBAAkB,CAAC,OAAyB;QAClD,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,cAAc,IAAI,MAAM,CAAC,QAAQ,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;IAC1C,CAAC;IAEO,UAAU;QAChB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;CACF;AA9OD,oDA8OC"}
@@ -0,0 +1,20 @@
1
+ import type { Application } from 'express';
2
+ import type { LogController } from './controllers/LogController';
3
+ export interface MountLoggingRoutesOptions {
4
+ app: Application;
5
+ basePath: string;
6
+ logController: LogController;
7
+ }
8
+ /**
9
+ * Mount all logging API routes (create + list with search & pagination).
10
+ * Use this in your app after initializing the logging system.
11
+ *
12
+ * Endpoints by log type:
13
+ * - Access logs: POST /pageview, POST /action, GET /access, POST /user/timeline
14
+ * - Session logs: POST /session/start, POST /session/end, POST /heartbeat, POST /activity, GET /sessions, POST /session/details
15
+ * - Change (Audit): POST /change, GET /changes, POST /entity/history
16
+ * - Export logs: POST /export, GET /exports, GET|POST /user/exports
17
+ * - Batch: POST /batch
18
+ */
19
+ export declare function mountLoggingRoutes(options: MountLoggingRoutesOptions): void;
20
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/backend/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI,CA+B3E"}