@oneuptime/common 9.4.12 → 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 (256) 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/UserOnCallLog.ts +48 -0
  14. package/Models/DatabaseModels/UserOnCallLogTimeline.ts +49 -0
  15. package/Models/DatabaseModels/WorkspaceNotificationLog.ts +57 -0
  16. package/Server/API/IncidentEpisodeAPI.ts +150 -0
  17. package/Server/API/SlackAPI.ts +23 -0
  18. package/Server/API/UserOnCallLogTimelineAPI.ts +24 -4
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1769626069479-MigrationName.ts +729 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1769629928240-MigrationName.ts +261 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1769676117342-RenameEvaluateOverTimeInCriteriaFilter.ts +28 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  23. package/Server/Services/BillingService.ts +1 -3
  24. package/Server/Services/CallService.ts +1 -0
  25. package/Server/Services/IncidentEpisodeFeedService.ts +94 -0
  26. package/Server/Services/IncidentEpisodeInternalNoteService.ts +71 -0
  27. package/Server/Services/IncidentEpisodeMemberService.ts +321 -0
  28. package/Server/Services/IncidentEpisodeOwnerTeamService.ts +10 -0
  29. package/Server/Services/IncidentEpisodeOwnerUserService.ts +10 -0
  30. package/Server/Services/IncidentEpisodeService.ts +1045 -0
  31. package/Server/Services/IncidentEpisodeStateTimelineService.ts +566 -0
  32. package/Server/Services/IncidentGroupingEngineService.ts +1047 -0
  33. package/Server/Services/IncidentGroupingRuleService.ts +14 -0
  34. package/Server/Services/IncidentService.ts +11 -0
  35. package/Server/Services/Index.ts +18 -0
  36. package/Server/Services/MailService.ts +1 -0
  37. package/Server/Services/MonitorService.ts +9 -0
  38. package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +18 -0
  39. package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +64 -2
  40. package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +26 -1
  41. package/Server/Services/OnCallDutyPolicyService.ts +15 -0
  42. package/Server/Services/SmsService.ts +1 -0
  43. package/Server/Services/UserNotificationRuleService.ts +48 -2
  44. package/Server/Services/UserNotificationSettingService.ts +23 -0
  45. package/Server/Services/UserOnCallLogService.ts +41 -4
  46. package/Server/Services/WhatsAppService.ts +1 -0
  47. package/Server/Services/WorkspaceNotificationLogService.ts +16 -0
  48. package/Server/Services/WorkspaceNotificationRuleService.ts +116 -0
  49. package/Server/Utils/AI/IncidentEpisodeAIContextBuilder.ts +490 -0
  50. package/Server/Utils/Monitor/Criteria/APIRequestCriteria.ts +1 -1
  51. package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +1 -1
  52. package/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.ts +1 -1
  53. package/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.ts +1 -1
  54. package/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.ts +2 -2
  55. package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +182 -0
  56. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +13 -0
  57. package/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.ts +1 -1
  58. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +37 -0
  59. package/Server/Utils/PushNotificationUtil.ts +31 -0
  60. package/Server/Utils/WhatsAppTemplateUtil.ts +14 -0
  61. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.ts +18 -0
  62. package/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.ts +702 -0
  63. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +20 -0
  64. package/Server/Utils/Workspace/Slack/Actions/ActionTypes.ts +11 -0
  65. package/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.ts +918 -0
  66. package/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.ts +120 -0
  67. package/Server/Utils/Workspace/WorkspaceMessages/IncidentEpisode.ts +74 -0
  68. package/Types/Email/EmailTemplateType.ts +6 -0
  69. package/Types/Monitor/CriteriaFilter.ts +24 -4
  70. package/Types/Monitor/MonitorCriteriaInstance.ts +67 -0
  71. package/Types/Monitor/MonitorStep.ts +37 -0
  72. package/Types/Monitor/MonitorStepSnmpMonitor.ts +102 -0
  73. package/Types/Monitor/MonitorType.ts +15 -2
  74. package/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.ts +8 -0
  75. package/Types/Monitor/SnmpMonitor/SnmpDataType.ts +21 -0
  76. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +16 -0
  77. package/Types/Monitor/SnmpMonitor/SnmpOid.ts +60 -0
  78. package/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.ts +7 -0
  79. package/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.ts +7 -0
  80. package/Types/Monitor/SnmpMonitor/SnmpV3Auth.ts +12 -0
  81. package/Types/Monitor/SnmpMonitor/SnmpVersion.ts +7 -0
  82. package/Types/NotificationSetting/NotificationSettingEventType.ts +7 -0
  83. package/Types/Permission.ts +311 -0
  84. package/Types/Probe/ProbeMonitorResponse.ts +2 -0
  85. package/Types/UserNotification/UserNotificationEventType.ts +1 -0
  86. package/Types/WhatsApp/WhatsAppTemplates.ts +24 -0
  87. package/Types/Workspace/NotificationRules/EventType.ts +1 -0
  88. package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +38 -1
  89. package/Utils/Monitor/MonitorMetricType.ts +2 -1
  90. package/build/dist/Models/DatabaseModels/Incident.js +78 -0
  91. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  92. package/build/dist/Models/DatabaseModels/IncidentEpisode.js +1250 -0
  93. package/build/dist/Models/DatabaseModels/IncidentEpisode.js.map +1 -0
  94. package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js +555 -0
  95. package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js.map +1 -0
  96. package/build/dist/Models/DatabaseModels/IncidentEpisodeInternalNote.js +467 -0
  97. package/build/dist/Models/DatabaseModels/IncidentEpisodeInternalNote.js.map +1 -0
  98. package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js +607 -0
  99. package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js.map +1 -0
  100. package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js +437 -0
  101. package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js.map +1 -0
  102. package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js +436 -0
  103. package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js.map +1 -0
  104. package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +546 -0
  105. package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -0
  106. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js +1437 -0
  107. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js.map +1 -0
  108. package/build/dist/Models/DatabaseModels/Index.js +16 -0
  109. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  110. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +69 -0
  111. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
  112. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js +58 -0
  113. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js.map +1 -1
  114. package/build/dist/Models/DatabaseModels/UserOnCallLog.js +47 -0
  115. package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
  116. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +48 -0
  117. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
  118. package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js +58 -0
  119. package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js.map +1 -1
  120. package/build/dist/Server/API/IncidentEpisodeAPI.js +97 -0
  121. package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -0
  122. package/build/dist/Server/API/SlackAPI.js +18 -0
  123. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  124. package/build/dist/Server/API/UserOnCallLogTimelineAPI.js +30 -10
  125. package/build/dist/Server/API/UserOnCallLogTimelineAPI.js.map +1 -1
  126. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769626069479-MigrationName.js +256 -0
  127. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769626069479-MigrationName.js.map +1 -0
  128. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769629928240-MigrationName.js +96 -0
  129. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769629928240-MigrationName.js.map +1 -0
  130. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769676117342-RenameEvaluateOverTimeInCriteriaFilter.js +25 -0
  131. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769676117342-RenameEvaluateOverTimeInCriteriaFilter.js.map +1 -0
  132. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  133. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  134. package/build/dist/Server/Services/BillingService.js +1 -2
  135. package/build/dist/Server/Services/BillingService.js.map +1 -1
  136. package/build/dist/Server/Services/CallService.js.map +1 -1
  137. package/build/dist/Server/Services/IncidentEpisodeFeedService.js +83 -0
  138. package/build/dist/Server/Services/IncidentEpisodeFeedService.js.map +1 -0
  139. package/build/dist/Server/Services/IncidentEpisodeInternalNoteService.js +70 -0
  140. package/build/dist/Server/Services/IncidentEpisodeInternalNoteService.js.map +1 -0
  141. package/build/dist/Server/Services/IncidentEpisodeMemberService.js +298 -0
  142. package/build/dist/Server/Services/IncidentEpisodeMemberService.js.map +1 -0
  143. package/build/dist/Server/Services/IncidentEpisodeOwnerTeamService.js +9 -0
  144. package/build/dist/Server/Services/IncidentEpisodeOwnerTeamService.js.map +1 -0
  145. package/build/dist/Server/Services/IncidentEpisodeOwnerUserService.js +9 -0
  146. package/build/dist/Server/Services/IncidentEpisodeOwnerUserService.js.map +1 -0
  147. package/build/dist/Server/Services/IncidentEpisodeService.js +933 -0
  148. package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -0
  149. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js +498 -0
  150. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js.map +1 -0
  151. package/build/dist/Server/Services/IncidentGroupingEngineService.js +799 -0
  152. package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -0
  153. package/build/dist/Server/Services/IncidentGroupingRuleService.js +13 -0
  154. package/build/dist/Server/Services/IncidentGroupingRuleService.js.map +1 -0
  155. package/build/dist/Server/Services/IncidentService.js +10 -0
  156. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  157. package/build/dist/Server/Services/Index.js +16 -0
  158. package/build/dist/Server/Services/Index.js.map +1 -1
  159. package/build/dist/Server/Services/MailService.js.map +1 -1
  160. package/build/dist/Server/Services/MonitorService.js +9 -1
  161. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  162. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +10 -0
  163. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
  164. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +48 -2
  165. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
  166. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +20 -1
  167. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
  168. package/build/dist/Server/Services/OnCallDutyPolicyService.js +8 -0
  169. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  170. package/build/dist/Server/Services/SmsService.js.map +1 -1
  171. package/build/dist/Server/Services/UserNotificationRuleService.js +39 -2
  172. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  173. package/build/dist/Server/Services/UserNotificationSettingService.js +9 -0
  174. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  175. package/build/dist/Server/Services/UserOnCallLogService.js +35 -3
  176. package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
  177. package/build/dist/Server/Services/WhatsAppService.js.map +1 -1
  178. package/build/dist/Server/Services/WorkspaceNotificationLogService.js +12 -0
  179. package/build/dist/Server/Services/WorkspaceNotificationLogService.js.map +1 -1
  180. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +95 -1
  181. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  182. package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js +402 -0
  183. package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js.map +1 -0
  184. package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js +1 -1
  185. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +1 -1
  186. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js +1 -1
  187. package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js +1 -1
  188. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +2 -2
  189. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +135 -0
  190. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -0
  191. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +10 -0
  192. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  193. package/build/dist/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.js +1 -1
  194. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +26 -0
  195. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  196. package/build/dist/Server/Utils/PushNotificationUtil.js +20 -0
  197. package/build/dist/Server/Utils/PushNotificationUtil.js.map +1 -1
  198. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +8 -0
  199. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
  200. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js +17 -0
  201. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js.map +1 -1
  202. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js +547 -0
  203. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js.map +1 -0
  204. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +15 -0
  205. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  206. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js +10 -0
  207. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js.map +1 -1
  208. package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js +651 -0
  209. package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js.map +1 -0
  210. package/build/dist/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.js +100 -0
  211. package/build/dist/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.js.map +1 -0
  212. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/IncidentEpisode.js +70 -0
  213. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/IncidentEpisode.js.map +1 -0
  214. package/build/dist/Types/Email/EmailTemplateType.js +5 -0
  215. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  216. package/build/dist/Types/Monitor/CriteriaFilter.js +16 -3
  217. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  218. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +62 -0
  219. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  220. package/build/dist/Types/Monitor/MonitorStep.js +26 -0
  221. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  222. package/build/dist/Types/Monitor/MonitorStepSnmpMonitor.js +77 -0
  223. package/build/dist/Types/Monitor/MonitorStepSnmpMonitor.js.map +1 -0
  224. package/build/dist/Types/Monitor/MonitorType.js +13 -2
  225. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  226. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js +9 -0
  227. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js.map +1 -0
  228. package/build/dist/Types/Monitor/SnmpMonitor/SnmpDataType.js +22 -0
  229. package/build/dist/Types/Monitor/SnmpMonitor/SnmpDataType.js.map +1 -0
  230. package/build/dist/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.js +2 -0
  231. package/build/dist/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.js.map +1 -0
  232. package/build/dist/Types/Monitor/SnmpMonitor/SnmpOid.js +55 -0
  233. package/build/dist/Types/Monitor/SnmpMonitor/SnmpOid.js.map +1 -0
  234. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js +8 -0
  235. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js.map +1 -0
  236. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js +8 -0
  237. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js.map +1 -0
  238. package/build/dist/Types/Monitor/SnmpMonitor/SnmpV3Auth.js +2 -0
  239. package/build/dist/Types/Monitor/SnmpMonitor/SnmpV3Auth.js.map +1 -0
  240. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js +8 -0
  241. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js.map +1 -0
  242. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +5 -0
  243. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  244. package/build/dist/Types/Permission.js +264 -0
  245. package/build/dist/Types/Permission.js.map +1 -1
  246. package/build/dist/Types/UserNotification/UserNotificationEventType.js +1 -0
  247. package/build/dist/Types/UserNotification/UserNotificationEventType.js.map +1 -1
  248. package/build/dist/Types/WhatsApp/WhatsAppTemplates.js +15 -0
  249. package/build/dist/Types/WhatsApp/WhatsAppTemplates.js.map +1 -1
  250. package/build/dist/Types/Workspace/NotificationRules/EventType.js +1 -0
  251. package/build/dist/Types/Workspace/NotificationRules/EventType.js.map +1 -1
  252. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +33 -1
  253. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
  254. package/build/dist/Utils/Monitor/MonitorMetricType.js +2 -1
  255. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  256. package/package.json +1 -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 IncidentSeverity from "./IncidentSeverity";
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 IncidentGroupingRule = class IncidentGroupingRule 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.incidentSeverities = undefined;
47
+ this.incidentLabels = undefined;
48
+ this.monitorLabels = undefined;
49
+ this.incidentTitlePattern = undefined;
50
+ this.incidentDescriptionPattern = undefined;
51
+ this.monitorNamePattern = undefined;
52
+ this.monitorDescriptionPattern = undefined;
53
+ // Group By Fields (how to group matching incidents)
54
+ this.groupByMonitor = undefined;
55
+ this.groupBySeverity = undefined;
56
+ this.groupByIncidentTitle = 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.CreateIncidentGroupingRule,
86
+ ],
87
+ read: [
88
+ Permission.ProjectOwner,
89
+ Permission.ProjectAdmin,
90
+ Permission.ProjectMember,
91
+ Permission.ReadIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "project", void 0);
113
+ __decorate([
114
+ ColumnAccessControl({
115
+ create: [
116
+ Permission.ProjectOwner,
117
+ Permission.ProjectAdmin,
118
+ Permission.CreateIncidentGroupingRule,
119
+ ],
120
+ read: [
121
+ Permission.ProjectOwner,
122
+ Permission.ProjectAdmin,
123
+ Permission.ProjectMember,
124
+ Permission.ReadIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "projectId", void 0);
143
+ __decorate([
144
+ ColumnAccessControl({
145
+ create: [
146
+ Permission.ProjectOwner,
147
+ Permission.ProjectAdmin,
148
+ Permission.CreateIncidentGroupingRule,
149
+ ],
150
+ read: [
151
+ Permission.ProjectOwner,
152
+ Permission.ProjectAdmin,
153
+ Permission.ProjectMember,
154
+ Permission.ReadIncidentGroupingRule,
155
+ ],
156
+ update: [
157
+ Permission.ProjectOwner,
158
+ Permission.ProjectAdmin,
159
+ Permission.EditIncidentGroupingRule,
160
+ ],
161
+ }),
162
+ Index(),
163
+ TableColumn({
164
+ required: true,
165
+ type: TableColumnType.ShortText,
166
+ canReadOnRelationQuery: true,
167
+ title: "Name",
168
+ description: "Name of this incident grouping rule",
169
+ }),
170
+ Column({
171
+ nullable: false,
172
+ type: ColumnType.ShortText,
173
+ length: ColumnLength.ShortText,
174
+ }),
175
+ __metadata("design:type", String)
176
+ ], IncidentGroupingRule.prototype, "name", void 0);
177
+ __decorate([
178
+ ColumnAccessControl({
179
+ create: [
180
+ Permission.ProjectOwner,
181
+ Permission.ProjectAdmin,
182
+ Permission.CreateIncidentGroupingRule,
183
+ ],
184
+ read: [
185
+ Permission.ProjectOwner,
186
+ Permission.ProjectAdmin,
187
+ Permission.ProjectMember,
188
+ Permission.ReadIncidentGroupingRule,
189
+ ],
190
+ update: [
191
+ Permission.ProjectOwner,
192
+ Permission.ProjectAdmin,
193
+ Permission.EditIncidentGroupingRule,
194
+ ],
195
+ }),
196
+ TableColumn({
197
+ required: false,
198
+ type: TableColumnType.LongText,
199
+ title: "Description",
200
+ description: "Description of this incident grouping rule",
201
+ }),
202
+ Column({
203
+ nullable: true,
204
+ type: ColumnType.LongText,
205
+ length: ColumnLength.LongText,
206
+ }),
207
+ __metadata("design:type", String)
208
+ ], IncidentGroupingRule.prototype, "description", void 0);
209
+ __decorate([
210
+ ColumnAccessControl({
211
+ create: [
212
+ Permission.ProjectOwner,
213
+ Permission.ProjectAdmin,
214
+ Permission.CreateIncidentGroupingRule,
215
+ ],
216
+ read: [
217
+ Permission.ProjectOwner,
218
+ Permission.ProjectAdmin,
219
+ Permission.ProjectMember,
220
+ Permission.ReadIncidentGroupingRule,
221
+ ],
222
+ update: [
223
+ Permission.ProjectOwner,
224
+ Permission.ProjectAdmin,
225
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "priority", void 0);
244
+ __decorate([
245
+ ColumnAccessControl({
246
+ create: [
247
+ Permission.ProjectOwner,
248
+ Permission.ProjectAdmin,
249
+ Permission.CreateIncidentGroupingRule,
250
+ ],
251
+ read: [
252
+ Permission.ProjectOwner,
253
+ Permission.ProjectAdmin,
254
+ Permission.ProjectMember,
255
+ Permission.ReadIncidentGroupingRule,
256
+ ],
257
+ update: [
258
+ Permission.ProjectOwner,
259
+ Permission.ProjectAdmin,
260
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "isEnabled", void 0);
279
+ __decorate([
280
+ ColumnAccessControl({
281
+ create: [
282
+ Permission.ProjectOwner,
283
+ Permission.ProjectAdmin,
284
+ Permission.CreateIncidentGroupingRule,
285
+ ],
286
+ read: [
287
+ Permission.ProjectOwner,
288
+ Permission.ProjectAdmin,
289
+ Permission.ProjectMember,
290
+ Permission.ReadIncidentGroupingRule,
291
+ ],
292
+ update: [
293
+ Permission.ProjectOwner,
294
+ Permission.ProjectAdmin,
295
+ Permission.EditIncidentGroupingRule,
296
+ ],
297
+ }),
298
+ TableColumn({
299
+ required: false,
300
+ type: TableColumnType.JSON,
301
+ title: "Match Criteria",
302
+ description: "JSON object defining the criteria for matching incidents to this rule",
303
+ }),
304
+ Column({
305
+ type: ColumnType.JSON,
306
+ nullable: true,
307
+ }),
308
+ __metadata("design:type", Object)
309
+ ], IncidentGroupingRule.prototype, "matchCriteria", void 0);
310
+ __decorate([
311
+ ColumnAccessControl({
312
+ create: [
313
+ Permission.ProjectOwner,
314
+ Permission.ProjectAdmin,
315
+ Permission.CreateIncidentGroupingRule,
316
+ ],
317
+ read: [
318
+ Permission.ProjectOwner,
319
+ Permission.ProjectAdmin,
320
+ Permission.ProjectMember,
321
+ Permission.ReadIncidentGroupingRule,
322
+ ],
323
+ update: [
324
+ Permission.ProjectOwner,
325
+ Permission.ProjectAdmin,
326
+ Permission.EditIncidentGroupingRule,
327
+ ],
328
+ }),
329
+ TableColumn({
330
+ required: false,
331
+ type: TableColumnType.EntityArray,
332
+ modelType: Monitor,
333
+ title: "Monitors",
334
+ description: "Only group incidents from these monitors. Leave empty to match incidents from any monitor.",
335
+ }),
336
+ ManyToMany(() => {
337
+ return Monitor;
338
+ }, { eager: false }),
339
+ JoinTable({
340
+ name: "IncidentGroupingRuleMonitor",
341
+ inverseJoinColumn: {
342
+ name: "monitorId",
343
+ referencedColumnName: "_id",
344
+ },
345
+ joinColumn: {
346
+ name: "incidentGroupingRuleId",
347
+ referencedColumnName: "_id",
348
+ },
349
+ }),
350
+ __metadata("design:type", Array)
351
+ ], IncidentGroupingRule.prototype, "monitors", void 0);
352
+ __decorate([
353
+ ColumnAccessControl({
354
+ create: [
355
+ Permission.ProjectOwner,
356
+ Permission.ProjectAdmin,
357
+ Permission.CreateIncidentGroupingRule,
358
+ ],
359
+ read: [
360
+ Permission.ProjectOwner,
361
+ Permission.ProjectAdmin,
362
+ Permission.ProjectMember,
363
+ Permission.ReadIncidentGroupingRule,
364
+ ],
365
+ update: [
366
+ Permission.ProjectOwner,
367
+ Permission.ProjectAdmin,
368
+ Permission.EditIncidentGroupingRule,
369
+ ],
370
+ }),
371
+ TableColumn({
372
+ required: false,
373
+ type: TableColumnType.EntityArray,
374
+ modelType: IncidentSeverity,
375
+ title: "Incident Severities",
376
+ description: "Only group incidents with these severities. Leave empty to match incidents of any severity.",
377
+ }),
378
+ ManyToMany(() => {
379
+ return IncidentSeverity;
380
+ }, { eager: false }),
381
+ JoinTable({
382
+ name: "IncidentGroupingRuleIncidentSeverity",
383
+ inverseJoinColumn: {
384
+ name: "incidentSeverityId",
385
+ referencedColumnName: "_id",
386
+ },
387
+ joinColumn: {
388
+ name: "incidentGroupingRuleId",
389
+ referencedColumnName: "_id",
390
+ },
391
+ }),
392
+ __metadata("design:type", Array)
393
+ ], IncidentGroupingRule.prototype, "incidentSeverities", void 0);
394
+ __decorate([
395
+ ColumnAccessControl({
396
+ create: [
397
+ Permission.ProjectOwner,
398
+ Permission.ProjectAdmin,
399
+ Permission.CreateIncidentGroupingRule,
400
+ ],
401
+ read: [
402
+ Permission.ProjectOwner,
403
+ Permission.ProjectAdmin,
404
+ Permission.ProjectMember,
405
+ Permission.ReadIncidentGroupingRule,
406
+ ],
407
+ update: [
408
+ Permission.ProjectOwner,
409
+ Permission.ProjectAdmin,
410
+ Permission.EditIncidentGroupingRule,
411
+ ],
412
+ }),
413
+ TableColumn({
414
+ required: false,
415
+ type: TableColumnType.EntityArray,
416
+ modelType: Label,
417
+ title: "Incident Labels",
418
+ description: "Only group incidents that have at least one of these labels. Leave empty to match incidents regardless of incident labels.",
419
+ }),
420
+ ManyToMany(() => {
421
+ return Label;
422
+ }, { eager: false }),
423
+ JoinTable({
424
+ name: "IncidentGroupingRuleIncidentLabel",
425
+ inverseJoinColumn: {
426
+ name: "labelId",
427
+ referencedColumnName: "_id",
428
+ },
429
+ joinColumn: {
430
+ name: "incidentGroupingRuleId",
431
+ referencedColumnName: "_id",
432
+ },
433
+ }),
434
+ __metadata("design:type", Array)
435
+ ], IncidentGroupingRule.prototype, "incidentLabels", void 0);
436
+ __decorate([
437
+ ColumnAccessControl({
438
+ create: [
439
+ Permission.ProjectOwner,
440
+ Permission.ProjectAdmin,
441
+ Permission.CreateIncidentGroupingRule,
442
+ ],
443
+ read: [
444
+ Permission.ProjectOwner,
445
+ Permission.ProjectAdmin,
446
+ Permission.ProjectMember,
447
+ Permission.ReadIncidentGroupingRule,
448
+ ],
449
+ update: [
450
+ Permission.ProjectOwner,
451
+ Permission.ProjectAdmin,
452
+ Permission.EditIncidentGroupingRule,
453
+ ],
454
+ }),
455
+ TableColumn({
456
+ required: false,
457
+ type: TableColumnType.EntityArray,
458
+ modelType: Label,
459
+ title: "Monitor Labels",
460
+ description: "Only group incidents from monitors that have at least one of these labels. Leave empty to match incidents regardless of monitor labels.",
461
+ }),
462
+ ManyToMany(() => {
463
+ return Label;
464
+ }, { eager: false }),
465
+ JoinTable({
466
+ name: "IncidentGroupingRuleMonitorLabel",
467
+ inverseJoinColumn: {
468
+ name: "labelId",
469
+ referencedColumnName: "_id",
470
+ },
471
+ joinColumn: {
472
+ name: "incidentGroupingRuleId",
473
+ referencedColumnName: "_id",
474
+ },
475
+ }),
476
+ __metadata("design:type", Array)
477
+ ], IncidentGroupingRule.prototype, "monitorLabels", void 0);
478
+ __decorate([
479
+ ColumnAccessControl({
480
+ create: [
481
+ Permission.ProjectOwner,
482
+ Permission.ProjectAdmin,
483
+ Permission.CreateIncidentGroupingRule,
484
+ ],
485
+ read: [
486
+ Permission.ProjectOwner,
487
+ Permission.ProjectAdmin,
488
+ Permission.ProjectMember,
489
+ Permission.ReadIncidentGroupingRule,
490
+ ],
491
+ update: [
492
+ Permission.ProjectOwner,
493
+ Permission.ProjectAdmin,
494
+ Permission.EditIncidentGroupingRule,
495
+ ],
496
+ }),
497
+ TableColumn({
498
+ required: false,
499
+ type: TableColumnType.LongText,
500
+ title: "Incident Title Pattern",
501
+ description: "Regular expression pattern to match incident 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
+ ], IncidentGroupingRule.prototype, "incidentTitlePattern", void 0);
510
+ __decorate([
511
+ ColumnAccessControl({
512
+ create: [
513
+ Permission.ProjectOwner,
514
+ Permission.ProjectAdmin,
515
+ Permission.CreateIncidentGroupingRule,
516
+ ],
517
+ read: [
518
+ Permission.ProjectOwner,
519
+ Permission.ProjectAdmin,
520
+ Permission.ProjectMember,
521
+ Permission.ReadIncidentGroupingRule,
522
+ ],
523
+ update: [
524
+ Permission.ProjectOwner,
525
+ Permission.ProjectAdmin,
526
+ Permission.EditIncidentGroupingRule,
527
+ ],
528
+ }),
529
+ TableColumn({
530
+ required: false,
531
+ type: TableColumnType.LongText,
532
+ title: "Incident Description Pattern",
533
+ description: "Regular expression pattern to match incident 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
+ ], IncidentGroupingRule.prototype, "incidentDescriptionPattern", void 0);
542
+ __decorate([
543
+ ColumnAccessControl({
544
+ create: [
545
+ Permission.ProjectOwner,
546
+ Permission.ProjectAdmin,
547
+ Permission.CreateIncidentGroupingRule,
548
+ ],
549
+ read: [
550
+ Permission.ProjectOwner,
551
+ Permission.ProjectAdmin,
552
+ Permission.ProjectMember,
553
+ Permission.ReadIncidentGroupingRule,
554
+ ],
555
+ update: [
556
+ Permission.ProjectOwner,
557
+ Permission.ProjectAdmin,
558
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "monitorNamePattern", void 0);
574
+ __decorate([
575
+ ColumnAccessControl({
576
+ create: [
577
+ Permission.ProjectOwner,
578
+ Permission.ProjectAdmin,
579
+ Permission.CreateIncidentGroupingRule,
580
+ ],
581
+ read: [
582
+ Permission.ProjectOwner,
583
+ Permission.ProjectAdmin,
584
+ Permission.ProjectMember,
585
+ Permission.ReadIncidentGroupingRule,
586
+ ],
587
+ update: [
588
+ Permission.ProjectOwner,
589
+ Permission.ProjectAdmin,
590
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "monitorDescriptionPattern", void 0);
606
+ __decorate([
607
+ ColumnAccessControl({
608
+ create: [
609
+ Permission.ProjectOwner,
610
+ Permission.ProjectAdmin,
611
+ Permission.CreateIncidentGroupingRule,
612
+ ],
613
+ read: [
614
+ Permission.ProjectOwner,
615
+ Permission.ProjectAdmin,
616
+ Permission.ProjectMember,
617
+ Permission.ReadIncidentGroupingRule,
618
+ ],
619
+ update: [
620
+ Permission.ProjectOwner,
621
+ Permission.ProjectAdmin,
622
+ Permission.EditIncidentGroupingRule,
623
+ ],
624
+ }),
625
+ TableColumn({
626
+ required: false,
627
+ type: TableColumnType.Boolean,
628
+ title: "Group By Monitor",
629
+ description: "When enabled, incidents from different monitors will be grouped into separate episodes. When disabled, incidents 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
+ ], IncidentGroupingRule.prototype, "groupByMonitor", void 0);
640
+ __decorate([
641
+ ColumnAccessControl({
642
+ create: [
643
+ Permission.ProjectOwner,
644
+ Permission.ProjectAdmin,
645
+ Permission.CreateIncidentGroupingRule,
646
+ ],
647
+ read: [
648
+ Permission.ProjectOwner,
649
+ Permission.ProjectAdmin,
650
+ Permission.ProjectMember,
651
+ Permission.ReadIncidentGroupingRule,
652
+ ],
653
+ update: [
654
+ Permission.ProjectOwner,
655
+ Permission.ProjectAdmin,
656
+ Permission.EditIncidentGroupingRule,
657
+ ],
658
+ }),
659
+ TableColumn({
660
+ required: false,
661
+ type: TableColumnType.Boolean,
662
+ title: "Group By Incident Severity",
663
+ description: "When enabled, incidents with different severities will be grouped into separate episodes. When disabled, incidents 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
+ ], IncidentGroupingRule.prototype, "groupBySeverity", void 0);
674
+ __decorate([
675
+ ColumnAccessControl({
676
+ create: [
677
+ Permission.ProjectOwner,
678
+ Permission.ProjectAdmin,
679
+ Permission.CreateIncidentGroupingRule,
680
+ ],
681
+ read: [
682
+ Permission.ProjectOwner,
683
+ Permission.ProjectAdmin,
684
+ Permission.ProjectMember,
685
+ Permission.ReadIncidentGroupingRule,
686
+ ],
687
+ update: [
688
+ Permission.ProjectOwner,
689
+ Permission.ProjectAdmin,
690
+ Permission.EditIncidentGroupingRule,
691
+ ],
692
+ }),
693
+ TableColumn({
694
+ required: false,
695
+ type: TableColumnType.Boolean,
696
+ title: "Group By Incident Title",
697
+ description: "When enabled, incidents with different titles will be grouped into separate episodes. When disabled, incidents 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
+ ], IncidentGroupingRule.prototype, "groupByIncidentTitle", void 0);
708
+ __decorate([
709
+ ColumnAccessControl({
710
+ create: [
711
+ Permission.ProjectOwner,
712
+ Permission.ProjectAdmin,
713
+ Permission.CreateIncidentGroupingRule,
714
+ ],
715
+ read: [
716
+ Permission.ProjectOwner,
717
+ Permission.ProjectAdmin,
718
+ Permission.ProjectMember,
719
+ Permission.ReadIncidentGroupingRule,
720
+ ],
721
+ update: [
722
+ Permission.ProjectOwner,
723
+ Permission.ProjectAdmin,
724
+ Permission.EditIncidentGroupingRule,
725
+ ],
726
+ }),
727
+ TableColumn({
728
+ required: false,
729
+ type: TableColumnType.Boolean,
730
+ title: "Group By Service",
731
+ description: "When enabled, incidents from monitors belonging to different services will be grouped into separate episodes. When disabled, incidents 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
+ ], IncidentGroupingRule.prototype, "groupByService", void 0);
742
+ __decorate([
743
+ ColumnAccessControl({
744
+ create: [
745
+ Permission.ProjectOwner,
746
+ Permission.ProjectAdmin,
747
+ Permission.CreateIncidentGroupingRule,
748
+ ],
749
+ read: [
750
+ Permission.ProjectOwner,
751
+ Permission.ProjectAdmin,
752
+ Permission.ProjectMember,
753
+ Permission.ReadIncidentGroupingRule,
754
+ ],
755
+ update: [
756
+ Permission.ProjectOwner,
757
+ Permission.ProjectAdmin,
758
+ Permission.EditIncidentGroupingRule,
759
+ ],
760
+ }),
761
+ TableColumn({
762
+ required: false,
763
+ type: TableColumnType.Boolean,
764
+ title: "Enable Time Window",
765
+ description: "Enable time-based grouping. When enabled, incidents are grouped within the specified time window. When disabled, all matching incidents 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
+ ], IncidentGroupingRule.prototype, "enableTimeWindow", void 0);
776
+ __decorate([
777
+ ColumnAccessControl({
778
+ create: [
779
+ Permission.ProjectOwner,
780
+ Permission.ProjectAdmin,
781
+ Permission.CreateIncidentGroupingRule,
782
+ ],
783
+ read: [
784
+ Permission.ProjectOwner,
785
+ Permission.ProjectAdmin,
786
+ Permission.ProjectMember,
787
+ Permission.ReadIncidentGroupingRule,
788
+ ],
789
+ update: [
790
+ Permission.ProjectOwner,
791
+ Permission.ProjectAdmin,
792
+ Permission.EditIncidentGroupingRule,
793
+ ],
794
+ }),
795
+ TableColumn({
796
+ required: false,
797
+ type: TableColumnType.Number,
798
+ title: "Time Window (Minutes)",
799
+ description: "Rolling time window in minutes. Incidents are grouped if they arrive within this gap from the last incident.",
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
+ ], IncidentGroupingRule.prototype, "timeWindowMinutes", void 0);
810
+ __decorate([
811
+ ColumnAccessControl({
812
+ create: [
813
+ Permission.ProjectOwner,
814
+ Permission.ProjectAdmin,
815
+ Permission.CreateIncidentGroupingRule,
816
+ ],
817
+ read: [
818
+ Permission.ProjectOwner,
819
+ Permission.ProjectAdmin,
820
+ Permission.ProjectMember,
821
+ Permission.ReadIncidentGroupingRule,
822
+ ],
823
+ update: [
824
+ Permission.ProjectOwner,
825
+ Permission.ProjectAdmin,
826
+ Permission.EditIncidentGroupingRule,
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 incidents by (e.g., monitorId, severity)",
834
+ }),
835
+ Column({
836
+ type: ColumnType.JSON,
837
+ nullable: true,
838
+ }),
839
+ __metadata("design:type", Object)
840
+ ], IncidentGroupingRule.prototype, "groupByFields", void 0);
841
+ __decorate([
842
+ ColumnAccessControl({
843
+ create: [
844
+ Permission.ProjectOwner,
845
+ Permission.ProjectAdmin,
846
+ Permission.CreateIncidentGroupingRule,
847
+ ],
848
+ read: [
849
+ Permission.ProjectOwner,
850
+ Permission.ProjectAdmin,
851
+ Permission.ProjectMember,
852
+ Permission.ReadIncidentGroupingRule,
853
+ ],
854
+ update: [
855
+ Permission.ProjectOwner,
856
+ Permission.ProjectAdmin,
857
+ Permission.EditIncidentGroupingRule,
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 {{incidentSeverity}}, {{monitorName}}, {{incidentTitle}}, {{incidentDescription}}",
865
+ }),
866
+ Column({
867
+ type: ColumnType.LongText,
868
+ nullable: true,
869
+ }),
870
+ __metadata("design:type", String)
871
+ ], IncidentGroupingRule.prototype, "episodeTitleTemplate", void 0);
872
+ __decorate([
873
+ ColumnAccessControl({
874
+ create: [
875
+ Permission.ProjectOwner,
876
+ Permission.ProjectAdmin,
877
+ Permission.CreateIncidentGroupingRule,
878
+ ],
879
+ read: [
880
+ Permission.ProjectOwner,
881
+ Permission.ProjectAdmin,
882
+ Permission.ProjectMember,
883
+ Permission.ReadIncidentGroupingRule,
884
+ ],
885
+ update: [
886
+ Permission.ProjectOwner,
887
+ Permission.ProjectAdmin,
888
+ Permission.EditIncidentGroupingRule,
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 {{incidentSeverity}}, {{monitorName}}, {{incidentTitle}}, {{incidentDescription}}",
896
+ }),
897
+ Column({
898
+ type: ColumnType.LongText,
899
+ nullable: true,
900
+ }),
901
+ __metadata("design:type", String)
902
+ ], IncidentGroupingRule.prototype, "episodeDescriptionTemplate", void 0);
903
+ __decorate([
904
+ ColumnAccessControl({
905
+ create: [
906
+ Permission.ProjectOwner,
907
+ Permission.ProjectAdmin,
908
+ Permission.CreateIncidentGroupingRule,
909
+ ],
910
+ read: [
911
+ Permission.ProjectOwner,
912
+ Permission.ProjectAdmin,
913
+ Permission.ProjectMember,
914
+ Permission.ReadIncidentGroupingRule,
915
+ ],
916
+ update: [
917
+ Permission.ProjectOwner,
918
+ Permission.ProjectAdmin,
919
+ Permission.EditIncidentGroupingRule,
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 incidents resolve. Helps prevent rapid state changes during incident 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
+ ], IncidentGroupingRule.prototype, "enableResolveDelay", void 0);
937
+ __decorate([
938
+ ColumnAccessControl({
939
+ create: [
940
+ Permission.ProjectOwner,
941
+ Permission.ProjectAdmin,
942
+ Permission.CreateIncidentGroupingRule,
943
+ ],
944
+ read: [
945
+ Permission.ProjectOwner,
946
+ Permission.ProjectAdmin,
947
+ Permission.ProjectMember,
948
+ Permission.ReadIncidentGroupingRule,
949
+ ],
950
+ update: [
951
+ Permission.ProjectOwner,
952
+ Permission.ProjectAdmin,
953
+ Permission.EditIncidentGroupingRule,
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 incidents 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
+ ], IncidentGroupingRule.prototype, "resolveDelayMinutes", void 0);
971
+ __decorate([
972
+ ColumnAccessControl({
973
+ create: [
974
+ Permission.ProjectOwner,
975
+ Permission.ProjectAdmin,
976
+ Permission.CreateIncidentGroupingRule,
977
+ ],
978
+ read: [
979
+ Permission.ProjectOwner,
980
+ Permission.ProjectAdmin,
981
+ Permission.ProjectMember,
982
+ Permission.ReadIncidentGroupingRule,
983
+ ],
984
+ update: [
985
+ Permission.ProjectOwner,
986
+ Permission.ProjectAdmin,
987
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "enableReopenWindow", void 0);
1005
+ __decorate([
1006
+ ColumnAccessControl({
1007
+ create: [
1008
+ Permission.ProjectOwner,
1009
+ Permission.ProjectAdmin,
1010
+ Permission.CreateIncidentGroupingRule,
1011
+ ],
1012
+ read: [
1013
+ Permission.ProjectOwner,
1014
+ Permission.ProjectAdmin,
1015
+ Permission.ProjectMember,
1016
+ Permission.ReadIncidentGroupingRule,
1017
+ ],
1018
+ update: [
1019
+ Permission.ProjectOwner,
1020
+ Permission.ProjectAdmin,
1021
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "reopenWindowMinutes", void 0);
1039
+ __decorate([
1040
+ ColumnAccessControl({
1041
+ create: [
1042
+ Permission.ProjectOwner,
1043
+ Permission.ProjectAdmin,
1044
+ Permission.CreateIncidentGroupingRule,
1045
+ ],
1046
+ read: [
1047
+ Permission.ProjectOwner,
1048
+ Permission.ProjectAdmin,
1049
+ Permission.ProjectMember,
1050
+ Permission.ReadIncidentGroupingRule,
1051
+ ],
1052
+ update: [
1053
+ Permission.ProjectOwner,
1054
+ Permission.ProjectAdmin,
1055
+ Permission.EditIncidentGroupingRule,
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 incidents 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
+ ], IncidentGroupingRule.prototype, "enableInactivityTimeout", void 0);
1073
+ __decorate([
1074
+ ColumnAccessControl({
1075
+ create: [
1076
+ Permission.ProjectOwner,
1077
+ Permission.ProjectAdmin,
1078
+ Permission.CreateIncidentGroupingRule,
1079
+ ],
1080
+ read: [
1081
+ Permission.ProjectOwner,
1082
+ Permission.ProjectAdmin,
1083
+ Permission.ProjectMember,
1084
+ Permission.ReadIncidentGroupingRule,
1085
+ ],
1086
+ update: [
1087
+ Permission.ProjectOwner,
1088
+ Permission.ProjectAdmin,
1089
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "inactivityTimeoutMinutes", void 0);
1107
+ __decorate([
1108
+ ColumnAccessControl({
1109
+ create: [
1110
+ Permission.ProjectOwner,
1111
+ Permission.ProjectAdmin,
1112
+ Permission.CreateIncidentGroupingRule,
1113
+ ],
1114
+ read: [
1115
+ Permission.ProjectOwner,
1116
+ Permission.ProjectAdmin,
1117
+ Permission.ProjectMember,
1118
+ Permission.ReadIncidentGroupingRule,
1119
+ ],
1120
+ update: [
1121
+ Permission.ProjectOwner,
1122
+ Permission.ProjectAdmin,
1123
+ Permission.EditIncidentGroupingRule,
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: "IncidentGroupingRuleOnCallDutyPolicy",
1138
+ inverseJoinColumn: {
1139
+ name: "onCallDutyPolicyId",
1140
+ referencedColumnName: "_id",
1141
+ },
1142
+ joinColumn: {
1143
+ name: "incidentGroupingRuleId",
1144
+ referencedColumnName: "_id",
1145
+ },
1146
+ }),
1147
+ __metadata("design:type", Array)
1148
+ ], IncidentGroupingRule.prototype, "onCallDutyPolicies", void 0);
1149
+ __decorate([
1150
+ ColumnAccessControl({
1151
+ create: [
1152
+ Permission.ProjectOwner,
1153
+ Permission.ProjectAdmin,
1154
+ Permission.CreateIncidentGroupingRule,
1155
+ ],
1156
+ read: [
1157
+ Permission.ProjectOwner,
1158
+ Permission.ProjectAdmin,
1159
+ Permission.ProjectMember,
1160
+ Permission.ReadIncidentGroupingRule,
1161
+ ],
1162
+ update: [
1163
+ Permission.ProjectOwner,
1164
+ Permission.ProjectAdmin,
1165
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "defaultAssignToUser", void 0);
1186
+ __decorate([
1187
+ ColumnAccessControl({
1188
+ create: [
1189
+ Permission.ProjectOwner,
1190
+ Permission.ProjectAdmin,
1191
+ Permission.CreateIncidentGroupingRule,
1192
+ ],
1193
+ read: [
1194
+ Permission.ProjectOwner,
1195
+ Permission.ProjectAdmin,
1196
+ Permission.ProjectMember,
1197
+ Permission.ReadIncidentGroupingRule,
1198
+ ],
1199
+ update: [
1200
+ Permission.ProjectOwner,
1201
+ Permission.ProjectAdmin,
1202
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "defaultAssignToUserId", void 0);
1219
+ __decorate([
1220
+ ColumnAccessControl({
1221
+ create: [
1222
+ Permission.ProjectOwner,
1223
+ Permission.ProjectAdmin,
1224
+ Permission.CreateIncidentGroupingRule,
1225
+ ],
1226
+ read: [
1227
+ Permission.ProjectOwner,
1228
+ Permission.ProjectAdmin,
1229
+ Permission.ProjectMember,
1230
+ Permission.ReadIncidentGroupingRule,
1231
+ ],
1232
+ update: [
1233
+ Permission.ProjectOwner,
1234
+ Permission.ProjectAdmin,
1235
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "defaultAssignToTeam", void 0);
1256
+ __decorate([
1257
+ ColumnAccessControl({
1258
+ create: [
1259
+ Permission.ProjectOwner,
1260
+ Permission.ProjectAdmin,
1261
+ Permission.CreateIncidentGroupingRule,
1262
+ ],
1263
+ read: [
1264
+ Permission.ProjectOwner,
1265
+ Permission.ProjectAdmin,
1266
+ Permission.ProjectMember,
1267
+ Permission.ReadIncidentGroupingRule,
1268
+ ],
1269
+ update: [
1270
+ Permission.ProjectOwner,
1271
+ Permission.ProjectAdmin,
1272
+ Permission.EditIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "defaultAssignToTeamId", void 0);
1289
+ __decorate([
1290
+ ColumnAccessControl({
1291
+ create: [
1292
+ Permission.ProjectOwner,
1293
+ Permission.ProjectAdmin,
1294
+ Permission.CreateIncidentGroupingRule,
1295
+ ],
1296
+ read: [
1297
+ Permission.ProjectOwner,
1298
+ Permission.ProjectAdmin,
1299
+ Permission.ProjectMember,
1300
+ Permission.ReadIncidentGroupingRule,
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
+ ], IncidentGroupingRule.prototype, "createdByUser", void 0);
1322
+ __decorate([
1323
+ ColumnAccessControl({
1324
+ create: [
1325
+ Permission.ProjectOwner,
1326
+ Permission.ProjectAdmin,
1327
+ Permission.CreateIncidentGroupingRule,
1328
+ ],
1329
+ read: [
1330
+ Permission.ProjectOwner,
1331
+ Permission.ProjectAdmin,
1332
+ Permission.ProjectMember,
1333
+ Permission.ReadIncidentGroupingRule,
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
+ ], IncidentGroupingRule.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
+ ], IncidentGroupingRule.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
+ ], IncidentGroupingRule.prototype, "deletedByUserId", void 0);
1392
+ IncidentGroupingRule = __decorate([
1393
+ EnableDocumentation(),
1394
+ TenantColumn("projectId"),
1395
+ TableAccessControl({
1396
+ create: [
1397
+ Permission.ProjectOwner,
1398
+ Permission.ProjectAdmin,
1399
+ Permission.CreateIncidentGroupingRule,
1400
+ ],
1401
+ read: [
1402
+ Permission.ProjectOwner,
1403
+ Permission.ProjectAdmin,
1404
+ Permission.ProjectMember,
1405
+ Permission.ReadIncidentGroupingRule,
1406
+ ],
1407
+ delete: [
1408
+ Permission.ProjectOwner,
1409
+ Permission.ProjectAdmin,
1410
+ Permission.DeleteIncidentGroupingRule,
1411
+ ],
1412
+ update: [
1413
+ Permission.ProjectOwner,
1414
+ Permission.ProjectAdmin,
1415
+ Permission.EditIncidentGroupingRule,
1416
+ ],
1417
+ }),
1418
+ CrudApiEndpoint(new Route("/incident-grouping-rule")),
1419
+ Entity({
1420
+ name: "IncidentGroupingRule",
1421
+ }),
1422
+ EnableWorkflow({
1423
+ create: true,
1424
+ delete: true,
1425
+ update: true,
1426
+ read: true,
1427
+ }),
1428
+ TableMetadata({
1429
+ tableName: "IncidentGroupingRule",
1430
+ singularName: "Incident Grouping Rule",
1431
+ pluralName: "Incident Grouping Rules",
1432
+ icon: IconProp.Layers,
1433
+ tableDescription: "Configure rules for automatically grouping related incidents into episodes",
1434
+ })
1435
+ ], IncidentGroupingRule);
1436
+ export default IncidentGroupingRule;
1437
+ //# sourceMappingURL=IncidentGroupingRule.js.map