@oneuptime/common 9.4.7 → 9.4.8

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 (304) hide show
  1. package/Models/DatabaseModels/Alert.ts +76 -0
  2. package/Models/DatabaseModels/AlertEpisode.ts +1201 -0
  3. package/Models/DatabaseModels/AlertEpisodeFeed.ts +529 -0
  4. package/Models/DatabaseModels/AlertEpisodeInternalNote.ts +455 -0
  5. package/Models/DatabaseModels/AlertEpisodeMember.ts +586 -0
  6. package/Models/DatabaseModels/AlertEpisodeOwnerTeam.ts +421 -0
  7. package/Models/DatabaseModels/AlertEpisodeOwnerUser.ts +419 -0
  8. package/Models/DatabaseModels/AlertEpisodeStateTimeline.ts +523 -0
  9. package/Models/DatabaseModels/AlertFeed.ts +1 -0
  10. package/Models/DatabaseModels/AlertGroupingRule.ts +1432 -0
  11. package/Models/DatabaseModels/Index.ts +18 -0
  12. package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +70 -0
  13. package/Models/DatabaseModels/StatusPageDomain.ts +2 -0
  14. package/Models/DatabaseModels/WorkspaceNotificationLog.ts +57 -0
  15. package/Server/API/SlackAPI.ts +21 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1768938069147-MigrationName.ts +751 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/1769125561322-MigrationName.ts +41 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1769170578688-MigrationName.ts +29 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1769172358833-MigrationName.ts +177 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1769176450526-MigrationName.ts +71 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1769190495840-MigrationName.ts +35 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1769199303656-MigrationName.ts +29 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1769202898645-MigrationName.ts +29 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1769428619414-MigrationName.ts +35 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1769428821686-MigrationName.ts +47 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +20 -0
  27. package/Server/Services/AlertEpisodeFeedService.ts +94 -0
  28. package/Server/Services/AlertEpisodeInternalNoteService.ts +71 -0
  29. package/Server/Services/AlertEpisodeMemberService.ts +267 -0
  30. package/Server/Services/AlertEpisodeOwnerTeamService.ts +10 -0
  31. package/Server/Services/AlertEpisodeOwnerUserService.ts +10 -0
  32. package/Server/Services/AlertEpisodeService.ts +988 -0
  33. package/Server/Services/AlertEpisodeStateTimelineService.ts +557 -0
  34. package/Server/Services/AlertGroupingEngineService.ts +1120 -0
  35. package/Server/Services/AlertGroupingRuleService.ts +14 -0
  36. package/Server/Services/AlertService.ts +12 -0
  37. package/Server/Services/CallService.ts +2 -0
  38. package/Server/Services/Index.ts +21 -0
  39. package/Server/Services/MailService.ts +5 -0
  40. package/Server/Services/OnCallDutyPolicyService.ts +5 -0
  41. package/Server/Services/SmsService.ts +2 -0
  42. package/Server/Services/UserNotificationSettingService.ts +23 -0
  43. package/Server/Services/WhatsAppService.ts +5 -0
  44. package/Server/Services/WorkspaceNotificationRuleService.ts +26 -0
  45. package/Server/Utils/AnalyticsDatabase/Statement.ts +6 -2
  46. package/Server/Utils/WhatsAppTemplateUtil.ts +13 -0
  47. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.ts +18 -0
  48. package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +689 -0
  49. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +16 -0
  50. package/Server/Utils/Workspace/Slack/Actions/ActionTypes.ts +11 -0
  51. package/Server/Utils/Workspace/Slack/Actions/AlertEpisode.ts +915 -0
  52. package/Server/Utils/Workspace/Slack/Messages/AlertEpisode.ts +120 -0
  53. package/Server/Utils/Workspace/WorkspaceMessages/AlertEpisode.ts +74 -0
  54. package/Tests/Server/Services/AlertEpisodeMemberService.test.ts +200 -0
  55. package/Tests/Server/Services/AlertEpisodeService.test.ts +240 -0
  56. package/Tests/Server/Services/AlertGroupingEngineService.test.ts +542 -0
  57. package/Tests/Server/Services/AlertGroupingRuleService.test.ts +383 -0
  58. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +1 -1
  59. package/Tests/UI/Components/Input.test.tsx +1 -1
  60. package/Tests/UI/Components/TextArea.test.tsx +2 -2
  61. package/Types/BaseDatabase/SortOrder.ts +9 -0
  62. package/Types/Email/EmailTemplateType.ts +5 -0
  63. package/Types/NotificationRule/NotificationRuleType.ts +1 -0
  64. package/Types/NotificationSetting/NotificationSettingEventType.ts +7 -0
  65. package/Types/Permission.ts +309 -0
  66. package/Types/UserNotification/UserNotificationEventType.ts +1 -0
  67. package/Types/WhatsApp/WhatsAppTemplates.ts +20 -0
  68. package/Types/Workspace/NotificationRules/EventType.ts +1 -0
  69. package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +32 -3
  70. package/UI/Components/Accordion/Accordion.tsx +20 -2
  71. package/UI/Components/Alerts/Alert.tsx +1 -0
  72. package/UI/Components/Button/Button.tsx +29 -0
  73. package/UI/Components/CardSelect/CardSelect.tsx +5 -1
  74. package/UI/Components/Checkbox/Checkbox.tsx +7 -3
  75. package/UI/Components/ColorCircle/ColorCircle.tsx +2 -0
  76. package/UI/Components/ColorViewer/ColorViewer.tsx +19 -3
  77. package/UI/Components/CopyableButton/CopyableButton.tsx +22 -5
  78. package/UI/Components/Detail/Detail.tsx +1 -1
  79. package/UI/Components/Dropdown/Dropdown.tsx +14 -1
  80. package/UI/Components/Forms/Fields/FormField.tsx +28 -0
  81. package/UI/Components/FullPageModal/FullPageModal.tsx +35 -4
  82. package/UI/Components/Input/Input.tsx +14 -2
  83. package/UI/Components/Link/Link.tsx +1 -0
  84. package/UI/Components/Loader/Loader.tsx +8 -2
  85. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +76 -1
  86. package/UI/Components/Modal/Modal.tsx +47 -3
  87. package/UI/Components/ModelTable/BaseModelTable.tsx +42 -1
  88. package/UI/Components/MoreMenu/MoreMenu.tsx +84 -2
  89. package/UI/Components/OrderedStatesList/OrderedStatesList.tsx +30 -8
  90. package/UI/Components/Pagination/Pagination.tsx +113 -8
  91. package/UI/Components/ProgressBar/ProgressBar.tsx +12 -2
  92. package/UI/Components/Radio/Radio.tsx +21 -3
  93. package/UI/Components/SideMenu/CountModelSideMenuItem.tsx +54 -27
  94. package/UI/Components/StatusBubble/StatusBubble.tsx +7 -2
  95. package/UI/Components/Table/TableHeader.tsx +20 -3
  96. package/UI/Components/Tabs/Tab.tsx +16 -1
  97. package/UI/Components/Tabs/Tabs.tsx +12 -1
  98. package/UI/Components/TextArea/TextArea.tsx +12 -2
  99. package/UI/Components/Toggle/Toggle.tsx +14 -3
  100. package/UI/Components/Tooltip/Tooltip.tsx +11 -1
  101. package/UI/Components/TopAlert/TopAlert.tsx +2 -0
  102. package/build/dist/Models/DatabaseModels/Alert.js +77 -0
  103. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  104. package/build/dist/Models/DatabaseModels/AlertEpisode.js +1225 -0
  105. package/build/dist/Models/DatabaseModels/AlertEpisode.js.map +1 -0
  106. package/build/dist/Models/DatabaseModels/AlertEpisodeFeed.js +553 -0
  107. package/build/dist/Models/DatabaseModels/AlertEpisodeFeed.js.map +1 -0
  108. package/build/dist/Models/DatabaseModels/AlertEpisodeInternalNote.js +467 -0
  109. package/build/dist/Models/DatabaseModels/AlertEpisodeInternalNote.js.map +1 -0
  110. package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js +607 -0
  111. package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js.map +1 -0
  112. package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerTeam.js +437 -0
  113. package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerTeam.js.map +1 -0
  114. package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerUser.js +436 -0
  115. package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerUser.js.map +1 -0
  116. package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js +546 -0
  117. package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js.map +1 -0
  118. package/build/dist/Models/DatabaseModels/AlertFeed.js +1 -0
  119. package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
  120. package/build/dist/Models/DatabaseModels/AlertGroupingRule.js +1437 -0
  121. package/build/dist/Models/DatabaseModels/AlertGroupingRule.js.map +1 -0
  122. package/build/dist/Models/DatabaseModels/Index.js +16 -0
  123. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  124. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +69 -0
  125. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
  126. package/build/dist/Models/DatabaseModels/StatusPageDomain.js +2 -0
  127. package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
  128. package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js +58 -0
  129. package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js.map +1 -1
  130. package/build/dist/Server/API/SlackAPI.js +18 -0
  131. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  132. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768938069147-MigrationName.js +266 -0
  133. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1768938069147-MigrationName.js.map +1 -0
  134. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769125561322-MigrationName.js +20 -0
  135. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769125561322-MigrationName.js.map +1 -0
  136. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769170578688-MigrationName.js +16 -0
  137. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769170578688-MigrationName.js.map +1 -0
  138. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769172358833-MigrationName.js +68 -0
  139. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769172358833-MigrationName.js.map +1 -0
  140. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769176450526-MigrationName.js +30 -0
  141. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769176450526-MigrationName.js.map +1 -0
  142. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769190495840-MigrationName.js +18 -0
  143. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769190495840-MigrationName.js.map +1 -0
  144. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769199303656-MigrationName.js +16 -0
  145. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769199303656-MigrationName.js.map +1 -0
  146. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769202898645-MigrationName.js +16 -0
  147. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769202898645-MigrationName.js.map +1 -0
  148. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769428619414-MigrationName.js +18 -0
  149. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769428619414-MigrationName.js.map +1 -0
  150. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769428821686-MigrationName.js +22 -0
  151. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769428821686-MigrationName.js.map +1 -0
  152. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +20 -0
  153. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  154. package/build/dist/Server/Services/AlertEpisodeFeedService.js +83 -0
  155. package/build/dist/Server/Services/AlertEpisodeFeedService.js.map +1 -0
  156. package/build/dist/Server/Services/AlertEpisodeInternalNoteService.js +70 -0
  157. package/build/dist/Server/Services/AlertEpisodeInternalNoteService.js.map +1 -0
  158. package/build/dist/Server/Services/AlertEpisodeMemberService.js +256 -0
  159. package/build/dist/Server/Services/AlertEpisodeMemberService.js.map +1 -0
  160. package/build/dist/Server/Services/AlertEpisodeOwnerTeamService.js +9 -0
  161. package/build/dist/Server/Services/AlertEpisodeOwnerTeamService.js.map +1 -0
  162. package/build/dist/Server/Services/AlertEpisodeOwnerUserService.js +9 -0
  163. package/build/dist/Server/Services/AlertEpisodeOwnerUserService.js.map +1 -0
  164. package/build/dist/Server/Services/AlertEpisodeService.js +885 -0
  165. package/build/dist/Server/Services/AlertEpisodeService.js.map +1 -0
  166. package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js +494 -0
  167. package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js.map +1 -0
  168. package/build/dist/Server/Services/AlertGroupingEngineService.js +893 -0
  169. package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -0
  170. package/build/dist/Server/Services/AlertGroupingRuleService.js +13 -0
  171. package/build/dist/Server/Services/AlertGroupingRuleService.js.map +1 -0
  172. package/build/dist/Server/Services/AlertService.js +11 -0
  173. package/build/dist/Server/Services/AlertService.js.map +1 -1
  174. package/build/dist/Server/Services/CallService.js +11 -10
  175. package/build/dist/Server/Services/CallService.js.map +1 -1
  176. package/build/dist/Server/Services/Index.js +18 -0
  177. package/build/dist/Server/Services/Index.js.map +1 -1
  178. package/build/dist/Server/Services/MailService.js +3 -0
  179. package/build/dist/Server/Services/MailService.js.map +1 -1
  180. package/build/dist/Server/Services/OnCallDutyPolicyService.js +3 -0
  181. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  182. package/build/dist/Server/Services/SmsService.js +11 -10
  183. package/build/dist/Server/Services/SmsService.js.map +1 -1
  184. package/build/dist/Server/Services/UserNotificationSettingService.js +9 -0
  185. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  186. package/build/dist/Server/Services/WhatsAppService.js +3 -0
  187. package/build/dist/Server/Services/WhatsAppService.js.map +1 -1
  188. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +25 -0
  189. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  190. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +4 -2
  191. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
  192. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +8 -0
  193. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
  194. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js +17 -0
  195. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js.map +1 -1
  196. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +545 -0
  197. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -0
  198. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +13 -0
  199. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  200. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js +10 -0
  201. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js.map +1 -1
  202. package/build/dist/Server/Utils/Workspace/Slack/Actions/AlertEpisode.js +651 -0
  203. package/build/dist/Server/Utils/Workspace/Slack/Actions/AlertEpisode.js.map +1 -0
  204. package/build/dist/Server/Utils/Workspace/Slack/Messages/AlertEpisode.js +100 -0
  205. package/build/dist/Server/Utils/Workspace/Slack/Messages/AlertEpisode.js.map +1 -0
  206. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/AlertEpisode.js +70 -0
  207. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/AlertEpisode.js.map +1 -0
  208. package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js +165 -0
  209. package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js.map +1 -0
  210. package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js +193 -0
  211. package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js.map +1 -0
  212. package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js +412 -0
  213. package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js.map +1 -0
  214. package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js +308 -0
  215. package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js.map +1 -0
  216. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js +1 -1
  217. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js.map +1 -1
  218. package/build/dist/Tests/UI/Components/Input.test.js +1 -1
  219. package/build/dist/Tests/UI/Components/Input.test.js.map +1 -1
  220. package/build/dist/Tests/UI/Components/TextArea.test.js +2 -2
  221. package/build/dist/Tests/UI/Components/TextArea.test.js.map +1 -1
  222. package/build/dist/Types/BaseDatabase/SortOrder.js +5 -0
  223. package/build/dist/Types/BaseDatabase/SortOrder.js.map +1 -1
  224. package/build/dist/Types/Email/EmailTemplateType.js +4 -0
  225. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  226. package/build/dist/Types/NotificationRule/NotificationRuleType.js +1 -0
  227. package/build/dist/Types/NotificationRule/NotificationRuleType.js.map +1 -1
  228. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +5 -0
  229. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  230. package/build/dist/Types/Permission.js +264 -0
  231. package/build/dist/Types/Permission.js.map +1 -1
  232. package/build/dist/Types/UserNotification/UserNotificationEventType.js +1 -0
  233. package/build/dist/Types/UserNotification/UserNotificationEventType.js.map +1 -1
  234. package/build/dist/Types/WhatsApp/WhatsAppTemplates.js +12 -0
  235. package/build/dist/Types/WhatsApp/WhatsAppTemplates.js.map +1 -1
  236. package/build/dist/Types/Workspace/NotificationRules/EventType.js +1 -0
  237. package/build/dist/Types/Workspace/NotificationRules/EventType.js.map +1 -1
  238. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +28 -3
  239. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
  240. package/build/dist/UI/Components/Accordion/Accordion.js +10 -3
  241. package/build/dist/UI/Components/Accordion/Accordion.js.map +1 -1
  242. package/build/dist/UI/Components/Alerts/Alert.js +1 -1
  243. package/build/dist/UI/Components/Alerts/Alert.js.map +1 -1
  244. package/build/dist/UI/Components/Button/Button.js +8 -2
  245. package/build/dist/UI/Components/Button/Button.js.map +1 -1
  246. package/build/dist/UI/Components/CardSelect/CardSelect.js +1 -1
  247. package/build/dist/UI/Components/CardSelect/CardSelect.js.map +1 -1
  248. package/build/dist/UI/Components/Checkbox/Checkbox.js +2 -2
  249. package/build/dist/UI/Components/Checkbox/Checkbox.js.map +1 -1
  250. package/build/dist/UI/Components/ColorCircle/ColorCircle.js +1 -1
  251. package/build/dist/UI/Components/ColorCircle/ColorCircle.js.map +1 -1
  252. package/build/dist/UI/Components/ColorViewer/ColorViewer.js +12 -3
  253. package/build/dist/UI/Components/ColorViewer/ColorViewer.js.map +1 -1
  254. package/build/dist/UI/Components/CopyableButton/CopyableButton.js +12 -5
  255. package/build/dist/UI/Components/CopyableButton/CopyableButton.js.map +1 -1
  256. package/build/dist/UI/Components/Detail/Detail.js +1 -1
  257. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  258. package/build/dist/UI/Components/Dropdown/Dropdown.js +5 -3
  259. package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
  260. package/build/dist/UI/Components/Forms/Fields/FormField.js +19 -1
  261. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  262. package/build/dist/UI/Components/FullPageModal/FullPageModal.js +24 -5
  263. package/build/dist/UI/Components/FullPageModal/FullPageModal.js.map +1 -1
  264. package/build/dist/UI/Components/Input/Input.js +3 -3
  265. package/build/dist/UI/Components/Input/Input.js.map +1 -1
  266. package/build/dist/UI/Components/Link/Link.js +1 -1
  267. package/build/dist/UI/Components/Link/Link.js.map +1 -1
  268. package/build/dist/UI/Components/Loader/Loader.js +6 -4
  269. package/build/dist/UI/Components/Loader/Loader.js.map +1 -1
  270. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +56 -3
  271. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  272. package/build/dist/UI/Components/Modal/Modal.js +28 -3
  273. package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
  274. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +23 -1
  275. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  276. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +67 -6
  277. package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
  278. package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js +14 -3
  279. package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js.map +1 -1
  280. package/build/dist/UI/Components/Pagination/Pagination.js +69 -13
  281. package/build/dist/UI/Components/Pagination/Pagination.js.map +1 -1
  282. package/build/dist/UI/Components/ProgressBar/ProgressBar.js +2 -2
  283. package/build/dist/UI/Components/ProgressBar/ProgressBar.js.map +1 -1
  284. package/build/dist/UI/Components/Radio/Radio.js +8 -5
  285. package/build/dist/UI/Components/Radio/Radio.js.map +1 -1
  286. package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js +23 -4
  287. package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js.map +1 -1
  288. package/build/dist/UI/Components/StatusBubble/StatusBubble.js +2 -2
  289. package/build/dist/UI/Components/StatusBubble/StatusBubble.js.map +1 -1
  290. package/build/dist/UI/Components/Table/TableHeader.js +12 -4
  291. package/build/dist/UI/Components/Table/TableHeader.js.map +1 -1
  292. package/build/dist/UI/Components/Tabs/Tab.js +8 -1
  293. package/build/dist/UI/Components/Tabs/Tab.js.map +1 -1
  294. package/build/dist/UI/Components/Tabs/Tabs.js +4 -3
  295. package/build/dist/UI/Components/Tabs/Tabs.js.map +1 -1
  296. package/build/dist/UI/Components/TextArea/TextArea.js +3 -3
  297. package/build/dist/UI/Components/TextArea/TextArea.js.map +1 -1
  298. package/build/dist/UI/Components/Toggle/Toggle.js +7 -4
  299. package/build/dist/UI/Components/Toggle/Toggle.js.map +1 -1
  300. package/build/dist/UI/Components/Tooltip/Tooltip.js +4 -1
  301. package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
  302. package/build/dist/UI/Components/TopAlert/TopAlert.js +1 -1
  303. package/build/dist/UI/Components/TopAlert/TopAlert.js.map +1 -1
  304. package/package.json +2 -1
@@ -0,0 +1,1437 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import AlertSeverity from "./AlertSeverity";
11
+ import Label from "./Label";
12
+ import Monitor from "./Monitor";
13
+ import OnCallDutyPolicy from "./OnCallDutyPolicy";
14
+ import Project from "./Project";
15
+ import Team from "./Team";
16
+ import User from "./User";
17
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
18
+ import Route from "../../Types/API/Route";
19
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
20
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
21
+ import ColumnLength from "../../Types/Database/ColumnLength";
22
+ import ColumnType from "../../Types/Database/ColumnType";
23
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
24
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
25
+ import EnableWorkflow from "../../Types/Database/EnableWorkflow";
26
+ import TableColumn from "../../Types/Database/TableColumn";
27
+ import TableColumnType from "../../Types/Database/TableColumnType";
28
+ import TableMetadata from "../../Types/Database/TableMetadata";
29
+ import TenantColumn from "../../Types/Database/TenantColumn";
30
+ import IconProp from "../../Types/Icon/IconProp";
31
+ import ObjectID from "../../Types/ObjectID";
32
+ import Permission from "../../Types/Permission";
33
+ import { Column, Entity, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, } from "typeorm";
34
+ let AlertGroupingRule = class AlertGroupingRule extends BaseModel {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.project = undefined;
38
+ this.projectId = undefined;
39
+ this.name = undefined;
40
+ this.description = undefined;
41
+ this.priority = undefined;
42
+ this.isEnabled = undefined;
43
+ this.matchCriteria = undefined;
44
+ // Match Criteria Fields (individual columns for form support)
45
+ this.monitors = undefined;
46
+ this.alertSeverities = undefined;
47
+ this.alertLabels = undefined;
48
+ this.monitorLabels = undefined;
49
+ this.alertTitlePattern = undefined;
50
+ this.alertDescriptionPattern = undefined;
51
+ this.monitorNamePattern = undefined;
52
+ this.monitorDescriptionPattern = undefined;
53
+ // Group By Fields (how to group matching alerts)
54
+ this.groupByMonitor = undefined;
55
+ this.groupBySeverity = undefined;
56
+ this.groupByAlertTitle = undefined;
57
+ this.groupByService = undefined;
58
+ this.enableTimeWindow = undefined;
59
+ this.timeWindowMinutes = undefined;
60
+ this.groupByFields = undefined;
61
+ this.episodeTitleTemplate = undefined;
62
+ this.episodeDescriptionTemplate = undefined;
63
+ this.enableResolveDelay = undefined;
64
+ this.resolveDelayMinutes = undefined;
65
+ this.enableReopenWindow = undefined;
66
+ this.reopenWindowMinutes = undefined;
67
+ this.enableInactivityTimeout = undefined;
68
+ this.inactivityTimeoutMinutes = undefined;
69
+ this.onCallDutyPolicies = undefined;
70
+ this.defaultAssignToUser = undefined;
71
+ this.defaultAssignToUserId = undefined;
72
+ this.defaultAssignToTeam = undefined;
73
+ this.defaultAssignToTeamId = undefined;
74
+ this.createdByUser = undefined;
75
+ this.createdByUserId = undefined;
76
+ this.deletedByUser = undefined;
77
+ this.deletedByUserId = undefined;
78
+ }
79
+ };
80
+ __decorate([
81
+ ColumnAccessControl({
82
+ create: [
83
+ Permission.ProjectOwner,
84
+ Permission.ProjectAdmin,
85
+ Permission.CreateAlertGroupingRule,
86
+ ],
87
+ read: [
88
+ Permission.ProjectOwner,
89
+ Permission.ProjectAdmin,
90
+ Permission.ProjectMember,
91
+ Permission.ReadAlertGroupingRule,
92
+ ],
93
+ update: [],
94
+ }),
95
+ TableColumn({
96
+ manyToOneRelationColumn: "projectId",
97
+ type: TableColumnType.Entity,
98
+ modelType: Project,
99
+ title: "Project",
100
+ description: "Relation to Project Resource in which this object belongs",
101
+ }),
102
+ ManyToOne(() => {
103
+ return Project;
104
+ }, {
105
+ eager: false,
106
+ nullable: true,
107
+ onDelete: "CASCADE",
108
+ orphanedRowAction: "nullify",
109
+ }),
110
+ JoinColumn({ name: "projectId" }),
111
+ __metadata("design:type", Project)
112
+ ], AlertGroupingRule.prototype, "project", void 0);
113
+ __decorate([
114
+ ColumnAccessControl({
115
+ create: [
116
+ Permission.ProjectOwner,
117
+ Permission.ProjectAdmin,
118
+ Permission.CreateAlertGroupingRule,
119
+ ],
120
+ read: [
121
+ Permission.ProjectOwner,
122
+ Permission.ProjectAdmin,
123
+ Permission.ProjectMember,
124
+ Permission.ReadAlertGroupingRule,
125
+ ],
126
+ update: [],
127
+ }),
128
+ Index(),
129
+ TableColumn({
130
+ type: TableColumnType.ObjectID,
131
+ required: true,
132
+ canReadOnRelationQuery: true,
133
+ title: "Project ID",
134
+ description: "ID of your OneUptime Project in which this object belongs",
135
+ }),
136
+ Column({
137
+ type: ColumnType.ObjectID,
138
+ nullable: false,
139
+ transformer: ObjectID.getDatabaseTransformer(),
140
+ }),
141
+ __metadata("design:type", ObjectID)
142
+ ], AlertGroupingRule.prototype, "projectId", void 0);
143
+ __decorate([
144
+ ColumnAccessControl({
145
+ create: [
146
+ Permission.ProjectOwner,
147
+ Permission.ProjectAdmin,
148
+ Permission.CreateAlertGroupingRule,
149
+ ],
150
+ read: [
151
+ Permission.ProjectOwner,
152
+ Permission.ProjectAdmin,
153
+ Permission.ProjectMember,
154
+ Permission.ReadAlertGroupingRule,
155
+ ],
156
+ update: [
157
+ Permission.ProjectOwner,
158
+ Permission.ProjectAdmin,
159
+ Permission.EditAlertGroupingRule,
160
+ ],
161
+ }),
162
+ Index(),
163
+ TableColumn({
164
+ required: true,
165
+ type: TableColumnType.ShortText,
166
+ canReadOnRelationQuery: true,
167
+ title: "Name",
168
+ description: "Name of this alert grouping rule",
169
+ }),
170
+ Column({
171
+ nullable: false,
172
+ type: ColumnType.ShortText,
173
+ length: ColumnLength.ShortText,
174
+ }),
175
+ __metadata("design:type", String)
176
+ ], AlertGroupingRule.prototype, "name", void 0);
177
+ __decorate([
178
+ ColumnAccessControl({
179
+ create: [
180
+ Permission.ProjectOwner,
181
+ Permission.ProjectAdmin,
182
+ Permission.CreateAlertGroupingRule,
183
+ ],
184
+ read: [
185
+ Permission.ProjectOwner,
186
+ Permission.ProjectAdmin,
187
+ Permission.ProjectMember,
188
+ Permission.ReadAlertGroupingRule,
189
+ ],
190
+ update: [
191
+ Permission.ProjectOwner,
192
+ Permission.ProjectAdmin,
193
+ Permission.EditAlertGroupingRule,
194
+ ],
195
+ }),
196
+ TableColumn({
197
+ required: false,
198
+ type: TableColumnType.LongText,
199
+ title: "Description",
200
+ description: "Description of this alert grouping rule",
201
+ }),
202
+ Column({
203
+ nullable: true,
204
+ type: ColumnType.LongText,
205
+ length: ColumnLength.LongText,
206
+ }),
207
+ __metadata("design:type", String)
208
+ ], AlertGroupingRule.prototype, "description", void 0);
209
+ __decorate([
210
+ ColumnAccessControl({
211
+ create: [
212
+ Permission.ProjectOwner,
213
+ Permission.ProjectAdmin,
214
+ Permission.CreateAlertGroupingRule,
215
+ ],
216
+ read: [
217
+ Permission.ProjectOwner,
218
+ Permission.ProjectAdmin,
219
+ Permission.ProjectMember,
220
+ Permission.ReadAlertGroupingRule,
221
+ ],
222
+ update: [
223
+ Permission.ProjectOwner,
224
+ Permission.ProjectAdmin,
225
+ Permission.EditAlertGroupingRule,
226
+ ],
227
+ }),
228
+ Index(),
229
+ TableColumn({
230
+ required: true,
231
+ type: TableColumnType.Number,
232
+ title: "Priority",
233
+ description: "Priority of this rule. Lower number = higher priority. Rules are evaluated in priority order.",
234
+ defaultValue: 1,
235
+ isDefaultValueColumn: true,
236
+ }),
237
+ Column({
238
+ type: ColumnType.Number,
239
+ nullable: false,
240
+ default: 1,
241
+ }),
242
+ __metadata("design:type", Number)
243
+ ], AlertGroupingRule.prototype, "priority", void 0);
244
+ __decorate([
245
+ ColumnAccessControl({
246
+ create: [
247
+ Permission.ProjectOwner,
248
+ Permission.ProjectAdmin,
249
+ Permission.CreateAlertGroupingRule,
250
+ ],
251
+ read: [
252
+ Permission.ProjectOwner,
253
+ Permission.ProjectAdmin,
254
+ Permission.ProjectMember,
255
+ Permission.ReadAlertGroupingRule,
256
+ ],
257
+ update: [
258
+ Permission.ProjectOwner,
259
+ Permission.ProjectAdmin,
260
+ Permission.EditAlertGroupingRule,
261
+ ],
262
+ }),
263
+ Index(),
264
+ TableColumn({
265
+ required: true,
266
+ type: TableColumnType.Boolean,
267
+ title: "Is Enabled",
268
+ description: "Whether this rule is enabled",
269
+ defaultValue: true,
270
+ isDefaultValueColumn: true,
271
+ }),
272
+ Column({
273
+ type: ColumnType.Boolean,
274
+ nullable: false,
275
+ default: true,
276
+ }),
277
+ __metadata("design:type", Boolean)
278
+ ], AlertGroupingRule.prototype, "isEnabled", void 0);
279
+ __decorate([
280
+ ColumnAccessControl({
281
+ create: [
282
+ Permission.ProjectOwner,
283
+ Permission.ProjectAdmin,
284
+ Permission.CreateAlertGroupingRule,
285
+ ],
286
+ read: [
287
+ Permission.ProjectOwner,
288
+ Permission.ProjectAdmin,
289
+ Permission.ProjectMember,
290
+ Permission.ReadAlertGroupingRule,
291
+ ],
292
+ update: [
293
+ Permission.ProjectOwner,
294
+ Permission.ProjectAdmin,
295
+ Permission.EditAlertGroupingRule,
296
+ ],
297
+ }),
298
+ TableColumn({
299
+ required: false,
300
+ type: TableColumnType.JSON,
301
+ title: "Match Criteria",
302
+ description: "JSON object defining the criteria for matching alerts to this rule",
303
+ }),
304
+ Column({
305
+ type: ColumnType.JSON,
306
+ nullable: true,
307
+ }),
308
+ __metadata("design:type", Object)
309
+ ], AlertGroupingRule.prototype, "matchCriteria", void 0);
310
+ __decorate([
311
+ ColumnAccessControl({
312
+ create: [
313
+ Permission.ProjectOwner,
314
+ Permission.ProjectAdmin,
315
+ Permission.CreateAlertGroupingRule,
316
+ ],
317
+ read: [
318
+ Permission.ProjectOwner,
319
+ Permission.ProjectAdmin,
320
+ Permission.ProjectMember,
321
+ Permission.ReadAlertGroupingRule,
322
+ ],
323
+ update: [
324
+ Permission.ProjectOwner,
325
+ Permission.ProjectAdmin,
326
+ Permission.EditAlertGroupingRule,
327
+ ],
328
+ }),
329
+ TableColumn({
330
+ required: false,
331
+ type: TableColumnType.EntityArray,
332
+ modelType: Monitor,
333
+ title: "Monitors",
334
+ description: "Only group alerts from these monitors. Leave empty to match alerts from any monitor.",
335
+ }),
336
+ ManyToMany(() => {
337
+ return Monitor;
338
+ }, { eager: false }),
339
+ JoinTable({
340
+ name: "AlertGroupingRuleMonitor",
341
+ inverseJoinColumn: {
342
+ name: "monitorId",
343
+ referencedColumnName: "_id",
344
+ },
345
+ joinColumn: {
346
+ name: "alertGroupingRuleId",
347
+ referencedColumnName: "_id",
348
+ },
349
+ }),
350
+ __metadata("design:type", Array)
351
+ ], AlertGroupingRule.prototype, "monitors", void 0);
352
+ __decorate([
353
+ ColumnAccessControl({
354
+ create: [
355
+ Permission.ProjectOwner,
356
+ Permission.ProjectAdmin,
357
+ Permission.CreateAlertGroupingRule,
358
+ ],
359
+ read: [
360
+ Permission.ProjectOwner,
361
+ Permission.ProjectAdmin,
362
+ Permission.ProjectMember,
363
+ Permission.ReadAlertGroupingRule,
364
+ ],
365
+ update: [
366
+ Permission.ProjectOwner,
367
+ Permission.ProjectAdmin,
368
+ Permission.EditAlertGroupingRule,
369
+ ],
370
+ }),
371
+ TableColumn({
372
+ required: false,
373
+ type: TableColumnType.EntityArray,
374
+ modelType: AlertSeverity,
375
+ title: "Alert Severities",
376
+ description: "Only group alerts with these severities. Leave empty to match alerts of any severity.",
377
+ }),
378
+ ManyToMany(() => {
379
+ return AlertSeverity;
380
+ }, { eager: false }),
381
+ JoinTable({
382
+ name: "AlertGroupingRuleAlertSeverity",
383
+ inverseJoinColumn: {
384
+ name: "alertSeverityId",
385
+ referencedColumnName: "_id",
386
+ },
387
+ joinColumn: {
388
+ name: "alertGroupingRuleId",
389
+ referencedColumnName: "_id",
390
+ },
391
+ }),
392
+ __metadata("design:type", Array)
393
+ ], AlertGroupingRule.prototype, "alertSeverities", void 0);
394
+ __decorate([
395
+ ColumnAccessControl({
396
+ create: [
397
+ Permission.ProjectOwner,
398
+ Permission.ProjectAdmin,
399
+ Permission.CreateAlertGroupingRule,
400
+ ],
401
+ read: [
402
+ Permission.ProjectOwner,
403
+ Permission.ProjectAdmin,
404
+ Permission.ProjectMember,
405
+ Permission.ReadAlertGroupingRule,
406
+ ],
407
+ update: [
408
+ Permission.ProjectOwner,
409
+ Permission.ProjectAdmin,
410
+ Permission.EditAlertGroupingRule,
411
+ ],
412
+ }),
413
+ TableColumn({
414
+ required: false,
415
+ type: TableColumnType.EntityArray,
416
+ modelType: Label,
417
+ title: "Alert Labels",
418
+ description: "Only group alerts that have at least one of these labels. Leave empty to match alerts regardless of alert labels.",
419
+ }),
420
+ ManyToMany(() => {
421
+ return Label;
422
+ }, { eager: false }),
423
+ JoinTable({
424
+ name: "AlertGroupingRuleAlertLabel",
425
+ inverseJoinColumn: {
426
+ name: "labelId",
427
+ referencedColumnName: "_id",
428
+ },
429
+ joinColumn: {
430
+ name: "alertGroupingRuleId",
431
+ referencedColumnName: "_id",
432
+ },
433
+ }),
434
+ __metadata("design:type", Array)
435
+ ], AlertGroupingRule.prototype, "alertLabels", void 0);
436
+ __decorate([
437
+ ColumnAccessControl({
438
+ create: [
439
+ Permission.ProjectOwner,
440
+ Permission.ProjectAdmin,
441
+ Permission.CreateAlertGroupingRule,
442
+ ],
443
+ read: [
444
+ Permission.ProjectOwner,
445
+ Permission.ProjectAdmin,
446
+ Permission.ProjectMember,
447
+ Permission.ReadAlertGroupingRule,
448
+ ],
449
+ update: [
450
+ Permission.ProjectOwner,
451
+ Permission.ProjectAdmin,
452
+ Permission.EditAlertGroupingRule,
453
+ ],
454
+ }),
455
+ TableColumn({
456
+ required: false,
457
+ type: TableColumnType.EntityArray,
458
+ modelType: Label,
459
+ title: "Monitor Labels",
460
+ description: "Only group alerts from monitors that have at least one of these labels. Leave empty to match alerts regardless of monitor labels.",
461
+ }),
462
+ ManyToMany(() => {
463
+ return Label;
464
+ }, { eager: false }),
465
+ JoinTable({
466
+ name: "AlertGroupingRuleMonitorLabel",
467
+ inverseJoinColumn: {
468
+ name: "labelId",
469
+ referencedColumnName: "_id",
470
+ },
471
+ joinColumn: {
472
+ name: "alertGroupingRuleId",
473
+ referencedColumnName: "_id",
474
+ },
475
+ }),
476
+ __metadata("design:type", Array)
477
+ ], AlertGroupingRule.prototype, "monitorLabels", void 0);
478
+ __decorate([
479
+ ColumnAccessControl({
480
+ create: [
481
+ Permission.ProjectOwner,
482
+ Permission.ProjectAdmin,
483
+ Permission.CreateAlertGroupingRule,
484
+ ],
485
+ read: [
486
+ Permission.ProjectOwner,
487
+ Permission.ProjectAdmin,
488
+ Permission.ProjectMember,
489
+ Permission.ReadAlertGroupingRule,
490
+ ],
491
+ update: [
492
+ Permission.ProjectOwner,
493
+ Permission.ProjectAdmin,
494
+ Permission.EditAlertGroupingRule,
495
+ ],
496
+ }),
497
+ TableColumn({
498
+ required: false,
499
+ type: TableColumnType.LongText,
500
+ title: "Alert Title Pattern",
501
+ description: "Regular expression pattern to match alert titles. Leave empty to match any title. Example: 'CPU.*high' matches titles containing 'CPU' followed by 'high'.",
502
+ }),
503
+ Column({
504
+ type: ColumnType.LongText,
505
+ nullable: true,
506
+ length: ColumnLength.LongText,
507
+ }),
508
+ __metadata("design:type", String)
509
+ ], AlertGroupingRule.prototype, "alertTitlePattern", void 0);
510
+ __decorate([
511
+ ColumnAccessControl({
512
+ create: [
513
+ Permission.ProjectOwner,
514
+ Permission.ProjectAdmin,
515
+ Permission.CreateAlertGroupingRule,
516
+ ],
517
+ read: [
518
+ Permission.ProjectOwner,
519
+ Permission.ProjectAdmin,
520
+ Permission.ProjectMember,
521
+ Permission.ReadAlertGroupingRule,
522
+ ],
523
+ update: [
524
+ Permission.ProjectOwner,
525
+ Permission.ProjectAdmin,
526
+ Permission.EditAlertGroupingRule,
527
+ ],
528
+ }),
529
+ TableColumn({
530
+ required: false,
531
+ type: TableColumnType.LongText,
532
+ title: "Alert Description Pattern",
533
+ description: "Regular expression pattern to match alert descriptions. Leave empty to match any description.",
534
+ }),
535
+ Column({
536
+ type: ColumnType.LongText,
537
+ nullable: true,
538
+ length: ColumnLength.LongText,
539
+ }),
540
+ __metadata("design:type", String)
541
+ ], AlertGroupingRule.prototype, "alertDescriptionPattern", void 0);
542
+ __decorate([
543
+ ColumnAccessControl({
544
+ create: [
545
+ Permission.ProjectOwner,
546
+ Permission.ProjectAdmin,
547
+ Permission.CreateAlertGroupingRule,
548
+ ],
549
+ read: [
550
+ Permission.ProjectOwner,
551
+ Permission.ProjectAdmin,
552
+ Permission.ProjectMember,
553
+ Permission.ReadAlertGroupingRule,
554
+ ],
555
+ update: [
556
+ Permission.ProjectOwner,
557
+ Permission.ProjectAdmin,
558
+ Permission.EditAlertGroupingRule,
559
+ ],
560
+ }),
561
+ TableColumn({
562
+ required: false,
563
+ type: TableColumnType.LongText,
564
+ title: "Monitor Name Pattern",
565
+ description: "Regular expression pattern to match monitor names. Leave empty to match any monitor name. Example: 'prod-.*' matches monitors starting with 'prod-'.",
566
+ }),
567
+ Column({
568
+ type: ColumnType.LongText,
569
+ nullable: true,
570
+ length: ColumnLength.LongText,
571
+ }),
572
+ __metadata("design:type", String)
573
+ ], AlertGroupingRule.prototype, "monitorNamePattern", void 0);
574
+ __decorate([
575
+ ColumnAccessControl({
576
+ create: [
577
+ Permission.ProjectOwner,
578
+ Permission.ProjectAdmin,
579
+ Permission.CreateAlertGroupingRule,
580
+ ],
581
+ read: [
582
+ Permission.ProjectOwner,
583
+ Permission.ProjectAdmin,
584
+ Permission.ProjectMember,
585
+ Permission.ReadAlertGroupingRule,
586
+ ],
587
+ update: [
588
+ Permission.ProjectOwner,
589
+ Permission.ProjectAdmin,
590
+ Permission.EditAlertGroupingRule,
591
+ ],
592
+ }),
593
+ TableColumn({
594
+ required: false,
595
+ type: TableColumnType.LongText,
596
+ title: "Monitor Description Pattern",
597
+ description: "Regular expression pattern to match monitor descriptions. Leave empty to match any monitor description.",
598
+ }),
599
+ Column({
600
+ type: ColumnType.LongText,
601
+ nullable: true,
602
+ length: ColumnLength.LongText,
603
+ }),
604
+ __metadata("design:type", String)
605
+ ], AlertGroupingRule.prototype, "monitorDescriptionPattern", void 0);
606
+ __decorate([
607
+ ColumnAccessControl({
608
+ create: [
609
+ Permission.ProjectOwner,
610
+ Permission.ProjectAdmin,
611
+ Permission.CreateAlertGroupingRule,
612
+ ],
613
+ read: [
614
+ Permission.ProjectOwner,
615
+ Permission.ProjectAdmin,
616
+ Permission.ProjectMember,
617
+ Permission.ReadAlertGroupingRule,
618
+ ],
619
+ update: [
620
+ Permission.ProjectOwner,
621
+ Permission.ProjectAdmin,
622
+ Permission.EditAlertGroupingRule,
623
+ ],
624
+ }),
625
+ TableColumn({
626
+ required: false,
627
+ type: TableColumnType.Boolean,
628
+ title: "Group By Monitor",
629
+ description: "When enabled, alerts from different monitors will be grouped into separate episodes. When disabled, alerts from any monitor can be grouped together.",
630
+ defaultValue: true,
631
+ isDefaultValueColumn: true,
632
+ }),
633
+ Column({
634
+ type: ColumnType.Boolean,
635
+ nullable: false,
636
+ default: true,
637
+ }),
638
+ __metadata("design:type", Boolean)
639
+ ], AlertGroupingRule.prototype, "groupByMonitor", void 0);
640
+ __decorate([
641
+ ColumnAccessControl({
642
+ create: [
643
+ Permission.ProjectOwner,
644
+ Permission.ProjectAdmin,
645
+ Permission.CreateAlertGroupingRule,
646
+ ],
647
+ read: [
648
+ Permission.ProjectOwner,
649
+ Permission.ProjectAdmin,
650
+ Permission.ProjectMember,
651
+ Permission.ReadAlertGroupingRule,
652
+ ],
653
+ update: [
654
+ Permission.ProjectOwner,
655
+ Permission.ProjectAdmin,
656
+ Permission.EditAlertGroupingRule,
657
+ ],
658
+ }),
659
+ TableColumn({
660
+ required: false,
661
+ type: TableColumnType.Boolean,
662
+ title: "Group By Alert Severity",
663
+ description: "When enabled, alerts with different severities will be grouped into separate episodes. When disabled, alerts of any severity can be grouped together.",
664
+ defaultValue: false,
665
+ isDefaultValueColumn: true,
666
+ }),
667
+ Column({
668
+ type: ColumnType.Boolean,
669
+ nullable: false,
670
+ default: false,
671
+ }),
672
+ __metadata("design:type", Boolean)
673
+ ], AlertGroupingRule.prototype, "groupBySeverity", void 0);
674
+ __decorate([
675
+ ColumnAccessControl({
676
+ create: [
677
+ Permission.ProjectOwner,
678
+ Permission.ProjectAdmin,
679
+ Permission.CreateAlertGroupingRule,
680
+ ],
681
+ read: [
682
+ Permission.ProjectOwner,
683
+ Permission.ProjectAdmin,
684
+ Permission.ProjectMember,
685
+ Permission.ReadAlertGroupingRule,
686
+ ],
687
+ update: [
688
+ Permission.ProjectOwner,
689
+ Permission.ProjectAdmin,
690
+ Permission.EditAlertGroupingRule,
691
+ ],
692
+ }),
693
+ TableColumn({
694
+ required: false,
695
+ type: TableColumnType.Boolean,
696
+ title: "Group By Alert Title",
697
+ description: "When enabled, alerts with different titles will be grouped into separate episodes. When disabled, alerts with any title can be grouped together.",
698
+ defaultValue: false,
699
+ isDefaultValueColumn: true,
700
+ }),
701
+ Column({
702
+ type: ColumnType.Boolean,
703
+ nullable: false,
704
+ default: false,
705
+ }),
706
+ __metadata("design:type", Boolean)
707
+ ], AlertGroupingRule.prototype, "groupByAlertTitle", void 0);
708
+ __decorate([
709
+ ColumnAccessControl({
710
+ create: [
711
+ Permission.ProjectOwner,
712
+ Permission.ProjectAdmin,
713
+ Permission.CreateAlertGroupingRule,
714
+ ],
715
+ read: [
716
+ Permission.ProjectOwner,
717
+ Permission.ProjectAdmin,
718
+ Permission.ProjectMember,
719
+ Permission.ReadAlertGroupingRule,
720
+ ],
721
+ update: [
722
+ Permission.ProjectOwner,
723
+ Permission.ProjectAdmin,
724
+ Permission.EditAlertGroupingRule,
725
+ ],
726
+ }),
727
+ TableColumn({
728
+ required: false,
729
+ type: TableColumnType.Boolean,
730
+ title: "Group By Service",
731
+ description: "When enabled, alerts from monitors belonging to different services will be grouped into separate episodes. When disabled, alerts can be grouped together regardless of which service the monitor belongs to.",
732
+ defaultValue: false,
733
+ isDefaultValueColumn: true,
734
+ }),
735
+ Column({
736
+ type: ColumnType.Boolean,
737
+ nullable: false,
738
+ default: false,
739
+ }),
740
+ __metadata("design:type", Boolean)
741
+ ], AlertGroupingRule.prototype, "groupByService", void 0);
742
+ __decorate([
743
+ ColumnAccessControl({
744
+ create: [
745
+ Permission.ProjectOwner,
746
+ Permission.ProjectAdmin,
747
+ Permission.CreateAlertGroupingRule,
748
+ ],
749
+ read: [
750
+ Permission.ProjectOwner,
751
+ Permission.ProjectAdmin,
752
+ Permission.ProjectMember,
753
+ Permission.ReadAlertGroupingRule,
754
+ ],
755
+ update: [
756
+ Permission.ProjectOwner,
757
+ Permission.ProjectAdmin,
758
+ Permission.EditAlertGroupingRule,
759
+ ],
760
+ }),
761
+ TableColumn({
762
+ required: false,
763
+ type: TableColumnType.Boolean,
764
+ title: "Enable Time Window",
765
+ description: "Enable time-based grouping. When enabled, alerts are grouped within the specified time window. When disabled, all matching alerts are grouped into a single ongoing episode regardless of time.",
766
+ defaultValue: false,
767
+ isDefaultValueColumn: true,
768
+ }),
769
+ Column({
770
+ type: ColumnType.Boolean,
771
+ nullable: false,
772
+ default: false,
773
+ }),
774
+ __metadata("design:type", Boolean)
775
+ ], AlertGroupingRule.prototype, "enableTimeWindow", void 0);
776
+ __decorate([
777
+ ColumnAccessControl({
778
+ create: [
779
+ Permission.ProjectOwner,
780
+ Permission.ProjectAdmin,
781
+ Permission.CreateAlertGroupingRule,
782
+ ],
783
+ read: [
784
+ Permission.ProjectOwner,
785
+ Permission.ProjectAdmin,
786
+ Permission.ProjectMember,
787
+ Permission.ReadAlertGroupingRule,
788
+ ],
789
+ update: [
790
+ Permission.ProjectOwner,
791
+ Permission.ProjectAdmin,
792
+ Permission.EditAlertGroupingRule,
793
+ ],
794
+ }),
795
+ TableColumn({
796
+ required: false,
797
+ type: TableColumnType.Number,
798
+ title: "Time Window (Minutes)",
799
+ description: "Rolling time window in minutes. Alerts are grouped if they arrive within this gap from the last alert.",
800
+ defaultValue: 60,
801
+ isDefaultValueColumn: true,
802
+ }),
803
+ Column({
804
+ type: ColumnType.Number,
805
+ nullable: false,
806
+ default: 60,
807
+ }),
808
+ __metadata("design:type", Number)
809
+ ], AlertGroupingRule.prototype, "timeWindowMinutes", void 0);
810
+ __decorate([
811
+ ColumnAccessControl({
812
+ create: [
813
+ Permission.ProjectOwner,
814
+ Permission.ProjectAdmin,
815
+ Permission.CreateAlertGroupingRule,
816
+ ],
817
+ read: [
818
+ Permission.ProjectOwner,
819
+ Permission.ProjectAdmin,
820
+ Permission.ProjectMember,
821
+ Permission.ReadAlertGroupingRule,
822
+ ],
823
+ update: [
824
+ Permission.ProjectOwner,
825
+ Permission.ProjectAdmin,
826
+ Permission.EditAlertGroupingRule,
827
+ ],
828
+ }),
829
+ TableColumn({
830
+ required: false,
831
+ type: TableColumnType.JSON,
832
+ title: "Group By Fields",
833
+ description: "JSON object defining the fields to group alerts by (e.g., monitorId, severity)",
834
+ }),
835
+ Column({
836
+ type: ColumnType.JSON,
837
+ nullable: true,
838
+ }),
839
+ __metadata("design:type", Object)
840
+ ], AlertGroupingRule.prototype, "groupByFields", void 0);
841
+ __decorate([
842
+ ColumnAccessControl({
843
+ create: [
844
+ Permission.ProjectOwner,
845
+ Permission.ProjectAdmin,
846
+ Permission.CreateAlertGroupingRule,
847
+ ],
848
+ read: [
849
+ Permission.ProjectOwner,
850
+ Permission.ProjectAdmin,
851
+ Permission.ProjectMember,
852
+ Permission.ReadAlertGroupingRule,
853
+ ],
854
+ update: [
855
+ Permission.ProjectOwner,
856
+ Permission.ProjectAdmin,
857
+ Permission.EditAlertGroupingRule,
858
+ ],
859
+ }),
860
+ TableColumn({
861
+ required: false,
862
+ type: TableColumnType.LongText,
863
+ title: "Episode Title Template",
864
+ description: "Template for generating episode titles. Supports placeholders like {{alertSeverity}}, {{monitorName}}, {{alertTitle}}, {{alertDescription}}",
865
+ }),
866
+ Column({
867
+ type: ColumnType.LongText,
868
+ nullable: true,
869
+ }),
870
+ __metadata("design:type", String)
871
+ ], AlertGroupingRule.prototype, "episodeTitleTemplate", void 0);
872
+ __decorate([
873
+ ColumnAccessControl({
874
+ create: [
875
+ Permission.ProjectOwner,
876
+ Permission.ProjectAdmin,
877
+ Permission.CreateAlertGroupingRule,
878
+ ],
879
+ read: [
880
+ Permission.ProjectOwner,
881
+ Permission.ProjectAdmin,
882
+ Permission.ProjectMember,
883
+ Permission.ReadAlertGroupingRule,
884
+ ],
885
+ update: [
886
+ Permission.ProjectOwner,
887
+ Permission.ProjectAdmin,
888
+ Permission.EditAlertGroupingRule,
889
+ ],
890
+ }),
891
+ TableColumn({
892
+ required: false,
893
+ type: TableColumnType.LongText,
894
+ title: "Episode Description Template",
895
+ description: "Template for generating episode descriptions. Supports placeholders like {{alertSeverity}}, {{monitorName}}, {{alertTitle}}, {{alertDescription}}",
896
+ }),
897
+ Column({
898
+ type: ColumnType.LongText,
899
+ nullable: true,
900
+ }),
901
+ __metadata("design:type", String)
902
+ ], AlertGroupingRule.prototype, "episodeDescriptionTemplate", void 0);
903
+ __decorate([
904
+ ColumnAccessControl({
905
+ create: [
906
+ Permission.ProjectOwner,
907
+ Permission.ProjectAdmin,
908
+ Permission.CreateAlertGroupingRule,
909
+ ],
910
+ read: [
911
+ Permission.ProjectOwner,
912
+ Permission.ProjectAdmin,
913
+ Permission.ProjectMember,
914
+ Permission.ReadAlertGroupingRule,
915
+ ],
916
+ update: [
917
+ Permission.ProjectOwner,
918
+ Permission.ProjectAdmin,
919
+ Permission.EditAlertGroupingRule,
920
+ ],
921
+ }),
922
+ TableColumn({
923
+ required: false,
924
+ type: TableColumnType.Boolean,
925
+ title: "Enable Resolve Delay",
926
+ description: "Enable grace period before auto-resolving episode after all alerts resolve. Helps prevent rapid state changes during alert flapping.",
927
+ defaultValue: false,
928
+ isDefaultValueColumn: true,
929
+ }),
930
+ Column({
931
+ type: ColumnType.Boolean,
932
+ nullable: false,
933
+ default: false,
934
+ }),
935
+ __metadata("design:type", Boolean)
936
+ ], AlertGroupingRule.prototype, "enableResolveDelay", void 0);
937
+ __decorate([
938
+ ColumnAccessControl({
939
+ create: [
940
+ Permission.ProjectOwner,
941
+ Permission.ProjectAdmin,
942
+ Permission.CreateAlertGroupingRule,
943
+ ],
944
+ read: [
945
+ Permission.ProjectOwner,
946
+ Permission.ProjectAdmin,
947
+ Permission.ProjectMember,
948
+ Permission.ReadAlertGroupingRule,
949
+ ],
950
+ update: [
951
+ Permission.ProjectOwner,
952
+ Permission.ProjectAdmin,
953
+ Permission.EditAlertGroupingRule,
954
+ ],
955
+ }),
956
+ TableColumn({
957
+ required: false,
958
+ type: TableColumnType.Number,
959
+ title: "Resolve Delay (Minutes)",
960
+ description: "Grace period in minutes before auto-resolving an episode after all alerts are resolved",
961
+ defaultValue: 0,
962
+ isDefaultValueColumn: true,
963
+ }),
964
+ Column({
965
+ type: ColumnType.Number,
966
+ nullable: false,
967
+ default: 0,
968
+ }),
969
+ __metadata("design:type", Number)
970
+ ], AlertGroupingRule.prototype, "resolveDelayMinutes", void 0);
971
+ __decorate([
972
+ ColumnAccessControl({
973
+ create: [
974
+ Permission.ProjectOwner,
975
+ Permission.ProjectAdmin,
976
+ Permission.CreateAlertGroupingRule,
977
+ ],
978
+ read: [
979
+ Permission.ProjectOwner,
980
+ Permission.ProjectAdmin,
981
+ Permission.ProjectMember,
982
+ Permission.ReadAlertGroupingRule,
983
+ ],
984
+ update: [
985
+ Permission.ProjectOwner,
986
+ Permission.ProjectAdmin,
987
+ Permission.EditAlertGroupingRule,
988
+ ],
989
+ }),
990
+ TableColumn({
991
+ required: false,
992
+ type: TableColumnType.Boolean,
993
+ title: "Enable Reopen Window",
994
+ description: "Enable reopening recently resolved episodes instead of creating new ones. Useful when related issues recur shortly after resolution.",
995
+ defaultValue: false,
996
+ isDefaultValueColumn: true,
997
+ }),
998
+ Column({
999
+ type: ColumnType.Boolean,
1000
+ nullable: false,
1001
+ default: false,
1002
+ }),
1003
+ __metadata("design:type", Boolean)
1004
+ ], AlertGroupingRule.prototype, "enableReopenWindow", void 0);
1005
+ __decorate([
1006
+ ColumnAccessControl({
1007
+ create: [
1008
+ Permission.ProjectOwner,
1009
+ Permission.ProjectAdmin,
1010
+ Permission.CreateAlertGroupingRule,
1011
+ ],
1012
+ read: [
1013
+ Permission.ProjectOwner,
1014
+ Permission.ProjectAdmin,
1015
+ Permission.ProjectMember,
1016
+ Permission.ReadAlertGroupingRule,
1017
+ ],
1018
+ update: [
1019
+ Permission.ProjectOwner,
1020
+ Permission.ProjectAdmin,
1021
+ Permission.EditAlertGroupingRule,
1022
+ ],
1023
+ }),
1024
+ TableColumn({
1025
+ required: false,
1026
+ type: TableColumnType.Number,
1027
+ title: "Reopen Window (Minutes)",
1028
+ description: "Time window in minutes to reopen a recently resolved episode instead of creating a new one",
1029
+ defaultValue: 0,
1030
+ isDefaultValueColumn: true,
1031
+ }),
1032
+ Column({
1033
+ type: ColumnType.Number,
1034
+ nullable: false,
1035
+ default: 0,
1036
+ }),
1037
+ __metadata("design:type", Number)
1038
+ ], AlertGroupingRule.prototype, "reopenWindowMinutes", void 0);
1039
+ __decorate([
1040
+ ColumnAccessControl({
1041
+ create: [
1042
+ Permission.ProjectOwner,
1043
+ Permission.ProjectAdmin,
1044
+ Permission.CreateAlertGroupingRule,
1045
+ ],
1046
+ read: [
1047
+ Permission.ProjectOwner,
1048
+ Permission.ProjectAdmin,
1049
+ Permission.ProjectMember,
1050
+ Permission.ReadAlertGroupingRule,
1051
+ ],
1052
+ update: [
1053
+ Permission.ProjectOwner,
1054
+ Permission.ProjectAdmin,
1055
+ Permission.EditAlertGroupingRule,
1056
+ ],
1057
+ }),
1058
+ TableColumn({
1059
+ required: false,
1060
+ type: TableColumnType.Boolean,
1061
+ title: "Enable Inactivity Timeout",
1062
+ description: "Enable auto-resolving episodes after a period of inactivity. Helps automatically close episodes when no new alerts arrive.",
1063
+ defaultValue: false,
1064
+ isDefaultValueColumn: true,
1065
+ }),
1066
+ Column({
1067
+ type: ColumnType.Boolean,
1068
+ nullable: false,
1069
+ default: false,
1070
+ }),
1071
+ __metadata("design:type", Boolean)
1072
+ ], AlertGroupingRule.prototype, "enableInactivityTimeout", void 0);
1073
+ __decorate([
1074
+ ColumnAccessControl({
1075
+ create: [
1076
+ Permission.ProjectOwner,
1077
+ Permission.ProjectAdmin,
1078
+ Permission.CreateAlertGroupingRule,
1079
+ ],
1080
+ read: [
1081
+ Permission.ProjectOwner,
1082
+ Permission.ProjectAdmin,
1083
+ Permission.ProjectMember,
1084
+ Permission.ReadAlertGroupingRule,
1085
+ ],
1086
+ update: [
1087
+ Permission.ProjectOwner,
1088
+ Permission.ProjectAdmin,
1089
+ Permission.EditAlertGroupingRule,
1090
+ ],
1091
+ }),
1092
+ TableColumn({
1093
+ required: false,
1094
+ type: TableColumnType.Number,
1095
+ title: "Inactivity Timeout (Minutes)",
1096
+ description: "Time in minutes after which an inactive episode will be auto-resolved",
1097
+ defaultValue: 60,
1098
+ isDefaultValueColumn: true,
1099
+ }),
1100
+ Column({
1101
+ type: ColumnType.Number,
1102
+ nullable: false,
1103
+ default: 60,
1104
+ }),
1105
+ __metadata("design:type", Number)
1106
+ ], AlertGroupingRule.prototype, "inactivityTimeoutMinutes", void 0);
1107
+ __decorate([
1108
+ ColumnAccessControl({
1109
+ create: [
1110
+ Permission.ProjectOwner,
1111
+ Permission.ProjectAdmin,
1112
+ Permission.CreateAlertGroupingRule,
1113
+ ],
1114
+ read: [
1115
+ Permission.ProjectOwner,
1116
+ Permission.ProjectAdmin,
1117
+ Permission.ProjectMember,
1118
+ Permission.ReadAlertGroupingRule,
1119
+ ],
1120
+ update: [
1121
+ Permission.ProjectOwner,
1122
+ Permission.ProjectAdmin,
1123
+ Permission.EditAlertGroupingRule,
1124
+ ],
1125
+ }),
1126
+ TableColumn({
1127
+ required: false,
1128
+ type: TableColumnType.EntityArray,
1129
+ modelType: OnCallDutyPolicy,
1130
+ title: "On-Call Duty Policies",
1131
+ description: "List of on-call duty policies to execute for episodes created by this rule.",
1132
+ }),
1133
+ ManyToMany(() => {
1134
+ return OnCallDutyPolicy;
1135
+ }, { eager: false }),
1136
+ JoinTable({
1137
+ name: "AlertGroupingRuleOnCallDutyPolicy",
1138
+ inverseJoinColumn: {
1139
+ name: "onCallDutyPolicyId",
1140
+ referencedColumnName: "_id",
1141
+ },
1142
+ joinColumn: {
1143
+ name: "alertGroupingRuleId",
1144
+ referencedColumnName: "_id",
1145
+ },
1146
+ }),
1147
+ __metadata("design:type", Array)
1148
+ ], AlertGroupingRule.prototype, "onCallDutyPolicies", void 0);
1149
+ __decorate([
1150
+ ColumnAccessControl({
1151
+ create: [
1152
+ Permission.ProjectOwner,
1153
+ Permission.ProjectAdmin,
1154
+ Permission.CreateAlertGroupingRule,
1155
+ ],
1156
+ read: [
1157
+ Permission.ProjectOwner,
1158
+ Permission.ProjectAdmin,
1159
+ Permission.ProjectMember,
1160
+ Permission.ReadAlertGroupingRule,
1161
+ ],
1162
+ update: [
1163
+ Permission.ProjectOwner,
1164
+ Permission.ProjectAdmin,
1165
+ Permission.EditAlertGroupingRule,
1166
+ ],
1167
+ }),
1168
+ TableColumn({
1169
+ manyToOneRelationColumn: "defaultAssignToUserId",
1170
+ type: TableColumnType.Entity,
1171
+ modelType: User,
1172
+ title: "Default Assign To User",
1173
+ description: "Default user to assign episodes created by this rule",
1174
+ }),
1175
+ ManyToOne(() => {
1176
+ return User;
1177
+ }, {
1178
+ eager: false,
1179
+ nullable: true,
1180
+ onDelete: "SET NULL",
1181
+ orphanedRowAction: "nullify",
1182
+ }),
1183
+ JoinColumn({ name: "defaultAssignToUserId" }),
1184
+ __metadata("design:type", User)
1185
+ ], AlertGroupingRule.prototype, "defaultAssignToUser", void 0);
1186
+ __decorate([
1187
+ ColumnAccessControl({
1188
+ create: [
1189
+ Permission.ProjectOwner,
1190
+ Permission.ProjectAdmin,
1191
+ Permission.CreateAlertGroupingRule,
1192
+ ],
1193
+ read: [
1194
+ Permission.ProjectOwner,
1195
+ Permission.ProjectAdmin,
1196
+ Permission.ProjectMember,
1197
+ Permission.ReadAlertGroupingRule,
1198
+ ],
1199
+ update: [
1200
+ Permission.ProjectOwner,
1201
+ Permission.ProjectAdmin,
1202
+ Permission.EditAlertGroupingRule,
1203
+ ],
1204
+ }),
1205
+ Index(),
1206
+ TableColumn({
1207
+ type: TableColumnType.ObjectID,
1208
+ required: false,
1209
+ title: "Default Assign To User ID",
1210
+ description: "Default User ID to assign episodes created by this rule",
1211
+ }),
1212
+ Column({
1213
+ type: ColumnType.ObjectID,
1214
+ nullable: true,
1215
+ transformer: ObjectID.getDatabaseTransformer(),
1216
+ }),
1217
+ __metadata("design:type", ObjectID)
1218
+ ], AlertGroupingRule.prototype, "defaultAssignToUserId", void 0);
1219
+ __decorate([
1220
+ ColumnAccessControl({
1221
+ create: [
1222
+ Permission.ProjectOwner,
1223
+ Permission.ProjectAdmin,
1224
+ Permission.CreateAlertGroupingRule,
1225
+ ],
1226
+ read: [
1227
+ Permission.ProjectOwner,
1228
+ Permission.ProjectAdmin,
1229
+ Permission.ProjectMember,
1230
+ Permission.ReadAlertGroupingRule,
1231
+ ],
1232
+ update: [
1233
+ Permission.ProjectOwner,
1234
+ Permission.ProjectAdmin,
1235
+ Permission.EditAlertGroupingRule,
1236
+ ],
1237
+ }),
1238
+ TableColumn({
1239
+ manyToOneRelationColumn: "defaultAssignToTeamId",
1240
+ type: TableColumnType.Entity,
1241
+ modelType: Team,
1242
+ title: "Default Assign To Team",
1243
+ description: "Default team to assign episodes created by this rule",
1244
+ }),
1245
+ ManyToOne(() => {
1246
+ return Team;
1247
+ }, {
1248
+ eager: false,
1249
+ nullable: true,
1250
+ onDelete: "SET NULL",
1251
+ orphanedRowAction: "nullify",
1252
+ }),
1253
+ JoinColumn({ name: "defaultAssignToTeamId" }),
1254
+ __metadata("design:type", Team)
1255
+ ], AlertGroupingRule.prototype, "defaultAssignToTeam", void 0);
1256
+ __decorate([
1257
+ ColumnAccessControl({
1258
+ create: [
1259
+ Permission.ProjectOwner,
1260
+ Permission.ProjectAdmin,
1261
+ Permission.CreateAlertGroupingRule,
1262
+ ],
1263
+ read: [
1264
+ Permission.ProjectOwner,
1265
+ Permission.ProjectAdmin,
1266
+ Permission.ProjectMember,
1267
+ Permission.ReadAlertGroupingRule,
1268
+ ],
1269
+ update: [
1270
+ Permission.ProjectOwner,
1271
+ Permission.ProjectAdmin,
1272
+ Permission.EditAlertGroupingRule,
1273
+ ],
1274
+ }),
1275
+ Index(),
1276
+ TableColumn({
1277
+ type: TableColumnType.ObjectID,
1278
+ required: false,
1279
+ title: "Default Assign To Team ID",
1280
+ description: "Default Team ID to assign episodes created by this rule",
1281
+ }),
1282
+ Column({
1283
+ type: ColumnType.ObjectID,
1284
+ nullable: true,
1285
+ transformer: ObjectID.getDatabaseTransformer(),
1286
+ }),
1287
+ __metadata("design:type", ObjectID)
1288
+ ], AlertGroupingRule.prototype, "defaultAssignToTeamId", void 0);
1289
+ __decorate([
1290
+ ColumnAccessControl({
1291
+ create: [
1292
+ Permission.ProjectOwner,
1293
+ Permission.ProjectAdmin,
1294
+ Permission.CreateAlertGroupingRule,
1295
+ ],
1296
+ read: [
1297
+ Permission.ProjectOwner,
1298
+ Permission.ProjectAdmin,
1299
+ Permission.ProjectMember,
1300
+ Permission.ReadAlertGroupingRule,
1301
+ ],
1302
+ update: [],
1303
+ }),
1304
+ TableColumn({
1305
+ manyToOneRelationColumn: "createdByUserId",
1306
+ type: TableColumnType.Entity,
1307
+ modelType: User,
1308
+ title: "Created by User",
1309
+ description: "Relation to User who created this object (if this object was created by a User)",
1310
+ }),
1311
+ ManyToOne(() => {
1312
+ return User;
1313
+ }, {
1314
+ eager: false,
1315
+ nullable: true,
1316
+ onDelete: "SET NULL",
1317
+ orphanedRowAction: "nullify",
1318
+ }),
1319
+ JoinColumn({ name: "createdByUserId" }),
1320
+ __metadata("design:type", User)
1321
+ ], AlertGroupingRule.prototype, "createdByUser", void 0);
1322
+ __decorate([
1323
+ ColumnAccessControl({
1324
+ create: [
1325
+ Permission.ProjectOwner,
1326
+ Permission.ProjectAdmin,
1327
+ Permission.CreateAlertGroupingRule,
1328
+ ],
1329
+ read: [
1330
+ Permission.ProjectOwner,
1331
+ Permission.ProjectAdmin,
1332
+ Permission.ProjectMember,
1333
+ Permission.ReadAlertGroupingRule,
1334
+ ],
1335
+ update: [],
1336
+ }),
1337
+ TableColumn({
1338
+ type: TableColumnType.ObjectID,
1339
+ title: "Created by User ID",
1340
+ description: "User ID who created this object (if this object was created by a User)",
1341
+ }),
1342
+ Column({
1343
+ type: ColumnType.ObjectID,
1344
+ nullable: true,
1345
+ transformer: ObjectID.getDatabaseTransformer(),
1346
+ }),
1347
+ __metadata("design:type", ObjectID)
1348
+ ], AlertGroupingRule.prototype, "createdByUserId", void 0);
1349
+ __decorate([
1350
+ ColumnAccessControl({
1351
+ create: [],
1352
+ read: [],
1353
+ update: [],
1354
+ }),
1355
+ TableColumn({
1356
+ manyToOneRelationColumn: "deletedByUserId",
1357
+ type: TableColumnType.Entity,
1358
+ title: "Deleted by User",
1359
+ modelType: User,
1360
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
1361
+ }),
1362
+ ManyToOne(() => {
1363
+ return User;
1364
+ }, {
1365
+ cascade: false,
1366
+ eager: false,
1367
+ nullable: true,
1368
+ onDelete: "SET NULL",
1369
+ orphanedRowAction: "nullify",
1370
+ }),
1371
+ JoinColumn({ name: "deletedByUserId" }),
1372
+ __metadata("design:type", User)
1373
+ ], AlertGroupingRule.prototype, "deletedByUser", void 0);
1374
+ __decorate([
1375
+ ColumnAccessControl({
1376
+ create: [],
1377
+ read: [],
1378
+ update: [],
1379
+ }),
1380
+ TableColumn({
1381
+ type: TableColumnType.ObjectID,
1382
+ title: "Deleted by User ID",
1383
+ description: "User ID who deleted this object (if this object was deleted by a User)",
1384
+ }),
1385
+ Column({
1386
+ type: ColumnType.ObjectID,
1387
+ nullable: true,
1388
+ transformer: ObjectID.getDatabaseTransformer(),
1389
+ }),
1390
+ __metadata("design:type", ObjectID)
1391
+ ], AlertGroupingRule.prototype, "deletedByUserId", void 0);
1392
+ AlertGroupingRule = __decorate([
1393
+ EnableDocumentation(),
1394
+ TenantColumn("projectId"),
1395
+ TableAccessControl({
1396
+ create: [
1397
+ Permission.ProjectOwner,
1398
+ Permission.ProjectAdmin,
1399
+ Permission.CreateAlertGroupingRule,
1400
+ ],
1401
+ read: [
1402
+ Permission.ProjectOwner,
1403
+ Permission.ProjectAdmin,
1404
+ Permission.ProjectMember,
1405
+ Permission.ReadAlertGroupingRule,
1406
+ ],
1407
+ delete: [
1408
+ Permission.ProjectOwner,
1409
+ Permission.ProjectAdmin,
1410
+ Permission.DeleteAlertGroupingRule,
1411
+ ],
1412
+ update: [
1413
+ Permission.ProjectOwner,
1414
+ Permission.ProjectAdmin,
1415
+ Permission.EditAlertGroupingRule,
1416
+ ],
1417
+ }),
1418
+ CrudApiEndpoint(new Route("/alert-grouping-rule")),
1419
+ Entity({
1420
+ name: "AlertGroupingRule",
1421
+ }),
1422
+ EnableWorkflow({
1423
+ create: true,
1424
+ delete: true,
1425
+ update: true,
1426
+ read: true,
1427
+ }),
1428
+ TableMetadata({
1429
+ tableName: "AlertGroupingRule",
1430
+ singularName: "Alert Grouping Rule",
1431
+ pluralName: "Alert Grouping Rules",
1432
+ icon: IconProp.Layers,
1433
+ tableDescription: "Configure rules for automatically grouping related alerts into episodes",
1434
+ })
1435
+ ], AlertGroupingRule);
1436
+ export default AlertGroupingRule;
1437
+ //# sourceMappingURL=AlertGroupingRule.js.map