@oneuptime/common 7.0.3457 → 7.0.3463

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 (28) hide show
  1. package/Models/DatabaseModels/AlertLog.ts +394 -0
  2. package/Models/DatabaseModels/IncidentLog.ts +394 -0
  3. package/Models/DatabaseModels/Index.ts +8 -0
  4. package/Models/DatabaseModels/ScheduledMaintenanceLog.ts +402 -0
  5. package/Server/Infrastructure/Postgres/SchemaMigrations/1736364478985-MigrationName.ts +51 -0
  6. package/Server/Infrastructure/Postgres/SchemaMigrations/1736364957990-MigrationName.ts +63 -0
  7. package/Server/Infrastructure/Postgres/SchemaMigrations/1736365532085-MigrationName.ts +26 -0
  8. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  9. package/Types/Permission.ts +115 -0
  10. package/build/dist/Models/DatabaseModels/AlertLog.js +415 -0
  11. package/build/dist/Models/DatabaseModels/AlertLog.js.map +1 -0
  12. package/build/dist/Models/DatabaseModels/IncidentLog.js +415 -0
  13. package/build/dist/Models/DatabaseModels/IncidentLog.js.map +1 -0
  14. package/build/dist/Models/DatabaseModels/Index.js +6 -0
  15. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  16. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLog.js +415 -0
  17. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLog.js.map +1 -0
  18. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1736364478985-MigrationName.js +24 -0
  19. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1736364478985-MigrationName.js.map +1 -0
  20. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1736364957990-MigrationName.js +28 -0
  21. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1736364957990-MigrationName.js.map +1 -0
  22. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1736365532085-MigrationName.js +24 -0
  23. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1736365532085-MigrationName.js.map +1 -0
  24. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  25. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  26. package/build/dist/Types/Permission.js +96 -0
  27. package/build/dist/Types/Permission.js.map +1 -1
  28. package/package.json +2 -2
@@ -0,0 +1,394 @@
1
+ import Incident from "./Incident";
2
+ import Project from "./Project";
3
+ import User from "./User";
4
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
5
+ import Route from "../../Types/API/Route";
6
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
7
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
8
+ import CanAccessIfCanReadOn from "../../Types/Database/CanAccessIfCanReadOn";
9
+ import ColumnType from "../../Types/Database/ColumnType";
10
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
11
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
12
+ import EnableWorkflow from "../../Types/Database/EnableWorkflow";
13
+ import TableColumn from "../../Types/Database/TableColumn";
14
+ import TableColumnType from "../../Types/Database/TableColumnType";
15
+ import TableMetadata from "../../Types/Database/TableMetadata";
16
+ import TenantColumn from "../../Types/Database/TenantColumn";
17
+ import IconProp from "../../Types/Icon/IconProp";
18
+ import ObjectID from "../../Types/ObjectID";
19
+ import Permission from "../../Types/Permission";
20
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
21
+
22
+ export enum IncidentLogEvent {
23
+ PublicNote = "PublicNote",
24
+ SubscriberEmailSent = "SubscriberEmailSent",
25
+ OwnerEmailSent = "OwnerEmailSent",
26
+ IncidentCreated = "IncidentCreated",
27
+ IncidentAcknowledged = "IncidentAcknowledged",
28
+ IncidentResolved = "IncidentResolved",
29
+ PrivateNote = "PrivateNote",
30
+ }
31
+
32
+ @EnableDocumentation()
33
+ @CanAccessIfCanReadOn("incident")
34
+ @TenantColumn("projectId")
35
+ @TableAccessControl({
36
+ create: [
37
+ Permission.ProjectOwner,
38
+ Permission.ProjectAdmin,
39
+ Permission.ProjectMember,
40
+ Permission.CreateIncidentLog,
41
+ ],
42
+ read: [
43
+ Permission.ProjectOwner,
44
+ Permission.ProjectAdmin,
45
+ Permission.ProjectMember,
46
+ Permission.ReadIncidentLog,
47
+ ],
48
+ delete: [],
49
+ update: [],
50
+ })
51
+ @EnableWorkflow({
52
+ create: true,
53
+ delete: true,
54
+ update: true,
55
+ read: true,
56
+ })
57
+ @CrudApiEndpoint(new Route("/incident-log"))
58
+ @Entity({
59
+ name: "IncidentLog",
60
+ })
61
+ @TableMetadata({
62
+ tableName: "IncidentLog",
63
+ singularName: "Incident Log",
64
+ pluralName: "Incident Logs",
65
+ icon: IconProp.List,
66
+ tableDescription:
67
+ "Log of the entire incident state change. This is a log of all the incident state changes, public notes, more etc.",
68
+ })
69
+ export default class IncidentLog extends BaseModel {
70
+ @ColumnAccessControl({
71
+ create: [
72
+ Permission.ProjectOwner,
73
+ Permission.ProjectAdmin,
74
+ Permission.ProjectMember,
75
+ Permission.CreateIncidentLog,
76
+ ],
77
+ read: [
78
+ Permission.ProjectOwner,
79
+ Permission.ProjectAdmin,
80
+ Permission.ProjectMember,
81
+ Permission.ReadIncidentLog,
82
+ ],
83
+ update: [],
84
+ })
85
+ @TableColumn({
86
+ manyToOneRelationColumn: "projectId",
87
+ type: TableColumnType.Entity,
88
+ modelType: Project,
89
+ title: "Project",
90
+ description: "Relation to Project Resource in which this object belongs",
91
+ })
92
+ @ManyToOne(
93
+ () => {
94
+ return Project;
95
+ },
96
+ {
97
+ eager: false,
98
+ nullable: true,
99
+ onDelete: "CASCADE",
100
+ orphanedRowAction: "nullify",
101
+ },
102
+ )
103
+ @JoinColumn({ name: "projectId" })
104
+ public project?: Project = undefined;
105
+
106
+ @ColumnAccessControl({
107
+ create: [
108
+ Permission.ProjectOwner,
109
+ Permission.ProjectAdmin,
110
+ Permission.ProjectMember,
111
+ Permission.CreateIncidentLog,
112
+ ],
113
+ read: [
114
+ Permission.ProjectOwner,
115
+ Permission.ProjectAdmin,
116
+ Permission.ProjectMember,
117
+ Permission.ReadIncidentLog,
118
+ ],
119
+ update: [],
120
+ })
121
+ @Index()
122
+ @TableColumn({
123
+ type: TableColumnType.ObjectID,
124
+ required: true,
125
+ canReadOnRelationQuery: true,
126
+ title: "Project ID",
127
+ description: "ID of your OneUptime Project in which this object belongs",
128
+ })
129
+ @Column({
130
+ type: ColumnType.ObjectID,
131
+ nullable: false,
132
+ transformer: ObjectID.getDatabaseTransformer(),
133
+ })
134
+ public projectId?: ObjectID = undefined;
135
+
136
+ @ColumnAccessControl({
137
+ create: [
138
+ Permission.ProjectOwner,
139
+ Permission.ProjectAdmin,
140
+ Permission.ProjectMember,
141
+ Permission.CreateIncidentLog,
142
+ ],
143
+ read: [
144
+ Permission.ProjectOwner,
145
+ Permission.ProjectAdmin,
146
+ Permission.ProjectMember,
147
+ Permission.ReadIncidentLog,
148
+ ],
149
+ update: [],
150
+ })
151
+ @TableColumn({
152
+ manyToOneRelationColumn: "incidentId",
153
+ type: TableColumnType.Entity,
154
+ modelType: Incident,
155
+ title: "Incident",
156
+ description: "Relation to Incident in which this resource belongs",
157
+ })
158
+ @ManyToOne(
159
+ () => {
160
+ return Incident;
161
+ },
162
+ {
163
+ eager: false,
164
+ nullable: true,
165
+ onDelete: "CASCADE",
166
+ orphanedRowAction: "nullify",
167
+ },
168
+ )
169
+ @JoinColumn({ name: "incidentId" })
170
+ public incident?: Incident = undefined;
171
+
172
+ @ColumnAccessControl({
173
+ create: [
174
+ Permission.ProjectOwner,
175
+ Permission.ProjectAdmin,
176
+ Permission.ProjectMember,
177
+ Permission.CreateIncidentLog,
178
+ ],
179
+ read: [
180
+ Permission.ProjectOwner,
181
+ Permission.ProjectAdmin,
182
+ Permission.ProjectMember,
183
+ Permission.ReadIncidentLog,
184
+ ],
185
+ update: [],
186
+ })
187
+ @Index()
188
+ @TableColumn({
189
+ type: TableColumnType.ObjectID,
190
+ required: true,
191
+ title: "Incident ID",
192
+ description: "Relation to Incident ID in which this resource belongs",
193
+ })
194
+ @Column({
195
+ type: ColumnType.ObjectID,
196
+ nullable: false,
197
+ transformer: ObjectID.getDatabaseTransformer(),
198
+ })
199
+ public incidentId?: ObjectID = undefined;
200
+
201
+ @ColumnAccessControl({
202
+ create: [
203
+ Permission.ProjectOwner,
204
+ Permission.ProjectAdmin,
205
+ Permission.ProjectMember,
206
+ Permission.CreateIncidentLog,
207
+ ],
208
+ read: [
209
+ Permission.ProjectOwner,
210
+ Permission.ProjectAdmin,
211
+ Permission.ProjectMember,
212
+ Permission.ReadIncidentLog,
213
+ ],
214
+ update: [],
215
+ })
216
+ @TableColumn({
217
+ manyToOneRelationColumn: "createdByUserId",
218
+ type: TableColumnType.Entity,
219
+ modelType: User,
220
+ title: "Created by User",
221
+ description:
222
+ "Relation to User who created this object (if this object was created by a User)",
223
+ })
224
+ @ManyToOne(
225
+ () => {
226
+ return User;
227
+ },
228
+ {
229
+ eager: false,
230
+ nullable: true,
231
+ onDelete: "SET NULL",
232
+ orphanedRowAction: "nullify",
233
+ },
234
+ )
235
+ @JoinColumn({ name: "createdByUserId" })
236
+ public createdByUser?: User = undefined;
237
+
238
+ @ColumnAccessControl({
239
+ create: [
240
+ Permission.ProjectOwner,
241
+ Permission.ProjectAdmin,
242
+ Permission.ProjectMember,
243
+ Permission.CreateIncidentLog,
244
+ ],
245
+ read: [
246
+ Permission.ProjectOwner,
247
+ Permission.ProjectAdmin,
248
+ Permission.ProjectMember,
249
+ Permission.ReadIncidentLog,
250
+ ],
251
+ update: [],
252
+ })
253
+ @TableColumn({
254
+ type: TableColumnType.ObjectID,
255
+ title: "Created by User ID",
256
+ description:
257
+ "User ID who created this object (if this object was created by a User)",
258
+ })
259
+ @Column({
260
+ type: ColumnType.ObjectID,
261
+ nullable: true,
262
+ transformer: ObjectID.getDatabaseTransformer(),
263
+ })
264
+ public createdByUserId?: ObjectID = undefined;
265
+
266
+ @ColumnAccessControl({
267
+ create: [],
268
+ read: [],
269
+ update: [],
270
+ })
271
+ @TableColumn({
272
+ manyToOneRelationColumn: "deletedByUserId",
273
+ type: TableColumnType.Entity,
274
+ title: "Deleted by User",
275
+ description:
276
+ "Relation to User who deleted this object (if this object was deleted by a User)",
277
+ })
278
+ @ManyToOne(
279
+ () => {
280
+ return User;
281
+ },
282
+ {
283
+ cascade: false,
284
+ eager: false,
285
+ nullable: true,
286
+ onDelete: "SET NULL",
287
+ orphanedRowAction: "nullify",
288
+ },
289
+ )
290
+ @JoinColumn({ name: "deletedByUserId" })
291
+ public deletedByUser?: User = undefined;
292
+
293
+ @ColumnAccessControl({
294
+ create: [],
295
+ read: [],
296
+ update: [],
297
+ })
298
+ @TableColumn({
299
+ type: TableColumnType.ObjectID,
300
+ title: "Deleted by User ID",
301
+ description:
302
+ "User ID who deleted this object (if this object was deleted by a User)",
303
+ })
304
+ @Column({
305
+ type: ColumnType.ObjectID,
306
+ nullable: true,
307
+ transformer: ObjectID.getDatabaseTransformer(),
308
+ })
309
+ public deletedByUserId?: ObjectID = undefined;
310
+
311
+ @ColumnAccessControl({
312
+ create: [
313
+ Permission.ProjectOwner,
314
+ Permission.ProjectAdmin,
315
+ Permission.ProjectMember,
316
+ Permission.CreateIncidentLog,
317
+ ],
318
+ read: [
319
+ Permission.ProjectOwner,
320
+ Permission.ProjectAdmin,
321
+ Permission.ProjectMember,
322
+ Permission.ReadIncidentLog,
323
+ ],
324
+ update: [],
325
+ })
326
+ @TableColumn({
327
+ type: TableColumnType.Markdown,
328
+ required: true,
329
+ title: "Log (in Markdown)",
330
+ description: "Log of the entire incident state change in Markdown",
331
+ })
332
+ @Column({
333
+ type: ColumnType.Markdown,
334
+ nullable: false,
335
+ unique: false,
336
+ })
337
+ public logInMarkdown?: string = undefined;
338
+
339
+ @ColumnAccessControl({
340
+ create: [
341
+ Permission.ProjectOwner,
342
+ Permission.ProjectAdmin,
343
+ Permission.ProjectMember,
344
+ Permission.CreateIncidentLog,
345
+ ],
346
+ read: [
347
+ Permission.ProjectOwner,
348
+ Permission.ProjectAdmin,
349
+ Permission.ProjectMember,
350
+ Permission.ReadIncidentLog,
351
+ ],
352
+ update: [],
353
+ })
354
+ @TableColumn({
355
+ type: TableColumnType.Markdown,
356
+ required: true,
357
+ title: "More Information (in Markdown)",
358
+ description: "More information in Markdown",
359
+ })
360
+ @Column({
361
+ type: ColumnType.Markdown,
362
+ nullable: false,
363
+ unique: false,
364
+ })
365
+ public moreInformationInMarkdown?: string = undefined;
366
+
367
+ @ColumnAccessControl({
368
+ create: [
369
+ Permission.ProjectOwner,
370
+ Permission.ProjectAdmin,
371
+ Permission.ProjectMember,
372
+ Permission.CreateIncidentLog,
373
+ ],
374
+ read: [
375
+ Permission.ProjectOwner,
376
+ Permission.ProjectAdmin,
377
+ Permission.ProjectMember,
378
+ Permission.ReadIncidentLog,
379
+ ],
380
+ update: [],
381
+ })
382
+ @TableColumn({
383
+ type: TableColumnType.ShortText,
384
+ required: true,
385
+ title: "Incident Log Event",
386
+ description: "Incident Log Event",
387
+ })
388
+ @Column({
389
+ type: ColumnType.ShortText,
390
+ nullable: false,
391
+ unique: false,
392
+ })
393
+ public incidentLogEvent?: IncidentLogEvent = undefined;
394
+ }
@@ -20,6 +20,7 @@ import GreenlockCertificate from "./GreenlockCertificate";
20
20
  import GreenlockChallenge from "./GreenlockChallenge";
21
21
  // Incidents
22
22
  import Incident from "./Incident";
23
+ import IncidentLog from "./IncidentLog";
23
24
  import IncidentCustomField from "./IncidentCustomField";
24
25
  import IncidentInternalNote from "./IncidentInternalNote";
25
26
  import IncidentNoteTemplate from "./IncidentNoteTemplate";
@@ -142,6 +143,7 @@ import ScheduledMaintenanceTemplateOwnerTeam from "./ScheduledMaintenanceTemplat
142
143
  import ScheduledMaintenanceTemplateOwnerUser from "./ScheduledMaintenanceTemplateOwnerUser";
143
144
 
144
145
  import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
146
+
145
147
  import AlertState from "./AlertState";
146
148
  import Alert from "./Alert";
147
149
  import AlertCustomField from "./AlertCustomField";
@@ -151,10 +153,13 @@ import AlertOwnerTeam from "./AlertOwnerTeam";
151
153
  import AlertOwnerUser from "./AlertOwnerUser";
152
154
  import AlertSeverity from "./AlertSeverity";
153
155
  import AlertNoteTemplate from "./AlertNoteTemplate";
156
+ import AlertLog from "./AlertLog";
157
+
154
158
  import TableView from "./TableView";
155
159
  import Dashboard from "./Dashboard";
156
160
 
157
161
  import MonitorTest from "./MonitorTest";
162
+ import ScheduledMaintenanceLog from "./ScheduledMaintenanceLog";
158
163
 
159
164
  const AllModelTypes: Array<{
160
165
  new (): BaseModel;
@@ -187,6 +192,7 @@ const AllModelTypes: Array<{
187
192
 
188
193
  IncidentState,
189
194
  Incident,
195
+ IncidentLog,
190
196
  IncidentCustomField,
191
197
  IncidentStateTimeline,
192
198
  IncidentInternalNote,
@@ -201,6 +207,7 @@ const AllModelTypes: Array<{
201
207
 
202
208
  AlertState,
203
209
  Alert,
210
+ AlertLog,
204
211
  AlertCustomField,
205
212
  AlertStateTimeline,
206
213
  AlertInternalNote,
@@ -232,6 +239,7 @@ const AllModelTypes: Array<{
232
239
  ScheduledMaintenancePublicNote,
233
240
  ScheduledMaintenanceInternalNote,
234
241
  ScheduledMaintenanceCustomField,
242
+ ScheduledMaintenanceLog,
235
243
 
236
244
  BillingPaymentMethods,
237
245
  BillingInvoice,