@oneuptime/common 9.4.11 → 9.4.13

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 (286) hide show
  1. package/Models/DatabaseModels/Incident.ts +77 -0
  2. package/Models/DatabaseModels/IncidentEpisode.ts +1223 -0
  3. package/Models/DatabaseModels/IncidentEpisodeFeed.ts +533 -0
  4. package/Models/DatabaseModels/IncidentEpisodeInternalNote.ts +456 -0
  5. package/Models/DatabaseModels/IncidentEpisodeMember.ts +587 -0
  6. package/Models/DatabaseModels/IncidentEpisodeOwnerTeam.ts +421 -0
  7. package/Models/DatabaseModels/IncidentEpisodeOwnerUser.ts +419 -0
  8. package/Models/DatabaseModels/IncidentEpisodeStateTimeline.ts +524 -0
  9. package/Models/DatabaseModels/IncidentGroupingRule.ts +1430 -0
  10. package/Models/DatabaseModels/Index.ts +18 -0
  11. package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +70 -0
  12. package/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.ts +59 -0
  13. package/Models/DatabaseModels/Project.ts +29 -0
  14. package/Models/DatabaseModels/UserOnCallLog.ts +48 -0
  15. package/Models/DatabaseModels/UserOnCallLogTimeline.ts +49 -0
  16. package/Models/DatabaseModels/WorkspaceNotificationLog.ts +57 -0
  17. package/Server/API/BillingAPI.ts +78 -1
  18. package/Server/API/IncidentEpisodeAPI.ts +150 -0
  19. package/Server/API/SlackAPI.ts +23 -0
  20. package/Server/API/UserOnCallLogTimelineAPI.ts +24 -4
  21. package/Server/BillingConfig.ts +3 -0
  22. package/Server/EnvironmentConfig.ts +1 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1769599843642-MigrationName.ts +29 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1769626069479-MigrationName.ts +729 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1769629928240-MigrationName.ts +261 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1769676117342-RenameEvaluateOverTimeInCriteriaFilter.ts +28 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  28. package/Server/Services/AIBillingService.ts +10 -0
  29. package/Server/Services/BillingService.ts +349 -1
  30. package/Server/Services/CallService.ts +1 -0
  31. package/Server/Services/IncidentEpisodeFeedService.ts +94 -0
  32. package/Server/Services/IncidentEpisodeInternalNoteService.ts +71 -0
  33. package/Server/Services/IncidentEpisodeMemberService.ts +321 -0
  34. package/Server/Services/IncidentEpisodeOwnerTeamService.ts +10 -0
  35. package/Server/Services/IncidentEpisodeOwnerUserService.ts +10 -0
  36. package/Server/Services/IncidentEpisodeService.ts +1045 -0
  37. package/Server/Services/IncidentEpisodeStateTimelineService.ts +566 -0
  38. package/Server/Services/IncidentGroupingEngineService.ts +1047 -0
  39. package/Server/Services/IncidentGroupingRuleService.ts +14 -0
  40. package/Server/Services/IncidentService.ts +11 -0
  41. package/Server/Services/Index.ts +18 -0
  42. package/Server/Services/MailService.ts +1 -0
  43. package/Server/Services/MonitorService.ts +9 -0
  44. package/Server/Services/NotificationService.ts +10 -0
  45. package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +18 -0
  46. package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +64 -2
  47. package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +26 -1
  48. package/Server/Services/OnCallDutyPolicyService.ts +15 -0
  49. package/Server/Services/ProjectService.ts +33 -2
  50. package/Server/Services/SmsService.ts +1 -0
  51. package/Server/Services/UserNotificationRuleService.ts +48 -2
  52. package/Server/Services/UserNotificationSettingService.ts +23 -0
  53. package/Server/Services/UserOnCallLogService.ts +41 -4
  54. package/Server/Services/UserService.ts +45 -1
  55. package/Server/Services/WhatsAppService.ts +1 -0
  56. package/Server/Services/WorkspaceNotificationLogService.ts +16 -0
  57. package/Server/Services/WorkspaceNotificationRuleService.ts +116 -0
  58. package/Server/Types/Database/Permissions/TenantPermission.ts +20 -0
  59. package/Server/Utils/AI/IncidentEpisodeAIContextBuilder.ts +490 -0
  60. package/Server/Utils/Monitor/Criteria/APIRequestCriteria.ts +1 -1
  61. package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +1 -1
  62. package/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.ts +1 -1
  63. package/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.ts +1 -1
  64. package/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.ts +2 -2
  65. package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +182 -0
  66. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +13 -0
  67. package/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.ts +1 -1
  68. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +37 -0
  69. package/Server/Utils/PushNotificationUtil.ts +31 -0
  70. package/Server/Utils/WhatsAppTemplateUtil.ts +14 -0
  71. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.ts +18 -0
  72. package/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.ts +702 -0
  73. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +20 -0
  74. package/Server/Utils/Workspace/Slack/Actions/ActionTypes.ts +11 -0
  75. package/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.ts +918 -0
  76. package/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.ts +120 -0
  77. package/Server/Utils/Workspace/WorkspaceMessages/IncidentEpisode.ts +74 -0
  78. package/Types/Email/EmailTemplateType.ts +7 -0
  79. package/Types/Monitor/CriteriaFilter.ts +24 -4
  80. package/Types/Monitor/MonitorCriteriaInstance.ts +67 -0
  81. package/Types/Monitor/MonitorStep.ts +37 -0
  82. package/Types/Monitor/MonitorStepSnmpMonitor.ts +102 -0
  83. package/Types/Monitor/MonitorType.ts +15 -2
  84. package/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.ts +8 -0
  85. package/Types/Monitor/SnmpMonitor/SnmpDataType.ts +21 -0
  86. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +16 -0
  87. package/Types/Monitor/SnmpMonitor/SnmpOid.ts +60 -0
  88. package/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.ts +7 -0
  89. package/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.ts +7 -0
  90. package/Types/Monitor/SnmpMonitor/SnmpV3Auth.ts +12 -0
  91. package/Types/Monitor/SnmpMonitor/SnmpVersion.ts +7 -0
  92. package/Types/NotificationSetting/NotificationSettingEventType.ts +7 -0
  93. package/Types/Permission.ts +311 -0
  94. package/Types/Probe/ProbeMonitorResponse.ts +2 -0
  95. package/Types/UserNotification/UserNotificationEventType.ts +1 -0
  96. package/Types/WhatsApp/WhatsAppTemplates.ts +24 -0
  97. package/Types/Workspace/NotificationRules/EventType.ts +1 -0
  98. package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +38 -1
  99. package/Utils/Monitor/MonitorMetricType.ts +2 -1
  100. package/build/dist/Models/DatabaseModels/Incident.js +78 -0
  101. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  102. package/build/dist/Models/DatabaseModels/IncidentEpisode.js +1250 -0
  103. package/build/dist/Models/DatabaseModels/IncidentEpisode.js.map +1 -0
  104. package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js +555 -0
  105. package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js.map +1 -0
  106. package/build/dist/Models/DatabaseModels/IncidentEpisodeInternalNote.js +467 -0
  107. package/build/dist/Models/DatabaseModels/IncidentEpisodeInternalNote.js.map +1 -0
  108. package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js +607 -0
  109. package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js.map +1 -0
  110. package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js +437 -0
  111. package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js.map +1 -0
  112. package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js +436 -0
  113. package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js.map +1 -0
  114. package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +546 -0
  115. package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -0
  116. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js +1437 -0
  117. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js.map +1 -0
  118. package/build/dist/Models/DatabaseModels/Index.js +16 -0
  119. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  120. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +69 -0
  121. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
  122. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js +58 -0
  123. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js.map +1 -1
  124. package/build/dist/Models/DatabaseModels/Project.js +30 -0
  125. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  126. package/build/dist/Models/DatabaseModels/UserOnCallLog.js +47 -0
  127. package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
  128. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +48 -0
  129. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
  130. package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js +58 -0
  131. package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js.map +1 -1
  132. package/build/dist/Server/API/BillingAPI.js +44 -1
  133. package/build/dist/Server/API/BillingAPI.js.map +1 -1
  134. package/build/dist/Server/API/IncidentEpisodeAPI.js +97 -0
  135. package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -0
  136. package/build/dist/Server/API/SlackAPI.js +18 -0
  137. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  138. package/build/dist/Server/API/UserOnCallLogTimelineAPI.js +30 -10
  139. package/build/dist/Server/API/UserOnCallLogTimelineAPI.js.map +1 -1
  140. package/build/dist/Server/BillingConfig.js +2 -0
  141. package/build/dist/Server/BillingConfig.js.map +1 -1
  142. package/build/dist/Server/EnvironmentConfig.js +1 -0
  143. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  144. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769599843642-MigrationName.js +16 -0
  145. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769599843642-MigrationName.js.map +1 -0
  146. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769626069479-MigrationName.js +256 -0
  147. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769626069479-MigrationName.js.map +1 -0
  148. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769629928240-MigrationName.js +96 -0
  149. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769629928240-MigrationName.js.map +1 -0
  150. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769676117342-RenameEvaluateOverTimeInCriteriaFilter.js +25 -0
  151. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769676117342-RenameEvaluateOverTimeInCriteriaFilter.js.map +1 -0
  152. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  153. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  154. package/build/dist/Server/Services/AIBillingService.js +10 -1
  155. package/build/dist/Server/Services/AIBillingService.js.map +1 -1
  156. package/build/dist/Server/Services/BillingService.js +224 -5
  157. package/build/dist/Server/Services/BillingService.js.map +1 -1
  158. package/build/dist/Server/Services/CallService.js.map +1 -1
  159. package/build/dist/Server/Services/IncidentEpisodeFeedService.js +83 -0
  160. package/build/dist/Server/Services/IncidentEpisodeFeedService.js.map +1 -0
  161. package/build/dist/Server/Services/IncidentEpisodeInternalNoteService.js +70 -0
  162. package/build/dist/Server/Services/IncidentEpisodeInternalNoteService.js.map +1 -0
  163. package/build/dist/Server/Services/IncidentEpisodeMemberService.js +298 -0
  164. package/build/dist/Server/Services/IncidentEpisodeMemberService.js.map +1 -0
  165. package/build/dist/Server/Services/IncidentEpisodeOwnerTeamService.js +9 -0
  166. package/build/dist/Server/Services/IncidentEpisodeOwnerTeamService.js.map +1 -0
  167. package/build/dist/Server/Services/IncidentEpisodeOwnerUserService.js +9 -0
  168. package/build/dist/Server/Services/IncidentEpisodeOwnerUserService.js.map +1 -0
  169. package/build/dist/Server/Services/IncidentEpisodeService.js +933 -0
  170. package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -0
  171. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js +498 -0
  172. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js.map +1 -0
  173. package/build/dist/Server/Services/IncidentGroupingEngineService.js +799 -0
  174. package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -0
  175. package/build/dist/Server/Services/IncidentGroupingRuleService.js +13 -0
  176. package/build/dist/Server/Services/IncidentGroupingRuleService.js.map +1 -0
  177. package/build/dist/Server/Services/IncidentService.js +10 -0
  178. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  179. package/build/dist/Server/Services/Index.js +16 -0
  180. package/build/dist/Server/Services/Index.js.map +1 -1
  181. package/build/dist/Server/Services/MailService.js.map +1 -1
  182. package/build/dist/Server/Services/MonitorService.js +9 -1
  183. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  184. package/build/dist/Server/Services/NotificationService.js +10 -1
  185. package/build/dist/Server/Services/NotificationService.js.map +1 -1
  186. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +10 -0
  187. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
  188. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +48 -2
  189. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
  190. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +20 -1
  191. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
  192. package/build/dist/Server/Services/OnCallDutyPolicyService.js +8 -0
  193. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  194. package/build/dist/Server/Services/ProjectService.js +16 -3
  195. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  196. package/build/dist/Server/Services/SmsService.js.map +1 -1
  197. package/build/dist/Server/Services/UserNotificationRuleService.js +39 -2
  198. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  199. package/build/dist/Server/Services/UserNotificationSettingService.js +9 -0
  200. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  201. package/build/dist/Server/Services/UserOnCallLogService.js +35 -3
  202. package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
  203. package/build/dist/Server/Services/UserService.js +40 -0
  204. package/build/dist/Server/Services/UserService.js.map +1 -1
  205. package/build/dist/Server/Services/WhatsAppService.js.map +1 -1
  206. package/build/dist/Server/Services/WorkspaceNotificationLogService.js +12 -0
  207. package/build/dist/Server/Services/WorkspaceNotificationLogService.js.map +1 -1
  208. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +95 -1
  209. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  210. package/build/dist/Server/Types/Database/Permissions/TenantPermission.js +17 -0
  211. package/build/dist/Server/Types/Database/Permissions/TenantPermission.js.map +1 -1
  212. package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js +402 -0
  213. package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js.map +1 -0
  214. package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js +1 -1
  215. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +1 -1
  216. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js +1 -1
  217. package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js +1 -1
  218. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +2 -2
  219. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +135 -0
  220. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -0
  221. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +10 -0
  222. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  223. package/build/dist/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.js +1 -1
  224. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +26 -0
  225. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  226. package/build/dist/Server/Utils/PushNotificationUtil.js +20 -0
  227. package/build/dist/Server/Utils/PushNotificationUtil.js.map +1 -1
  228. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +8 -0
  229. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
  230. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js +17 -0
  231. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js.map +1 -1
  232. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js +547 -0
  233. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js.map +1 -0
  234. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +15 -0
  235. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  236. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js +10 -0
  237. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js.map +1 -1
  238. package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js +651 -0
  239. package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js.map +1 -0
  240. package/build/dist/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.js +100 -0
  241. package/build/dist/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.js.map +1 -0
  242. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/IncidentEpisode.js +70 -0
  243. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/IncidentEpisode.js.map +1 -0
  244. package/build/dist/Types/Email/EmailTemplateType.js +6 -0
  245. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  246. package/build/dist/Types/Monitor/CriteriaFilter.js +16 -3
  247. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  248. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +62 -0
  249. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  250. package/build/dist/Types/Monitor/MonitorStep.js +26 -0
  251. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  252. package/build/dist/Types/Monitor/MonitorStepSnmpMonitor.js +77 -0
  253. package/build/dist/Types/Monitor/MonitorStepSnmpMonitor.js.map +1 -0
  254. package/build/dist/Types/Monitor/MonitorType.js +13 -2
  255. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  256. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js +9 -0
  257. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js.map +1 -0
  258. package/build/dist/Types/Monitor/SnmpMonitor/SnmpDataType.js +22 -0
  259. package/build/dist/Types/Monitor/SnmpMonitor/SnmpDataType.js.map +1 -0
  260. package/build/dist/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.js +2 -0
  261. package/build/dist/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.js.map +1 -0
  262. package/build/dist/Types/Monitor/SnmpMonitor/SnmpOid.js +55 -0
  263. package/build/dist/Types/Monitor/SnmpMonitor/SnmpOid.js.map +1 -0
  264. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js +8 -0
  265. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js.map +1 -0
  266. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js +8 -0
  267. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js.map +1 -0
  268. package/build/dist/Types/Monitor/SnmpMonitor/SnmpV3Auth.js +2 -0
  269. package/build/dist/Types/Monitor/SnmpMonitor/SnmpV3Auth.js.map +1 -0
  270. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js +8 -0
  271. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js.map +1 -0
  272. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +5 -0
  273. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  274. package/build/dist/Types/Permission.js +264 -0
  275. package/build/dist/Types/Permission.js.map +1 -1
  276. package/build/dist/Types/UserNotification/UserNotificationEventType.js +1 -0
  277. package/build/dist/Types/UserNotification/UserNotificationEventType.js.map +1 -1
  278. package/build/dist/Types/WhatsApp/WhatsAppTemplates.js +15 -0
  279. package/build/dist/Types/WhatsApp/WhatsAppTemplates.js.map +1 -1
  280. package/build/dist/Types/Workspace/NotificationRules/EventType.js +1 -0
  281. package/build/dist/Types/Workspace/NotificationRules/EventType.js.map +1 -1
  282. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +33 -1
  283. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
  284. package/build/dist/Utils/Monitor/MonitorMetricType.js +2 -1
  285. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  286. package/package.json +1 -1
@@ -21,6 +21,8 @@ import Alert from "../../Models/DatabaseModels/Alert";
21
21
  import AlertService from "./AlertService";
22
22
  import AlertEpisode from "../../Models/DatabaseModels/AlertEpisode";
23
23
  import AlertEpisodeService from "./AlertEpisodeService";
24
+ import IncidentEpisode from "../../Models/DatabaseModels/IncidentEpisode";
25
+ import IncidentEpisodeService from "./IncidentEpisodeService";
24
26
 
25
27
  export class Service extends DatabaseService<Model> {
26
28
  public constructor() {
@@ -206,6 +208,34 @@ export class Service extends DatabaseService<Model> {
206
208
  });
207
209
  }
208
210
 
211
+ // get rule count for incident episodes.
212
+ let incidentEpisode: IncidentEpisode | null = null;
213
+ if (createdItem.triggeredByIncidentEpisodeId) {
214
+ incidentEpisode = await IncidentEpisodeService.findOneById({
215
+ id: createdItem.triggeredByIncidentEpisodeId,
216
+ props: {
217
+ isRoot: true,
218
+ },
219
+ select: {
220
+ incidentSeverityId: true,
221
+ },
222
+ });
223
+
224
+ ruleCount = await UserNotificationRuleService.countBy({
225
+ query: {
226
+ userId: createdItem.userId!,
227
+ projectId: createdItem.projectId!,
228
+ ruleType: notificationRuleType,
229
+ incidentSeverityId: incidentEpisode?.incidentSeverityId as ObjectID,
230
+ },
231
+ skip: 0,
232
+ limit: LIMIT_PER_PROJECT,
233
+ props: {
234
+ isRoot: true,
235
+ },
236
+ });
237
+ }
238
+
209
239
  if (ruleCount.toNumber() === 0) {
210
240
  // update this item to be processed.
211
241
  await this.updateOneById({
@@ -239,6 +269,7 @@ export class Service extends DatabaseService<Model> {
239
269
  /*
240
270
  * find immediate notification rule and alert the user.
241
271
  * Determine the alertSeverityId - can come from alert or alertEpisode
272
+ * Determine the incidentSeverityId - can come from incident or incidentEpisode
242
273
  */
243
274
  const alertSeverityIdForQuery: ObjectID | undefined =
244
275
  alert && alert.alertSeverityId
@@ -247,6 +278,13 @@ export class Service extends DatabaseService<Model> {
247
278
  ? (alertEpisode.alertSeverityId as ObjectID)
248
279
  : undefined;
249
280
 
281
+ const incidentSeverityIdForQuery: ObjectID | undefined =
282
+ incident && incident.incidentSeverityId
283
+ ? (incident.incidentSeverityId as ObjectID)
284
+ : incidentEpisode && incidentEpisode.incidentSeverityId
285
+ ? (incidentEpisode.incidentSeverityId as ObjectID)
286
+ : undefined;
287
+
250
288
  const immediateNotificationRule: Array<UserNotificationRule> =
251
289
  await UserNotificationRuleService.findBy({
252
290
  query: {
@@ -254,10 +292,7 @@ export class Service extends DatabaseService<Model> {
254
292
  projectId: createdItem.projectId!,
255
293
  notifyAfterMinutes: 0,
256
294
  ruleType: notificationRuleType,
257
- incidentSeverityId:
258
- incident && incident.incidentSeverityId
259
- ? (incident?.incidentSeverityId as ObjectID)
260
- : undefined,
295
+ incidentSeverityId: incidentSeverityIdForQuery,
261
296
  alertSeverityId: alertSeverityIdForQuery,
262
297
  },
263
298
  select: {
@@ -279,6 +314,8 @@ export class Service extends DatabaseService<Model> {
279
314
  triggeredByIncidentId: createdItem.triggeredByIncidentId,
280
315
  triggeredByAlertId: createdItem.triggeredByAlertId,
281
316
  triggeredByAlertEpisodeId: createdItem.triggeredByAlertEpisodeId,
317
+ triggeredByIncidentEpisodeId:
318
+ createdItem.triggeredByIncidentEpisodeId,
282
319
  userNotificationEventType: createdItem.userNotificationEventType!,
283
320
  onCallPolicyExecutionLogId:
284
321
  createdItem.onCallDutyPolicyExecutionLogId,
@@ -3,8 +3,9 @@ import {
3
3
  IsBillingEnabled,
4
4
  NotificationSlackWebhookOnCreateUser,
5
5
  } from "../EnvironmentConfig";
6
- import { OnCreate, OnUpdate } from "../Types/Database/Hooks";
6
+ import { OnCreate, OnDelete, OnUpdate } from "../Types/Database/Hooks";
7
7
  import UpdateBy from "../Types/Database/UpdateBy";
8
+ import DeleteBy from "../Types/Database/DeleteBy";
8
9
  import logger from "../Utils/Logger";
9
10
  import DatabaseService from "./DatabaseService";
10
11
  import EmailVerificationTokenService from "./EmailVerificationTokenService";
@@ -198,6 +199,49 @@ export class Service extends DatabaseService<Model> {
198
199
  return { updateBy, carryForward: carryForward };
199
200
  }
200
201
 
202
+ @CaptureSpan()
203
+ protected override async onBeforeDelete(
204
+ deleteBy: DeleteBy<Model>,
205
+ ): Promise<OnDelete<Model>> {
206
+ // Check if the user is a member of any project
207
+ const users: Array<Model> = await this.findBy({
208
+ query: deleteBy.query,
209
+ select: {
210
+ _id: true,
211
+ },
212
+ props: {
213
+ isRoot: true,
214
+ },
215
+ limit: LIMIT_MAX,
216
+ skip: 0,
217
+ });
218
+
219
+ for (const user of users) {
220
+ const teamMembers: Array<TeamMember> = await TeamMemberService.findBy({
221
+ query: {
222
+ userId: user.id!,
223
+ },
224
+ select: {
225
+ _id: true,
226
+ projectId: true,
227
+ },
228
+ limit: LIMIT_MAX,
229
+ skip: 0,
230
+ props: {
231
+ isRoot: true,
232
+ },
233
+ });
234
+
235
+ if (teamMembers.length > 0) {
236
+ throw new BadDataException(
237
+ "You cannot delete your account because you are a member of one or more projects. Please leave all projects before deleting your account.",
238
+ );
239
+ }
240
+ }
241
+
242
+ return { deleteBy, carryForward: null };
243
+ }
244
+
201
245
  @CaptureSpan()
202
246
  protected override async onUpdateSuccess(
203
247
  onUpdate: OnUpdate<Model>,
@@ -27,6 +27,7 @@ export class WhatsAppService extends BaseService {
27
27
  incidentId?: ObjectID | undefined;
28
28
  alertId?: ObjectID | undefined;
29
29
  alertEpisodeId?: ObjectID | undefined;
30
+ incidentEpisodeId?: ObjectID | undefined;
30
31
  scheduledMaintenanceId?: ObjectID | undefined;
31
32
  statusPageId?: ObjectID | undefined;
32
33
  statusPageAnnouncementId?: ObjectID | undefined;
@@ -21,6 +21,8 @@ export interface WorkspaceLogData {
21
21
  // Relations to resources (optional)
22
22
  incidentId?: ObjectID | undefined;
23
23
  alertId?: ObjectID | undefined;
24
+ alertEpisodeId?: ObjectID | undefined;
25
+ incidentEpisodeId?: ObjectID | undefined;
24
26
  scheduledMaintenanceId?: ObjectID | undefined;
25
27
  userId?: ObjectID | undefined;
26
28
  teamId?: ObjectID | undefined;
@@ -75,6 +77,12 @@ export class Service extends DatabaseService<Model> {
75
77
  if (data.alertId) {
76
78
  log.alertId = data.alertId;
77
79
  }
80
+ if (data.alertEpisodeId) {
81
+ log.alertEpisodeId = data.alertEpisodeId;
82
+ }
83
+ if (data.incidentEpisodeId) {
84
+ log.incidentEpisodeId = data.incidentEpisodeId;
85
+ }
78
86
  if (data.scheduledMaintenanceId) {
79
87
  log.scheduledMaintenanceId = data.scheduledMaintenanceId;
80
88
  }
@@ -221,6 +229,8 @@ export class Service extends DatabaseService<Model> {
221
229
  // Optional resource associations
222
230
  incidentId?: ObjectID;
223
231
  alertId?: ObjectID;
232
+ alertEpisodeId?: ObjectID;
233
+ incidentEpisodeId?: ObjectID;
224
234
  scheduledMaintenanceId?: ObjectID;
225
235
  onCallDutyPolicyId?: ObjectID;
226
236
  statusPageId?: ObjectID;
@@ -256,6 +266,12 @@ export class Service extends DatabaseService<Model> {
256
266
  if (data.alertId) {
257
267
  logData.alertId = data.alertId;
258
268
  }
269
+ if (data.alertEpisodeId) {
270
+ logData.alertEpisodeId = data.alertEpisodeId;
271
+ }
272
+ if (data.incidentEpisodeId) {
273
+ logData.incidentEpisodeId = data.incidentEpisodeId;
274
+ }
259
275
  if (data.scheduledMaintenanceId) {
260
276
  logData.scheduledMaintenanceId = data.scheduledMaintenanceId;
261
277
  }
@@ -50,6 +50,8 @@ import WorkspaceNotificationLogService from "./WorkspaceNotificationLogService";
50
50
  import WorkspaceNotificationStatus from "../../Types/Workspace/WorkspaceNotificationStatus";
51
51
  import WorkspaceNotificationActionType from "../../Types/Workspace/WorkspaceNotificationActionType";
52
52
  import ExceptionMessages from "../../Types/Exception/ExceptionMessages";
53
+ import IncidentEpisode from "../../Models/DatabaseModels/IncidentEpisode";
54
+ import IncidentEpisodeService from "./IncidentEpisodeService";
53
55
 
54
56
  export interface MessageBlocksByWorkspaceType {
55
57
  workspaceType: WorkspaceType;
@@ -60,6 +62,7 @@ export interface NotificationFor {
60
62
  incidentId?: ObjectID | undefined;
61
63
  alertId?: ObjectID | undefined;
62
64
  alertEpisodeId?: ObjectID | undefined;
65
+ incidentEpisodeId?: ObjectID | undefined;
63
66
  scheduledMaintenanceId?: ObjectID | undefined;
64
67
  monitorId?: ObjectID | undefined;
65
68
  onCallDutyPolicyId?: ObjectID | undefined;
@@ -749,6 +752,14 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
749
752
  return NotificationRuleEventType.Incident;
750
753
  }
751
754
 
755
+ if (notificationFor.alertEpisodeId) {
756
+ return NotificationRuleEventType.AlertEpisode;
757
+ }
758
+
759
+ if (notificationFor.incidentEpisodeId) {
760
+ return NotificationRuleEventType.IncidentEpisode;
761
+ }
762
+
752
763
  if (notificationFor.monitorId) {
753
764
  return NotificationRuleEventType.Monitor;
754
765
  }
@@ -1949,6 +1960,12 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
1949
1960
  [NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
1950
1961
  [NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
1951
1962
  [NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
1963
+ [NotificationRuleConditionCheckOn.IncidentEpisodeTitle]: undefined,
1964
+ [NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
1965
+ undefined,
1966
+ [NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]: undefined,
1967
+ [NotificationRuleConditionCheckOn.IncidentEpisodeState]: undefined,
1968
+ [NotificationRuleConditionCheckOn.IncidentEpisodeLabels]: undefined,
1952
1969
  };
1953
1970
  }
1954
1971
 
@@ -2031,6 +2048,12 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
2031
2048
  [NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
2032
2049
  [NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
2033
2050
  [NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
2051
+ [NotificationRuleConditionCheckOn.IncidentEpisodeTitle]: undefined,
2052
+ [NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
2053
+ undefined,
2054
+ [NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]: undefined,
2055
+ [NotificationRuleConditionCheckOn.IncidentEpisodeState]: undefined,
2056
+ [NotificationRuleConditionCheckOn.IncidentEpisodeLabels]: undefined,
2034
2057
  };
2035
2058
  }
2036
2059
 
@@ -2119,6 +2142,12 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
2119
2142
  [NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
2120
2143
  [NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
2121
2144
  [NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
2145
+ [NotificationRuleConditionCheckOn.IncidentEpisodeTitle]: undefined,
2146
+ [NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
2147
+ undefined,
2148
+ [NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]: undefined,
2149
+ [NotificationRuleConditionCheckOn.IncidentEpisodeState]: undefined,
2150
+ [NotificationRuleConditionCheckOn.IncidentEpisodeLabels]: undefined,
2122
2151
  };
2123
2152
  }
2124
2153
 
@@ -2185,6 +2214,12 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
2185
2214
  [NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
2186
2215
  [NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
2187
2216
  [NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
2217
+ [NotificationRuleConditionCheckOn.IncidentEpisodeTitle]: undefined,
2218
+ [NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
2219
+ undefined,
2220
+ [NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]: undefined,
2221
+ [NotificationRuleConditionCheckOn.IncidentEpisodeState]: undefined,
2222
+ [NotificationRuleConditionCheckOn.IncidentEpisodeLabels]: undefined,
2188
2223
  };
2189
2224
  }
2190
2225
 
@@ -2250,6 +2285,87 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
2250
2285
  [NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
2251
2286
  [NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
2252
2287
  [NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
2288
+ [NotificationRuleConditionCheckOn.IncidentEpisodeTitle]: undefined,
2289
+ [NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
2290
+ undefined,
2291
+ [NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]: undefined,
2292
+ [NotificationRuleConditionCheckOn.IncidentEpisodeState]: undefined,
2293
+ [NotificationRuleConditionCheckOn.IncidentEpisodeLabels]: undefined,
2294
+ };
2295
+ }
2296
+
2297
+ // Handle Incident Episode
2298
+ if (data.notificationFor.incidentEpisodeId) {
2299
+ logger.debug("Fetching incident episode details for ID:");
2300
+ logger.debug(data.notificationFor.incidentEpisodeId);
2301
+
2302
+ const incidentEpisode: IncidentEpisode | null =
2303
+ await IncidentEpisodeService.findOneById({
2304
+ id: data.notificationFor.incidentEpisodeId,
2305
+ select: {
2306
+ title: true,
2307
+ description: true,
2308
+ incidentSeverity: true,
2309
+ currentIncidentState: true,
2310
+ labels: true,
2311
+ },
2312
+ props: {
2313
+ isRoot: true,
2314
+ },
2315
+ });
2316
+
2317
+ if (!incidentEpisode) {
2318
+ logger.debug("Incident Episode not found for ID:");
2319
+ logger.debug(data.notificationFor.incidentEpisodeId);
2320
+ throw new BadDataException("Incident Episode ID not found");
2321
+ }
2322
+
2323
+ logger.debug("Incident Episode details retrieved:");
2324
+ logger.debug(incidentEpisode);
2325
+
2326
+ return {
2327
+ [NotificationRuleConditionCheckOn.MonitorName]: undefined,
2328
+ [NotificationRuleConditionCheckOn.IncidentTitle]: undefined,
2329
+ [NotificationRuleConditionCheckOn.IncidentDescription]: undefined,
2330
+ [NotificationRuleConditionCheckOn.IncidentSeverity]: undefined,
2331
+ [NotificationRuleConditionCheckOn.IncidentState]: undefined,
2332
+ [NotificationRuleConditionCheckOn.MonitorType]: undefined,
2333
+ [NotificationRuleConditionCheckOn.MonitorStatus]: undefined,
2334
+ [NotificationRuleConditionCheckOn.AlertTitle]: undefined,
2335
+ [NotificationRuleConditionCheckOn.AlertDescription]: undefined,
2336
+ [NotificationRuleConditionCheckOn.AlertSeverity]: undefined,
2337
+ [NotificationRuleConditionCheckOn.AlertState]: undefined,
2338
+ [NotificationRuleConditionCheckOn.ScheduledMaintenanceTitle]: undefined,
2339
+ [NotificationRuleConditionCheckOn.ScheduledMaintenanceDescription]:
2340
+ undefined,
2341
+ [NotificationRuleConditionCheckOn.ScheduledMaintenanceState]: undefined,
2342
+ [NotificationRuleConditionCheckOn.IncidentLabels]: undefined,
2343
+ [NotificationRuleConditionCheckOn.AlertLabels]: undefined,
2344
+ [NotificationRuleConditionCheckOn.MonitorLabels]: undefined,
2345
+ [NotificationRuleConditionCheckOn.ScheduledMaintenanceLabels]:
2346
+ undefined,
2347
+ [NotificationRuleConditionCheckOn.Monitors]: undefined,
2348
+ [NotificationRuleConditionCheckOn.OnCallDutyPolicyName]: undefined,
2349
+ [NotificationRuleConditionCheckOn.OnCallDutyPolicyDescription]:
2350
+ undefined,
2351
+ [NotificationRuleConditionCheckOn.OnCallDutyPolicyLabels]: undefined,
2352
+ [NotificationRuleConditionCheckOn.AlertEpisodeTitle]: undefined,
2353
+ [NotificationRuleConditionCheckOn.AlertEpisodeDescription]: undefined,
2354
+ [NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
2355
+ [NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
2356
+ [NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
2357
+ [NotificationRuleConditionCheckOn.IncidentEpisodeTitle]:
2358
+ incidentEpisode.title || "",
2359
+ [NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
2360
+ incidentEpisode.description || "",
2361
+ [NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]:
2362
+ incidentEpisode.incidentSeverity?._id?.toString() || "",
2363
+ [NotificationRuleConditionCheckOn.IncidentEpisodeState]:
2364
+ incidentEpisode.currentIncidentState?._id?.toString() || "",
2365
+ [NotificationRuleConditionCheckOn.IncidentEpisodeLabels]:
2366
+ incidentEpisode.labels?.map((label: Label) => {
2367
+ return label._id?.toString() || "";
2368
+ }) || [],
2253
2369
  };
2254
2370
  }
2255
2371
 
@@ -3,6 +3,7 @@ import Query from "../Query";
3
3
  import Select from "../Select";
4
4
  import BasePermission, { CheckPermissionBaseInterface } from "./BasePermission";
5
5
  import BaseModel from "../../../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
6
+ import Includes from "../../../../Types/BaseDatabase/Includes";
6
7
  import DatabaseCommonInteractionProps from "../../../../Types/BaseDatabase/DatabaseCommonInteractionProps";
7
8
  import BadDataException from "../../../../Types/Exception/BadDataException";
8
9
  import NotAuthorizedException from "../../../../Types/Exception/NotAuthorizedException";
@@ -61,6 +62,25 @@ export default class TenantPermission {
61
62
  projectIDs = props.userGlobalAccessPermission?.projectIds;
62
63
  }
63
64
 
65
+ /*
66
+ * Check if the query already has a filter on the tenant column (e.g., projectId filter)
67
+ * If so, only iterate through projects that match both the filter AND user's permissions
68
+ */
69
+ const existingTenantFilter: unknown = (query as any)[tenantColumn];
70
+ if (existingTenantFilter && existingTenantFilter instanceof Includes) {
71
+ const filterValues: Array<string> = (
72
+ existingTenantFilter as Includes
73
+ ).values.map((v: string | ObjectID | number) => {
74
+ return v.toString();
75
+ });
76
+ // Filter projectIDs to only include those that are in the filter
77
+ projectIDs = projectIDs.filter((pid: ObjectID) => {
78
+ return filterValues.includes(pid.toString());
79
+ });
80
+ // Remove the tenant filter from query since we're handling it via projectIDs iteration
81
+ delete (query as any)[tenantColumn];
82
+ }
83
+
64
84
  let lastException: Error | null = null;
65
85
 
66
86
  for (const projectId of projectIDs) {