@oneuptime/common 11.3.26 → 11.4.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.
Files changed (298) hide show
  1. package/Models/DatabaseModels/AIRun.ts +50 -0
  2. package/Models/DatabaseModels/IncidentEpisodeRoleMember.ts +1 -1
  3. package/Models/DatabaseModels/IncidentMember.ts +1 -1
  4. package/Models/DatabaseModels/IncomingCallPolicy.ts +13 -0
  5. package/Models/DatabaseModels/Index.ts +3 -0
  6. package/Models/DatabaseModels/MigrationFailure.ts +170 -0
  7. package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +51 -2
  8. package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +44 -0
  9. package/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.ts +6 -0
  10. package/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.ts +6 -0
  11. package/Models/DatabaseModels/OnCallDutyPolicyTimeLog.ts +1 -1
  12. package/Models/DatabaseModels/OnCallDutyPolicyUserOverride.ts +2 -2
  13. package/Models/DatabaseModels/Project.ts +60 -0
  14. package/Server/API/AIInvestigationAPI.ts +148 -0
  15. package/Server/API/AlertAPI.ts +1 -1
  16. package/Server/API/IncidentAPI.ts +2 -2
  17. package/Server/API/IncidentEpisodeAPI.ts +1 -1
  18. package/Server/API/LlmProviderAPI.ts +1 -0
  19. package/Server/API/ScheduledMaintenanceAPI.ts +1 -1
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1783470000000-AddIncomingCallPolicyRoutingPhoneNumberUnique.ts +25 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1783510935686-FixNotNullForeignKeysOnDelete.ts +81 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1783515836148-MigrationName.ts +25 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1783523076215-AddMigrationFailureTable.ts +35 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1783598145111-AddEnableAutomaticIncidentInvestigationToProject.ts +19 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1783615884106-AddInvestigationSubjectToAIRun.ts +33 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1783632447975-AddEnableAutomaticAlertInvestigationToProject.ts +19 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +14 -0
  28. package/Server/Infrastructure/PostgresDatabase.ts +11 -0
  29. package/Server/Services/AIService.ts +74 -2
  30. package/Server/Services/AlertService.ts +25 -0
  31. package/Server/Services/AnalyticsDatabaseService.ts +10 -1
  32. package/Server/Services/DatabaseService.ts +10 -1
  33. package/Server/Services/IncidentService.ts +26 -1
  34. package/Server/Services/IncidentStateTimelineService.ts +19 -0
  35. package/Server/Services/IncomingCallPolicyEscalationRuleService.ts +75 -2
  36. package/Server/Services/IncomingCallPolicyService.ts +42 -1
  37. package/Server/Services/Index.ts +2 -0
  38. package/Server/Services/MigrationFailureService.ts +9 -0
  39. package/Server/Services/MonitorProbeService.ts +33 -7
  40. package/Server/Services/MonitorService.ts +19 -7
  41. package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +65 -0
  42. package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +185 -41
  43. package/Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts +23 -15
  44. package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +39 -0
  45. package/Server/Services/OnCallDutyPolicyScheduleLayerService.ts +148 -0
  46. package/Server/Services/OnCallDutyPolicyScheduleLayerUserService.ts +11 -2
  47. package/Server/Services/OnCallDutyPolicyScheduleService.ts +502 -26
  48. package/Server/Services/OnCallDutyPolicyTimeLogService.ts +49 -7
  49. package/Server/Services/OnCallDutyPolicyUserOverrideService.ts +218 -4
  50. package/Server/Services/ProjectCallSMSConfigService.ts +82 -1
  51. package/Server/Services/TeamMemberService.ts +6 -0
  52. package/Server/Services/UserNotificationRuleService.ts +13 -42
  53. package/Server/Services/UserOnCallLogService.ts +90 -0
  54. package/Server/Services/UserOnCallLogTimelineService.ts +43 -1
  55. package/Server/Types/Database/QueryUtil.ts +57 -0
  56. package/Server/Utils/AI/AlertAIContextBuilder.ts +6 -1
  57. package/Server/Utils/AI/Chat/ChatAgentRunner.ts +14 -2
  58. package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +119 -11
  59. package/Server/Utils/AI/IncidentAIContextBuilder.ts +18 -3
  60. package/Server/Utils/AI/IncidentEpisodeAIContextBuilder.ts +6 -1
  61. package/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.ts +12 -2
  62. package/Server/Utils/AI/Sentinel/AlertInvestigationRunner.ts +141 -0
  63. package/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.ts +178 -0
  64. package/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.ts +105 -0
  65. package/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.ts +405 -0
  66. package/Server/Utils/AI/Sentinel/SentinelMemory.ts +167 -0
  67. package/Server/Utils/AI/Toolbox/IncidentTools.ts +183 -1
  68. package/Server/Utils/AI/Toolbox/Index.ts +15 -1
  69. package/Server/Utils/AI/Toolbox/RecentChangesTools.ts +208 -0
  70. package/Server/Utils/AI/Toolbox/SentinelActionTools.ts +577 -0
  71. package/Server/Utils/AI/Toolbox/Serializer.ts +42 -0
  72. package/Server/Utils/Database/MigrationFailureLog.ts +240 -0
  73. package/Server/Utils/IncomingCallPhoneNumber.ts +41 -0
  74. package/Server/Utils/LLM/LLMService.ts +110 -11
  75. package/Server/Utils/Telemetry/IoTSnapshotScan.ts +12 -9
  76. package/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.ts +12 -9
  77. package/Tests/Server/API/BaseAPI.test.ts +1 -0
  78. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +0 -8
  79. package/Tests/Server/Services/OnCallDutyPolicyScheduleLayerUserReorder.test.ts +233 -0
  80. package/Tests/Server/Services/OnCallDutyPolicyTimeLogServiceScoping.test.ts +242 -0
  81. package/Tests/Server/Services/OnCallDutyPolicyUserOverrideEdit.test.ts +198 -0
  82. package/Tests/Server/Services/UserOnCallLogClaimNotificationRule.test.ts +495 -0
  83. package/Tests/Server/Types/Database/QueryUtil.test.ts +74 -0
  84. package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +78 -0
  85. package/Tests/Server/Utils/AI/ToolResultSerializer.test.ts +68 -0
  86. package/Tests/Types/DateExhaustiveTimezone.test.ts +700 -0
  87. package/Tests/Types/DateTimezoneWallClock.test.ts +99 -0
  88. package/Tests/Types/Events/Recurring.test.ts +22 -9
  89. package/Tests/Types/OnCallDutyPolicy/LayerUtilAuditFixes.test.ts +291 -0
  90. package/Tests/Types/OnCallDutyPolicy/LayerUtilAuditFixesRound2.test.ts +398 -0
  91. package/Tests/Types/OnCallDutyPolicy/LayerUtilDSTWeekendGap.test.ts +114 -0
  92. package/Tests/Types/OnCallDutyPolicy/LayerUtilDSTWeeklyDayShift.test.ts +76 -0
  93. package/Tests/Types/OnCallDutyPolicy/LayerUtilDailyMutation.test.ts +128 -0
  94. package/Tests/Types/OnCallDutyPolicy/LayerUtilDailyProbe.test.ts +203 -0
  95. package/Tests/Types/OnCallDutyPolicy/LayerUtilDiffFuzz.test.ts +322 -0
  96. package/Tests/Types/OnCallDutyPolicy/LayerUtilEdgeCases.test.ts +280 -0
  97. package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveCurrentUser.test.ts +863 -0
  98. package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveDaily.test.ts +900 -0
  99. package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveMultiLayer.test.ts +1104 -0
  100. package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveRotation.test.ts +957 -0
  101. package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveWeekly.test.ts +1095 -0
  102. package/Tests/Types/OnCallDutyPolicy/LayerUtilInvariants.test.ts +232 -0
  103. package/Tests/Types/OnCallDutyPolicy/LayerUtilMergeAudit.test.ts +227 -0
  104. package/Tests/Types/OnCallDutyPolicy/LayerUtilMonthYearAudit.test.ts +255 -0
  105. package/Tests/Types/OnCallDutyPolicy/LayerUtilMultiLayerAudit.test.ts +388 -0
  106. package/Tests/Types/OnCallDutyPolicy/LayerUtilMultiLayerEdge.test.ts +300 -0
  107. package/Tests/Types/OnCallDutyPolicy/LayerUtilOvernightDSTAudit.test.ts +158 -0
  108. package/Tests/Types/OnCallDutyPolicy/LayerUtilRestrictedGapFix.test.ts +253 -0
  109. package/Tests/Types/OnCallDutyPolicy/LayerUtilRestrictedGapRepro.test.ts +157 -0
  110. package/Tests/Types/OnCallDutyPolicy/LayerUtilRotationFixes.test.ts +414 -0
  111. package/Tests/Types/OnCallDutyPolicy/LayerUtilTimezone.test.ts +243 -0
  112. package/Tests/Types/OnCallDutyPolicy/LayerUtilWeekendGapRepro.test.ts +112 -0
  113. package/Tests/Types/OnCallDutyPolicy/OverrideLensAudit.test.ts +117 -0
  114. package/Tests/Types/OnCallDutyPolicy/RestrictionTimes.test.ts +8 -6
  115. package/Tests/Types/OnCallDutyPolicy/RestrictionTimesDefaultDayAudit.test.ts +112 -0
  116. package/Tests/Types/OnCallDutyPolicy/RestrictionTimesExhaustive.test.ts +821 -0
  117. package/Tests/Types/OnCallDutyPolicy/RestrictionTimesMutationInvariant.test.ts +886 -0
  118. package/Tests/Types/OnCallDutyPolicy/ScheduleShiftUtil.test.ts +260 -0
  119. package/Tests/Types/OnCallDutyPolicy/UserOverrideUtil.test.ts +255 -0
  120. package/Tests/Types/OnCallDutyPolicy/UserOverrideUtilExhaustive.test.ts +1126 -0
  121. package/Types/Date.ts +246 -15
  122. package/Types/OnCallDutyPolicy/Layer.ts +790 -260
  123. package/Types/OnCallDutyPolicy/RestrictionTimes.ts +39 -13
  124. package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +257 -0
  125. package/Types/OnCallDutyPolicy/UserOverrideUtil.ts +21 -5
  126. package/UI/Components/Calendar/Calendar.tsx +8 -2
  127. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +5 -5
  128. package/UI/Components/Events/RecurringFieldElement.tsx +16 -0
  129. package/UI/Components/ModelFormModal/ModelFormModal.tsx +8 -0
  130. package/UI/Components/RadioButtons/BasicRadioButtons.tsx +1 -1
  131. package/build/dist/Models/DatabaseModels/AIRun.js +52 -0
  132. package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
  133. package/build/dist/Models/DatabaseModels/IncidentEpisodeRoleMember.js +1 -1
  134. package/build/dist/Models/DatabaseModels/IncidentEpisodeRoleMember.js.map +1 -1
  135. package/build/dist/Models/DatabaseModels/IncidentMember.js +1 -1
  136. package/build/dist/Models/DatabaseModels/IncidentMember.js.map +1 -1
  137. package/build/dist/Models/DatabaseModels/IncomingCallPolicy.js +10 -0
  138. package/build/dist/Models/DatabaseModels/IncomingCallPolicy.js.map +1 -1
  139. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  140. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  141. package/build/dist/Models/DatabaseModels/MigrationFailure.js +196 -0
  142. package/build/dist/Models/DatabaseModels/MigrationFailure.js.map +1 -0
  143. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +52 -2
  144. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
  145. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +45 -0
  146. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
  147. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.js +6 -0
  148. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.js.map +1 -1
  149. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.js +6 -0
  150. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.js.map +1 -1
  151. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js +1 -1
  152. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js.map +1 -1
  153. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyUserOverride.js +2 -2
  154. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyUserOverride.js.map +1 -1
  155. package/build/dist/Models/DatabaseModels/Project.js +62 -0
  156. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  157. package/build/dist/Server/API/AIInvestigationAPI.js +107 -0
  158. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -0
  159. package/build/dist/Server/API/AlertAPI.js +1 -1
  160. package/build/dist/Server/API/IncidentAPI.js +2 -2
  161. package/build/dist/Server/API/IncidentEpisodeAPI.js +1 -1
  162. package/build/dist/Server/API/LlmProviderAPI.js +1 -0
  163. package/build/dist/Server/API/LlmProviderAPI.js.map +1 -1
  164. package/build/dist/Server/API/ScheduledMaintenanceAPI.js +1 -1
  165. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783470000000-AddIncomingCallPolicyRoutingPhoneNumberUnique.js +18 -0
  166. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783470000000-AddIncomingCallPolicyRoutingPhoneNumberUnique.js.map +1 -0
  167. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783510935686-FixNotNullForeignKeysOnDelete.js +38 -0
  168. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783510935686-FixNotNullForeignKeysOnDelete.js.map +1 -0
  169. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783515836148-MigrationName.js +16 -0
  170. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783515836148-MigrationName.js.map +1 -0
  171. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783523076215-AddMigrationFailureTable.js +18 -0
  172. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783523076215-AddMigrationFailureTable.js.map +1 -0
  173. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783598145111-AddEnableAutomaticIncidentInvestigationToProject.js +12 -0
  174. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783598145111-AddEnableAutomaticIncidentInvestigationToProject.js.map +1 -0
  175. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783615884106-AddInvestigationSubjectToAIRun.js +18 -0
  176. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783615884106-AddInvestigationSubjectToAIRun.js.map +1 -0
  177. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783632447975-AddEnableAutomaticAlertInvestigationToProject.js +12 -0
  178. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783632447975-AddEnableAutomaticAlertInvestigationToProject.js.map +1 -0
  179. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +14 -0
  180. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  181. package/build/dist/Server/Infrastructure/PostgresDatabase.js +9 -0
  182. package/build/dist/Server/Infrastructure/PostgresDatabase.js.map +1 -1
  183. package/build/dist/Server/Services/AIService.js +53 -2
  184. package/build/dist/Server/Services/AIService.js.map +1 -1
  185. package/build/dist/Server/Services/AlertService.js +24 -0
  186. package/build/dist/Server/Services/AlertService.js.map +1 -1
  187. package/build/dist/Server/Services/AnalyticsDatabaseService.js +10 -1
  188. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  189. package/build/dist/Server/Services/DatabaseService.js +10 -1
  190. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  191. package/build/dist/Server/Services/IncidentService.js +25 -1
  192. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  193. package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
  194. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  195. package/build/dist/Server/Services/IncomingCallPolicyEscalationRuleService.js +55 -2
  196. package/build/dist/Server/Services/IncomingCallPolicyEscalationRuleService.js.map +1 -1
  197. package/build/dist/Server/Services/IncomingCallPolicyService.js +40 -0
  198. package/build/dist/Server/Services/IncomingCallPolicyService.js.map +1 -1
  199. package/build/dist/Server/Services/Index.js +2 -0
  200. package/build/dist/Server/Services/Index.js.map +1 -1
  201. package/build/dist/Server/Services/MigrationFailureService.js +9 -0
  202. package/build/dist/Server/Services/MigrationFailureService.js.map +1 -0
  203. package/build/dist/Server/Services/MonitorProbeService.js +33 -7
  204. package/build/dist/Server/Services/MonitorProbeService.js.map +1 -1
  205. package/build/dist/Server/Services/MonitorService.js +12 -5
  206. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  207. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +81 -22
  208. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
  209. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +134 -31
  210. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
  211. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js +21 -13
  212. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js.map +1 -1
  213. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +36 -0
  214. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
  215. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js +121 -0
  216. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js.map +1 -1
  217. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js +11 -2
  218. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js.map +1 -1
  219. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +409 -36
  220. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
  221. package/build/dist/Server/Services/OnCallDutyPolicyTimeLogService.js +52 -8
  222. package/build/dist/Server/Services/OnCallDutyPolicyTimeLogService.js.map +1 -1
  223. package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js +170 -3
  224. package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js.map +1 -1
  225. package/build/dist/Server/Services/ProjectCallSMSConfigService.js +72 -0
  226. package/build/dist/Server/Services/ProjectCallSMSConfigService.js.map +1 -1
  227. package/build/dist/Server/Services/TeamMemberService.js +6 -0
  228. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  229. package/build/dist/Server/Services/UserNotificationRuleService.js +12 -30
  230. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  231. package/build/dist/Server/Services/UserOnCallLogService.js +75 -0
  232. package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
  233. package/build/dist/Server/Services/UserOnCallLogTimelineService.js +31 -1
  234. package/build/dist/Server/Services/UserOnCallLogTimelineService.js.map +1 -1
  235. package/build/dist/Server/Types/Database/QueryUtil.js +45 -0
  236. package/build/dist/Server/Types/Database/QueryUtil.js.map +1 -1
  237. package/build/dist/Server/Utils/AI/AlertAIContextBuilder.js +6 -1
  238. package/build/dist/Server/Utils/AI/AlertAIContextBuilder.js.map +1 -1
  239. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +13 -2
  240. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
  241. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +59 -11
  242. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
  243. package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js +18 -3
  244. package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js.map +1 -1
  245. package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js +6 -1
  246. package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js.map +1 -1
  247. package/build/dist/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.js +12 -2
  248. package/build/dist/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.js.map +1 -1
  249. package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js +119 -0
  250. package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js.map +1 -0
  251. package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js +147 -0
  252. package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js.map +1 -0
  253. package/build/dist/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.js +93 -0
  254. package/build/dist/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.js.map +1 -0
  255. package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js +311 -0
  256. package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js.map +1 -0
  257. package/build/dist/Server/Utils/AI/Sentinel/SentinelMemory.js +143 -0
  258. package/build/dist/Server/Utils/AI/Sentinel/SentinelMemory.js.map +1 -0
  259. package/build/dist/Server/Utils/AI/Toolbox/IncidentTools.js +152 -1
  260. package/build/dist/Server/Utils/AI/Toolbox/IncidentTools.js.map +1 -1
  261. package/build/dist/Server/Utils/AI/Toolbox/Index.js +10 -1
  262. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  263. package/build/dist/Server/Utils/AI/Toolbox/RecentChangesTools.js +165 -0
  264. package/build/dist/Server/Utils/AI/Toolbox/RecentChangesTools.js.map +1 -0
  265. package/build/dist/Server/Utils/AI/Toolbox/SentinelActionTools.js +451 -0
  266. package/build/dist/Server/Utils/AI/Toolbox/SentinelActionTools.js.map +1 -0
  267. package/build/dist/Server/Utils/AI/Toolbox/Serializer.js +40 -0
  268. package/build/dist/Server/Utils/AI/Toolbox/Serializer.js.map +1 -1
  269. package/build/dist/Server/Utils/Database/MigrationFailureLog.js +174 -0
  270. package/build/dist/Server/Utils/Database/MigrationFailureLog.js.map +1 -0
  271. package/build/dist/Server/Utils/IncomingCallPhoneNumber.js +30 -0
  272. package/build/dist/Server/Utils/IncomingCallPhoneNumber.js.map +1 -0
  273. package/build/dist/Server/Utils/LLM/LLMService.js +81 -5
  274. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  275. package/build/dist/Server/Utils/Telemetry/IoTSnapshotScan.js +11 -8
  276. package/build/dist/Server/Utils/Telemetry/IoTSnapshotScan.js.map +1 -1
  277. package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js +11 -8
  278. package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js.map +1 -1
  279. package/build/dist/Types/Date.js +185 -15
  280. package/build/dist/Types/Date.js.map +1 -1
  281. package/build/dist/Types/OnCallDutyPolicy/Layer.js +602 -171
  282. package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
  283. package/build/dist/Types/OnCallDutyPolicy/RestrictionTimes.js +27 -13
  284. package/build/dist/Types/OnCallDutyPolicy/RestrictionTimes.js.map +1 -1
  285. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +159 -0
  286. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -0
  287. package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js +20 -5
  288. package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js.map +1 -1
  289. package/build/dist/UI/Components/Calendar/Calendar.js +2 -2
  290. package/build/dist/UI/Components/Calendar/Calendar.js.map +1 -1
  291. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +2 -2
  292. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  293. package/build/dist/UI/Components/Events/RecurringFieldElement.js +13 -0
  294. package/build/dist/UI/Components/Events/RecurringFieldElement.js.map +1 -1
  295. package/build/dist/UI/Components/ModelFormModal/ModelFormModal.js.map +1 -1
  296. package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js +1 -1
  297. package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js.map +1 -1
  298. package/package.json +1 -1
@@ -12,12 +12,15 @@ import { OnCallDutyPolicyFeedEventType } from "../../Models/DatabaseModels/OnCal
12
12
  import { Gray500, Red500 } from "../../Types/BrandColors";
13
13
  import PushNotificationUtil from "../Utils/PushNotificationUtil";
14
14
  import { createWhatsAppMessageFromTemplate } from "../Utils/WhatsAppTemplateUtil";
15
+ import OnCallDutyPolicyTimeLogService from "./OnCallDutyPolicyTimeLogService";
16
+ import OneUptimeDate from "../../Types/Date";
17
+ import logger from "../Utils/Logger";
15
18
  export class Service extends DatabaseService {
16
19
  constructor() {
17
20
  super(Model);
18
21
  }
19
22
  async onCreateSuccess(_onCreate, createdItem) {
20
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
23
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
21
24
  const createdItemId = createdItem.id;
22
25
  if (!createdItemId) {
23
26
  throw new BadDataException("Created item does not have an ID");
@@ -58,7 +61,37 @@ export class Service extends DatabaseService {
58
61
  if (!userOnSchedule) {
59
62
  return createdItem;
60
63
  }
61
- const scheduleName = ((_b = createdModel.onCallDutyPolicySchedule) === null || _b === void 0 ? void 0 : _b.name) || "No name provided";
64
+ /*
65
+ * Open the roster user's on-call time log for this schedule/rule/policy.
66
+ * Mirrors onDeleteSuccess's endTimeLogForUser (detaching a schedule closes
67
+ * the log, so attaching must open it). Without this, attaching a schedule
68
+ * whose roster user is ALREADY established never opened a log — the roster
69
+ * refresh only opens one when the current user CHANGES — so the whole stint
70
+ * went unrecorded in on-call reporting and the later detach's
71
+ * endTimeLogForUser was a no-op (audit M1). startTimeLogForUser is idempotent
72
+ * (open-log dedup), so a later natural handoff re-opening the same log is a
73
+ * no-op.
74
+ */
75
+ if (((_b = createdModel.onCallDutyPolicy) === null || _b === void 0 ? void 0 : _b.id) &&
76
+ ((_c = createdModel.onCallDutyPolicyEscalationRule) === null || _c === void 0 ? void 0 : _c.id) &&
77
+ createdModel.projectId &&
78
+ createdModel.onCallDutyPolicyScheduleId) {
79
+ OnCallDutyPolicyTimeLogService.startTimeLogForUser({
80
+ projectId: createdModel.projectId,
81
+ onCallDutyPolicyId: createdModel.onCallDutyPolicy.id,
82
+ onCallDutyPolicyEscalationRuleId: createdModel.onCallDutyPolicyEscalationRule.id,
83
+ userId: userOnSchedule,
84
+ onCallDutyPolicyScheduleId: createdModel.onCallDutyPolicyScheduleId,
85
+ startsAt: OneUptimeDate.getCurrentDate(),
86
+ }).catch((error) => {
87
+ var _a;
88
+ logger.error(error, {
89
+ projectId: (_a = createdModel.projectId) === null || _a === void 0 ? void 0 : _a.toString(),
90
+ userId: userOnSchedule === null || userOnSchedule === void 0 ? void 0 : userOnSchedule.toString(),
91
+ });
92
+ });
93
+ }
94
+ const scheduleName = ((_d = createdModel.onCallDutyPolicySchedule) === null || _d === void 0 ? void 0 : _d.name) || "No name provided";
62
95
  const sendEmailToUserId = userOnSchedule;
63
96
  if (!sendEmailToUserId) {
64
97
  return createdItem;
@@ -67,9 +100,9 @@ export class Service extends DatabaseService {
67
100
  return createdItem;
68
101
  }
69
102
  const vars = {
70
- onCallPolicyName: ((_c = createdModel.onCallDutyPolicy) === null || _c === void 0 ? void 0 : _c.name) || "No name provided",
71
- escalationRuleName: ((_d = createdModel.onCallDutyPolicyEscalationRule) === null || _d === void 0 ? void 0 : _d.name) || "No name provided",
72
- escalationRuleOrder: ((_f = (_e = createdModel.onCallDutyPolicyEscalationRule) === null || _e === void 0 ? void 0 : _e.order) === null || _f === void 0 ? void 0 : _f.toString()) ||
103
+ onCallPolicyName: ((_e = createdModel.onCallDutyPolicy) === null || _e === void 0 ? void 0 : _e.name) || "No name provided",
104
+ escalationRuleName: ((_f = createdModel.onCallDutyPolicyEscalationRule) === null || _f === void 0 ? void 0 : _f.name) || "No name provided",
105
+ escalationRuleOrder: ((_h = (_g = createdModel.onCallDutyPolicyEscalationRule) === null || _g === void 0 ? void 0 : _g.order) === null || _h === void 0 ? void 0 : _h.toString()) ||
73
106
  "No order provided",
74
107
  reason: "You are currently on roster for schedule " + scheduleName,
75
108
  onCallPolicyViewLink: (await OnCallDutyPolicyService.getOnCallDutyPolicyLinkInDashboard(createdModel.projectId, createdModel.onCallDutyPolicy.id)).toString(),
@@ -78,26 +111,26 @@ export class Service extends DatabaseService {
78
111
  const emailMessage = {
79
112
  templateType: EmailTemplateType.UserAddedToOnCallPolicy,
80
113
  vars: vars,
81
- subject: `You have been added to the on-call duty policy ${(_g = createdModel.onCallDutyPolicy) === null || _g === void 0 ? void 0 : _g.name} for schedule ${scheduleName}`,
114
+ subject: `You have been added to the on-call duty policy ${(_j = createdModel.onCallDutyPolicy) === null || _j === void 0 ? void 0 : _j.name} for schedule ${scheduleName}`,
82
115
  };
83
116
  const sms = {
84
- message: `This is a message from OneUptime. You have been added to the on-call duty policy ${(_h = createdModel.onCallDutyPolicy) === null || _h === void 0 ? void 0 : _h.name} for schedule ${scheduleName} and escalation rule ${(_j = createdModel.onCallDutyPolicyEscalationRule) === null || _j === void 0 ? void 0 : _j.name} with order ${(_k = createdModel.onCallDutyPolicyEscalationRule) === null || _k === void 0 ? void 0 : _k.order}. To unsubscribe from this notification, go to User Settings in the OneUptime Dashboard.`,
117
+ message: `This is a message from OneUptime. You have been added to the on-call duty policy ${(_k = createdModel.onCallDutyPolicy) === null || _k === void 0 ? void 0 : _k.name} for schedule ${scheduleName} and escalation rule ${(_l = createdModel.onCallDutyPolicyEscalationRule) === null || _l === void 0 ? void 0 : _l.name} with order ${(_m = createdModel.onCallDutyPolicyEscalationRule) === null || _m === void 0 ? void 0 : _m.order}. To unsubscribe from this notification, go to User Settings in the OneUptime Dashboard.`,
85
118
  };
86
119
  const callMessage = {
87
120
  data: [
88
121
  {
89
- sayMessage: `This is a message from OneUptime. You have been added to the on-call duty policy ${(_l = createdModel.onCallDutyPolicy) === null || _l === void 0 ? void 0 : _l.name} for schedule ${scheduleName} and escalation rule ${(_m = createdModel.onCallDutyPolicyEscalationRule) === null || _m === void 0 ? void 0 : _m.name} with order ${(_o = createdModel.onCallDutyPolicyEscalationRule) === null || _o === void 0 ? void 0 : _o.order}. To unsubscribe from this notification, go to User Settings in the OneUptime Dashboard. Goodbye.`,
122
+ sayMessage: `This is a message from OneUptime. You have been added to the on-call duty policy ${(_o = createdModel.onCallDutyPolicy) === null || _o === void 0 ? void 0 : _o.name} for schedule ${scheduleName} and escalation rule ${(_p = createdModel.onCallDutyPolicyEscalationRule) === null || _p === void 0 ? void 0 : _p.name} with order ${(_q = createdModel.onCallDutyPolicyEscalationRule) === null || _q === void 0 ? void 0 : _q.order}. To unsubscribe from this notification, go to User Settings in the OneUptime Dashboard. Goodbye.`,
90
123
  },
91
124
  ],
92
125
  };
93
126
  const pushMessage = PushNotificationUtil.createOnCallPolicyAddedNotification({
94
- policyName: ((_p = createdModel.onCallDutyPolicy) === null || _p === void 0 ? void 0 : _p.name) || "No name provided",
127
+ policyName: ((_r = createdModel.onCallDutyPolicy) === null || _r === void 0 ? void 0 : _r.name) || "No name provided",
95
128
  });
96
129
  const eventType = NotificationSettingEventType.SEND_WHEN_USER_IS_ADDED_TO_ON_CALL_POLICY;
97
130
  const whatsAppMessage = createWhatsAppMessageFromTemplate({
98
131
  eventType,
99
132
  templateVariables: {
100
- on_call_policy_name: ((_q = createdModel.onCallDutyPolicy) === null || _q === void 0 ? void 0 : _q.name) || "No name provided",
133
+ on_call_policy_name: ((_s = createdModel.onCallDutyPolicy) === null || _s === void 0 ? void 0 : _s.name) || "No name provided",
101
134
  schedule_name: scheduleName,
102
135
  on_call_context: `schedule ${scheduleName}`,
103
136
  policy_link: vars["onCallPolicyViewLink"] || "",
@@ -118,14 +151,14 @@ export class Service extends DatabaseService {
118
151
  const projectId = createdModel.projectId;
119
152
  const createdByUserId = createdModel.createdByUserId;
120
153
  const onCallSchedule = createdModel.onCallDutyPolicySchedule;
121
- const onCallDutyPolicyName = ((_r = createdModel.onCallDutyPolicy) === null || _r === void 0 ? void 0 : _r.name) || "";
154
+ const onCallDutyPolicyName = ((_t = createdModel.onCallDutyPolicy) === null || _t === void 0 ? void 0 : _t.name) || "";
122
155
  if (onCallDutyPolicyId) {
123
156
  await OnCallDutyPolicyFeedService.createOnCallDutyPolicyFeedItem({
124
157
  onCallDutyPolicyId: onCallDutyPolicyId,
125
158
  projectId: projectId,
126
159
  onCallDutyPolicyFeedEventType: OnCallDutyPolicyFeedEventType.OnCallDutyScheduleAdded,
127
160
  displayColor: Gray500,
128
- feedInfoInMarkdown: `📅 Added on-call schedule **${(onCallSchedule === null || onCallSchedule === void 0 ? void 0 : onCallSchedule.name) || ""}** from the [On-Call Policy ${onCallDutyPolicyName}](${(await OnCallDutyPolicyService.getOnCallDutyPolicyLinkInDashboard(projectId, onCallDutyPolicyId)).toString()}) escalation rule **${(_s = createdModel.onCallDutyPolicyEscalationRule) === null || _s === void 0 ? void 0 : _s.name}** with order **${(_t = createdModel.onCallDutyPolicyEscalationRule) === null || _t === void 0 ? void 0 : _t.order}**.`,
161
+ feedInfoInMarkdown: `📅 Added on-call schedule **${(onCallSchedule === null || onCallSchedule === void 0 ? void 0 : onCallSchedule.name) || ""}** from the [On-Call Policy ${onCallDutyPolicyName}](${(await OnCallDutyPolicyService.getOnCallDutyPolicyLinkInDashboard(projectId, onCallDutyPolicyId)).toString()}) escalation rule **${(_u = createdModel.onCallDutyPolicyEscalationRule) === null || _u === void 0 ? void 0 : _u.name}** with order **${(_v = createdModel.onCallDutyPolicyEscalationRule) === null || _v === void 0 ? void 0 : _v.order}**.`,
129
162
  userId: createdByUserId || undefined,
130
163
  workspaceNotification: {
131
164
  sendWorkspaceNotification: true,
@@ -194,7 +227,7 @@ export class Service extends DatabaseService {
194
227
  };
195
228
  }
196
229
  async onDeleteSuccess(onDelete, _itemIdsBeforeDelete) {
197
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
230
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
198
231
  const deletedItems = onDelete.carryForward.deletedItems;
199
232
  for (const deletedItem of deletedItems) {
200
233
  const userOnSchedule = await OnCallDutyPolicyScheduleService.getCurrentUserIdInSchedule(deletedItem.onCallDutyPolicyScheduleId, {
@@ -203,16 +236,42 @@ export class Service extends DatabaseService {
203
236
  if (!userOnSchedule) {
204
237
  continue;
205
238
  }
239
+ /*
240
+ * Close the roster user's open on-call time log for this schedule/rule/
241
+ * policy. Roster handoffs open a time log keyed by schedule + rule + policy
242
+ * (OnCallDutyPolicyScheduleService.startTimeLogForUser); the user-link and
243
+ * team-link delete handlers close theirs, but detaching a SCHEDULE from the
244
+ * rule left the log open forever, so the roster user kept showing as
245
+ * on-call in reporting (audit F18).
246
+ */
247
+ if (((_b = deletedItem.onCallDutyPolicy) === null || _b === void 0 ? void 0 : _b.id) &&
248
+ ((_c = deletedItem.onCallDutyPolicyEscalationRule) === null || _c === void 0 ? void 0 : _c.id) &&
249
+ deletedItem.projectId) {
250
+ OnCallDutyPolicyTimeLogService.endTimeLogForUser({
251
+ projectId: deletedItem.projectId,
252
+ onCallDutyPolicyId: deletedItem.onCallDutyPolicy.id,
253
+ onCallDutyPolicyEscalationRuleId: deletedItem.onCallDutyPolicyEscalationRule.id,
254
+ userId: userOnSchedule,
255
+ onCallDutyPolicyScheduleId: deletedItem.onCallDutyPolicyScheduleId,
256
+ endsAt: OneUptimeDate.getCurrentDate(),
257
+ }).catch((error) => {
258
+ var _a;
259
+ logger.error(error, {
260
+ projectId: (_a = deletedItem.projectId) === null || _a === void 0 ? void 0 : _a.toString(),
261
+ userId: userOnSchedule === null || userOnSchedule === void 0 ? void 0 : userOnSchedule.toString(),
262
+ });
263
+ });
264
+ }
206
265
  const sendEmailToUserId = userOnSchedule;
207
266
  if (!sendEmailToUserId) {
208
267
  return onDelete;
209
268
  }
210
- const scheduleName = ((_b = deletedItem.onCallDutyPolicySchedule) === null || _b === void 0 ? void 0 : _b.name) || "No name provided";
269
+ const scheduleName = ((_d = deletedItem.onCallDutyPolicySchedule) === null || _d === void 0 ? void 0 : _d.name) || "No name provided";
211
270
  const vars = {
212
- onCallPolicyName: ((_c = deletedItem.onCallDutyPolicy) === null || _c === void 0 ? void 0 : _c.name) || "No name provided",
213
- escalationRuleName: ((_d = deletedItem.onCallDutyPolicyEscalationRule) === null || _d === void 0 ? void 0 : _d.name) ||
271
+ onCallPolicyName: ((_e = deletedItem.onCallDutyPolicy) === null || _e === void 0 ? void 0 : _e.name) || "No name provided",
272
+ escalationRuleName: ((_f = deletedItem.onCallDutyPolicyEscalationRule) === null || _f === void 0 ? void 0 : _f.name) ||
214
273
  "No name provided",
215
- escalationRuleOrder: ((_f = (_e = deletedItem.onCallDutyPolicyEscalationRule) === null || _e === void 0 ? void 0 : _e.order) === null || _f === void 0 ? void 0 : _f.toString()) ||
274
+ escalationRuleOrder: ((_h = (_g = deletedItem.onCallDutyPolicyEscalationRule) === null || _g === void 0 ? void 0 : _g.order) === null || _h === void 0 ? void 0 : _h.toString()) ||
216
275
  "No order provided",
217
276
  reason: `You have been removed from the on-call duty policy escalation rule for schedule ${scheduleName}.`,
218
277
  onCallPolicyViewLink: (await OnCallDutyPolicyService.getOnCallDutyPolicyLinkInDashboard(deletedItem.projectId, deletedItem.onCallDutyPolicy.id)).toString(),
@@ -221,26 +280,26 @@ export class Service extends DatabaseService {
221
280
  const emailMessage = {
222
281
  templateType: EmailTemplateType.UserRemovedFromOnCallPolicy,
223
282
  vars: vars,
224
- subject: `You have been removed from the on-call duty policy ${(_g = deletedItem.onCallDutyPolicy) === null || _g === void 0 ? void 0 : _g.name} for schedule ${scheduleName}`,
283
+ subject: `You have been removed from the on-call duty policy ${(_j = deletedItem.onCallDutyPolicy) === null || _j === void 0 ? void 0 : _j.name} for schedule ${scheduleName}`,
225
284
  };
226
285
  const sms = {
227
- message: `This is a message from OneUptime. You have been removed from the on-call duty policy ${(_h = deletedItem.onCallDutyPolicy) === null || _h === void 0 ? void 0 : _h.name} for schedule ${scheduleName} and escalation rule ${(_j = deletedItem.onCallDutyPolicyEscalationRule) === null || _j === void 0 ? void 0 : _j.name} with order ${(_k = deletedItem.onCallDutyPolicyEscalationRule) === null || _k === void 0 ? void 0 : _k.order}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard.`,
286
+ message: `This is a message from OneUptime. You have been removed from the on-call duty policy ${(_k = deletedItem.onCallDutyPolicy) === null || _k === void 0 ? void 0 : _k.name} for schedule ${scheduleName} and escalation rule ${(_l = deletedItem.onCallDutyPolicyEscalationRule) === null || _l === void 0 ? void 0 : _l.name} with order ${(_m = deletedItem.onCallDutyPolicyEscalationRule) === null || _m === void 0 ? void 0 : _m.order}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard.`,
228
287
  };
229
288
  const callMessage = {
230
289
  data: [
231
290
  {
232
- sayMessage: `This is a message from OneUptime. You have been removed from the on-call duty policy ${(_l = deletedItem.onCallDutyPolicy) === null || _l === void 0 ? void 0 : _l.name} for schedule ${scheduleName} and escalation rule ${(_m = deletedItem.onCallDutyPolicyEscalationRule) === null || _m === void 0 ? void 0 : _m.name} with order ${(_o = deletedItem.onCallDutyPolicyEscalationRule) === null || _o === void 0 ? void 0 : _o.order}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard. Good Bye`,
291
+ sayMessage: `This is a message from OneUptime. You have been removed from the on-call duty policy ${(_o = deletedItem.onCallDutyPolicy) === null || _o === void 0 ? void 0 : _o.name} for schedule ${scheduleName} and escalation rule ${(_p = deletedItem.onCallDutyPolicyEscalationRule) === null || _p === void 0 ? void 0 : _p.name} with order ${(_q = deletedItem.onCallDutyPolicyEscalationRule) === null || _q === void 0 ? void 0 : _q.order}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard. Good Bye`,
233
292
  },
234
293
  ],
235
294
  };
236
295
  const pushMessage = PushNotificationUtil.createOnCallPolicyRemovedNotification({
237
- policyName: ((_p = deletedItem.onCallDutyPolicy) === null || _p === void 0 ? void 0 : _p.name) || "No name provided",
296
+ policyName: ((_r = deletedItem.onCallDutyPolicy) === null || _r === void 0 ? void 0 : _r.name) || "No name provided",
238
297
  });
239
298
  const eventType = NotificationSettingEventType.SEND_WHEN_USER_IS_REMOVED_FROM_ON_CALL_POLICY;
240
299
  const whatsAppMessage = createWhatsAppMessageFromTemplate({
241
300
  eventType,
242
301
  templateVariables: {
243
- on_call_policy_name: ((_q = deletedItem.onCallDutyPolicy) === null || _q === void 0 ? void 0 : _q.name) || "No name provided",
302
+ on_call_policy_name: ((_s = deletedItem.onCallDutyPolicy) === null || _s === void 0 ? void 0 : _s.name) || "No name provided",
244
303
  schedule_name: scheduleName,
245
304
  on_call_context: `schedule ${scheduleName}`,
246
305
  policy_link: vars["onCallPolicyViewLink"] || "",
@@ -1 +1 @@
1
- {"version":3,"file":"OnCallDutyPolicyEscalationRuleScheduleService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OnCallDutyPolicyEscalationRuleScheduleService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts"],"names":[],"mappings":"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"}
@@ -220,18 +220,41 @@ export class Service extends DatabaseService {
220
220
  projectId: options.projectId.toString(),
221
221
  onCallDutyPolicyEscalationRuleId: ruleId.toString(),
222
222
  });
223
- const startUserNotificationRuleExecution = async (userId, teamId, scheduleId) => {
224
- // This is where user is notified.
225
- // get route alert to user id.
226
- let routeAlertToUserId = null;
223
+ /*
224
+ * Resolve the FINAL alert recipient for a target, applying a user override
225
+ * (getRouteAlertToUserId) exactly ONCE per paging decision.
226
+ *
227
+ * Schedule targets are already override-resolved: getCurrentUserIdInSchedule
228
+ * applies overrides via UserOverrideUtil. Applying getRouteAlertToUserId to
229
+ * them again re-substituted an already-substituted user (transitive), so the
230
+ * schedule paging path could page a different person than the roster,
231
+ * dashboard, handoff notification, and a rule that lists the same user
232
+ * directly — all of which apply overrides only once (audit F5). So team and
233
+ * direct-user targets (the RAW roster user) get the single override hop here;
234
+ * schedule targets do not.
235
+ */
236
+ const resolveAlertRecipientUserId = async (userId, isFromSchedule) => {
237
+ if (isFromSchedule) {
238
+ return userId;
239
+ }
227
240
  if (options.onCallPolicyId) {
228
- routeAlertToUserId = await this.getRouteAlertToUserId({
241
+ const routeAlertToUserId = await this.getRouteAlertToUserId({
229
242
  userId,
230
243
  onCallDutyPolicyId: options.onCallPolicyId,
231
244
  projectId: options.projectId,
232
245
  });
246
+ if (routeAlertToUserId) {
247
+ return routeAlertToUserId;
248
+ }
233
249
  }
234
- const alertSentToUserId = routeAlertToUserId || userId;
250
+ return userId;
251
+ };
252
+ const startUserNotificationRuleExecution = async (originalUserId, alertSentToUserId, teamId, scheduleId) => {
253
+ /*
254
+ * This is where user is notified. alertSentToUserId is already resolved
255
+ * (override applied at most once by resolveAlertRecipientUserId).
256
+ */
257
+ const wasOverridden = alertSentToUserId.toString() !== originalUserId.toString();
235
258
  logger.debug(`Starting notification rule execution for userId: ${alertSentToUserId.toString()}`, {
236
259
  projectId: options.projectId.toString(),
237
260
  onCallDutyPolicyEscalationRuleId: ruleId.toString(),
@@ -241,8 +264,8 @@ export class Service extends DatabaseService {
241
264
  log.statusMessage = "Sending notification to user.";
242
265
  log.status = OnCallDutyExecutionLogTimelineStatus.Executing;
243
266
  log.alertSentToUserId = alertSentToUserId;
244
- if (routeAlertToUserId) {
245
- log.overridedByUserId = userId;
267
+ if (wasOverridden) {
268
+ log.overridedByUserId = originalUserId;
246
269
  }
247
270
  if (teamId) {
248
271
  log.userBelongsToTeamId = teamId;
@@ -269,26 +292,43 @@ export class Service extends DatabaseService {
269
292
  onCallDutyPolicyExecutionLogTimelineId: log.id,
270
293
  projectId: options.projectId,
271
294
  onCallScheduleId: scheduleId || undefined,
272
- overridedByUserId: routeAlertToUserId ? userId : undefined,
295
+ overridedByUserId: wasOverridden ? originalUserId : undefined,
273
296
  });
274
297
  };
298
+ /*
299
+ * Dedup on the RESOLVED recipient (post-override), not the pre-route id.
300
+ * Keying on the pre-route id let two different targets that both reroute to
301
+ * the same backup each fire a full notification chain for the same person in
302
+ * one rule (audit F6).
303
+ */
275
304
  const uniqueUserIds = [];
305
+ const alreadyNotified = (recipientId) => {
306
+ return Boolean(uniqueUserIds.find((userId) => {
307
+ return recipientId.toString() === userId.toString();
308
+ }));
309
+ };
310
+ /*
311
+ * M-5: tracks whether any schedule target for this rule momentarily had no
312
+ * on-call user (a restriction gap / future start / empty layer). If a rule
313
+ * reaches NO ONE solely because of such a gap, we re-sample the same rule on
314
+ * the next cron ticks (bounded) instead of permanently skipping it, so a
315
+ * user coming on-call moments later still gets paged.
316
+ */
317
+ let hadScheduleGap = false;
276
318
  for (const teamInRule of teamsInRule) {
277
319
  const usersInTeam = await TeamMemberService.getUsersInTeam(teamInRule.teamId);
278
320
  for (const user of usersInTeam) {
279
- if (!uniqueUserIds.find((userId) => {
280
- var _a;
281
- return ((_a = user.id) === null || _a === void 0 ? void 0 : _a.toString()) === userId.toString();
282
- })) {
283
- uniqueUserIds.push(user.id);
284
- await startUserNotificationRuleExecution(user.id, teamInRule.teamId, null);
321
+ const recipientUserId = await resolveAlertRecipientUserId(user.id, false);
322
+ if (!alreadyNotified(recipientUserId)) {
323
+ uniqueUserIds.push(recipientUserId);
324
+ await startUserNotificationRuleExecution(user.id, recipientUserId, teamInRule.teamId, null);
285
325
  }
286
326
  else {
287
327
  const log = getNewLog();
288
328
  log.statusMessage =
289
329
  "Skipped because notification sent to this user already.";
290
330
  log.status = OnCallDutyExecutionLogTimelineStatus.Skipped;
291
- log.alertSentToUserId = user.id;
331
+ log.alertSentToUserId = recipientUserId;
292
332
  log.userBelongsToTeamId = teamInRule.teamId;
293
333
  await OnCallDutyPolicyExecutionLogTimelineService.create({
294
334
  data: log,
@@ -300,19 +340,17 @@ export class Service extends DatabaseService {
300
340
  }
301
341
  }
302
342
  for (const userRule of usersInRule) {
303
- if (!uniqueUserIds.find((userId) => {
304
- var _a;
305
- return ((_a = userRule.userId) === null || _a === void 0 ? void 0 : _a.toString()) === userId.toString();
306
- })) {
307
- uniqueUserIds.push(userRule.userId);
308
- await startUserNotificationRuleExecution(userRule.userId, null, null);
343
+ const recipientUserId = await resolveAlertRecipientUserId(userRule.userId, false);
344
+ if (!alreadyNotified(recipientUserId)) {
345
+ uniqueUserIds.push(recipientUserId);
346
+ await startUserNotificationRuleExecution(userRule.userId, recipientUserId, null, null);
309
347
  }
310
348
  else {
311
349
  const log = getNewLog();
312
350
  log.statusMessage =
313
351
  "Skipped because notification sent to this user already.";
314
352
  log.status = OnCallDutyExecutionLogTimelineStatus.Skipped;
315
- log.alertSentToUserId = userRule.userId;
353
+ log.alertSentToUserId = recipientUserId;
316
354
  await OnCallDutyPolicyExecutionLogTimelineService.create({
317
355
  data: log,
318
356
  props: {
@@ -324,6 +362,7 @@ export class Service extends DatabaseService {
324
362
  for (const scheduleRule of schedulesInRule) {
325
363
  const userIdInSchedule = await OnCallDutyPolicyScheduleService.getCurrentUserIdInSchedule(scheduleRule.onCallDutyPolicyScheduleId, { onCallDutyPolicyId: options.onCallPolicyId });
326
364
  if (!userIdInSchedule) {
365
+ hadScheduleGap = true;
327
366
  const log = getNewLog();
328
367
  log.statusMessage =
329
368
  "Skipped because no active users are found in this schedule.";
@@ -337,18 +376,18 @@ export class Service extends DatabaseService {
337
376
  });
338
377
  continue;
339
378
  }
340
- if (!uniqueUserIds.find((userId) => {
341
- return (userIdInSchedule === null || userIdInSchedule === void 0 ? void 0 : userIdInSchedule.toString()) === userId.toString();
342
- })) {
343
- uniqueUserIds.push(userIdInSchedule);
344
- await startUserNotificationRuleExecution(userIdInSchedule, null, scheduleRule.onCallDutyPolicyScheduleId);
379
+ // Schedule users are already override-resolved; no second override hop (F5).
380
+ const recipientUserId = await resolveAlertRecipientUserId(userIdInSchedule, true);
381
+ if (!alreadyNotified(recipientUserId)) {
382
+ uniqueUserIds.push(recipientUserId);
383
+ await startUserNotificationRuleExecution(userIdInSchedule, recipientUserId, null, scheduleRule.onCallDutyPolicyScheduleId);
345
384
  }
346
385
  else {
347
386
  const log = getNewLog();
348
387
  log.statusMessage =
349
388
  "Skipped because notification sent to this user already.";
350
389
  log.status = OnCallDutyExecutionLogTimelineStatus.Skipped;
351
- log.alertSentToUserId = userIdInSchedule;
390
+ log.alertSentToUserId = recipientUserId;
352
391
  log.onCallDutyScheduleId = scheduleRule.onCallDutyPolicyScheduleId;
353
392
  await OnCallDutyPolicyExecutionLogTimelineService.create({
354
393
  data: log,
@@ -369,6 +408,70 @@ export class Service extends DatabaseService {
369
408
  },
370
409
  });
371
410
  }
411
+ /*
412
+ * M-5: if this rule reached NO ONE and the only reason was a schedule gap
413
+ * (a schedule target with no on-call user right now), re-sample the SAME
414
+ * rule on the next cron ticks — bounded — instead of permanently skipping.
415
+ * ExecutePendingExecutions selects the rule with order =
416
+ * lastExecutedEscalationRuleOrder + 1, so rewinding the order by one makes
417
+ * it re-run this rule. No notifications were sent (uniqueUserIds is empty),
418
+ * so a re-sample cannot double-page anyone.
419
+ */
420
+ const maxScheduleGapRetries = 5;
421
+ const scheduleGapRetryIntervalMinutes = 1;
422
+ const reachedNoOne = uniqueUserIds.length === 0;
423
+ if (reachedNoOne && hadScheduleGap && rule.order) {
424
+ const executionLog = await OnCallDutyPolicyExecutionLogService.findOneById({
425
+ id: options.onCallPolicyExecutionLogId,
426
+ select: {
427
+ scheduleGapRetryCount: true,
428
+ },
429
+ props: {
430
+ isRoot: true,
431
+ },
432
+ });
433
+ const retryCount = (executionLog === null || executionLog === void 0 ? void 0 : executionLog.scheduleGapRetryCount) || 0;
434
+ if (retryCount < maxScheduleGapRetries) {
435
+ await OnCallDutyPolicyExecutionLogService.updateOneById({
436
+ id: options.onCallPolicyExecutionLogId,
437
+ data: {
438
+ lastExecutedEscalationRuleOrder: rule.order - 1,
439
+ executeNextEscalationRuleInMinutes: scheduleGapRetryIntervalMinutes,
440
+ scheduleGapRetryCount: retryCount + 1,
441
+ },
442
+ props: {
443
+ isRoot: true,
444
+ },
445
+ });
446
+ logger.debug(`Rule ${ruleId.toString()} reached no one due to a schedule gap; re-sampling ${retryCount + 1}/${maxScheduleGapRetries}.`, {
447
+ onCallDutyPolicyEscalationRuleId: ruleId.toString(),
448
+ });
449
+ }
450
+ else {
451
+ // Retries exhausted — advance normally next tick and reset the counter.
452
+ await OnCallDutyPolicyExecutionLogService.updateOneById({
453
+ id: options.onCallPolicyExecutionLogId,
454
+ data: {
455
+ scheduleGapRetryCount: 0,
456
+ },
457
+ props: {
458
+ isRoot: true,
459
+ },
460
+ });
461
+ }
462
+ }
463
+ else {
464
+ // Reached someone (or no schedule gap): clear retry state for the next rule.
465
+ await OnCallDutyPolicyExecutionLogService.updateOneById({
466
+ id: options.onCallPolicyExecutionLogId,
467
+ data: {
468
+ scheduleGapRetryCount: 0,
469
+ },
470
+ props: {
471
+ isRoot: true,
472
+ },
473
+ });
474
+ }
372
475
  logger.debug(`Completed rule execution for ruleId: ${ruleId.toString()}`, {
373
476
  projectId: options.projectId.toString(),
374
477
  onCallDutyPolicyEscalationRuleId: ruleId.toString(),
@@ -617,8 +720,8 @@ export class Service extends DatabaseService {
617
720
  if (newOrder > currentOrder) {
618
721
  // moving down.
619
722
  for (const resource of resources) {
620
- if (resource.order <= newOrder) {
621
- // increment order.
723
+ if (resource.order > currentOrder && resource.order <= newOrder) {
724
+ // decrement order to fill the gap left by the moved rule.
622
725
  await this.updateOneBy({
623
726
  query: {
624
727
  _id: resource._id,
@@ -1 +1 @@
1
- {"version":3,"file":"OnCallDutyPolicyEscalationRuleService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyEscalationRuleService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OnCallDutyPolicyEscalationRuleService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyEscalationRuleService.ts"],"names":[],"mappings":"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"}