@oneuptime/common 12.0.29 → 12.0.30
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/Models/DatabaseModels/Index.ts +11 -0
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +43 -0
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.ts +662 -0
- package/Models/DatabaseModels/ProjectOnCallCalendarFeed.ts +584 -0
- package/Models/DatabaseModels/UserOnCallCalendarFeed.ts +546 -0
- package/Models/DatabaseModels/UserOnCallShiftReminder.ts +231 -0
- package/Models/DatabaseModels/UserOnCallShiftReminderLog.ts +331 -0
- package/Server/API/OnCallCalendarAPI.ts +2194 -0
- package/Server/EnvironmentConfig.ts +138 -0
- package/Server/Infrastructure/OnCallCalendarFeedCache.ts +1050 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.ts +253 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Middleware/OnCallCalendarFeedRateLimit.ts +487 -0
- package/Server/Services/Index.ts +12 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +32 -0
- package/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.ts +260 -0
- package/Server/Services/OnCallDutyPolicyScheduleLayerService.ts +70 -3
- package/Server/Services/OnCallDutyPolicyScheduleLayerUserService.ts +138 -3
- package/Server/Services/OnCallDutyPolicyScheduleService.ts +1465 -134
- package/Server/Services/OnCallDutyPolicyUserOverrideService.ts +167 -31
- package/Server/Services/ProjectOnCallCalendarFeedService.ts +192 -0
- package/Server/Services/TeamMemberService.ts +489 -1
- package/Server/Services/TeamService.ts +50 -0
- package/Server/Services/UserNotificationSettingService.ts +44 -1
- package/Server/Services/UserOnCallCalendarFeedService.ts +159 -0
- package/Server/Services/UserOnCallShiftReminderLogService.ts +151 -0
- package/Server/Services/UserOnCallShiftReminderService.ts +112 -0
- package/Server/Utils/OnCall/CalendarFeedToken.ts +241 -0
- package/Server/Utils/OnCall/OnCallCalendarFeedRenderer.ts +1488 -0
- package/Server/Utils/OnCall/OnCallCalendarFeedUrls.ts +230 -0
- package/Server/Utils/OnCall/OnCallShiftChangeListeners.ts +227 -0
- package/Server/Utils/OnCall/OnCallShiftMaterializer.ts +1127 -0
- package/Server/Utils/OnCall/OnCallShiftReminderListener.ts +174 -0
- package/Server/Utils/OnCall/OnCallShiftReminderRunner.ts +2584 -0
- package/Server/Utils/Response.ts +134 -0
- package/Server/Utils/StartServer.ts +10 -0
- package/Server/Utils/Telemetry/AppMetrics.ts +51 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedLinks.test.tsx +229 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedPlanGate.test.tsx +489 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedSideMenus.test.tsx +149 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedUtil.test.ts +855 -0
- package/Tests/App/Dashboard/OnCallPersonalCalendarFeed.test.tsx +1209 -0
- package/Tests/App/Dashboard/OnCallSharedCalendarFeedCard.test.tsx +1019 -0
- package/Tests/App/Dashboard/OnCallShiftRemindersAndUpcomingShifts.test.tsx +655 -0
- package/Tests/App/Dashboard/UserSettingsSetupChecklistModel.test.ts +73 -0
- package/Tests/Models/OnCallCalendarFeedModels.test.ts +642 -0
- package/Tests/Models/OnCallDutyPolicyScheduleCalendarFeed.test.ts +288 -0
- package/Tests/Models/OnCallDutyPolicyScheduleShiftConfigVersion.test.ts +88 -0
- package/Tests/Models/UserOnCallShiftReminderModels.test.ts +368 -0
- package/Tests/Server/API/Helpers.ts +8 -0
- package/Tests/Server/API/OnCallCalendarAPI.test.ts +4461 -0
- package/Tests/Server/EnvironmentConfigOnCallCalendarFeed.test.ts +357 -0
- package/Tests/Server/Infrastructure/OnCallCalendarFeedCache.test.ts +1589 -0
- package/Tests/Server/Infrastructure/Postgres/AddOnCallCalendarFeedsMigration.test.ts +369 -0
- package/Tests/Server/Middleware/OnCallCalendarFeedRateLimit.test.ts +1365 -0
- package/Tests/Server/Services/FeedRetentionConsistency.test.ts +70 -0
- package/Tests/Server/Services/OnCallCalendarFeedServices.test.ts +1103 -0
- package/Tests/Server/Services/OnCallDutyPolicyScheduleResolver.test.ts +1037 -0
- package/Tests/Server/Services/OnCallShiftConfigPropagation.test.ts +1270 -0
- package/Tests/Server/Services/TeamDeleteMemberCleanup.test.ts +156 -0
- package/Tests/Server/Services/TeamMemberOnCallCleanup.test.ts +755 -0
- package/Tests/Server/Services/UserNotificationSettingShiftReminderDefaults.test.ts +267 -0
- package/Tests/Server/Services/UserOnCallShiftReminderServices.test.ts +583 -0
- package/Tests/Server/Types/Database/Permissions/OnCallCalendarFeedPermissions.test.ts +254 -0
- package/Tests/Server/Utils/OnCall/CalendarFeedToken.test.ts +467 -0
- package/Tests/Server/Utils/OnCall/OnCallCalendarFeedRenderer.test.ts +2142 -0
- package/Tests/Server/Utils/OnCall/OnCallCalendarFeedUrls.test.ts +278 -0
- package/Tests/Server/Utils/OnCall/OnCallResolverTestHarness.ts +440 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftChangeListeners.test.ts +314 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftMaterializer.test.ts +1502 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderListener.test.ts +491 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderRunner.test.ts +3088 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderTestHarness.ts +910 -0
- package/Tests/Server/Utils/ResponseSendCalendarResponse.test.ts +561 -0
- package/Tests/Server/Utils/StartServerEncryptionSecretWarning.test.ts +64 -0
- package/Tests/Server/Utils/Telemetry/AppMetrics.test.ts +29 -0
- package/Tests/Types/Calendar/ICalendar.test.ts +488 -0
- package/Tests/Types/NotificationSetting/NotificationSettingEventType.test.ts +53 -0
- package/Tests/Types/OnCallDutyPolicy/CalendarFeedTestFixtures.ts +310 -0
- package/Tests/Types/OnCallDutyPolicy/CalendarFeedWindow.test.ts +205 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilLayerMetaAndIterationCap.test.ts +458 -0
- package/Tests/Types/OnCallDutyPolicy/MaterializedShift.test.ts +197 -0
- package/Tests/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.test.ts +1986 -0
- package/Tests/Types/OnCallDutyPolicy/ScheduleShiftUtilGroupKey.test.ts +678 -0
- package/Tests/Types/OnCallDutyPolicy/ShiftSeamUtil.test.ts +417 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +10 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +2 -0
- package/Types/Calendar/ICalendar.ts +442 -0
- package/Types/Email/EmailTemplateType.ts +2 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
- package/Types/OnCallDutyPolicy/CalendarFeedWindow.ts +140 -0
- package/Types/OnCallDutyPolicy/Layer.ts +190 -35
- package/Types/OnCallDutyPolicy/MaterializedShift.ts +274 -0
- package/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.ts +1415 -0
- package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +159 -4
- package/Types/OnCallDutyPolicy/ShiftSeamUtil.ts +106 -0
- package/build/dist/Models/DatabaseModels/Index.js +11 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +44 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js +699 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js +620 -0
- package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js +585 -0
- package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js +247 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js +355 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js.map +1 -0
- package/build/dist/Server/API/OnCallCalendarAPI.js +1371 -0
- package/build/dist/Server/API/OnCallCalendarAPI.js.map +1 -0
- package/build/dist/Server/EnvironmentConfig.js +102 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js +663 -0
- package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js +103 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js +342 -0
- package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js.map +1 -0
- package/build/dist/Server/Services/Index.js +12 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +20 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js +219 -0
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js +47 -3
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js +112 -3
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +955 -9
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js +93 -6
- package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js.map +1 -1
- package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js +157 -0
- package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/TeamMemberService.js +396 -1
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/TeamService.js +43 -0
- package/build/dist/Server/Services/TeamService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +26 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallCalendarFeedService.js +140 -0
- package/build/dist/Server/Services/UserOnCallCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js +116 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js.map +1 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderService.js +92 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderService.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js +161 -0
- package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js +983 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js +155 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js +145 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js +752 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js +92 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js +1786 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js.map +1 -0
- package/build/dist/Server/Utils/Response.js +97 -0
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +9 -1
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/AppMetrics.js +41 -0
- package/build/dist/Server/Utils/Telemetry/AppMetrics.js.map +1 -1
- package/build/dist/Types/Calendar/ICalendar.js +290 -0
- package/build/dist/Types/Calendar/ICalendar.js.map +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js +2 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js +97 -0
- package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/Layer.js +113 -19
- package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js +134 -0
- package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js +800 -0
- package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +97 -3
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js +77 -0
- package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js.map +1 -0
- package/package.json +1 -1
|
@@ -27,7 +27,7 @@ import { AccountsRoute } from "../../ServiceRoute";
|
|
|
27
27
|
import URL from "../../Types/API/URL";
|
|
28
28
|
import Route from "../../Types/API/Route";
|
|
29
29
|
import SubscriptionPlan, { PlanType, } from "../../Types/Billing/SubscriptionPlan";
|
|
30
|
-
import LIMIT_MAX from "../../Types/Database/LimitMax";
|
|
30
|
+
import LIMIT_MAX, { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
31
31
|
import Email from "../../Types/Email";
|
|
32
32
|
import EmailTemplateType from "../../Types/Email/EmailTemplateType";
|
|
33
33
|
import Name from "../../Types/Name";
|
|
@@ -38,6 +38,16 @@ import OnCallDutyPolicyTimeLogService from "./OnCallDutyPolicyTimeLogService";
|
|
|
38
38
|
import OneUptimeDate from "../../Types/Date";
|
|
39
39
|
import ProjectSCIMService from "./ProjectSCIMService";
|
|
40
40
|
import InMemoryTTLCache from "../Infrastructure/InMemoryTTLCache";
|
|
41
|
+
import OnCallDutyPolicyScheduleService from "./OnCallDutyPolicyScheduleService";
|
|
42
|
+
import OnCallDutyPolicyScheduleLayerUserService from "./OnCallDutyPolicyScheduleLayerUserService";
|
|
43
|
+
import OnCallDutyPolicyEscalationRuleUserService from "./OnCallDutyPolicyEscalationRuleUserService";
|
|
44
|
+
import OnCallDutyPolicyUserOverrideService from "./OnCallDutyPolicyUserOverrideService";
|
|
45
|
+
import UserOnCallCalendarFeedService from "./UserOnCallCalendarFeedService";
|
|
46
|
+
import UserOnCallShiftReminderService from "./UserOnCallShiftReminderService";
|
|
47
|
+
import OnCallDutyPolicyScheduleCalendarFeedService from "./OnCallDutyPolicyScheduleCalendarFeedService";
|
|
48
|
+
import ProjectOnCallCalendarFeedService from "./ProjectOnCallCalendarFeedService";
|
|
49
|
+
import OnCallCalendarFeedCache from "../Infrastructure/OnCallCalendarFeedCache";
|
|
50
|
+
import { OnCallShiftChangeReason } from "../Utils/OnCall/OnCallShiftChangeListeners";
|
|
41
51
|
export class TeamMemberService extends DatabaseService {
|
|
42
52
|
constructor() {
|
|
43
53
|
super(TeamMember);
|
|
@@ -457,13 +467,386 @@ export class TeamMemberService extends DatabaseService {
|
|
|
457
467
|
};
|
|
458
468
|
}
|
|
459
469
|
async onDeleteSuccess(onDelete) {
|
|
470
|
+
var _a, _b;
|
|
471
|
+
/*
|
|
472
|
+
* remove-user-from-project deletes every membership of one user in one
|
|
473
|
+
* deleteBy, so the same (user, project) can appear several times here;
|
|
474
|
+
* the on-call cleanup is idempotent but not free, so run it once.
|
|
475
|
+
*/
|
|
476
|
+
const onCallCleanupDone = new Set();
|
|
477
|
+
/*
|
|
478
|
+
* Whether ANY of the deleted rows for a (user, project) was an ACCEPTED
|
|
479
|
+
* membership. Revoking a pending invitation also brings the accepted
|
|
480
|
+
* count to zero, but someone who never accepted never had feed access —
|
|
481
|
+
* rotating every opted-in shared feed for that would clear each
|
|
482
|
+
* teammate's subscribed calendar for nothing (see
|
|
483
|
+
* cleanupOnCallAssignmentsIfUserLeftProject).
|
|
484
|
+
*/
|
|
485
|
+
const acceptedMembershipKeys = new Set();
|
|
486
|
+
for (const item of onDelete.carryForward) {
|
|
487
|
+
if (item.hasAcceptedInvitation && item.userId && item.projectId) {
|
|
488
|
+
acceptedMembershipKeys.add(`${item.userId.toString()}:${item.projectId.toString()}`);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
460
491
|
for (const item of onDelete.carryForward) {
|
|
461
492
|
await this.refreshTokens(item.userId, item.projectId);
|
|
462
493
|
await this.updateSubscriptionSeatsByUniqueTeamMembersInProject(item.projectId);
|
|
494
|
+
/*
|
|
495
|
+
* Before the notification settings go: the "removed from on-call
|
|
496
|
+
* policy" notices the cleanup triggers should still reach the person,
|
|
497
|
+
* exactly as they would for a manual removal.
|
|
498
|
+
*/
|
|
499
|
+
const cleanupKey = `${(_a = item.userId) === null || _a === void 0 ? void 0 : _a.toString()}:${(_b = item.projectId) === null || _b === void 0 ? void 0 : _b.toString()}`;
|
|
500
|
+
if (!onCallCleanupDone.has(cleanupKey) && item.userId && item.projectId) {
|
|
501
|
+
onCallCleanupDone.add(cleanupKey);
|
|
502
|
+
await this.cleanupOnCallAssignmentsIfUserLeftProject({
|
|
503
|
+
projectId: item.projectId,
|
|
504
|
+
userId: item.userId,
|
|
505
|
+
hadAcceptedMembership: acceptedMembershipKeys.has(cleanupKey),
|
|
506
|
+
});
|
|
507
|
+
}
|
|
463
508
|
await UserNotificationSettingService.removeDefaultNotificationSettingsForUser(item.userId, item.projectId);
|
|
464
509
|
}
|
|
465
510
|
return onDelete;
|
|
466
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
* Run the on-call cleanup when — and only when — the user no longer holds
|
|
514
|
+
* an accepted membership in ANY team of the project: the same rule
|
|
515
|
+
* removeDefaultNotificationSettingsForUser applies. A user who merely left
|
|
516
|
+
* one of several teams keeps every on-call assignment. Best-effort: never
|
|
517
|
+
* throws into the delete path.
|
|
518
|
+
*
|
|
519
|
+
* hadAcceptedMembership (default true): whether the membership rows that
|
|
520
|
+
* were just deleted included an ACCEPTED one. Revoking a never-accepted
|
|
521
|
+
* invitation passes false — the row cleanup still runs, but the opted-in
|
|
522
|
+
* shared feeds are NOT rotated: the invitee never had the links or any
|
|
523
|
+
* access, and rotation would silently clear every teammate's subscribed
|
|
524
|
+
* calendar.
|
|
525
|
+
*/
|
|
526
|
+
async cleanupOnCallAssignmentsIfUserLeftProject(data) {
|
|
527
|
+
try {
|
|
528
|
+
const remaining = await this.countBy({
|
|
529
|
+
query: {
|
|
530
|
+
projectId: data.projectId,
|
|
531
|
+
userId: data.userId,
|
|
532
|
+
hasAcceptedInvitation: true,
|
|
533
|
+
},
|
|
534
|
+
props: {
|
|
535
|
+
isRoot: true,
|
|
536
|
+
},
|
|
537
|
+
});
|
|
538
|
+
if (remaining.toNumber() > 0) {
|
|
539
|
+
return null;
|
|
540
|
+
}
|
|
541
|
+
return await this.cleanupOnCallAssignmentsForUserLeavingProject({
|
|
542
|
+
projectId: data.projectId,
|
|
543
|
+
userId: data.userId,
|
|
544
|
+
rotateSharedFeeds: data.hadAcceptedMembership !== false,
|
|
545
|
+
});
|
|
546
|
+
}
|
|
547
|
+
catch (err) {
|
|
548
|
+
logger.error(err, {
|
|
549
|
+
projectId: data.projectId.toString(),
|
|
550
|
+
userId: data.userId.toString(),
|
|
551
|
+
});
|
|
552
|
+
return null;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* A user who has left the project must stop being paged and must stop
|
|
557
|
+
* seeing the project's shifts. Nothing used to do this: their layer-user
|
|
558
|
+
* and escalation-rule-user rows survived, so schedules kept rotating onto
|
|
559
|
+
* an ex-member and policies kept escalating to them. In order:
|
|
560
|
+
*
|
|
561
|
+
* 1. delete the user's OnCallDutyPolicyScheduleLayerUser rows in the
|
|
562
|
+
* project (root; the layers' 1-based order is re-sequenced),
|
|
563
|
+
* 2. delete the user's OnCallDutyPolicyEscalationRuleUser rows through
|
|
564
|
+
* the service, so its hooks close the time logs, write the policy feed
|
|
565
|
+
* items and notify as a manual removal would,
|
|
566
|
+
* 3. delete the project's not-yet-ended OnCallDutyPolicyUserOverride rows
|
|
567
|
+
* that name the user on EITHER side (as the overridden user or as the
|
|
568
|
+
* substitute), through the service — an override "route my alerts to
|
|
569
|
+
* Bob" would keep paging a departed Bob, and "route Alice's alerts to
|
|
570
|
+
* me" would keep the departed user's covering shifts in the feeds and
|
|
571
|
+
* in /my-shifts; the service's hooks write the policy feed items,
|
|
572
|
+
* refresh the overridden colleagues' rosters and propagate,
|
|
573
|
+
* 4. re-resolve the roster of every affected schedule (this pages the
|
|
574
|
+
* person who is now on call — intended: who gets paged changed),
|
|
575
|
+
* 5. bump those schedules' shiftConfigVersion, purge the feed caches and
|
|
576
|
+
* notify the shift-change listeners (reminders re-plan),
|
|
577
|
+
* 6. disable — not delete — the user's personal calendar feed for the
|
|
578
|
+
* project, so their subscribed calendar clears itself,
|
|
579
|
+
* 7. delete the user's shift reminders in the project,
|
|
580
|
+
* 8. rotate every enabled schedule / project feed that opted into
|
|
581
|
+
* rotateWhenMemberLeaves, and purge the project's feed bodies —
|
|
582
|
+
* skipped when rotateSharedFeeds is false (a revoked never-accepted
|
|
583
|
+
* invitation: the invitee never had the links).
|
|
584
|
+
*
|
|
585
|
+
* Each step is isolated: a failure is logged and the next step still runs.
|
|
586
|
+
* Unconditional — callers decide whether the user really left (see
|
|
587
|
+
* cleanupOnCallAssignmentsIfUserLeftProject).
|
|
588
|
+
*/
|
|
589
|
+
async cleanupOnCallAssignmentsForUserLeavingProject(data) {
|
|
590
|
+
var _a, _b;
|
|
591
|
+
const { projectId, userId } = data;
|
|
592
|
+
const logAttributes = {
|
|
593
|
+
projectId: projectId.toString(),
|
|
594
|
+
userId: userId.toString(),
|
|
595
|
+
};
|
|
596
|
+
const result = {
|
|
597
|
+
removedLayerUserCount: 0,
|
|
598
|
+
removedEscalationRuleUserCount: 0,
|
|
599
|
+
removedUserOverrideCount: 0,
|
|
600
|
+
refreshedScheduleIds: [],
|
|
601
|
+
personalFeedDisabled: false,
|
|
602
|
+
removedReminderCount: 0,
|
|
603
|
+
rotatedScheduleFeedIds: [],
|
|
604
|
+
rotatedProjectFeedIds: [],
|
|
605
|
+
};
|
|
606
|
+
const affectedScheduleIds = [];
|
|
607
|
+
const affectedLayerIds = [];
|
|
608
|
+
// 1. Layer-user rows.
|
|
609
|
+
try {
|
|
610
|
+
const layerUsers = await OnCallDutyPolicyScheduleLayerUserService.findBy({
|
|
611
|
+
query: {
|
|
612
|
+
projectId,
|
|
613
|
+
userId,
|
|
614
|
+
},
|
|
615
|
+
select: {
|
|
616
|
+
_id: true,
|
|
617
|
+
onCallDutyPolicyScheduleId: true,
|
|
618
|
+
onCallDutyPolicyScheduleLayerId: true,
|
|
619
|
+
},
|
|
620
|
+
limit: LIMIT_PER_PROJECT,
|
|
621
|
+
skip: 0,
|
|
622
|
+
props: {
|
|
623
|
+
isRoot: true,
|
|
624
|
+
},
|
|
625
|
+
});
|
|
626
|
+
const seenSchedules = new Set();
|
|
627
|
+
const seenLayers = new Set();
|
|
628
|
+
for (const row of layerUsers) {
|
|
629
|
+
const scheduleId = (_a = row.onCallDutyPolicyScheduleId) === null || _a === void 0 ? void 0 : _a.toString();
|
|
630
|
+
if (scheduleId && !seenSchedules.has(scheduleId)) {
|
|
631
|
+
seenSchedules.add(scheduleId);
|
|
632
|
+
affectedScheduleIds.push(row.onCallDutyPolicyScheduleId);
|
|
633
|
+
}
|
|
634
|
+
const layerId = (_b = row.onCallDutyPolicyScheduleLayerId) === null || _b === void 0 ? void 0 : _b.toString();
|
|
635
|
+
if (layerId && !seenLayers.has(layerId)) {
|
|
636
|
+
seenLayers.add(layerId);
|
|
637
|
+
affectedLayerIds.push(row.onCallDutyPolicyScheduleLayerId);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
if (layerUsers.length > 0) {
|
|
641
|
+
result.removedLayerUserCount =
|
|
642
|
+
await OnCallDutyPolicyScheduleLayerUserService.deleteBy({
|
|
643
|
+
query: {
|
|
644
|
+
projectId,
|
|
645
|
+
userId,
|
|
646
|
+
},
|
|
647
|
+
limit: LIMIT_PER_PROJECT,
|
|
648
|
+
skip: 0,
|
|
649
|
+
props: {
|
|
650
|
+
isRoot: true,
|
|
651
|
+
},
|
|
652
|
+
});
|
|
653
|
+
for (const layerId of affectedLayerIds) {
|
|
654
|
+
try {
|
|
655
|
+
await OnCallDutyPolicyScheduleLayerUserService.resequenceOrderInLayer(layerId);
|
|
656
|
+
}
|
|
657
|
+
catch (err) {
|
|
658
|
+
logger.error(err, logAttributes);
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
catch (err) {
|
|
664
|
+
logger.error("Error removing on-call schedule layer users for a user who left the project (best-effort).", logAttributes);
|
|
665
|
+
logger.error(err, logAttributes);
|
|
666
|
+
}
|
|
667
|
+
// 2. Escalation-rule user rows (through the service so its hooks run).
|
|
668
|
+
try {
|
|
669
|
+
const ruleUserCount = await OnCallDutyPolicyEscalationRuleUserService.countBy({
|
|
670
|
+
query: {
|
|
671
|
+
projectId,
|
|
672
|
+
userId,
|
|
673
|
+
},
|
|
674
|
+
props: {
|
|
675
|
+
isRoot: true,
|
|
676
|
+
},
|
|
677
|
+
});
|
|
678
|
+
if (ruleUserCount.toNumber() > 0) {
|
|
679
|
+
result.removedEscalationRuleUserCount =
|
|
680
|
+
await OnCallDutyPolicyEscalationRuleUserService.deleteBy({
|
|
681
|
+
query: {
|
|
682
|
+
projectId,
|
|
683
|
+
userId,
|
|
684
|
+
},
|
|
685
|
+
limit: LIMIT_PER_PROJECT,
|
|
686
|
+
skip: 0,
|
|
687
|
+
props: {
|
|
688
|
+
isRoot: true,
|
|
689
|
+
},
|
|
690
|
+
});
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
catch (err) {
|
|
694
|
+
logger.error("Error removing escalation-rule users for a user who left the project (best-effort).", logAttributes);
|
|
695
|
+
logger.error(err, logAttributes);
|
|
696
|
+
}
|
|
697
|
+
/*
|
|
698
|
+
* 3. Not-yet-ended user overrides that name the user on either side.
|
|
699
|
+
* Deleted THROUGH the service so its hooks write the policy feed
|
|
700
|
+
* items, refresh the overridden colleagues' rosters and propagate
|
|
701
|
+
* (version bump, cache purge, reminder re-plan). Ended overrides are
|
|
702
|
+
* history and stay. overrideUserId and routeAlertsToUserId can never
|
|
703
|
+
* be the same user (enforced on create), so the two deletes are
|
|
704
|
+
* disjoint.
|
|
705
|
+
*/
|
|
706
|
+
try {
|
|
707
|
+
const now = OneUptimeDate.getCurrentDate();
|
|
708
|
+
result.removedUserOverrideCount +=
|
|
709
|
+
await OnCallDutyPolicyUserOverrideService.deleteBy({
|
|
710
|
+
query: {
|
|
711
|
+
projectId,
|
|
712
|
+
overrideUserId: userId,
|
|
713
|
+
endsAt: QueryHelper.greaterThan(now),
|
|
714
|
+
},
|
|
715
|
+
limit: LIMIT_PER_PROJECT,
|
|
716
|
+
skip: 0,
|
|
717
|
+
props: {
|
|
718
|
+
isRoot: true,
|
|
719
|
+
},
|
|
720
|
+
});
|
|
721
|
+
result.removedUserOverrideCount +=
|
|
722
|
+
await OnCallDutyPolicyUserOverrideService.deleteBy({
|
|
723
|
+
query: {
|
|
724
|
+
projectId,
|
|
725
|
+
routeAlertsToUserId: userId,
|
|
726
|
+
endsAt: QueryHelper.greaterThan(now),
|
|
727
|
+
},
|
|
728
|
+
limit: LIMIT_PER_PROJECT,
|
|
729
|
+
skip: 0,
|
|
730
|
+
props: {
|
|
731
|
+
isRoot: true,
|
|
732
|
+
},
|
|
733
|
+
});
|
|
734
|
+
}
|
|
735
|
+
catch (err) {
|
|
736
|
+
logger.error("Error removing user overrides for a user who left the project (best-effort).", logAttributes);
|
|
737
|
+
logger.error(err, logAttributes);
|
|
738
|
+
}
|
|
739
|
+
// 4. Rosters of the affected schedules.
|
|
740
|
+
for (const scheduleId of affectedScheduleIds) {
|
|
741
|
+
try {
|
|
742
|
+
await OnCallDutyPolicyScheduleService.refreshCurrentUserIdAndHandoffTimeInSchedule(scheduleId);
|
|
743
|
+
result.refreshedScheduleIds.push(scheduleId.toString());
|
|
744
|
+
}
|
|
745
|
+
catch (err) {
|
|
746
|
+
logger.error(`Error refreshing the roster of schedule ${scheduleId.toString()} after a member left the project (best-effort).`, logAttributes);
|
|
747
|
+
logger.error(err, logAttributes);
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
// 5. Version bump, cache purge, listeners (never throws).
|
|
751
|
+
await OnCallDutyPolicyScheduleService.propagateShiftConfigChange({
|
|
752
|
+
scheduleIds: affectedScheduleIds,
|
|
753
|
+
projectId,
|
|
754
|
+
userIds: [userId],
|
|
755
|
+
reason: OnCallShiftChangeReason.MemberLeftProject,
|
|
756
|
+
});
|
|
757
|
+
// 6. Personal calendar feed: disabled, not deleted.
|
|
758
|
+
try {
|
|
759
|
+
const feeds = await UserOnCallCalendarFeedService.countBy({
|
|
760
|
+
query: {
|
|
761
|
+
projectId,
|
|
762
|
+
userId,
|
|
763
|
+
},
|
|
764
|
+
props: {
|
|
765
|
+
isRoot: true,
|
|
766
|
+
},
|
|
767
|
+
});
|
|
768
|
+
if (feeds.toNumber() > 0) {
|
|
769
|
+
await UserOnCallCalendarFeedService.updateOneBy({
|
|
770
|
+
query: {
|
|
771
|
+
projectId,
|
|
772
|
+
userId,
|
|
773
|
+
},
|
|
774
|
+
data: {
|
|
775
|
+
isEnabled: false,
|
|
776
|
+
},
|
|
777
|
+
props: {
|
|
778
|
+
isRoot: true,
|
|
779
|
+
},
|
|
780
|
+
});
|
|
781
|
+
result.personalFeedDisabled = true;
|
|
782
|
+
}
|
|
783
|
+
await OnCallCalendarFeedCache.purgeForUser(projectId.toString(), userId.toString());
|
|
784
|
+
}
|
|
785
|
+
catch (err) {
|
|
786
|
+
logger.error("Error disabling the personal calendar feed of a user who left the project (best-effort).", logAttributes);
|
|
787
|
+
logger.error(err, logAttributes);
|
|
788
|
+
}
|
|
789
|
+
// 7. Shift reminders.
|
|
790
|
+
try {
|
|
791
|
+
result.removedReminderCount =
|
|
792
|
+
await UserOnCallShiftReminderService.deleteBy({
|
|
793
|
+
query: {
|
|
794
|
+
projectId,
|
|
795
|
+
userId,
|
|
796
|
+
},
|
|
797
|
+
limit: LIMIT_PER_PROJECT,
|
|
798
|
+
skip: 0,
|
|
799
|
+
props: {
|
|
800
|
+
isRoot: true,
|
|
801
|
+
},
|
|
802
|
+
});
|
|
803
|
+
}
|
|
804
|
+
catch (err) {
|
|
805
|
+
logger.error("Error removing shift reminders of a user who left the project (best-effort).", logAttributes);
|
|
806
|
+
logger.error(err, logAttributes);
|
|
807
|
+
}
|
|
808
|
+
/*
|
|
809
|
+
* 8. Shared feeds that opted into rotation on member leave. Skipped when
|
|
810
|
+
* the caller says no ACCEPTED membership went away (a revoked pending
|
|
811
|
+
* invitation): the invitee never had the links, and rotating would
|
|
812
|
+
* clear every subscribed teammate's calendar for nothing.
|
|
813
|
+
*/
|
|
814
|
+
if (data.rotateSharedFeeds !== false) {
|
|
815
|
+
try {
|
|
816
|
+
const rotatedScheduleFeedIds = await OnCallDutyPolicyScheduleCalendarFeedService.rotateFeedsForMemberLeave({ projectId });
|
|
817
|
+
result.rotatedScheduleFeedIds = rotatedScheduleFeedIds.map((id) => {
|
|
818
|
+
return id.toString();
|
|
819
|
+
});
|
|
820
|
+
}
|
|
821
|
+
catch (err) {
|
|
822
|
+
logger.error("Error rotating schedule calendar feeds after a member left the project (best-effort).", logAttributes);
|
|
823
|
+
logger.error(err, logAttributes);
|
|
824
|
+
}
|
|
825
|
+
try {
|
|
826
|
+
const rotatedProjectFeedIds = await ProjectOnCallCalendarFeedService.rotateFeedsForMemberLeave({
|
|
827
|
+
projectId,
|
|
828
|
+
});
|
|
829
|
+
result.rotatedProjectFeedIds = rotatedProjectFeedIds.map((id) => {
|
|
830
|
+
return id.toString();
|
|
831
|
+
});
|
|
832
|
+
}
|
|
833
|
+
catch (err) {
|
|
834
|
+
logger.error("Error rotating the project calendar feed after a member left the project (best-effort).", logAttributes);
|
|
835
|
+
logger.error(err, logAttributes);
|
|
836
|
+
}
|
|
837
|
+
if (result.rotatedScheduleFeedIds.length > 0 ||
|
|
838
|
+
result.rotatedProjectFeedIds.length > 0) {
|
|
839
|
+
try {
|
|
840
|
+
await OnCallCalendarFeedCache.purgeForProject(projectId.toString());
|
|
841
|
+
}
|
|
842
|
+
catch (err) {
|
|
843
|
+
logger.error(err, logAttributes);
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
logger.debug(`On-call cleanup for a user leaving the project: ${JSON.stringify(result)}`, logAttributes);
|
|
848
|
+
return result;
|
|
849
|
+
}
|
|
467
850
|
async getUniqueTeamMemberCountInProject(projectId) {
|
|
468
851
|
const members = await this.findBy({
|
|
469
852
|
query: {
|
|
@@ -671,6 +1054,18 @@ __decorate([
|
|
|
671
1054
|
__metadata("design:paramtypes", [Object]),
|
|
672
1055
|
__metadata("design:returntype", Promise)
|
|
673
1056
|
], TeamMemberService.prototype, "onDeleteSuccess", null);
|
|
1057
|
+
__decorate([
|
|
1058
|
+
CaptureSpan(),
|
|
1059
|
+
__metadata("design:type", Function),
|
|
1060
|
+
__metadata("design:paramtypes", [Object]),
|
|
1061
|
+
__metadata("design:returntype", Promise)
|
|
1062
|
+
], TeamMemberService.prototype, "cleanupOnCallAssignmentsIfUserLeftProject", null);
|
|
1063
|
+
__decorate([
|
|
1064
|
+
CaptureSpan(),
|
|
1065
|
+
__metadata("design:type", Function),
|
|
1066
|
+
__metadata("design:paramtypes", [Object]),
|
|
1067
|
+
__metadata("design:returntype", Promise)
|
|
1068
|
+
], TeamMemberService.prototype, "cleanupOnCallAssignmentsForUserLeavingProject", null);
|
|
674
1069
|
__decorate([
|
|
675
1070
|
CaptureSpan(),
|
|
676
1071
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeamMemberService.js","sourceRoot":"","sources":["../../../../Server/Services/TeamMemberService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TeamMemberService.js","sourceRoot":"","sources":["../../../../Server/Services/TeamMemberService.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import QueryHelper from "../Types/Database/QueryHelper";
|
|
10
11
|
import DatabaseService from "./DatabaseService";
|
|
11
12
|
import LIMIT_MAX from "../../Types/Database/LimitMax";
|
|
12
13
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
@@ -16,6 +17,7 @@ import ObjectID from "../../Types/ObjectID";
|
|
|
16
17
|
import PositiveNumber from "../../Types/PositiveNumber";
|
|
17
18
|
import TeamMemberService from "./TeamMemberService";
|
|
18
19
|
import ProjectSCIMService from "./ProjectSCIMService";
|
|
20
|
+
import ModelPermission from "../Types/Database/Permissions/Index";
|
|
19
21
|
export class Service extends DatabaseService {
|
|
20
22
|
constructor() {
|
|
21
23
|
super(Model);
|
|
@@ -117,6 +119,7 @@ export class Service extends DatabaseService {
|
|
|
117
119
|
limit: LIMIT_MAX,
|
|
118
120
|
skip: 0,
|
|
119
121
|
select: {
|
|
122
|
+
_id: true,
|
|
120
123
|
name: true,
|
|
121
124
|
isTeamDeleteable: true,
|
|
122
125
|
projectId: true,
|
|
@@ -141,6 +144,46 @@ export class Service extends DatabaseService {
|
|
|
141
144
|
throw new BadDataException(`${team.name || "This"} team cannot be deleted its a critical team for this project.`);
|
|
142
145
|
}
|
|
143
146
|
}
|
|
147
|
+
/*
|
|
148
|
+
* Delete these teams' memberships THROUGH TeamMemberService before the
|
|
149
|
+
* team rows go. The TeamMember.teamId FK is ON DELETE CASCADE, so leaving
|
|
150
|
+
* the rows to Postgres would remove them hook-free: no token refresh, no
|
|
151
|
+
* seat update, no notification-settings cleanup and no on-call cleanup —
|
|
152
|
+
* a user whose ONLY team was deleted kept their schedule-layer and
|
|
153
|
+
* escalation-rule assignments, their personal calendar feed stayed
|
|
154
|
+
* enabled and the rotateWhenMemberLeaves feeds were never rotated, so
|
|
155
|
+
* the schedule kept rotating onto (and paging) an ex-member. Runs after
|
|
156
|
+
* the guards above so a refused delete removes nobody. Mirrors the SCIM
|
|
157
|
+
* group-delete path, which already deletes members first for the same
|
|
158
|
+
* reason.
|
|
159
|
+
*/
|
|
160
|
+
const teamIds = teams
|
|
161
|
+
.map((team) => {
|
|
162
|
+
return team.id;
|
|
163
|
+
})
|
|
164
|
+
.filter((teamId) => {
|
|
165
|
+
return Boolean(teamId);
|
|
166
|
+
});
|
|
167
|
+
if (teamIds.length > 0) {
|
|
168
|
+
/*
|
|
169
|
+
* DatabaseService checks DELETE permission AFTER this hook runs, and the
|
|
170
|
+
* lookup above only needed READ permission. Since we are about to delete
|
|
171
|
+
* rows on the caller's behalf, check the caller's delete permission on
|
|
172
|
+
* Team FIRST — otherwise someone who may read teams but not delete them
|
|
173
|
+
* would still wipe every membership before being refused. The framework
|
|
174
|
+
* re-runs the same check on the untouched query straight after, so this
|
|
175
|
+
* changes nothing for a caller who is allowed.
|
|
176
|
+
*/
|
|
177
|
+
await ModelPermission.checkDeleteQueryPermission(Model, deleteBy.query, deleteBy.props);
|
|
178
|
+
await TeamMemberService.deleteBy({
|
|
179
|
+
query: {
|
|
180
|
+
teamId: QueryHelper.any(teamIds),
|
|
181
|
+
},
|
|
182
|
+
limit: LIMIT_MAX,
|
|
183
|
+
skip: 0,
|
|
184
|
+
props: { isRoot: true },
|
|
185
|
+
});
|
|
186
|
+
}
|
|
144
187
|
return { deleteBy, carryForward: null };
|
|
145
188
|
}
|
|
146
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeamService.js","sourceRoot":"","sources":["../../../../Server/Services/TeamService.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"TeamService.js","sourceRoot":"","sources":["../../../../Server/Services/TeamService.ts"],"names":[],"mappings":"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"}
|