@oneuptime/common 7.0.3148 → 7.0.3153

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 (222) hide show
  1. package/Models/DatabaseModels/Alert.ts +1010 -0
  2. package/Models/DatabaseModels/AlertCustomField.ts +340 -0
  3. package/Models/DatabaseModels/AlertInternalNote.ts +371 -0
  4. package/Models/DatabaseModels/AlertNoteTemplate.ts +352 -0
  5. package/Models/DatabaseModels/AlertOwnerTeam.ts +416 -0
  6. package/Models/DatabaseModels/AlertOwnerUser.ts +415 -0
  7. package/Models/DatabaseModels/AlertSeverity.ts +426 -0
  8. package/Models/DatabaseModels/AlertState.ts +502 -0
  9. package/Models/DatabaseModels/AlertStateTimeline.ts +525 -0
  10. package/Models/DatabaseModels/Incident.ts +2 -11
  11. package/Models/DatabaseModels/Index.ts +34 -12
  12. package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +55 -0
  13. package/Models/DatabaseModels/TableView.ts +452 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1727894983857-MigrationName.ts +51 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1727906598804-MigrationName.ts +553 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  17. package/Server/Services/AlertCustomFieldService.ts +9 -0
  18. package/Server/Services/AlertInternalNoteService.ts +10 -0
  19. package/Server/Services/AlertNoteTemplateService.ts +9 -0
  20. package/Server/Services/AlertOwnerTeamService.ts +10 -0
  21. package/Server/Services/AlertOwnerUserService.ts +10 -0
  22. package/Server/Services/AlertService.ts +568 -0
  23. package/Server/Services/AlertSeverityService.ts +154 -0
  24. package/Server/Services/AlertStateService.ts +227 -0
  25. package/Server/Services/AlertStateTimelineService.ts +334 -0
  26. package/Server/Services/CallLogService.ts +4 -1
  27. package/Server/Services/DatabaseService.ts +17 -20
  28. package/Server/Services/EmailLogService.ts +4 -1
  29. package/Server/Services/IncidentService.ts +4 -1
  30. package/Server/Services/IncidentStateTimelineService.ts +4 -1
  31. package/Server/Services/Index.ts +23 -0
  32. package/Server/Services/MonitorStatusTimelineService.ts +4 -1
  33. package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +4 -1
  34. package/Server/Services/OnCallDutyPolicyService.ts +15 -0
  35. package/Server/Services/ProjectService.ts +99 -1
  36. package/Server/Services/ScheduledMaintenanceService.ts +4 -1
  37. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +4 -1
  38. package/Server/Services/ShortLinkService.ts +4 -1
  39. package/Server/Services/SmsLogService.ts +4 -1
  40. package/Server/Services/TableViewService.ts +10 -0
  41. package/Server/Services/TelemetryUsageBillingService.ts +4 -1
  42. package/Server/Services/UserNotificationSettingService.ts +58 -0
  43. package/Server/Services/UserOnCallLogService.ts +4 -1
  44. package/Server/Services/WorkflowLogService.ts +4 -1
  45. package/Server/Types/Workflow/Components/API/Post.ts +25 -0
  46. package/Server/Utils/Monitor/MonitorAlert.ts +273 -0
  47. package/Server/Utils/Monitor/MonitorIncident.ts +298 -0
  48. package/Server/Utils/Monitor/MonitorResource.ts +67 -387
  49. package/Server/Utils/Monitor/MonitorStatusTimeline.ts +120 -0
  50. package/Server/Utils/Realtime.ts +1 -35
  51. package/Types/Email/EmailTemplateType.ts +7 -0
  52. package/Types/Icon/IconProp.ts +1 -0
  53. package/Types/Monitor/CriteriaAlert.ts +11 -0
  54. package/Types/Monitor/MonitorCriteria.ts +2 -0
  55. package/Types/Monitor/MonitorCriteriaInstance.ts +134 -1
  56. package/Types/Monitor/MonitorStep.ts +1 -0
  57. package/Types/Monitor/MonitorSteps.ts +1 -0
  58. package/Types/NotificationSetting/NotificationSettingEventType.ts +7 -0
  59. package/Types/Permission.ts +369 -1
  60. package/Types/Telemetry/TelemetryQuery.ts +10 -0
  61. package/Types/UserNotification/UserNotificationEventType.ts +1 -0
  62. package/UI/Components/Card/Card.tsx +40 -31
  63. package/UI/Components/Card/CardButtons/MoreButton.ts +15 -0
  64. package/UI/Components/HeaderAlert/HeaderAlert.tsx +75 -16
  65. package/UI/Components/HeaderAlert/HeaderAlertGroup.tsx +50 -0
  66. package/UI/Components/HeaderAlert/HeaderModelAlert.tsx +5 -1
  67. package/UI/Components/Icon/Icon.tsx +8 -0
  68. package/UI/Components/ModelDetail/CardModelDetail.tsx +4 -2
  69. package/UI/Components/ModelTable/BaseModelTable.tsx +70 -2
  70. package/UI/Components/ModelTable/TableView.tsx +317 -0
  71. package/UI/Components/MoreMenu/Divider.tsx +7 -0
  72. package/UI/Components/MoreMenu/MoreMenu.tsx +54 -0
  73. package/UI/Components/MoreMenu/MoreMenuItem.tsx +37 -0
  74. package/UI/Components/MoreMenu/MoreMenuSection.tsx +22 -0
  75. package/UI/Components/Toggle/Toggle.tsx +14 -0
  76. package/build/dist/Models/DatabaseModels/Alert.js +1028 -0
  77. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -0
  78. package/build/dist/Models/DatabaseModels/AlertCustomField.js +360 -0
  79. package/build/dist/Models/DatabaseModels/AlertCustomField.js.map +1 -0
  80. package/build/dist/Models/DatabaseModels/AlertInternalNote.js +391 -0
  81. package/build/dist/Models/DatabaseModels/AlertInternalNote.js.map +1 -0
  82. package/build/dist/Models/DatabaseModels/AlertNoteTemplate.js +372 -0
  83. package/build/dist/Models/DatabaseModels/AlertNoteTemplate.js.map +1 -0
  84. package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js +434 -0
  85. package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js.map +1 -0
  86. package/build/dist/Models/DatabaseModels/AlertOwnerUser.js +433 -0
  87. package/build/dist/Models/DatabaseModels/AlertOwnerUser.js.map +1 -0
  88. package/build/dist/Models/DatabaseModels/AlertSeverity.js +450 -0
  89. package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -0
  90. package/build/dist/Models/DatabaseModels/AlertState.js +530 -0
  91. package/build/dist/Models/DatabaseModels/AlertState.js.map +1 -0
  92. package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +548 -0
  93. package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -0
  94. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  95. package/build/dist/Models/DatabaseModels/Index.js +29 -9
  96. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  97. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +55 -0
  98. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
  99. package/build/dist/Models/DatabaseModels/TableView.js +475 -0
  100. package/build/dist/Models/DatabaseModels/TableView.js.map +1 -0
  101. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1727894983857-MigrationName.js +24 -0
  102. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1727894983857-MigrationName.js.map +1 -0
  103. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1727906598804-MigrationName.js +198 -0
  104. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1727906598804-MigrationName.js.map +1 -0
  105. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  106. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  107. package/build/dist/Server/Services/AlertCustomFieldService.js +9 -0
  108. package/build/dist/Server/Services/AlertCustomFieldService.js.map +1 -0
  109. package/build/dist/Server/Services/AlertInternalNoteService.js +9 -0
  110. package/build/dist/Server/Services/AlertInternalNoteService.js.map +1 -0
  111. package/build/dist/Server/Services/AlertNoteTemplateService.js +9 -0
  112. package/build/dist/Server/Services/AlertNoteTemplateService.js.map +1 -0
  113. package/build/dist/Server/Services/AlertOwnerTeamService.js +9 -0
  114. package/build/dist/Server/Services/AlertOwnerTeamService.js.map +1 -0
  115. package/build/dist/Server/Services/AlertOwnerUserService.js +9 -0
  116. package/build/dist/Server/Services/AlertOwnerUserService.js.map +1 -0
  117. package/build/dist/Server/Services/AlertService.js +418 -0
  118. package/build/dist/Server/Services/AlertService.js.map +1 -0
  119. package/build/dist/Server/Services/AlertSeverityService.js +108 -0
  120. package/build/dist/Server/Services/AlertSeverityService.js.map +1 -0
  121. package/build/dist/Server/Services/AlertStateService.js +158 -0
  122. package/build/dist/Server/Services/AlertStateService.js.map +1 -0
  123. package/build/dist/Server/Services/AlertStateTimelineService.js +267 -0
  124. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -0
  125. package/build/dist/Server/Services/CallLogService.js +4 -1
  126. package/build/dist/Server/Services/CallLogService.js.map +1 -1
  127. package/build/dist/Server/Services/DatabaseService.js +9 -9
  128. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  129. package/build/dist/Server/Services/EmailLogService.js +4 -1
  130. package/build/dist/Server/Services/EmailLogService.js.map +1 -1
  131. package/build/dist/Server/Services/IncidentService.js +4 -1
  132. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  133. package/build/dist/Server/Services/IncidentStateTimelineService.js +4 -1
  134. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  135. package/build/dist/Server/Services/Index.js +21 -0
  136. package/build/dist/Server/Services/Index.js.map +1 -1
  137. package/build/dist/Server/Services/MonitorStatusTimelineService.js +4 -1
  138. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  139. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +4 -1
  140. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
  141. package/build/dist/Server/Services/OnCallDutyPolicyService.js +8 -0
  142. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  143. package/build/dist/Server/Services/ProjectService.js +80 -1
  144. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  145. package/build/dist/Server/Services/ScheduledMaintenanceService.js +4 -1
  146. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  147. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +4 -1
  148. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  149. package/build/dist/Server/Services/ShortLinkService.js +4 -1
  150. package/build/dist/Server/Services/ShortLinkService.js.map +1 -1
  151. package/build/dist/Server/Services/SmsLogService.js +4 -1
  152. package/build/dist/Server/Services/SmsLogService.js.map +1 -1
  153. package/build/dist/Server/Services/TableViewService.js +9 -0
  154. package/build/dist/Server/Services/TableViewService.js.map +1 -0
  155. package/build/dist/Server/Services/TelemetryUsageBillingService.js +4 -1
  156. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  157. package/build/dist/Server/Services/UserNotificationSettingService.js +49 -0
  158. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  159. package/build/dist/Server/Services/UserOnCallLogService.js +4 -1
  160. package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
  161. package/build/dist/Server/Services/WorkflowLogService.js +4 -1
  162. package/build/dist/Server/Services/WorkflowLogService.js.map +1 -1
  163. package/build/dist/Server/Types/Workflow/Components/API/Post.js +14 -0
  164. package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
  165. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +177 -0
  166. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -0
  167. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +187 -0
  168. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -0
  169. package/build/dist/Server/Utils/Monitor/MonitorResource.js +46 -254
  170. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  171. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +79 -0
  172. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -0
  173. package/build/dist/Server/Utils/Realtime.js +3 -28
  174. package/build/dist/Server/Utils/Realtime.js.map +1 -1
  175. package/build/dist/Types/Email/EmailTemplateType.js +4 -0
  176. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  177. package/build/dist/Types/Icon/IconProp.js +1 -0
  178. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  179. package/build/dist/Types/Monitor/CriteriaAlert.js +2 -0
  180. package/build/dist/Types/Monitor/CriteriaAlert.js.map +1 -0
  181. package/build/dist/Types/Monitor/MonitorCriteria.js +1 -0
  182. package/build/dist/Types/Monitor/MonitorCriteria.js.map +1 -1
  183. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +120 -1
  184. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  185. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  186. package/build/dist/Types/Monitor/MonitorSteps.js.map +1 -1
  187. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +5 -0
  188. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  189. package/build/dist/Types/Permission.js +323 -1
  190. package/build/dist/Types/Permission.js.map +1 -1
  191. package/build/dist/Types/Telemetry/TelemetryQuery.js +2 -0
  192. package/build/dist/Types/Telemetry/TelemetryQuery.js.map +1 -0
  193. package/build/dist/Types/UserNotification/UserNotificationEventType.js +1 -0
  194. package/build/dist/Types/UserNotification/UserNotificationEventType.js.map +1 -1
  195. package/build/dist/UI/Components/Card/Card.js +3 -2
  196. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  197. package/build/dist/UI/Components/Card/CardButtons/MoreButton.js +12 -0
  198. package/build/dist/UI/Components/Card/CardButtons/MoreButton.js.map +1 -0
  199. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js +53 -9
  200. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js.map +1 -1
  201. package/build/dist/UI/Components/HeaderAlert/HeaderAlertGroup.js +25 -0
  202. package/build/dist/UI/Components/HeaderAlert/HeaderAlertGroup.js.map +1 -0
  203. package/build/dist/UI/Components/HeaderAlert/HeaderModelAlert.js +1 -1
  204. package/build/dist/UI/Components/HeaderAlert/HeaderModelAlert.js.map +1 -1
  205. package/build/dist/UI/Components/Icon/Icon.js +3 -0
  206. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  207. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
  208. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +46 -0
  209. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  210. package/build/dist/UI/Components/ModelTable/TableView.js +183 -0
  211. package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -0
  212. package/build/dist/UI/Components/MoreMenu/Divider.js +6 -0
  213. package/build/dist/UI/Components/MoreMenu/Divider.js.map +1 -0
  214. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +19 -0
  215. package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -0
  216. package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +13 -0
  217. package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -0
  218. package/build/dist/UI/Components/MoreMenu/MoreMenuSection.js +10 -0
  219. package/build/dist/UI/Components/MoreMenu/MoreMenuSection.js.map +1 -0
  220. package/build/dist/UI/Components/Toggle/Toggle.js +7 -1
  221. package/build/dist/UI/Components/Toggle/Toggle.js.map +1 -1
  222. package/package.json +2 -2
@@ -0,0 +1,525 @@
1
+ import Alert from "./Alert";
2
+ import AlertState from "./AlertState";
3
+ import Project from "./Project";
4
+ import User from "./User";
5
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
6
+ import Route from "../../Types/API/Route";
7
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
8
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
9
+ import CanAccessIfCanReadOn from "../../Types/Database/CanAccessIfCanReadOn";
10
+ import ColumnType from "../../Types/Database/ColumnType";
11
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
12
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
13
+ import EnableWorkflow from "../../Types/Database/EnableWorkflow";
14
+ import TableColumn from "../../Types/Database/TableColumn";
15
+ import TableColumnType from "../../Types/Database/TableColumnType";
16
+ import TableMetadata from "../../Types/Database/TableMetadata";
17
+ import TenantColumn from "../../Types/Database/TenantColumn";
18
+ import IconProp from "../../Types/Icon/IconProp";
19
+ import { JSONObject } from "../../Types/JSON";
20
+ import ObjectID from "../../Types/ObjectID";
21
+ import Permission from "../../Types/Permission";
22
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
23
+
24
+ @EnableDocumentation()
25
+ @CanAccessIfCanReadOn("alert")
26
+ @TenantColumn("projectId")
27
+ @TableAccessControl({
28
+ create: [
29
+ Permission.ProjectOwner,
30
+ Permission.ProjectAdmin,
31
+ Permission.ProjectMember,
32
+ Permission.CreateAlertStateTimeline,
33
+ ],
34
+ read: [
35
+ Permission.ProjectOwner,
36
+ Permission.ProjectAdmin,
37
+ Permission.ProjectMember,
38
+ Permission.ReadAlertStateTimeline,
39
+ ],
40
+ delete: [
41
+ Permission.ProjectOwner,
42
+ Permission.ProjectAdmin,
43
+ Permission.ProjectMember,
44
+ Permission.DeleteAlertStateTimeline,
45
+ ],
46
+ update: [
47
+ Permission.ProjectOwner,
48
+ Permission.ProjectAdmin,
49
+ Permission.ProjectMember,
50
+ Permission.EditAlertStateTimeline,
51
+ ],
52
+ })
53
+ @EnableWorkflow({
54
+ create: true,
55
+ delete: true,
56
+ update: true,
57
+ read: true,
58
+ })
59
+ @CrudApiEndpoint(new Route("/alert-state-timeline"))
60
+ @Entity({
61
+ name: "AlertStateTimeline",
62
+ })
63
+ @TableMetadata({
64
+ tableName: "AlertStateTimeline",
65
+ singularName: "Alert State Timeline",
66
+ pluralName: "Alert State Timelines",
67
+ icon: IconProp.List,
68
+ tableDescription:
69
+ "Change state of the alerts (Created to Acknowledged for example)",
70
+ })
71
+ export default class AlertStateTimeline extends BaseModel {
72
+ @ColumnAccessControl({
73
+ create: [
74
+ Permission.ProjectOwner,
75
+ Permission.ProjectAdmin,
76
+ Permission.ProjectMember,
77
+ Permission.CreateAlertStateTimeline,
78
+ ],
79
+ read: [
80
+ Permission.ProjectOwner,
81
+ Permission.ProjectAdmin,
82
+ Permission.ProjectMember,
83
+ Permission.ReadAlertStateTimeline,
84
+ ],
85
+ update: [],
86
+ })
87
+ @TableColumn({
88
+ manyToOneRelationColumn: "projectId",
89
+ type: TableColumnType.Entity,
90
+ modelType: Project,
91
+ title: "Project",
92
+ description: "Relation to Project Resource in which this object belongs",
93
+ })
94
+ @ManyToOne(
95
+ () => {
96
+ return Project;
97
+ },
98
+ {
99
+ eager: false,
100
+ nullable: true,
101
+ onDelete: "CASCADE",
102
+ orphanedRowAction: "nullify",
103
+ },
104
+ )
105
+ @JoinColumn({ name: "projectId" })
106
+ public project?: Project = undefined;
107
+
108
+ @ColumnAccessControl({
109
+ create: [
110
+ Permission.ProjectOwner,
111
+ Permission.ProjectAdmin,
112
+ Permission.ProjectMember,
113
+ Permission.CreateAlertStateTimeline,
114
+ ],
115
+ read: [
116
+ Permission.ProjectOwner,
117
+ Permission.ProjectAdmin,
118
+ Permission.ProjectMember,
119
+ Permission.ReadAlertStateTimeline,
120
+ ],
121
+ update: [],
122
+ })
123
+ @Index()
124
+ @TableColumn({
125
+ type: TableColumnType.ObjectID,
126
+ required: true,
127
+ canReadOnRelationQuery: true,
128
+ title: "Project ID",
129
+ description: "ID of your OneUptime Project in which this object belongs",
130
+ })
131
+ @Column({
132
+ type: ColumnType.ObjectID,
133
+ nullable: false,
134
+ transformer: ObjectID.getDatabaseTransformer(),
135
+ })
136
+ public projectId?: ObjectID = undefined;
137
+
138
+ @ColumnAccessControl({
139
+ create: [
140
+ Permission.ProjectOwner,
141
+ Permission.ProjectAdmin,
142
+ Permission.ProjectMember,
143
+ Permission.CreateAlertStateTimeline,
144
+ ],
145
+ read: [
146
+ Permission.ProjectOwner,
147
+ Permission.ProjectAdmin,
148
+ Permission.ProjectMember,
149
+ Permission.ReadAlertStateTimeline,
150
+ ],
151
+ update: [],
152
+ })
153
+ @TableColumn({
154
+ manyToOneRelationColumn: "alertId",
155
+ type: TableColumnType.Entity,
156
+ modelType: Alert,
157
+ title: "Alert",
158
+ description: "Relation to Alert in which this resource belongs",
159
+ })
160
+ @ManyToOne(
161
+ () => {
162
+ return Alert;
163
+ },
164
+ {
165
+ eager: false,
166
+ nullable: true,
167
+ onDelete: "CASCADE",
168
+ orphanedRowAction: "nullify",
169
+ },
170
+ )
171
+ @JoinColumn({ name: "alertId" })
172
+ public alert?: Alert = undefined;
173
+
174
+ @ColumnAccessControl({
175
+ create: [
176
+ Permission.ProjectOwner,
177
+ Permission.ProjectAdmin,
178
+ Permission.ProjectMember,
179
+ Permission.CreateAlertStateTimeline,
180
+ ],
181
+ read: [
182
+ Permission.ProjectOwner,
183
+ Permission.ProjectAdmin,
184
+ Permission.ProjectMember,
185
+ Permission.ReadAlertStateTimeline,
186
+ ],
187
+ update: [],
188
+ })
189
+ @Index()
190
+ @TableColumn({
191
+ type: TableColumnType.ObjectID,
192
+ required: true,
193
+ title: "Alert ID",
194
+ description: "Relation to Alert ID in which this resource belongs",
195
+ })
196
+ @Column({
197
+ type: ColumnType.ObjectID,
198
+ nullable: false,
199
+ transformer: ObjectID.getDatabaseTransformer(),
200
+ })
201
+ public alertId?: ObjectID = undefined;
202
+
203
+ @ColumnAccessControl({
204
+ create: [
205
+ Permission.ProjectOwner,
206
+ Permission.ProjectAdmin,
207
+ Permission.ProjectMember,
208
+ Permission.CreateAlertStateTimeline,
209
+ ],
210
+ read: [
211
+ Permission.ProjectOwner,
212
+ Permission.ProjectAdmin,
213
+ Permission.ProjectMember,
214
+ Permission.ReadAlertStateTimeline,
215
+ ],
216
+ update: [],
217
+ })
218
+ @TableColumn({
219
+ manyToOneRelationColumn: "createdByUserId",
220
+ type: TableColumnType.Entity,
221
+ modelType: User,
222
+ title: "Created by User",
223
+ description:
224
+ "Relation to User who created this object (if this object was created by a User)",
225
+ })
226
+ @ManyToOne(
227
+ () => {
228
+ return User;
229
+ },
230
+ {
231
+ eager: false,
232
+ nullable: true,
233
+ onDelete: "SET NULL",
234
+ orphanedRowAction: "nullify",
235
+ },
236
+ )
237
+ @JoinColumn({ name: "createdByUserId" })
238
+ public createdByUser?: User = undefined;
239
+
240
+ @ColumnAccessControl({
241
+ create: [
242
+ Permission.ProjectOwner,
243
+ Permission.ProjectAdmin,
244
+ Permission.ProjectMember,
245
+ Permission.CreateAlertStateTimeline,
246
+ ],
247
+ read: [
248
+ Permission.ProjectOwner,
249
+ Permission.ProjectAdmin,
250
+ Permission.ProjectMember,
251
+ Permission.ReadAlertStateTimeline,
252
+ ],
253
+ update: [],
254
+ })
255
+ @TableColumn({
256
+ type: TableColumnType.ObjectID,
257
+ title: "Created by User ID",
258
+ description:
259
+ "User ID who created this object (if this object was created by a User)",
260
+ })
261
+ @Column({
262
+ type: ColumnType.ObjectID,
263
+ nullable: true,
264
+ transformer: ObjectID.getDatabaseTransformer(),
265
+ })
266
+ public createdByUserId?: ObjectID = undefined;
267
+
268
+ @ColumnAccessControl({
269
+ create: [],
270
+ read: [],
271
+ update: [],
272
+ })
273
+ @TableColumn({
274
+ manyToOneRelationColumn: "deletedByUserId",
275
+ type: TableColumnType.Entity,
276
+ title: "Deleted by User",
277
+ description:
278
+ "Relation to User who deleted this object (if this object was deleted by a User)",
279
+ })
280
+ @ManyToOne(
281
+ () => {
282
+ return User;
283
+ },
284
+ {
285
+ cascade: false,
286
+ eager: false,
287
+ nullable: true,
288
+ onDelete: "SET NULL",
289
+ orphanedRowAction: "nullify",
290
+ },
291
+ )
292
+ @JoinColumn({ name: "deletedByUserId" })
293
+ public deletedByUser?: User = undefined;
294
+
295
+ @ColumnAccessControl({
296
+ create: [],
297
+ read: [],
298
+ update: [],
299
+ })
300
+ @TableColumn({
301
+ type: TableColumnType.ObjectID,
302
+ title: "Deleted by User ID",
303
+ description:
304
+ "User ID who deleted this object (if this object was deleted by a User)",
305
+ })
306
+ @Column({
307
+ type: ColumnType.ObjectID,
308
+ nullable: true,
309
+ transformer: ObjectID.getDatabaseTransformer(),
310
+ })
311
+ public deletedByUserId?: ObjectID = undefined;
312
+
313
+ @ColumnAccessControl({
314
+ create: [
315
+ Permission.ProjectOwner,
316
+ Permission.ProjectAdmin,
317
+ Permission.ProjectMember,
318
+ Permission.CreateAlertStateTimeline,
319
+ ],
320
+ read: [
321
+ Permission.ProjectOwner,
322
+ Permission.ProjectAdmin,
323
+ Permission.ProjectMember,
324
+ Permission.ReadAlertStateTimeline,
325
+ ],
326
+ update: [
327
+ Permission.ProjectOwner,
328
+ Permission.ProjectAdmin,
329
+ Permission.ProjectMember,
330
+ Permission.EditAlertStateTimeline,
331
+ ],
332
+ })
333
+ @TableColumn({
334
+ manyToOneRelationColumn: "alertStateId",
335
+ type: TableColumnType.Entity,
336
+ modelType: AlertState,
337
+ title: "Alert State",
338
+ description:
339
+ "Alert State Relation. Which alert state does this alert change to?",
340
+ })
341
+ @ManyToOne(
342
+ () => {
343
+ return AlertState;
344
+ },
345
+ {
346
+ eager: false,
347
+ nullable: true,
348
+ orphanedRowAction: "nullify",
349
+ },
350
+ )
351
+ @JoinColumn({ name: "alertStateId" })
352
+ public alertState?: AlertState = undefined;
353
+
354
+ @ColumnAccessControl({
355
+ create: [
356
+ Permission.ProjectOwner,
357
+ Permission.ProjectAdmin,
358
+ Permission.ProjectMember,
359
+ Permission.CreateAlertStateTimeline,
360
+ ],
361
+ read: [
362
+ Permission.ProjectOwner,
363
+ Permission.ProjectAdmin,
364
+ Permission.ProjectMember,
365
+ Permission.ReadAlertStateTimeline,
366
+ ],
367
+ update: [
368
+ Permission.ProjectOwner,
369
+ Permission.ProjectAdmin,
370
+ Permission.ProjectMember,
371
+ Permission.EditAlertStateTimeline,
372
+ ],
373
+ })
374
+ @Index()
375
+ @TableColumn({
376
+ type: TableColumnType.ObjectID,
377
+ required: true,
378
+ title: "Alert State ID",
379
+ description:
380
+ "Alert State ID Relation. Which alert state does this alert change to?",
381
+ })
382
+ @Column({
383
+ type: ColumnType.ObjectID,
384
+ nullable: false,
385
+ transformer: ObjectID.getDatabaseTransformer(),
386
+ })
387
+ public alertStateId?: ObjectID = undefined;
388
+
389
+ @ColumnAccessControl({
390
+ create: [
391
+ Permission.ProjectOwner,
392
+ Permission.ProjectAdmin,
393
+ Permission.ProjectMember,
394
+ Permission.CreateAlertStateTimeline,
395
+ ],
396
+ read: [
397
+ Permission.ProjectOwner,
398
+ Permission.ProjectAdmin,
399
+ Permission.ProjectMember,
400
+ Permission.ReadAlertStateTimeline,
401
+ ],
402
+ update: [],
403
+ })
404
+ @Index()
405
+ @TableColumn({
406
+ type: TableColumnType.Boolean,
407
+ required: true,
408
+ isDefaultValueColumn: true,
409
+ title: "Are Owners Notified",
410
+ description: "Are owners notified of state change?",
411
+ })
412
+ @Column({
413
+ type: ColumnType.Boolean,
414
+ nullable: false,
415
+ default: false,
416
+ })
417
+ public isOwnerNotified?: boolean = undefined;
418
+
419
+ @ColumnAccessControl({
420
+ create: [],
421
+ read: [
422
+ Permission.ProjectOwner,
423
+ Permission.ProjectAdmin,
424
+ Permission.ProjectMember,
425
+ Permission.ReadAlertStateTimeline,
426
+ ],
427
+ update: [],
428
+ })
429
+ @TableColumn({
430
+ isDefaultValueColumn: false,
431
+ required: false,
432
+ type: TableColumnType.JSON,
433
+ })
434
+ @Column({
435
+ type: ColumnType.JSON,
436
+ nullable: true,
437
+ unique: false,
438
+ })
439
+ public stateChangeLog?: JSONObject = undefined;
440
+
441
+ @ColumnAccessControl({
442
+ create: [
443
+ Permission.ProjectOwner,
444
+ Permission.ProjectAdmin,
445
+ Permission.ProjectMember,
446
+ Permission.CreateAlertStateTimeline,
447
+ ],
448
+ read: [
449
+ Permission.ProjectOwner,
450
+ Permission.ProjectAdmin,
451
+ Permission.ProjectMember,
452
+ Permission.ReadAlertStateTimeline,
453
+ ],
454
+ update: [],
455
+ })
456
+ @Index()
457
+ @TableColumn({
458
+ type: TableColumnType.Markdown,
459
+ required: false,
460
+ isDefaultValueColumn: false,
461
+ title: "Root Cause",
462
+ description: "What is the root cause of this status change?",
463
+ })
464
+ @Column({
465
+ type: ColumnType.Markdown,
466
+ nullable: true,
467
+ })
468
+ public rootCause?: string = undefined;
469
+
470
+ @Index()
471
+ @ColumnAccessControl({
472
+ create: [
473
+ Permission.ProjectOwner,
474
+ Permission.ProjectAdmin,
475
+ Permission.ProjectMember,
476
+ Permission.CreateAlertStateTimeline,
477
+ ],
478
+ read: [
479
+ Permission.ProjectOwner,
480
+ Permission.ProjectAdmin,
481
+ Permission.ProjectMember,
482
+ Permission.ReadAlertStateTimeline,
483
+ ],
484
+ update: [],
485
+ })
486
+ @TableColumn({
487
+ type: TableColumnType.Date,
488
+ title: "Ends At",
489
+ description: "When did this status change end?",
490
+ })
491
+ @Column({
492
+ type: ColumnType.Date,
493
+ nullable: true,
494
+ unique: false,
495
+ })
496
+ public endsAt?: Date = undefined;
497
+
498
+ @Index()
499
+ @ColumnAccessControl({
500
+ create: [
501
+ Permission.ProjectOwner,
502
+ Permission.ProjectAdmin,
503
+ Permission.ProjectMember,
504
+ Permission.CreateAlertStateTimeline,
505
+ ],
506
+ read: [
507
+ Permission.ProjectOwner,
508
+ Permission.ProjectAdmin,
509
+ Permission.ProjectMember,
510
+ Permission.ReadAlertStateTimeline,
511
+ ],
512
+ update: [],
513
+ })
514
+ @TableColumn({
515
+ type: TableColumnType.Date,
516
+ title: "Starts At",
517
+ description: "When did this status change start?",
518
+ })
519
+ @Column({
520
+ type: ColumnType.Date,
521
+ nullable: true,
522
+ unique: false,
523
+ })
524
+ public startsAt?: Date = undefined;
525
+ }
@@ -36,16 +36,7 @@ import {
36
36
  ManyToMany,
37
37
  ManyToOne,
38
38
  } from "typeorm";
39
- import TelemetryType from "../../Types/Telemetry/TelemetryType";
40
- import Query from "../../Types/BaseDatabase/Query";
41
- import Log from "../AnalyticsModels/Log";
42
- import Span from "../AnalyticsModels/Span";
43
- import Metric from "../AnalyticsModels/Metric";
44
-
45
- export interface TelemetryIncidentQuery {
46
- telemetryType: TelemetryType;
47
- telemetryQuery: Query<Log> | Query<Span> | Query<Metric>;
48
- }
39
+ import { TelemetryQuery } from "../../Types/Telemetry/TelemetryQuery";
49
40
 
50
41
  @EnableDocumentation()
51
42
  @AccessControlColumn("labels")
@@ -1095,5 +1086,5 @@ export default class Incident extends BaseModel {
1095
1086
  type: ColumnType.JSON,
1096
1087
  nullable: true,
1097
1088
  })
1098
- public telemetryQuery?: TelemetryIncidentQuery = undefined;
1089
+ public telemetryQuery?: TelemetryQuery = undefined;
1099
1090
  }
@@ -142,6 +142,16 @@ import ScheduledMaintenanceTemplateOwnerTeam from "./ScheduledMaintenanceTemplat
142
142
  import ScheduledMaintenanceTemplateOwnerUser from "./ScheduledMaintenanceTemplateOwnerUser";
143
143
 
144
144
  import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
145
+ import AlertState from "./AlertState";
146
+ import Alert from "./Alert";
147
+ import AlertCustomField from "./AlertCustomField";
148
+ import AlertStateTimeline from "./AlertStateTimeline";
149
+ import AlertInternalNote from "./AlertInternalNote";
150
+ import AlertOwnerTeam from "./AlertOwnerTeam";
151
+ import AlertOwnerUser from "./AlertOwnerUser";
152
+ import AlertSeverity from "./AlertSeverity";
153
+ import AlertNoteTemplate from "./AlertNoteTemplate";
154
+ import TableView from "./TableView";
145
155
 
146
156
  const AllModelTypes: Array<{
147
157
  new (): BaseModel;
@@ -176,9 +186,28 @@ const AllModelTypes: Array<{
176
186
  Incident,
177
187
  IncidentCustomField,
178
188
  IncidentStateTimeline,
179
- MonitorStatusTimeline,
180
- IncidentPublicNote,
181
189
  IncidentInternalNote,
190
+ IncidentPublicNote,
191
+ IncidentTemplate,
192
+ IncidentTemplateOwnerTeam,
193
+ IncidentTemplateOwnerUser,
194
+ IncidentOwnerTeam,
195
+ IncidentOwnerUser,
196
+ IncidentSeverity,
197
+ IncidentNoteTemplate,
198
+
199
+ AlertState,
200
+ Alert,
201
+ AlertCustomField,
202
+ AlertStateTimeline,
203
+ AlertInternalNote,
204
+ AlertOwnerTeam,
205
+ AlertOwnerUser,
206
+ AlertSeverity,
207
+ AlertNoteTemplate,
208
+
209
+ MonitorStatusTimeline,
210
+
182
211
  File,
183
212
  Domain,
184
213
 
@@ -186,7 +215,7 @@ const AllModelTypes: Array<{
186
215
  StatusPageDomain,
187
216
  StatusPageCustomField,
188
217
  StatusPageResource,
189
- IncidentSeverity,
218
+
190
219
  StatusPageAnnouncement,
191
220
  StatusPageSubscriber,
192
221
  StatusPageFooterLink,
@@ -219,9 +248,6 @@ const AllModelTypes: Array<{
219
248
  MonitorOwnerTeam,
220
249
  MonitorOwnerUser,
221
250
 
222
- IncidentOwnerTeam,
223
- IncidentOwnerUser,
224
-
225
251
  ScheduledMaintenanceOwnerTeam,
226
252
  ScheduledMaintenanceOwnerUser,
227
253
 
@@ -245,12 +271,6 @@ const AllModelTypes: Array<{
245
271
 
246
272
  ShortLink,
247
273
 
248
- IncidentTemplate,
249
- IncidentTemplateOwnerTeam,
250
- IncidentTemplateOwnerUser,
251
-
252
- IncidentNoteTemplate,
253
-
254
274
  ScheduledMaintenanceTemplate,
255
275
  ScheduledMaintenanceTemplateOwnerTeam,
256
276
  ScheduledMaintenanceTemplateOwnerUser,
@@ -305,6 +325,8 @@ const AllModelTypes: Array<{
305
325
  TelemetryIngestionKey,
306
326
 
307
327
  TelemetryException,
328
+
329
+ TableView,
308
330
  ];
309
331
 
310
332
  const modelTypeMap: { [key: string]: { new (): BaseModel } } = {};
@@ -24,6 +24,7 @@ import OnCallDutyPolicyStatus from "../../Types/OnCallDutyPolicy/OnCallDutyPolic
24
24
  import Permission from "../../Types/Permission";
25
25
  import UserNotificationEventType from "../../Types/UserNotification/UserNotificationEventType";
26
26
  import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
27
+ import Alert from "./Alert";
27
28
 
28
29
  @TableBillingAccessControl({
29
30
  create: PlanType.Growth,
@@ -225,6 +226,60 @@ export default class OnCallDutyPolicyExecutionLog extends BaseModel {
225
226
  })
226
227
  public triggeredByIncidentId?: ObjectID = undefined;
227
228
 
229
+ @ColumnAccessControl({
230
+ create: [],
231
+ read: [
232
+ Permission.ProjectOwner,
233
+ Permission.ProjectAdmin,
234
+ Permission.ProjectMember,
235
+ Permission.ReadProjectOnCallDutyPolicyExecutionLog,
236
+ ],
237
+ update: [],
238
+ })
239
+ @TableColumn({
240
+ manyToOneRelationColumn: "triggeredByAlertId",
241
+ type: TableColumnType.Entity,
242
+ modelType: Alert,
243
+ title: "Triggered By Alert",
244
+ description: "Relation to Alert which triggered this on-call duty policy.",
245
+ })
246
+ @ManyToOne(
247
+ () => {
248
+ return Alert;
249
+ },
250
+ {
251
+ eager: false,
252
+ nullable: true,
253
+ onDelete: "CASCADE",
254
+ orphanedRowAction: "nullify",
255
+ },
256
+ )
257
+ @JoinColumn({ name: "triggeredByAlertId" })
258
+ public triggeredByAlert?: Alert = undefined;
259
+
260
+ @ColumnAccessControl({
261
+ create: [],
262
+ read: [
263
+ Permission.ProjectOwner,
264
+ Permission.ProjectAdmin,
265
+ Permission.ProjectMember,
266
+ Permission.ReadProjectOnCallDutyPolicyExecutionLog,
267
+ ],
268
+ update: [],
269
+ })
270
+ @TableColumn({
271
+ type: TableColumnType.ObjectID,
272
+ title: "Triggered By Alert ID",
273
+ description:
274
+ "ID of the incident which triggered this on-call escalation policy.",
275
+ })
276
+ @Column({
277
+ type: ColumnType.ObjectID,
278
+ nullable: true,
279
+ transformer: ObjectID.getDatabaseTransformer(),
280
+ })
281
+ public triggeredByAlertId?: ObjectID = undefined;
282
+
228
283
  @ColumnAccessControl({
229
284
  create: [],
230
285
  read: [