@oneuptime/common 7.0.3461 → 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 Alert from "./Alert";
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 AlertLogEvent {
23
+ PublicNote = "PublicNote",
24
+ SubscriberEmailSent = "SubscriberEmailSent",
25
+ OwnerEmailSent = "OwnerEmailSent",
26
+ AlertCreated = "AlertCreated",
27
+ AlertAcknowledged = "AlertAcknowledged",
28
+ AlertResolved = "AlertResolved",
29
+ PrivateNote = "PrivateNote",
30
+ }
31
+
32
+ @EnableDocumentation()
33
+ @CanAccessIfCanReadOn("alert")
34
+ @TenantColumn("projectId")
35
+ @TableAccessControl({
36
+ create: [
37
+ Permission.ProjectOwner,
38
+ Permission.ProjectAdmin,
39
+ Permission.ProjectMember,
40
+ Permission.CreateAlertLog,
41
+ ],
42
+ read: [
43
+ Permission.ProjectOwner,
44
+ Permission.ProjectAdmin,
45
+ Permission.ProjectMember,
46
+ Permission.ReadAlertLog,
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("/alert-log"))
58
+ @Entity({
59
+ name: "AlertLog",
60
+ })
61
+ @TableMetadata({
62
+ tableName: "AlertLog",
63
+ singularName: "Alert Log",
64
+ pluralName: "Alert Logs",
65
+ icon: IconProp.List,
66
+ tableDescription:
67
+ "Log of the entire alert state change. This is a log of all the alert state changes, public notes, more etc.",
68
+ })
69
+ export default class AlertLog extends BaseModel {
70
+ @ColumnAccessControl({
71
+ create: [
72
+ Permission.ProjectOwner,
73
+ Permission.ProjectAdmin,
74
+ Permission.ProjectMember,
75
+ Permission.CreateAlertLog,
76
+ ],
77
+ read: [
78
+ Permission.ProjectOwner,
79
+ Permission.ProjectAdmin,
80
+ Permission.ProjectMember,
81
+ Permission.ReadAlertLog,
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.CreateAlertLog,
112
+ ],
113
+ read: [
114
+ Permission.ProjectOwner,
115
+ Permission.ProjectAdmin,
116
+ Permission.ProjectMember,
117
+ Permission.ReadAlertLog,
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.CreateAlertLog,
142
+ ],
143
+ read: [
144
+ Permission.ProjectOwner,
145
+ Permission.ProjectAdmin,
146
+ Permission.ProjectMember,
147
+ Permission.ReadAlertLog,
148
+ ],
149
+ update: [],
150
+ })
151
+ @TableColumn({
152
+ manyToOneRelationColumn: "alertId",
153
+ type: TableColumnType.Entity,
154
+ modelType: Alert,
155
+ title: "Alert",
156
+ description: "Relation to Alert in which this resource belongs",
157
+ })
158
+ @ManyToOne(
159
+ () => {
160
+ return Alert;
161
+ },
162
+ {
163
+ eager: false,
164
+ nullable: true,
165
+ onDelete: "CASCADE",
166
+ orphanedRowAction: "nullify",
167
+ },
168
+ )
169
+ @JoinColumn({ name: "alertId" })
170
+ public alert?: Alert = undefined;
171
+
172
+ @ColumnAccessControl({
173
+ create: [
174
+ Permission.ProjectOwner,
175
+ Permission.ProjectAdmin,
176
+ Permission.ProjectMember,
177
+ Permission.CreateAlertLog,
178
+ ],
179
+ read: [
180
+ Permission.ProjectOwner,
181
+ Permission.ProjectAdmin,
182
+ Permission.ProjectMember,
183
+ Permission.ReadAlertLog,
184
+ ],
185
+ update: [],
186
+ })
187
+ @Index()
188
+ @TableColumn({
189
+ type: TableColumnType.ObjectID,
190
+ required: true,
191
+ title: "Alert ID",
192
+ description: "Relation to Alert ID in which this resource belongs",
193
+ })
194
+ @Column({
195
+ type: ColumnType.ObjectID,
196
+ nullable: false,
197
+ transformer: ObjectID.getDatabaseTransformer(),
198
+ })
199
+ public alertId?: ObjectID = undefined;
200
+
201
+ @ColumnAccessControl({
202
+ create: [
203
+ Permission.ProjectOwner,
204
+ Permission.ProjectAdmin,
205
+ Permission.ProjectMember,
206
+ Permission.CreateAlertLog,
207
+ ],
208
+ read: [
209
+ Permission.ProjectOwner,
210
+ Permission.ProjectAdmin,
211
+ Permission.ProjectMember,
212
+ Permission.ReadAlertLog,
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.CreateAlertLog,
244
+ ],
245
+ read: [
246
+ Permission.ProjectOwner,
247
+ Permission.ProjectAdmin,
248
+ Permission.ProjectMember,
249
+ Permission.ReadAlertLog,
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.CreateAlertLog,
317
+ ],
318
+ read: [
319
+ Permission.ProjectOwner,
320
+ Permission.ProjectAdmin,
321
+ Permission.ProjectMember,
322
+ Permission.ReadAlertLog,
323
+ ],
324
+ update: [],
325
+ })
326
+ @TableColumn({
327
+ type: TableColumnType.Markdown,
328
+ required: true,
329
+ title: "Log (in Markdown)",
330
+ description: "Log of the entire alert 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.CreateAlertLog,
345
+ ],
346
+ read: [
347
+ Permission.ProjectOwner,
348
+ Permission.ProjectAdmin,
349
+ Permission.ProjectMember,
350
+ Permission.ReadAlertLog,
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.CreateAlertLog,
373
+ ],
374
+ read: [
375
+ Permission.ProjectOwner,
376
+ Permission.ProjectAdmin,
377
+ Permission.ProjectMember,
378
+ Permission.ReadAlertLog,
379
+ ],
380
+ update: [],
381
+ })
382
+ @TableColumn({
383
+ type: TableColumnType.ShortText,
384
+ required: true,
385
+ title: "Alert Log Event",
386
+ description: "Alert Log Event",
387
+ })
388
+ @Column({
389
+ type: ColumnType.ShortText,
390
+ nullable: false,
391
+ unique: false,
392
+ })
393
+ public alertLogEvent?: AlertLogEvent = undefined;
394
+ }