enterprise-logging-system 1.0.37 → 1.0.38

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.
@@ -41,5 +41,74 @@ export interface AccessLog extends BaseLogEntry {
41
41
  session_date: string;
42
42
  };
43
43
  }
44
- export declare const ACCESS_LOG_INDEXES: any[];
44
+ export declare const ACCESS_LOG_INDEXES: ({
45
+ keys: {
46
+ userId: number;
47
+ timestamp: number;
48
+ tenantId?: undefined;
49
+ sessionId?: undefined;
50
+ activityType?: undefined;
51
+ pageId?: undefined;
52
+ };
53
+ name: string;
54
+ unique: boolean;
55
+ partialFilterExpression: {
56
+ timestamp: {
57
+ $type: string;
58
+ };
59
+ };
60
+ expireAfterSeconds?: undefined;
61
+ } | {
62
+ keys: {
63
+ tenantId: number;
64
+ userId: number;
65
+ timestamp: number;
66
+ sessionId?: undefined;
67
+ activityType?: undefined;
68
+ pageId?: undefined;
69
+ };
70
+ name: string;
71
+ unique?: undefined;
72
+ partialFilterExpression?: undefined;
73
+ expireAfterSeconds?: undefined;
74
+ } | {
75
+ keys: {
76
+ sessionId: number;
77
+ activityType: number;
78
+ timestamp: number;
79
+ userId?: undefined;
80
+ tenantId?: undefined;
81
+ pageId?: undefined;
82
+ };
83
+ name: string;
84
+ unique?: undefined;
85
+ partialFilterExpression?: undefined;
86
+ expireAfterSeconds?: undefined;
87
+ } | {
88
+ keys: {
89
+ pageId: number;
90
+ timestamp: number;
91
+ userId?: undefined;
92
+ tenantId?: undefined;
93
+ sessionId?: undefined;
94
+ activityType?: undefined;
95
+ };
96
+ name: string;
97
+ unique?: undefined;
98
+ partialFilterExpression?: undefined;
99
+ expireAfterSeconds?: undefined;
100
+ } | {
101
+ keys: {
102
+ timestamp: number;
103
+ userId?: undefined;
104
+ tenantId?: undefined;
105
+ sessionId?: undefined;
106
+ activityType?: undefined;
107
+ pageId?: undefined;
108
+ };
109
+ name: string;
110
+ expireAfterSeconds: number;
111
+ unique?: undefined;
112
+ partialFilterExpression?: undefined;
113
+ })[];
45
114
  //# sourceMappingURL=AccessLog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccessLog.d.ts","sourceRoot":"","sources":["../../../src/backend/models/AccessLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEzF,MAAM,WAAW,SAAU,SAAQ,YAAY;IAE7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,IAAI,EAAE,WAAW,GAAG,kBAAkB,GAAG,eAAe,GAAG,aAAa,CAAC;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IAGrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAGjC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;IAGtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,IAAI,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IAGH,OAAO,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,eAAO,MAAM,kBAAkB,OAK9B,CAAC"}
1
+ {"version":3,"file":"AccessLog.d.ts","sourceRoot":"","sources":["../../../src/backend/models/AccessLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEzF,MAAM,WAAW,SAAU,SAAQ,YAAY;IAE7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,IAAI,EAAE,WAAW,GAAG,kBAAkB,GAAG,eAAe,GAAG,aAAa,CAAC;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IAGrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAGjC,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAC;IAGtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,IAAI,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IAGH,OAAO,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmB9B,CAAC"}
@@ -2,9 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ACCESS_LOG_INDEXES = void 0;
4
4
  exports.ACCESS_LOG_INDEXES = [
5
- // { keys: { tenantId: 1, userId: 1, timestamp: -1 }, name: 'tenant_user_date_idx' },
6
- // { keys: { sessionId: 1, activityType: 1, timestamp: -1 }, name: 'session_activity_idx' },
7
- // { keys: { pageId: 1, timestamp: -1 }, name: 'page_tracking_idx' },
8
- // { keys: { timestamp: 1 }, name: 'timestamp_idx', expireAfterSeconds: 2592000 } // 30 days TTL
5
+ // UNBREAKABLE: Unique compound index on userId + date to prevent duplicates at database level
6
+ // This is the ultimate guarantee - MongoDB will reject any duplicate entries
7
+ {
8
+ keys: {
9
+ userId: 1,
10
+ timestamp: 1
11
+ },
12
+ name: 'unique_user_daily_idx',
13
+ unique: true,
14
+ partialFilterExpression: {
15
+ timestamp: { $type: 'date' }
16
+ }
17
+ },
18
+ // Additional indexes for performance
19
+ { keys: { tenantId: 1, userId: 1, timestamp: -1 }, name: 'tenant_user_date_idx' },
20
+ { keys: { sessionId: 1, activityType: 1, timestamp: -1 }, name: 'session_activity_idx' },
21
+ { keys: { pageId: 1, timestamp: -1 }, name: 'page_tracking_idx' },
22
+ { keys: { timestamp: 1 }, name: 'timestamp_idx', expireAfterSeconds: 2592000 } // 30 days TTL
9
23
  ];
10
24
  //# sourceMappingURL=AccessLog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AccessLog.js","sourceRoot":"","sources":["../../../src/backend/models/AccessLog.ts"],"names":[],"mappings":";;;AA8Da,QAAA,kBAAkB,GAAG;AAChC,qFAAqF;AACrF,4FAA4F;AAC5F,qEAAqE;AACrE,gGAAgG;CACjG,CAAC"}
1
+ {"version":3,"file":"AccessLog.js","sourceRoot":"","sources":["../../../src/backend/models/AccessLog.ts"],"names":[],"mappings":";;;AA8Da,QAAA,kBAAkB,GAAG;IAChC,8FAA8F;IAC9F,6EAA6E;IAC7E;QACE,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;SACb;QACD,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,IAAI;QACZ,uBAAuB,EAAE;YACvB,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SAC7B;KACF;IACD,qCAAqC;IACrC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;IACjF,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;IACxF,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;IACjE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,cAAc;CAC9F,CAAC"}
@@ -5,9 +5,8 @@ import { DateRange, AccessLogListQuery, ListResult } from '../../shared/types';
5
5
  export declare class AccessLogRepository extends BaseRepository<AccessLog> {
6
6
  constructor(db: Db);
7
7
  /**
8
- * Log a page view. Implements upsert logic: if an access log entry already exists
9
- * for this userId on the same day, it updates that record instead of creating
10
- * a new one. This ensures ONE access log entry per USER per DAY.
8
+ * Log a page view. UNBREAKABLE RULE: ONE entry per userId per day.
9
+ * Uses userId + date as the ONLY unique key. NEVER creates duplicates.
11
10
  */
12
11
  logPageView(log: Omit<AccessLog, '_id' | 'type' | 'indexes'>): Promise<AccessLog>;
13
12
  /**
@@ -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,kBAAkB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEjG,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,SAAS,CAAC;gBACpD,EAAE,EAAE,EAAE;IAIlB;;;;OAIG;IACG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IA0JvF;;;;OAIG;IACG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IA0H/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"}
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;IAIlB;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAsJvF;;;;OAIG;IACG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IA0H/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"}
@@ -8,142 +8,134 @@ class AccessLogRepository extends BaseRepository_1.BaseRepository {
8
8
  super(db, 'access_logs', AccessLog_1.ACCESS_LOG_INDEXES);
9
9
  }
10
10
  /**
11
- * Log a page view. Implements upsert logic: if an access log entry already exists
12
- * for this userId on the same day, it updates that record instead of creating
13
- * a new one. This ensures ONE access log entry per USER per DAY.
11
+ * Log a page view. UNBREAKABLE RULE: ONE entry per userId per day.
12
+ * Uses userId + date as the ONLY unique key. NEVER creates duplicates.
14
13
  */
15
14
  async logPageView(log) {
16
- // Get start and end of the day for the current timestamp
17
15
  const currentDate = new Date(log.timestamp);
18
- const startOfDay = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(), 0, 0, 0, 0);
19
- const endOfDay = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(), 23, 59, 59, 999);
20
- // Create a unique daily key for this USER (not session)
21
- // This ensures one entry per user per day, regardless of session
22
16
  const dateKey = `${currentDate.getFullYear()}-${String(currentDate.getMonth() + 1).padStart(2, '0')}-${String(currentDate.getDate()).padStart(2, '0')}`;
23
17
  const dailyKey = `${log.userId}_${dateKey}`;
24
- console.log(`🔍 Looking for existing access log with dailyKey: ${dailyKey}`);
25
- // Find existing log for this USER on this DAY
18
+ console.log(`🔍 AccessLog: UNBREAKABLE KEY: ${dailyKey}`);
19
+ // UNBREAKABLE: Use findOneAndUpdate with upsert to GUARANTEE single entry
20
+ // This is atomic and prevents race conditions
21
+ const startOfDay = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(), 0, 0, 0, 0);
22
+ const endOfDay = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(), 23, 59, 59, 999);
23
+ // First, check if entry exists
26
24
  const existingLog = await this.collection.findOne({
27
- $or: [
28
- { 'indexes.session_date': dailyKey },
29
- {
30
- userId: log.userId,
31
- timestamp: { $gte: startOfDay, $lte: endOfDay }
32
- }
33
- ]
25
+ userId: log.userId,
26
+ timestamp: {
27
+ $gte: startOfDay,
28
+ $lte: endOfDay
29
+ }
34
30
  });
35
31
  if (existingLog) {
36
- console.log(`✅ Found existing access log for user ${log.userId} on ${dateKey}, updating...`);
37
- // Check if this is a duplicate request (same page within 5 seconds)
32
+ console.log(`✅ AccessLog: UPDATING existing entry for ${log.userId}`);
33
+ // Check for rapid duplicates (same page within 10 seconds)
38
34
  const pageVisits = existingLog.pageVisits || [];
39
35
  if (pageVisits.length > 0) {
40
36
  const lastVisit = pageVisits[pageVisits.length - 1];
41
37
  const timeSinceLastVisit = log.timestamp.getTime() - new Date(lastVisit.visitTime).getTime();
42
38
  const isSamePage = lastVisit.pageRoute === (log.pageRoute || log.pageId);
43
- // If same page visited within 5 seconds, skip (likely duplicate)
44
- if (isSamePage && timeSinceLastVisit < 5000) {
45
- console.log(`⏭️ Skipping duplicate page visit: ${log.pageRoute} (${timeSinceLastVisit}ms since last visit)`);
39
+ if (isSamePage && timeSinceLastVisit < 10000) {
40
+ console.log(`⏭️ AccessLog: Skipping duplicate (${timeSinceLastVisit}ms ago)`);
46
41
  return existingLog;
47
42
  }
48
43
  }
49
- // Calculate new duration
50
- const startTime = new Date(existingLog.startTime || existingLog.timestamp);
51
- const newDuration = log.timestamp.getTime() - startTime.getTime();
52
- // Increment activity count
53
- const newActivityCount = (existingLog.activityCount || 0) + 1;
54
- // Add this page visit to the pageVisits array
44
+ // Add new page visit
55
45
  const newPageVisit = {
56
46
  pageId: log.pageId || log.pageRoute || 'unknown',
57
47
  pageTitle: log.pageTitle || 'Unknown Page',
58
48
  pageRoute: log.pageRoute || log.pageId || '/unknown',
59
49
  visitTime: log.timestamp,
60
- duration: 0, // Will be calculated on next visit
61
- sessionId: log.sessionId // Track which session this visit belongs to
50
+ duration: 0,
51
+ sessionId: log.sessionId
62
52
  };
63
- // Update duration of previous visit if exists
53
+ // Update duration of previous visit
64
54
  if (pageVisits.length > 0) {
65
55
  const lastVisit = pageVisits[pageVisits.length - 1];
66
- lastVisit.duration = log.timestamp.getTime() - new Date(lastVisit.visitTime).getTime();
56
+ lastVisit.duration = Math.max(0, log.timestamp.getTime() - new Date(lastVisit.visitTime).getTime());
67
57
  }
68
58
  pageVisits.push(newPageVisit);
69
- // Update existing log with latest activity
70
- const updatedLog = await this.update(existingLog._id, {
59
+ const startTime = new Date(existingLog.startTime || existingLog.timestamp);
60
+ const newDuration = log.timestamp.getTime() - startTime.getTime();
61
+ const newActivityCount = (existingLog.activityCount || 0) + 1;
62
+ // ATOMIC UPDATE - prevents race conditions
63
+ const result = await this.collection.findOneAndUpdate({
64
+ _id: existingLog._id,
65
+ userId: log.userId,
66
+ timestamp: { $gte: startOfDay, $lte: endOfDay }
67
+ }, {
68
+ $set: {
69
+ timestamp: log.timestamp,
70
+ pageId: log.pageId,
71
+ pageTitle: log.pageTitle,
72
+ pageUrl: log.pageUrl,
73
+ pageRoute: log.pageRoute,
74
+ endTime: log.timestamp,
75
+ activeDuration: newDuration,
76
+ activityCount: newActivityCount,
77
+ pageVisits: pageVisits,
78
+ sessionId: log.sessionId,
79
+ 'indexes.session_date': dailyKey
80
+ }
81
+ }, { returnDocument: 'after' });
82
+ console.log(`✅ AccessLog: Updated - ${pageVisits.length} visits, ${Math.round(newDuration / 1000)}s duration`);
83
+ return result.value || existingLog;
84
+ }
85
+ console.log(`📝 AccessLog: Creating FIRST entry for ${log.userId} on ${dateKey}`);
86
+ // UNBREAKABLE: Use findOneAndUpdate with upsert for atomic insert
87
+ // This prevents race conditions where two requests try to create at the same time
88
+ const result = await this.collection.findOneAndUpdate({
89
+ userId: log.userId,
90
+ timestamp: { $gte: startOfDay, $lte: endOfDay }
91
+ }, {
92
+ $setOnInsert: {
93
+ _id: this.generateId(),
94
+ tenantId: log.tenantId,
95
+ userId: log.userId,
96
+ userRole: log.userRole,
97
+ sessionId: log.sessionId,
98
+ ipAddress: log.ipAddress,
99
+ userAgent: log.userAgent,
71
100
  timestamp: log.timestamp,
101
+ metadata: log.metadata,
102
+ username: log.username,
103
+ employeeId: log.employeeId,
104
+ type: 'PAGE_OPEN',
105
+ activityType: log.activityType,
106
+ activityName: log.activityName,
107
+ eventTime: log.eventTime,
108
+ startTime: log.startTime || log.timestamp,
109
+ browser: log.browser,
72
110
  pageId: log.pageId,
73
111
  pageTitle: log.pageTitle,
74
112
  pageUrl: log.pageUrl,
75
113
  pageRoute: log.pageRoute,
76
114
  previousPage: log.previousPage,
77
- endTime: log.timestamp,
78
- activeDuration: newDuration,
79
- activityCount: newActivityCount,
80
- pageVisits: pageVisits,
81
- browser: log.browser,
82
115
  geoLocation: log.geoLocation,
83
116
  network: log.network,
84
- sessionId: log.sessionId, // Update to latest session
85
- ...(log.metadata && { metadata: { ...existingLog.metadata, ...log.metadata } }),
117
+ activityCount: 1,
118
+ pageVisits: [{
119
+ pageId: log.pageId || log.pageRoute || 'unknown',
120
+ pageTitle: log.pageTitle || 'Unknown Page',
121
+ pageRoute: log.pageRoute || log.pageId || '/unknown',
122
+ visitTime: log.timestamp,
123
+ duration: 0,
124
+ sessionId: log.sessionId
125
+ }],
86
126
  indexes: {
87
127
  tenant_user_date: `${log.tenantId}_${log.userId}_${log.timestamp.getTime()}`,
88
128
  session_time: `${log.sessionId}_${log.activityType}`,
89
129
  page_time: `${log.pageId}_${log.timestamp.getTime()}`,
90
130
  session_date: dailyKey
91
131
  }
92
- });
93
- if (updatedLog) {
94
- console.log(`✅ Updated access log: duration=${Math.round(newDuration / 1000)}s, activities=${newActivityCount}, pageVisits=${pageVisits.length}`);
95
- return updatedLog;
96
132
  }
97
- }
98
- console.log(`📝 Creating new access log for user ${log.userId} on ${dateKey}`);
99
- // No existing log found, create a new one
100
- const accessLog = {
101
- // BaseLogEntry fields
102
- _id: this.generateId(),
103
- tenantId: log.tenantId,
104
- userId: log.userId,
105
- userRole: log.userRole,
106
- sessionId: log.sessionId,
107
- ipAddress: log.ipAddress,
108
- userAgent: log.userAgent,
109
- timestamp: log.timestamp,
110
- metadata: log.metadata,
111
- // AccessLog specific fields
112
- username: log.username,
113
- employeeId: log.employeeId,
114
- type: 'PAGE_OPEN',
115
- activityType: log.activityType,
116
- activityName: log.activityName,
117
- eventTime: log.eventTime,
118
- startTime: log.startTime || log.timestamp,
119
- browser: log.browser,
120
- // Optional fields
121
- pageId: log.pageId,
122
- pageTitle: log.pageTitle,
123
- pageUrl: log.pageUrl,
124
- pageRoute: log.pageRoute,
125
- previousPage: log.previousPage,
126
- geoLocation: log.geoLocation,
127
- network: log.network,
128
- // Tracking fields
129
- activityCount: 1,
130
- pageVisits: [{
131
- pageId: log.pageId || log.pageRoute || 'unknown',
132
- pageTitle: log.pageTitle || 'Unknown Page',
133
- pageRoute: log.pageRoute || log.pageId || '/unknown',
134
- visitTime: log.timestamp,
135
- duration: 0,
136
- sessionId: log.sessionId
137
- }],
138
- // Indexes
139
- indexes: {
140
- tenant_user_date: `${log.tenantId}_${log.userId}_${log.timestamp.getTime()}`,
141
- session_time: `${log.sessionId}_${log.activityType}`,
142
- page_time: `${log.pageId}_${log.timestamp.getTime()}`,
143
- session_date: dailyKey
144
- }
145
- };
146
- return this.create(accessLog);
133
+ }, {
134
+ upsert: true,
135
+ returnDocument: 'after'
136
+ });
137
+ console.log(`✅ AccessLog: Created with atomic upsert`);
138
+ return result.value;
147
139
  }
148
140
  /**
149
141
  * Log a user action. Implements upsert logic: if an access log entry already exists
@@ -1 +1 @@
1
- {"version":3,"file":"AccessLogRepository.js","sourceRoot":"","sources":["../../../src/backend/repositories/AccessLogRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccessLogRepository.js","sourceRoot":"","sources":["../../../src/backend/repositories/AccessLogRepository.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "enterprise-logging-system",
3
- "version": "1.0.37",
3
+ "version": "1.0.38",
4
4
  "description": "Enterprise logging system with idle time tracking for MongoDB/DocumentDB",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",