@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.
Files changed (189) hide show
  1. package/Models/DatabaseModels/Index.ts +11 -0
  2. package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +43 -0
  3. package/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.ts +662 -0
  4. package/Models/DatabaseModels/ProjectOnCallCalendarFeed.ts +584 -0
  5. package/Models/DatabaseModels/UserOnCallCalendarFeed.ts +546 -0
  6. package/Models/DatabaseModels/UserOnCallShiftReminder.ts +231 -0
  7. package/Models/DatabaseModels/UserOnCallShiftReminderLog.ts +331 -0
  8. package/Server/API/OnCallCalendarAPI.ts +2194 -0
  9. package/Server/EnvironmentConfig.ts +138 -0
  10. package/Server/Infrastructure/OnCallCalendarFeedCache.ts +1050 -0
  11. package/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.ts +253 -0
  12. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  13. package/Server/Middleware/OnCallCalendarFeedRateLimit.ts +487 -0
  14. package/Server/Services/Index.ts +12 -0
  15. package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +32 -0
  16. package/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.ts +260 -0
  17. package/Server/Services/OnCallDutyPolicyScheduleLayerService.ts +70 -3
  18. package/Server/Services/OnCallDutyPolicyScheduleLayerUserService.ts +138 -3
  19. package/Server/Services/OnCallDutyPolicyScheduleService.ts +1465 -134
  20. package/Server/Services/OnCallDutyPolicyUserOverrideService.ts +167 -31
  21. package/Server/Services/ProjectOnCallCalendarFeedService.ts +192 -0
  22. package/Server/Services/TeamMemberService.ts +489 -1
  23. package/Server/Services/TeamService.ts +50 -0
  24. package/Server/Services/UserNotificationSettingService.ts +44 -1
  25. package/Server/Services/UserOnCallCalendarFeedService.ts +159 -0
  26. package/Server/Services/UserOnCallShiftReminderLogService.ts +151 -0
  27. package/Server/Services/UserOnCallShiftReminderService.ts +112 -0
  28. package/Server/Utils/OnCall/CalendarFeedToken.ts +241 -0
  29. package/Server/Utils/OnCall/OnCallCalendarFeedRenderer.ts +1488 -0
  30. package/Server/Utils/OnCall/OnCallCalendarFeedUrls.ts +230 -0
  31. package/Server/Utils/OnCall/OnCallShiftChangeListeners.ts +227 -0
  32. package/Server/Utils/OnCall/OnCallShiftMaterializer.ts +1127 -0
  33. package/Server/Utils/OnCall/OnCallShiftReminderListener.ts +174 -0
  34. package/Server/Utils/OnCall/OnCallShiftReminderRunner.ts +2584 -0
  35. package/Server/Utils/Response.ts +134 -0
  36. package/Server/Utils/StartServer.ts +10 -0
  37. package/Server/Utils/Telemetry/AppMetrics.ts +51 -0
  38. package/Tests/App/Dashboard/OnCallCalendarFeedLinks.test.tsx +229 -0
  39. package/Tests/App/Dashboard/OnCallCalendarFeedPlanGate.test.tsx +489 -0
  40. package/Tests/App/Dashboard/OnCallCalendarFeedSideMenus.test.tsx +149 -0
  41. package/Tests/App/Dashboard/OnCallCalendarFeedUtil.test.ts +855 -0
  42. package/Tests/App/Dashboard/OnCallPersonalCalendarFeed.test.tsx +1209 -0
  43. package/Tests/App/Dashboard/OnCallSharedCalendarFeedCard.test.tsx +1019 -0
  44. package/Tests/App/Dashboard/OnCallShiftRemindersAndUpcomingShifts.test.tsx +655 -0
  45. package/Tests/App/Dashboard/UserSettingsSetupChecklistModel.test.ts +73 -0
  46. package/Tests/Models/OnCallCalendarFeedModels.test.ts +642 -0
  47. package/Tests/Models/OnCallDutyPolicyScheduleCalendarFeed.test.ts +288 -0
  48. package/Tests/Models/OnCallDutyPolicyScheduleShiftConfigVersion.test.ts +88 -0
  49. package/Tests/Models/UserOnCallShiftReminderModels.test.ts +368 -0
  50. package/Tests/Server/API/Helpers.ts +8 -0
  51. package/Tests/Server/API/OnCallCalendarAPI.test.ts +4461 -0
  52. package/Tests/Server/EnvironmentConfigOnCallCalendarFeed.test.ts +357 -0
  53. package/Tests/Server/Infrastructure/OnCallCalendarFeedCache.test.ts +1589 -0
  54. package/Tests/Server/Infrastructure/Postgres/AddOnCallCalendarFeedsMigration.test.ts +369 -0
  55. package/Tests/Server/Middleware/OnCallCalendarFeedRateLimit.test.ts +1365 -0
  56. package/Tests/Server/Services/FeedRetentionConsistency.test.ts +70 -0
  57. package/Tests/Server/Services/OnCallCalendarFeedServices.test.ts +1103 -0
  58. package/Tests/Server/Services/OnCallDutyPolicyScheduleResolver.test.ts +1037 -0
  59. package/Tests/Server/Services/OnCallShiftConfigPropagation.test.ts +1270 -0
  60. package/Tests/Server/Services/TeamDeleteMemberCleanup.test.ts +156 -0
  61. package/Tests/Server/Services/TeamMemberOnCallCleanup.test.ts +755 -0
  62. package/Tests/Server/Services/UserNotificationSettingShiftReminderDefaults.test.ts +267 -0
  63. package/Tests/Server/Services/UserOnCallShiftReminderServices.test.ts +583 -0
  64. package/Tests/Server/Types/Database/Permissions/OnCallCalendarFeedPermissions.test.ts +254 -0
  65. package/Tests/Server/Utils/OnCall/CalendarFeedToken.test.ts +467 -0
  66. package/Tests/Server/Utils/OnCall/OnCallCalendarFeedRenderer.test.ts +2142 -0
  67. package/Tests/Server/Utils/OnCall/OnCallCalendarFeedUrls.test.ts +278 -0
  68. package/Tests/Server/Utils/OnCall/OnCallResolverTestHarness.ts +440 -0
  69. package/Tests/Server/Utils/OnCall/OnCallShiftChangeListeners.test.ts +314 -0
  70. package/Tests/Server/Utils/OnCall/OnCallShiftMaterializer.test.ts +1502 -0
  71. package/Tests/Server/Utils/OnCall/OnCallShiftReminderListener.test.ts +491 -0
  72. package/Tests/Server/Utils/OnCall/OnCallShiftReminderRunner.test.ts +3088 -0
  73. package/Tests/Server/Utils/OnCall/OnCallShiftReminderTestHarness.ts +910 -0
  74. package/Tests/Server/Utils/ResponseSendCalendarResponse.test.ts +561 -0
  75. package/Tests/Server/Utils/StartServerEncryptionSecretWarning.test.ts +64 -0
  76. package/Tests/Server/Utils/Telemetry/AppMetrics.test.ts +29 -0
  77. package/Tests/Types/Calendar/ICalendar.test.ts +488 -0
  78. package/Tests/Types/NotificationSetting/NotificationSettingEventType.test.ts +53 -0
  79. package/Tests/Types/OnCallDutyPolicy/CalendarFeedTestFixtures.ts +310 -0
  80. package/Tests/Types/OnCallDutyPolicy/CalendarFeedWindow.test.ts +205 -0
  81. package/Tests/Types/OnCallDutyPolicy/LayerUtilLayerMetaAndIterationCap.test.ts +458 -0
  82. package/Tests/Types/OnCallDutyPolicy/MaterializedShift.test.ts +197 -0
  83. package/Tests/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.test.ts +1986 -0
  84. package/Tests/Types/OnCallDutyPolicy/ScheduleShiftUtilGroupKey.test.ts +678 -0
  85. package/Tests/Types/OnCallDutyPolicy/ShiftSeamUtil.test.ts +417 -0
  86. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +10 -0
  87. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +2 -0
  88. package/Types/Calendar/ICalendar.ts +442 -0
  89. package/Types/Email/EmailTemplateType.ts +2 -0
  90. package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
  91. package/Types/OnCallDutyPolicy/CalendarFeedWindow.ts +140 -0
  92. package/Types/OnCallDutyPolicy/Layer.ts +190 -35
  93. package/Types/OnCallDutyPolicy/MaterializedShift.ts +274 -0
  94. package/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.ts +1415 -0
  95. package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +159 -4
  96. package/Types/OnCallDutyPolicy/ShiftSeamUtil.ts +106 -0
  97. package/build/dist/Models/DatabaseModels/Index.js +11 -0
  98. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  99. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +44 -0
  100. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
  101. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js +699 -0
  102. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js.map +1 -0
  103. package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js +620 -0
  104. package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js.map +1 -0
  105. package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js +585 -0
  106. package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js.map +1 -0
  107. package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js +247 -0
  108. package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js.map +1 -0
  109. package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js +355 -0
  110. package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js.map +1 -0
  111. package/build/dist/Server/API/OnCallCalendarAPI.js +1371 -0
  112. package/build/dist/Server/API/OnCallCalendarAPI.js.map +1 -0
  113. package/build/dist/Server/EnvironmentConfig.js +102 -0
  114. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  115. package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js +663 -0
  116. package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js.map +1 -0
  117. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js +103 -0
  118. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js.map +1 -0
  119. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  120. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  121. package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js +342 -0
  122. package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js.map +1 -0
  123. package/build/dist/Server/Services/Index.js +12 -0
  124. package/build/dist/Server/Services/Index.js.map +1 -1
  125. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +20 -0
  126. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
  127. package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js +219 -0
  128. package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js.map +1 -0
  129. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js +47 -3
  130. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js.map +1 -1
  131. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js +112 -3
  132. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js.map +1 -1
  133. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +955 -9
  134. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
  135. package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js +93 -6
  136. package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js.map +1 -1
  137. package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js +157 -0
  138. package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js.map +1 -0
  139. package/build/dist/Server/Services/TeamMemberService.js +396 -1
  140. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  141. package/build/dist/Server/Services/TeamService.js +43 -0
  142. package/build/dist/Server/Services/TeamService.js.map +1 -1
  143. package/build/dist/Server/Services/UserNotificationSettingService.js +26 -1
  144. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  145. package/build/dist/Server/Services/UserOnCallCalendarFeedService.js +140 -0
  146. package/build/dist/Server/Services/UserOnCallCalendarFeedService.js.map +1 -0
  147. package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js +116 -0
  148. package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js.map +1 -0
  149. package/build/dist/Server/Services/UserOnCallShiftReminderService.js +92 -0
  150. package/build/dist/Server/Services/UserOnCallShiftReminderService.js.map +1 -0
  151. package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js +161 -0
  152. package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js.map +1 -0
  153. package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js +983 -0
  154. package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js.map +1 -0
  155. package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js +155 -0
  156. package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js.map +1 -0
  157. package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js +145 -0
  158. package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js.map +1 -0
  159. package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js +752 -0
  160. package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js.map +1 -0
  161. package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js +92 -0
  162. package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js.map +1 -0
  163. package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js +1786 -0
  164. package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js.map +1 -0
  165. package/build/dist/Server/Utils/Response.js +97 -0
  166. package/build/dist/Server/Utils/Response.js.map +1 -1
  167. package/build/dist/Server/Utils/StartServer.js +9 -1
  168. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  169. package/build/dist/Server/Utils/Telemetry/AppMetrics.js +41 -0
  170. package/build/dist/Server/Utils/Telemetry/AppMetrics.js.map +1 -1
  171. package/build/dist/Types/Calendar/ICalendar.js +290 -0
  172. package/build/dist/Types/Calendar/ICalendar.js.map +1 -0
  173. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  174. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  175. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
  176. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  177. package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js +97 -0
  178. package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js.map +1 -0
  179. package/build/dist/Types/OnCallDutyPolicy/Layer.js +113 -19
  180. package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
  181. package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js +134 -0
  182. package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js.map +1 -0
  183. package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js +800 -0
  184. package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js.map +1 -0
  185. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +97 -3
  186. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
  187. package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js +77 -0
  188. package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js.map +1 -0
  189. 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":"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"}
1
+ {"version":3,"file":"TeamService.js","sourceRoot":"","sources":["../../../../Server/Services/TeamService.ts"],"names":[],"mappings":"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"}