@checkfirst/nestjs-outlook 7.1.3 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entities/microsoft-user.entity.d.ts +2 -0
- package/dist/entities/microsoft-user.entity.js +11 -0
- package/dist/entities/microsoft-user.entity.js.map +1 -1
- package/dist/enums/event-types.enum.d.ts +1 -0
- package/dist/enums/event-types.enum.js +1 -0
- package/dist/enums/event-types.enum.js.map +1 -1
- package/dist/enums/microsoft-user-status.enum.d.ts +4 -0
- package/dist/enums/microsoft-user-status.enum.js +9 -0
- package/dist/enums/microsoft-user-status.enum.js.map +1 -0
- package/dist/errors/microsoft-refresh-token-invalid.error.d.ts +4 -0
- package/dist/errors/microsoft-refresh-token-invalid.error.js +12 -0
- package/dist/errors/microsoft-refresh-token-invalid.error.js.map +1 -0
- package/dist/migrations/1776700000000-AddMicrosoftUserStatusColumn.d.ts +5 -0
- package/dist/migrations/1776700000000-AddMicrosoftUserStatusColumn.js +20 -0
- package/dist/migrations/1776700000000-AddMicrosoftUserStatusColumn.js.map +1 -0
- package/dist/repositories/outlook-webhook-subscription.repository.d.ts +1 -3
- package/dist/repositories/outlook-webhook-subscription.repository.js +5 -18
- package/dist/repositories/outlook-webhook-subscription.repository.js.map +1 -1
- package/dist/services/auth/microsoft-auth.service.d.ts +1 -0
- package/dist/services/auth/microsoft-auth.service.js +55 -3
- package/dist/services/auth/microsoft-auth.service.js.map +1 -1
- package/dist/services/calendar/calendar.service.js +1 -0
- package/dist/services/calendar/calendar.service.js.map +1 -1
- package/dist/services/shared/graph-rate-limiter.service.d.ts +18 -0
- package/dist/services/shared/graph-rate-limiter.service.js +86 -0
- package/dist/services/shared/graph-rate-limiter.service.js.map +1 -1
- package/dist/services/subscription/microsoft-subscription.service.d.ts +13 -2
- package/dist/services/subscription/microsoft-subscription.service.js +233 -124
- package/dist/services/subscription/microsoft-subscription.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/outlook-api-executor.util.js +15 -1
- package/dist/utils/outlook-api-executor.util.js.map +1 -1
- package/dist/utils/retry.util.d.ts +1 -0
- package/dist/utils/retry.util.js +4 -0
- package/dist/utils/retry.util.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,16 +26,23 @@ const outlook_webhook_subscription_repository_1 = require("../../repositories/ou
|
|
|
26
26
|
const microsoft_user_entity_1 = require("../../entities/microsoft-user.entity");
|
|
27
27
|
const constants_1 = require("../../constants");
|
|
28
28
|
const event_types_enum_1 = require("../../enums/event-types.enum");
|
|
29
|
+
const microsoft_user_status_enum_1 = require("../../enums/microsoft-user-status.enum");
|
|
29
30
|
const user_id_converter_service_1 = require("../shared/user-id-converter.service");
|
|
31
|
+
const graph_rate_limiter_service_1 = require("../shared/graph-rate-limiter.service");
|
|
30
32
|
const outlook_api_executor_util_1 = require("../../utils/outlook-api-executor.util");
|
|
33
|
+
const GRAPH_BATCH_SIZE = 20;
|
|
34
|
+
const HEALTH_CHECK_WINDOW_HOURS = 24;
|
|
35
|
+
const FORCE_RENEWAL_WINDOW_HOURS = 12;
|
|
36
|
+
const STALE_NOTIFICATION_THRESHOLD_HOURS = 24;
|
|
31
37
|
let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class MicrosoftSubscriptionService {
|
|
32
|
-
constructor(microsoftAuthService, webhookSubscriptionRepository, eventEmitter, microsoftConfig, microsoftUserRepository, userIdConverter) {
|
|
38
|
+
constructor(microsoftAuthService, webhookSubscriptionRepository, eventEmitter, microsoftConfig, microsoftUserRepository, userIdConverter, rateLimiter) {
|
|
33
39
|
this.microsoftAuthService = microsoftAuthService;
|
|
34
40
|
this.webhookSubscriptionRepository = webhookSubscriptionRepository;
|
|
35
41
|
this.eventEmitter = eventEmitter;
|
|
36
42
|
this.microsoftConfig = microsoftConfig;
|
|
37
43
|
this.microsoftUserRepository = microsoftUserRepository;
|
|
38
44
|
this.userIdConverter = userIdConverter;
|
|
45
|
+
this.rateLimiter = rateLimiter;
|
|
39
46
|
this.logger = new common_1.Logger(MicrosoftSubscriptionService_1.name);
|
|
40
47
|
this.graphApiBaseUrl = 'https://graph.microsoft.com/v1.0';
|
|
41
48
|
this.msAuthUrl = 'https://login.microsoftonline.com/common/oauth2/v2.0';
|
|
@@ -215,30 +222,10 @@ let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class Micros
|
|
|
215
222
|
if (axios_1.default.isAxiosError(error)) {
|
|
216
223
|
const statusCode = (_a = error.response) === null || _a === void 0 ? void 0 : _a.status;
|
|
217
224
|
if (statusCode === 404) {
|
|
218
|
-
this.
|
|
219
|
-
|
|
220
|
-
await this.webhookSubscriptionRepository.deactivateSubscription(subscriptionId);
|
|
221
|
-
try {
|
|
222
|
-
const externalUserId = await this.userIdConverter.internalToExternal(internalUserId);
|
|
223
|
-
await this.createWebhookSubscription(externalUserId);
|
|
224
|
-
this.logger.log(`[${correlationId}] Successfully re-created subscription for user ${internalUserId} after 404`);
|
|
225
|
-
this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATED, {
|
|
226
|
-
subscriptionId,
|
|
227
|
-
userId: internalUserId,
|
|
228
|
-
reason: 'renewal_404',
|
|
229
|
-
});
|
|
225
|
+
const outcome = await this.handleSubscriptionNotFoundAtMicrosoft(subscriptionId, internalUserId, 'renewal_404', correlationId);
|
|
226
|
+
if (outcome === 'recreated') {
|
|
230
227
|
return {};
|
|
231
228
|
}
|
|
232
|
-
catch (recreateError) {
|
|
233
|
-
const recreateMsg = recreateError instanceof Error ? recreateError.message : 'Unknown error';
|
|
234
|
-
this.logger.error(`[${correlationId}] Failed to re-create subscription for user ${internalUserId}: ${recreateMsg}`);
|
|
235
|
-
this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATION_FAILED, {
|
|
236
|
-
subscriptionId,
|
|
237
|
-
userId: internalUserId,
|
|
238
|
-
reason: 'renewal_404',
|
|
239
|
-
error: recreateMsg,
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
229
|
throw new Error(`Subscription ${subscriptionId} not found at Microsoft. ` +
|
|
243
230
|
`Subscription has been deactivated and re-creation failed.`);
|
|
244
231
|
}
|
|
@@ -315,6 +302,14 @@ let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class Micros
|
|
|
315
302
|
var _a;
|
|
316
303
|
try {
|
|
317
304
|
const internalUserId = await this.userIdConverter.externalToInternal(externalUserId, { cache: false });
|
|
305
|
+
const user = await this.microsoftUserRepository.findOne({
|
|
306
|
+
select: ['id', 'status'],
|
|
307
|
+
where: { id: internalUserId },
|
|
308
|
+
});
|
|
309
|
+
if (!user || user.status === microsoft_user_status_enum_1.MicrosoftUserStatus.CORRUPTED) {
|
|
310
|
+
this.logger.debug(`[getActiveSubscriptionForUser] User ${externalUserId} is missing or CORRUPTED — reporting as not connected`);
|
|
311
|
+
return null;
|
|
312
|
+
}
|
|
318
313
|
this.logger.log(`[getActiveSubscriptionForUser] Getting active subscription for user ${externalUserId} (internalUserId: ${internalUserId})`);
|
|
319
314
|
const subscription = await this.webhookSubscriptionRepository.findActiveByUserId(internalUserId);
|
|
320
315
|
this.logger.log(`[getActiveSubscriptionForUser] Found subscription: ${subscription === null || subscription === void 0 ? void 0 : subscription.subscriptionId}`);
|
|
@@ -392,6 +387,28 @@ let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class Micros
|
|
|
392
387
|
filter: (sub) => { var _a; return ((_a = sub.clientState) === null || _a === void 0 ? void 0 : _a.includes(`user_${userId}_`)) || false; },
|
|
393
388
|
});
|
|
394
389
|
}
|
|
390
|
+
async cleanupSubscriptionsForUserAndResource(externalUserId, resource) {
|
|
391
|
+
const internalUserId = await this.userIdConverter.externalToInternal(externalUserId, { cache: false });
|
|
392
|
+
const accessToken = await this.microsoftAuthService.getUserAccessToken({
|
|
393
|
+
internalUserId,
|
|
394
|
+
cache: false,
|
|
395
|
+
});
|
|
396
|
+
this.logger.log(`🧹 Cleaning up ${resource} subscriptions for user ${internalUserId}`);
|
|
397
|
+
const result = await this.cleanupSubscriptions({
|
|
398
|
+
accessToken,
|
|
399
|
+
filter: (sub) => {
|
|
400
|
+
var _a;
|
|
401
|
+
return sub.resource === resource &&
|
|
402
|
+
(((_a = sub.clientState) === null || _a === void 0 ? void 0 : _a.includes(`user_${internalUserId}_`)) || false);
|
|
403
|
+
},
|
|
404
|
+
});
|
|
405
|
+
const dbRows = await this.webhookSubscriptionRepository
|
|
406
|
+
.findAllActiveByUserIdAndResource(internalUserId, resource);
|
|
407
|
+
for (const row of dbRows) {
|
|
408
|
+
await this.webhookSubscriptionRepository.deactivateSubscription(row.subscriptionId);
|
|
409
|
+
}
|
|
410
|
+
return result;
|
|
411
|
+
}
|
|
395
412
|
async revokeTokens(refreshToken) {
|
|
396
413
|
try {
|
|
397
414
|
if (!refreshToken) {
|
|
@@ -422,124 +439,215 @@ let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class Micros
|
|
|
422
439
|
this.logger.log('✅ Full cleanup completed');
|
|
423
440
|
return result;
|
|
424
441
|
}
|
|
425
|
-
async
|
|
442
|
+
async verifySubscriptionHealth() {
|
|
443
|
+
const correlationId = `health-check-${Date.now()}`;
|
|
426
444
|
try {
|
|
427
|
-
const
|
|
428
|
-
if (
|
|
429
|
-
this.logger.debug(
|
|
445
|
+
const allActiveSubs = await this.webhookSubscriptionRepository.findActiveSubscriptions();
|
|
446
|
+
if (allActiveSubs.length === 0) {
|
|
447
|
+
this.logger.debug(`[${correlationId}] No active subscriptions to verify`);
|
|
430
448
|
return;
|
|
431
449
|
}
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
450
|
+
const corruptedUserIds = await this.findCorruptedUserIds(allActiveSubs);
|
|
451
|
+
const activeSubs = corruptedUserIds.size > 0
|
|
452
|
+
? allActiveSubs.filter((sub) => !corruptedUserIds.has(sub.userId))
|
|
453
|
+
: allActiveSubs;
|
|
454
|
+
const skipped = allActiveSubs.length - activeSubs.length;
|
|
455
|
+
if (skipped > 0) {
|
|
456
|
+
this.logger.log(`[${correlationId}] Skipping ${skipped} sub(s) owned by ${corruptedUserIds.size} CORRUPTED user(s)`);
|
|
457
|
+
}
|
|
458
|
+
const expiringSoon = this.filterExpiringSoon(activeSubs, HEALTH_CHECK_WINDOW_HOURS);
|
|
459
|
+
this.logger.log(`[${correlationId}] Health check: ${activeSubs.length} active, ${expiringSoon.length} expiring within ${HEALTH_CHECK_WINDOW_HOURS}h`);
|
|
460
|
+
const counters = { verified: 0, recreated: 0, renewed: 0, staleDetected: 0, failed: 0 };
|
|
461
|
+
counters.staleDetected = this.detectStaleSubscriptions(activeSubs, correlationId);
|
|
462
|
+
if (expiringSoon.length > 0) {
|
|
463
|
+
const byUser = this.groupByUserId(expiringSoon);
|
|
464
|
+
for (const [userId, userSubs] of byUser) {
|
|
465
|
+
const perUser = await this.verifySubscriptionsForUser(userId, userSubs, correlationId);
|
|
466
|
+
counters.verified += perUser.verified;
|
|
467
|
+
counters.recreated += perUser.recreated;
|
|
468
|
+
counters.renewed += perUser.renewed;
|
|
469
|
+
counters.failed += perUser.failed;
|
|
439
470
|
}
|
|
440
471
|
}
|
|
472
|
+
this.logger.log(`[${correlationId}] Health check complete: ${counters.verified} verified, ${counters.recreated} recreated, ${counters.renewed} renewed, ${counters.staleDetected} stale-detected, ${counters.failed} failed`);
|
|
441
473
|
}
|
|
442
474
|
catch (error) {
|
|
443
|
-
this.logger.error(
|
|
475
|
+
this.logger.error(`[${correlationId}] Subscription health check job failed:`, error);
|
|
444
476
|
}
|
|
445
477
|
}
|
|
446
|
-
async
|
|
447
|
-
const
|
|
478
|
+
async findCorruptedUserIds(subs) {
|
|
479
|
+
const userIds = Array.from(new Set(subs.map((s) => s.userId)));
|
|
480
|
+
if (userIds.length === 0)
|
|
481
|
+
return new Set();
|
|
482
|
+
const rows = await this.microsoftUserRepository.find({
|
|
483
|
+
select: ['id'],
|
|
484
|
+
where: { id: (0, typeorm_2.In)(userIds), status: microsoft_user_status_enum_1.MicrosoftUserStatus.CORRUPTED },
|
|
485
|
+
});
|
|
486
|
+
return new Set(rows.map((u) => u.id));
|
|
487
|
+
}
|
|
488
|
+
filterExpiringSoon(subs, hoursAhead) {
|
|
489
|
+
const threshold = new Date(Date.now() + hoursAhead * 3600 * 1000);
|
|
490
|
+
return subs.filter((sub) => sub.expirationDateTime < threshold);
|
|
491
|
+
}
|
|
492
|
+
groupByUserId(subs) {
|
|
493
|
+
const byUser = new Map();
|
|
494
|
+
for (const sub of subs) {
|
|
495
|
+
const bucket = byUser.get(sub.userId);
|
|
496
|
+
if (bucket)
|
|
497
|
+
bucket.push(sub);
|
|
498
|
+
else
|
|
499
|
+
byUser.set(sub.userId, [sub]);
|
|
500
|
+
}
|
|
501
|
+
return byUser;
|
|
502
|
+
}
|
|
503
|
+
detectStaleSubscriptions(subs, correlationId) {
|
|
504
|
+
const staleThreshold = new Date(Date.now() - STALE_NOTIFICATION_THRESHOLD_HOURS * 3600 * 1000);
|
|
505
|
+
let staleDetected = 0;
|
|
506
|
+
for (const sub of subs) {
|
|
507
|
+
if (!sub.lastNotificationAt || sub.lastNotificationAt >= staleThreshold)
|
|
508
|
+
continue;
|
|
509
|
+
this.logger.warn(`[${correlationId}] Subscription ${sub.subscriptionId} has not received notifications since ${sub.lastNotificationAt.toISOString()}. Emitting LIFECYCLE_MISSED for delta sync.`);
|
|
510
|
+
this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.LIFECYCLE_MISSED, {
|
|
511
|
+
subscriptionId: sub.subscriptionId,
|
|
512
|
+
userId: sub.userId,
|
|
513
|
+
reason: 'health_check_stale',
|
|
514
|
+
});
|
|
515
|
+
staleDetected++;
|
|
516
|
+
}
|
|
517
|
+
return staleDetected;
|
|
518
|
+
}
|
|
519
|
+
async verifySubscriptionsForUser(userId, userSubs, correlationId) {
|
|
520
|
+
const totals = { verified: 0, recreated: 0, renewed: 0, staleDetected: 0, failed: 0 };
|
|
521
|
+
let externalUserId;
|
|
522
|
+
let accessToken;
|
|
448
523
|
try {
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
524
|
+
externalUserId = await this.userIdConverter.internalToExternal(userId);
|
|
525
|
+
accessToken = await this.microsoftAuthService.getUserAccessToken({ internalUserId: userId });
|
|
526
|
+
}
|
|
527
|
+
catch (error) {
|
|
528
|
+
totals.failed += userSubs.length;
|
|
529
|
+
this.logger.error(`[${correlationId}] Token fetch failed for user ${userId}; skipping ${userSubs.length} sub(s):`, error);
|
|
530
|
+
return totals;
|
|
531
|
+
}
|
|
532
|
+
for (let offset = 0; offset < userSubs.length; offset += GRAPH_BATCH_SIZE) {
|
|
533
|
+
const chunk = userSubs.slice(offset, offset + GRAPH_BATCH_SIZE);
|
|
534
|
+
const chunkTotals = await this.verifySubscriptionsBatch(chunk, userId, externalUserId, accessToken, correlationId);
|
|
535
|
+
totals.verified += chunkTotals.verified;
|
|
536
|
+
totals.recreated += chunkTotals.recreated;
|
|
537
|
+
totals.renewed += chunkTotals.renewed;
|
|
538
|
+
totals.failed += chunkTotals.failed;
|
|
539
|
+
}
|
|
540
|
+
return totals;
|
|
541
|
+
}
|
|
542
|
+
async verifySubscriptionsBatch(chunk, userId, externalUserId, accessToken, correlationId) {
|
|
543
|
+
const totals = { verified: 0, recreated: 0, renewed: 0, staleDetected: 0, failed: 0 };
|
|
544
|
+
await this.rateLimiter.acquirePermit(externalUserId);
|
|
545
|
+
const batchPayload = {
|
|
546
|
+
requests: chunk.map((sub, index) => ({
|
|
547
|
+
id: String(index),
|
|
548
|
+
method: 'GET',
|
|
549
|
+
url: `/subscriptions/${sub.subscriptionId}`,
|
|
550
|
+
headers: { 'Prefer': 'IdType="ImmutableId"' },
|
|
551
|
+
})),
|
|
552
|
+
};
|
|
553
|
+
try {
|
|
554
|
+
const response = await (0, outlook_api_executor_util_1.executeGraphApiCall)(() => axios_1.default.post(`${this.graphApiBaseUrl}/$batch`, batchPayload, {
|
|
555
|
+
headers: {
|
|
556
|
+
Authorization: `Bearer ${accessToken}`,
|
|
557
|
+
'Content-Type': 'application/json',
|
|
558
|
+
},
|
|
559
|
+
}), {
|
|
560
|
+
logger: this.logger,
|
|
561
|
+
resourceName: `verify batch (user ${userId}, ${chunk.length} subs)`,
|
|
562
|
+
maxRetries: 2,
|
|
563
|
+
});
|
|
564
|
+
if (!(response === null || response === void 0 ? void 0 : response.data)) {
|
|
565
|
+
totals.failed += chunk.length;
|
|
566
|
+
this.logger.error(`[${correlationId}] Batch verify returned null for user ${userId}`);
|
|
567
|
+
return totals;
|
|
453
568
|
}
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
});
|
|
464
|
-
const response = await (0, outlook_api_executor_util_1.executeGraphApiCall)(() => axios_1.default.get(`${this.graphApiBaseUrl}/subscriptions/${subscription.subscriptionId}`, {
|
|
465
|
-
headers: {
|
|
466
|
-
Authorization: `Bearer ${accessToken}`,
|
|
467
|
-
"Prefer": 'IdType="ImmutableId"',
|
|
468
|
-
},
|
|
469
|
-
}), {
|
|
470
|
-
logger: this.logger,
|
|
471
|
-
resourceName: `verify subscription ${subscription.subscriptionId}`,
|
|
472
|
-
maxRetries: 2,
|
|
473
|
-
return404AsNull: true,
|
|
474
|
-
});
|
|
475
|
-
if (!response) {
|
|
476
|
-
this.logger.warn(`[${correlationId}] Subscription ${subscription.subscriptionId} not found at Microsoft. Attempting re-creation.`);
|
|
477
|
-
await this.webhookSubscriptionRepository.deactivateSubscription(subscription.subscriptionId);
|
|
478
|
-
try {
|
|
479
|
-
const externalUserId = await this.userIdConverter.internalToExternal(subscription.userId);
|
|
480
|
-
await this.createWebhookSubscription(externalUserId);
|
|
481
|
-
recreated++;
|
|
482
|
-
this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATED, {
|
|
483
|
-
subscriptionId: subscription.subscriptionId,
|
|
484
|
-
userId: subscription.userId,
|
|
485
|
-
reason: 'health_check_404',
|
|
486
|
-
});
|
|
487
|
-
}
|
|
488
|
-
catch (recreateError) {
|
|
489
|
-
failed++;
|
|
490
|
-
this.logger.error(`[${correlationId}] Failed to re-create subscription for user ${String(subscription.userId)}: ${recreateError instanceof Error ? recreateError.message : 'Unknown error'}`);
|
|
491
|
-
this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATION_FAILED, {
|
|
492
|
-
subscriptionId: subscription.subscriptionId,
|
|
493
|
-
userId: subscription.userId,
|
|
494
|
-
reason: 'health_check_404',
|
|
495
|
-
error: recreateError instanceof Error ? recreateError.message : 'Unknown error',
|
|
496
|
-
});
|
|
497
|
-
}
|
|
498
|
-
continue;
|
|
499
|
-
}
|
|
500
|
-
verified++;
|
|
501
|
-
if (response.data.expirationDateTime) {
|
|
502
|
-
const expiration = new Date(response.data.expirationDateTime);
|
|
503
|
-
const twelveHoursFromNow = new Date();
|
|
504
|
-
twelveHoursFromNow.setHours(twelveHoursFromNow.getHours() + 12);
|
|
505
|
-
if (expiration < twelveHoursFromNow) {
|
|
506
|
-
this.logger.log(`[${correlationId}] Subscription ${subscription.subscriptionId} expires within 12h. Forcing renewal.`);
|
|
507
|
-
await this.renewWebhookSubscription(subscription.subscriptionId, subscription.userId);
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
if (subscription.lastNotificationAt) {
|
|
511
|
-
const twentyFourHoursAgo = new Date();
|
|
512
|
-
twentyFourHoursAgo.setHours(twentyFourHoursAgo.getHours() - 24);
|
|
513
|
-
if (subscription.lastNotificationAt < twentyFourHoursAgo) {
|
|
514
|
-
this.logger.warn(`[${correlationId}] Subscription ${subscription.subscriptionId} has not received notifications since ${subscription.lastNotificationAt.toISOString()}. Emitting LIFECYCLE_MISSED for delta sync.`);
|
|
515
|
-
staleDetected++;
|
|
516
|
-
this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.LIFECYCLE_MISSED, {
|
|
517
|
-
subscriptionId: subscription.subscriptionId,
|
|
518
|
-
userId: subscription.userId,
|
|
519
|
-
reason: 'health_check_stale',
|
|
520
|
-
});
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
catch (error) {
|
|
525
|
-
failed++;
|
|
526
|
-
this.logger.error(`[${correlationId}] Health check failed for subscription ${subscription.subscriptionId}:`, error);
|
|
527
|
-
}
|
|
569
|
+
for (const item of response.data.responses) {
|
|
570
|
+
const sub = chunk[parseInt(item.id, 10)];
|
|
571
|
+
if (!sub)
|
|
572
|
+
continue;
|
|
573
|
+
const itemTotals = await this.handleBatchResponseItem(sub, item, correlationId);
|
|
574
|
+
totals.verified += itemTotals.verified;
|
|
575
|
+
totals.recreated += itemTotals.recreated;
|
|
576
|
+
totals.renewed += itemTotals.renewed;
|
|
577
|
+
totals.failed += itemTotals.failed;
|
|
528
578
|
}
|
|
529
|
-
this.logger.log(`[${correlationId}] Health check complete: ${String(verified)} verified, ${String(recreated)} recreated, ${String(staleDetected)} stale-detected, ${String(failed)} failed`);
|
|
530
579
|
}
|
|
531
580
|
catch (error) {
|
|
532
|
-
|
|
581
|
+
totals.failed += chunk.length;
|
|
582
|
+
this.logger.error(`[${correlationId}] Batch verify failed for user ${userId} (${chunk.length} subs):`, error);
|
|
583
|
+
}
|
|
584
|
+
return totals;
|
|
585
|
+
}
|
|
586
|
+
async handleBatchResponseItem(sub, item, correlationId) {
|
|
587
|
+
const totals = { verified: 0, recreated: 0, renewed: 0, staleDetected: 0, failed: 0 };
|
|
588
|
+
if (item.status === 200) {
|
|
589
|
+
totals.verified = 1;
|
|
590
|
+
if (await this.maybeRenewIfExpiringSoon(sub, item.body, correlationId)) {
|
|
591
|
+
totals.renewed = 1;
|
|
592
|
+
}
|
|
593
|
+
return totals;
|
|
594
|
+
}
|
|
595
|
+
if (item.status === 404) {
|
|
596
|
+
const result = await this.handleSubscriptionNotFoundAtMicrosoft(sub.subscriptionId, sub.userId, 'health_check_404', correlationId);
|
|
597
|
+
if (result === 'recreated')
|
|
598
|
+
totals.recreated = 1;
|
|
599
|
+
else
|
|
600
|
+
totals.failed = 1;
|
|
601
|
+
return totals;
|
|
602
|
+
}
|
|
603
|
+
totals.failed = 1;
|
|
604
|
+
this.logger.error(`[${correlationId}] Unexpected status ${item.status} for sub ${sub.subscriptionId}: ${JSON.stringify(item.body)}`);
|
|
605
|
+
return totals;
|
|
606
|
+
}
|
|
607
|
+
async maybeRenewIfExpiringSoon(sub, graphSub, correlationId) {
|
|
608
|
+
if (!graphSub.expirationDateTime)
|
|
609
|
+
return false;
|
|
610
|
+
const expiration = new Date(graphSub.expirationDateTime);
|
|
611
|
+
const renewalThreshold = new Date(Date.now() + FORCE_RENEWAL_WINDOW_HOURS * 3600 * 1000);
|
|
612
|
+
if (expiration >= renewalThreshold)
|
|
613
|
+
return false;
|
|
614
|
+
this.logger.log(`[${correlationId}] Subscription ${sub.subscriptionId} expires within ${FORCE_RENEWAL_WINDOW_HOURS}h. Forcing renewal.`);
|
|
615
|
+
try {
|
|
616
|
+
await this.renewWebhookSubscription(sub.subscriptionId, sub.userId);
|
|
617
|
+
}
|
|
618
|
+
catch (error) {
|
|
619
|
+
this.logger.warn(`[${correlationId}] Forced renewal of ${sub.subscriptionId} failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
620
|
+
}
|
|
621
|
+
return true;
|
|
622
|
+
}
|
|
623
|
+
async handleSubscriptionNotFoundAtMicrosoft(subscriptionId, internalUserId, reason, correlationId) {
|
|
624
|
+
this.logger.warn(`[${correlationId}] Subscription ${subscriptionId} not found at Microsoft. Deactivating and attempting re-creation.`);
|
|
625
|
+
await this.webhookSubscriptionRepository.deactivateSubscription(subscriptionId);
|
|
626
|
+
try {
|
|
627
|
+
const externalUserId = await this.userIdConverter.internalToExternal(internalUserId);
|
|
628
|
+
await this.createWebhookSubscription(externalUserId);
|
|
629
|
+
this.logger.log(`[${correlationId}] Successfully re-created subscription for user ${internalUserId} after 404`);
|
|
630
|
+
this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATED, {
|
|
631
|
+
subscriptionId,
|
|
632
|
+
userId: internalUserId,
|
|
633
|
+
reason,
|
|
634
|
+
});
|
|
635
|
+
return 'recreated';
|
|
636
|
+
}
|
|
637
|
+
catch (recreateError) {
|
|
638
|
+
const recreateMsg = recreateError instanceof Error ? recreateError.message : 'Unknown error';
|
|
639
|
+
this.logger.error(`[${correlationId}] Failed to re-create subscription for user ${internalUserId}: ${recreateMsg}`);
|
|
640
|
+
this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATION_FAILED, {
|
|
641
|
+
subscriptionId,
|
|
642
|
+
userId: internalUserId,
|
|
643
|
+
reason,
|
|
644
|
+
error: recreateMsg,
|
|
645
|
+
});
|
|
646
|
+
return 'failed';
|
|
533
647
|
}
|
|
534
648
|
}
|
|
535
649
|
};
|
|
536
650
|
exports.MicrosoftSubscriptionService = MicrosoftSubscriptionService;
|
|
537
|
-
__decorate([
|
|
538
|
-
(0, schedule_1.Cron)(schedule_1.CronExpression.EVERY_HOUR),
|
|
539
|
-
__metadata("design:type", Function),
|
|
540
|
-
__metadata("design:paramtypes", []),
|
|
541
|
-
__metadata("design:returntype", Promise)
|
|
542
|
-
], MicrosoftSubscriptionService.prototype, "renewSubscriptions", null);
|
|
543
651
|
__decorate([
|
|
544
652
|
(0, schedule_1.Cron)('0 */6 * * *'),
|
|
545
653
|
__metadata("design:type", Function),
|
|
@@ -554,6 +662,7 @@ exports.MicrosoftSubscriptionService = MicrosoftSubscriptionService = MicrosoftS
|
|
|
554
662
|
__metadata("design:paramtypes", [microsoft_auth_service_1.MicrosoftAuthService,
|
|
555
663
|
outlook_webhook_subscription_repository_1.OutlookWebhookSubscriptionRepository,
|
|
556
664
|
event_emitter_1.EventEmitter2, Object, typeorm_2.Repository,
|
|
557
|
-
user_id_converter_service_1.UserIdConverterService
|
|
665
|
+
user_id_converter_service_1.UserIdConverterService,
|
|
666
|
+
graph_rate_limiter_service_1.GraphRateLimiterService])
|
|
558
667
|
], MicrosoftSubscriptionService);
|
|
559
668
|
//# sourceMappingURL=microsoft-subscription.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"microsoft-subscription.service.js","sourceRoot":"","sources":["../../../src/services/subscription/microsoft-subscription.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"microsoft-subscription.service.js","sourceRoot":"","sources":["../../../src/services/subscription/microsoft-subscription.service.ts"],"names":[],"mappings":"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"}
|