@oneuptime/common 10.0.78 → 10.0.80

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 (31) hide show
  1. package/Models/DatabaseModels/Index.ts +2 -0
  2. package/Models/DatabaseModels/MonitorTemplate.ts +708 -0
  3. package/Server/Infrastructure/Postgres/SchemaMigrations/1777201966799-AddMonitorTemplate.ts +79 -0
  4. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  5. package/Server/Services/MailService.ts +9 -0
  6. package/Server/Services/MonitorTemplateService.ts +9 -0
  7. package/Server/Services/ProjectSmtpConfigService.ts +1 -0
  8. package/Server/Services/StatusPagePrivateUserService.ts +6 -0
  9. package/Server/Services/StatusPageSubscriberService.ts +18 -0
  10. package/Types/Permission.ts +46 -0
  11. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  12. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  13. package/build/dist/Models/DatabaseModels/MonitorTemplate.js +726 -0
  14. package/build/dist/Models/DatabaseModels/MonitorTemplate.js.map +1 -0
  15. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1777201966799-AddMonitorTemplate.js +34 -0
  16. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1777201966799-AddMonitorTemplate.js.map +1 -0
  17. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  18. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  19. package/build/dist/Server/Services/MailService.js +9 -0
  20. package/build/dist/Server/Services/MailService.js.map +1 -1
  21. package/build/dist/Server/Services/MonitorTemplateService.js +9 -0
  22. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -0
  23. package/build/dist/Server/Services/ProjectSmtpConfigService.js +1 -0
  24. package/build/dist/Server/Services/ProjectSmtpConfigService.js.map +1 -1
  25. package/build/dist/Server/Services/StatusPagePrivateUserService.js +6 -0
  26. package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
  27. package/build/dist/Server/Services/StatusPageSubscriberService.js +18 -0
  28. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  29. package/build/dist/Types/Permission.js +40 -0
  30. package/build/dist/Types/Permission.js.map +1 -1
  31. package/package.json +1 -1
@@ -0,0 +1,726 @@
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 Label from "./Label";
11
+ import Project from "./Project";
12
+ import User from "./User";
13
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
14
+ import Route from "../../Types/API/Route";
15
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
16
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
17
+ import AccessControlColumn from "../../Types/Database/AccessControlColumn";
18
+ import ColumnLength from "../../Types/Database/ColumnLength";
19
+ import ColumnType from "../../Types/Database/ColumnType";
20
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
21
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
22
+ import EnableWorkflow from "../../Types/Database/EnableWorkflow";
23
+ import SlugifyColumn from "../../Types/Database/SlugifyColumn";
24
+ import TableColumn from "../../Types/Database/TableColumn";
25
+ import TableColumnType from "../../Types/Database/TableColumnType";
26
+ import TableMetadata from "../../Types/Database/TableMetadata";
27
+ import TenantColumn from "../../Types/Database/TenantColumn";
28
+ import IconProp from "../../Types/Icon/IconProp";
29
+ import MonitorSteps from "../../Types/Monitor/MonitorSteps";
30
+ import MonitorType from "../../Types/Monitor/MonitorType";
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 MonitorTemplate = class MonitorTemplate extends BaseModel {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.project = undefined;
38
+ this.projectId = undefined;
39
+ this.templateName = undefined;
40
+ this.templateDescription = undefined;
41
+ this.slug = undefined;
42
+ this.monitorName = undefined;
43
+ this.monitorDescription = undefined;
44
+ this.monitorType = undefined;
45
+ this.monitorSteps = undefined;
46
+ this.monitoringInterval = undefined;
47
+ this.labels = undefined;
48
+ this.customFields = undefined;
49
+ this.minimumProbeAgreement = undefined;
50
+ this.createdByUser = undefined;
51
+ this.createdByUserId = undefined;
52
+ this.deletedByUser = undefined;
53
+ this.deletedByUserId = undefined;
54
+ }
55
+ };
56
+ __decorate([
57
+ ColumnAccessControl({
58
+ create: [
59
+ Permission.ProjectOwner,
60
+ Permission.ProjectAdmin,
61
+ Permission.ProjectMember,
62
+ Permission.MonitorManager,
63
+ Permission.CreateMonitorTemplate,
64
+ ],
65
+ read: [
66
+ Permission.ProjectOwner,
67
+ Permission.ProjectAdmin,
68
+ Permission.ProjectMember,
69
+ Permission.Viewer,
70
+ Permission.MonitorManager,
71
+ Permission.ReadMonitorTemplate,
72
+ Permission.ReadAllProjectResources,
73
+ ],
74
+ update: [],
75
+ }),
76
+ TableColumn({
77
+ manyToOneRelationColumn: "projectId",
78
+ type: TableColumnType.Entity,
79
+ modelType: Project,
80
+ title: "Project",
81
+ description: "Relation to Project Resource in which this object belongs",
82
+ }),
83
+ ManyToOne(() => {
84
+ return Project;
85
+ }, {
86
+ eager: false,
87
+ nullable: true,
88
+ onDelete: "CASCADE",
89
+ orphanedRowAction: "nullify",
90
+ }),
91
+ JoinColumn({ name: "projectId" }),
92
+ __metadata("design:type", Project)
93
+ ], MonitorTemplate.prototype, "project", void 0);
94
+ __decorate([
95
+ ColumnAccessControl({
96
+ create: [
97
+ Permission.ProjectOwner,
98
+ Permission.ProjectAdmin,
99
+ Permission.ProjectMember,
100
+ Permission.MonitorManager,
101
+ Permission.CreateMonitorTemplate,
102
+ ],
103
+ read: [
104
+ Permission.ProjectOwner,
105
+ Permission.ProjectAdmin,
106
+ Permission.ProjectMember,
107
+ Permission.Viewer,
108
+ Permission.MonitorManager,
109
+ Permission.ReadMonitorTemplate,
110
+ Permission.ReadAllProjectResources,
111
+ ],
112
+ update: [],
113
+ }),
114
+ Index(),
115
+ TableColumn({
116
+ type: TableColumnType.ObjectID,
117
+ required: true,
118
+ canReadOnRelationQuery: true,
119
+ title: "Project ID",
120
+ description: "ID of your OneUptime Project in which this object belongs",
121
+ }),
122
+ Column({
123
+ type: ColumnType.ObjectID,
124
+ nullable: false,
125
+ transformer: ObjectID.getDatabaseTransformer(),
126
+ }),
127
+ __metadata("design:type", ObjectID)
128
+ ], MonitorTemplate.prototype, "projectId", void 0);
129
+ __decorate([
130
+ ColumnAccessControl({
131
+ create: [
132
+ Permission.ProjectOwner,
133
+ Permission.ProjectAdmin,
134
+ Permission.ProjectMember,
135
+ Permission.MonitorManager,
136
+ Permission.CreateMonitorTemplate,
137
+ ],
138
+ read: [
139
+ Permission.ProjectOwner,
140
+ Permission.ProjectAdmin,
141
+ Permission.ProjectMember,
142
+ Permission.Viewer,
143
+ Permission.MonitorManager,
144
+ Permission.ReadMonitorTemplate,
145
+ Permission.ReadAllProjectResources,
146
+ ],
147
+ update: [
148
+ Permission.ProjectOwner,
149
+ Permission.ProjectAdmin,
150
+ Permission.ProjectMember,
151
+ Permission.MonitorManager,
152
+ Permission.EditMonitorTemplate,
153
+ ],
154
+ }),
155
+ Index(),
156
+ TableColumn({
157
+ required: true,
158
+ type: TableColumnType.ShortText,
159
+ canReadOnRelationQuery: true,
160
+ title: "Template Name",
161
+ description: "Name of the Monitor Template",
162
+ }),
163
+ Column({
164
+ nullable: false,
165
+ type: ColumnType.ShortText,
166
+ length: ColumnLength.ShortText,
167
+ }),
168
+ __metadata("design:type", String)
169
+ ], MonitorTemplate.prototype, "templateName", void 0);
170
+ __decorate([
171
+ ColumnAccessControl({
172
+ create: [
173
+ Permission.ProjectOwner,
174
+ Permission.ProjectAdmin,
175
+ Permission.ProjectMember,
176
+ Permission.MonitorManager,
177
+ Permission.CreateMonitorTemplate,
178
+ ],
179
+ read: [
180
+ Permission.ProjectOwner,
181
+ Permission.ProjectAdmin,
182
+ Permission.ProjectMember,
183
+ Permission.Viewer,
184
+ Permission.MonitorManager,
185
+ Permission.ReadMonitorTemplate,
186
+ Permission.ReadAllProjectResources,
187
+ ],
188
+ update: [
189
+ Permission.ProjectOwner,
190
+ Permission.ProjectAdmin,
191
+ Permission.ProjectMember,
192
+ Permission.MonitorManager,
193
+ Permission.EditMonitorTemplate,
194
+ ],
195
+ }),
196
+ TableColumn({
197
+ required: true,
198
+ type: TableColumnType.LongText,
199
+ canReadOnRelationQuery: true,
200
+ title: "Template Description",
201
+ description: "Description of the Monitor Template",
202
+ }),
203
+ Column({
204
+ nullable: false,
205
+ type: ColumnType.LongText,
206
+ length: ColumnLength.LongText,
207
+ }),
208
+ __metadata("design:type", String)
209
+ ], MonitorTemplate.prototype, "templateDescription", void 0);
210
+ __decorate([
211
+ Index(),
212
+ ColumnAccessControl({
213
+ create: [],
214
+ read: [
215
+ Permission.ProjectOwner,
216
+ Permission.ProjectAdmin,
217
+ Permission.ProjectMember,
218
+ Permission.Viewer,
219
+ Permission.MonitorManager,
220
+ Permission.ReadMonitorTemplate,
221
+ Permission.ReadAllProjectResources,
222
+ ],
223
+ update: [],
224
+ }),
225
+ TableColumn({
226
+ required: true,
227
+ unique: true,
228
+ type: TableColumnType.Slug,
229
+ computed: true,
230
+ title: "Slug",
231
+ description: "Friendly globally unique name for your object",
232
+ }),
233
+ Column({
234
+ nullable: false,
235
+ type: ColumnType.Slug,
236
+ length: ColumnLength.Slug,
237
+ unique: true,
238
+ }),
239
+ __metadata("design:type", String)
240
+ ], MonitorTemplate.prototype, "slug", void 0);
241
+ __decorate([
242
+ ColumnAccessControl({
243
+ create: [
244
+ Permission.ProjectOwner,
245
+ Permission.ProjectAdmin,
246
+ Permission.ProjectMember,
247
+ Permission.MonitorManager,
248
+ Permission.CreateMonitorTemplate,
249
+ ],
250
+ read: [
251
+ Permission.ProjectOwner,
252
+ Permission.ProjectAdmin,
253
+ Permission.ProjectMember,
254
+ Permission.Viewer,
255
+ Permission.MonitorManager,
256
+ Permission.ReadMonitorTemplate,
257
+ Permission.ReadAllProjectResources,
258
+ ],
259
+ update: [
260
+ Permission.ProjectOwner,
261
+ Permission.ProjectAdmin,
262
+ Permission.ProjectMember,
263
+ Permission.MonitorManager,
264
+ Permission.EditMonitorTemplate,
265
+ ],
266
+ }),
267
+ TableColumn({
268
+ required: true,
269
+ type: TableColumnType.ShortText,
270
+ title: "Monitor Name",
271
+ description: "Default name applied to monitors created from this template. Users can override on creation.",
272
+ }),
273
+ Column({
274
+ nullable: false,
275
+ type: ColumnType.ShortText,
276
+ length: ColumnLength.ShortText,
277
+ }),
278
+ __metadata("design:type", String)
279
+ ], MonitorTemplate.prototype, "monitorName", void 0);
280
+ __decorate([
281
+ ColumnAccessControl({
282
+ create: [
283
+ Permission.ProjectOwner,
284
+ Permission.ProjectAdmin,
285
+ Permission.ProjectMember,
286
+ Permission.MonitorManager,
287
+ Permission.CreateMonitorTemplate,
288
+ ],
289
+ read: [
290
+ Permission.ProjectOwner,
291
+ Permission.ProjectAdmin,
292
+ Permission.ProjectMember,
293
+ Permission.Viewer,
294
+ Permission.MonitorManager,
295
+ Permission.ReadMonitorTemplate,
296
+ Permission.ReadAllProjectResources,
297
+ ],
298
+ update: [
299
+ Permission.ProjectOwner,
300
+ Permission.ProjectAdmin,
301
+ Permission.ProjectMember,
302
+ Permission.MonitorManager,
303
+ Permission.EditMonitorTemplate,
304
+ ],
305
+ }),
306
+ TableColumn({
307
+ required: false,
308
+ type: TableColumnType.LongText,
309
+ title: "Monitor Description",
310
+ description: "Default description applied to monitors created from this template.",
311
+ }),
312
+ Column({
313
+ nullable: true,
314
+ type: ColumnType.LongText,
315
+ length: ColumnLength.LongText,
316
+ }),
317
+ __metadata("design:type", String)
318
+ ], MonitorTemplate.prototype, "monitorDescription", void 0);
319
+ __decorate([
320
+ ColumnAccessControl({
321
+ create: [
322
+ Permission.ProjectOwner,
323
+ Permission.ProjectAdmin,
324
+ Permission.ProjectMember,
325
+ Permission.MonitorManager,
326
+ Permission.CreateMonitorTemplate,
327
+ ],
328
+ read: [
329
+ Permission.ProjectOwner,
330
+ Permission.ProjectAdmin,
331
+ Permission.ProjectMember,
332
+ Permission.Viewer,
333
+ Permission.MonitorManager,
334
+ Permission.ReadMonitorTemplate,
335
+ Permission.ReadAllProjectResources,
336
+ ],
337
+ update: [],
338
+ }),
339
+ TableColumn({
340
+ required: true,
341
+ type: TableColumnType.MonitorType,
342
+ title: "Monitor Type",
343
+ description: "What is the type of monitor created from this template?",
344
+ canReadOnRelationQuery: true,
345
+ }),
346
+ Column({
347
+ nullable: false,
348
+ type: ColumnType.ShortText,
349
+ length: ColumnLength.ShortText,
350
+ }),
351
+ __metadata("design:type", String)
352
+ ], MonitorTemplate.prototype, "monitorType", void 0);
353
+ __decorate([
354
+ ColumnAccessControl({
355
+ create: [
356
+ Permission.ProjectOwner,
357
+ Permission.ProjectAdmin,
358
+ Permission.ProjectMember,
359
+ Permission.MonitorManager,
360
+ Permission.CreateMonitorTemplate,
361
+ ],
362
+ read: [
363
+ Permission.ProjectOwner,
364
+ Permission.ProjectAdmin,
365
+ Permission.ProjectMember,
366
+ Permission.Viewer,
367
+ Permission.MonitorManager,
368
+ Permission.ReadMonitorTemplate,
369
+ Permission.ReadAllProjectResources,
370
+ ],
371
+ update: [
372
+ Permission.ProjectOwner,
373
+ Permission.ProjectAdmin,
374
+ Permission.ProjectMember,
375
+ Permission.MonitorManager,
376
+ Permission.EditMonitorTemplate,
377
+ ],
378
+ }),
379
+ TableColumn({
380
+ type: TableColumnType.MonitorSteps,
381
+ required: false,
382
+ title: "Monitor Steps",
383
+ description: "Monitor steps and criteria copied to monitors created from this template.",
384
+ }),
385
+ Column({
386
+ type: ColumnType.JSON,
387
+ nullable: true,
388
+ transformer: MonitorSteps.getDatabaseTransformer(),
389
+ }),
390
+ __metadata("design:type", MonitorSteps)
391
+ ], MonitorTemplate.prototype, "monitorSteps", void 0);
392
+ __decorate([
393
+ ColumnAccessControl({
394
+ create: [
395
+ Permission.ProjectOwner,
396
+ Permission.ProjectAdmin,
397
+ Permission.ProjectMember,
398
+ Permission.MonitorManager,
399
+ Permission.CreateMonitorTemplate,
400
+ ],
401
+ read: [
402
+ Permission.ProjectOwner,
403
+ Permission.ProjectAdmin,
404
+ Permission.ProjectMember,
405
+ Permission.Viewer,
406
+ Permission.MonitorManager,
407
+ Permission.ReadMonitorTemplate,
408
+ Permission.ReadAllProjectResources,
409
+ ],
410
+ update: [
411
+ Permission.ProjectOwner,
412
+ Permission.ProjectAdmin,
413
+ Permission.ProjectMember,
414
+ Permission.MonitorManager,
415
+ Permission.EditMonitorTemplate,
416
+ ],
417
+ }),
418
+ TableColumn({
419
+ required: false,
420
+ type: TableColumnType.ShortText,
421
+ title: "Monitoring Interval",
422
+ description: "Default monitoring interval for monitors created from this template",
423
+ }),
424
+ Column({
425
+ nullable: true,
426
+ type: ColumnType.ShortText,
427
+ length: ColumnLength.ShortText,
428
+ }),
429
+ __metadata("design:type", String)
430
+ ], MonitorTemplate.prototype, "monitoringInterval", void 0);
431
+ __decorate([
432
+ ColumnAccessControl({
433
+ create: [
434
+ Permission.ProjectOwner,
435
+ Permission.ProjectAdmin,
436
+ Permission.ProjectMember,
437
+ Permission.MonitorManager,
438
+ Permission.CreateMonitorTemplate,
439
+ ],
440
+ read: [
441
+ Permission.ProjectOwner,
442
+ Permission.ProjectAdmin,
443
+ Permission.ProjectMember,
444
+ Permission.Viewer,
445
+ Permission.MonitorManager,
446
+ Permission.ReadMonitorTemplate,
447
+ Permission.ReadAllProjectResources,
448
+ ],
449
+ update: [
450
+ Permission.ProjectOwner,
451
+ Permission.ProjectAdmin,
452
+ Permission.ProjectMember,
453
+ Permission.MonitorManager,
454
+ Permission.EditMonitorTemplate,
455
+ ],
456
+ }),
457
+ TableColumn({
458
+ required: false,
459
+ type: TableColumnType.EntityArray,
460
+ modelType: Label,
461
+ title: "Labels",
462
+ description: "Default labels applied to monitors created from this template.",
463
+ }),
464
+ ManyToMany(() => {
465
+ return Label;
466
+ }, { eager: false }),
467
+ JoinTable({
468
+ name: "MonitorTemplateLabel",
469
+ inverseJoinColumn: {
470
+ name: "labelId",
471
+ referencedColumnName: "_id",
472
+ },
473
+ joinColumn: {
474
+ name: "monitorTemplateId",
475
+ referencedColumnName: "_id",
476
+ },
477
+ }),
478
+ __metadata("design:type", Array)
479
+ ], MonitorTemplate.prototype, "labels", void 0);
480
+ __decorate([
481
+ ColumnAccessControl({
482
+ create: [
483
+ Permission.ProjectOwner,
484
+ Permission.ProjectAdmin,
485
+ Permission.ProjectMember,
486
+ Permission.MonitorManager,
487
+ Permission.CreateMonitorTemplate,
488
+ ],
489
+ read: [
490
+ Permission.ProjectOwner,
491
+ Permission.ProjectAdmin,
492
+ Permission.ProjectMember,
493
+ Permission.Viewer,
494
+ Permission.MonitorManager,
495
+ Permission.ReadMonitorTemplate,
496
+ Permission.ReadAllProjectResources,
497
+ ],
498
+ update: [
499
+ Permission.ProjectOwner,
500
+ Permission.ProjectAdmin,
501
+ Permission.ProjectMember,
502
+ Permission.MonitorManager,
503
+ Permission.EditMonitorTemplate,
504
+ ],
505
+ }),
506
+ TableColumn({
507
+ isDefaultValueColumn: false,
508
+ required: false,
509
+ type: TableColumnType.JSON,
510
+ title: "Custom Fields",
511
+ description: "Custom Fields on this resource.",
512
+ }),
513
+ Column({
514
+ type: ColumnType.JSON,
515
+ nullable: true,
516
+ }),
517
+ __metadata("design:type", Object)
518
+ ], MonitorTemplate.prototype, "customFields", void 0);
519
+ __decorate([
520
+ ColumnAccessControl({
521
+ create: [
522
+ Permission.ProjectOwner,
523
+ Permission.ProjectAdmin,
524
+ Permission.ProjectMember,
525
+ Permission.MonitorManager,
526
+ Permission.CreateMonitorTemplate,
527
+ ],
528
+ read: [
529
+ Permission.ProjectOwner,
530
+ Permission.ProjectAdmin,
531
+ Permission.ProjectMember,
532
+ Permission.Viewer,
533
+ Permission.MonitorManager,
534
+ Permission.ReadMonitorTemplate,
535
+ Permission.ReadAllProjectResources,
536
+ ],
537
+ update: [
538
+ Permission.ProjectOwner,
539
+ Permission.ProjectAdmin,
540
+ Permission.ProjectMember,
541
+ Permission.MonitorManager,
542
+ Permission.EditMonitorTemplate,
543
+ ],
544
+ }),
545
+ TableColumn({
546
+ type: TableColumnType.Number,
547
+ required: false,
548
+ title: "Minimum Probe Agreement",
549
+ description: "Default minimum number of probes that must agree on a status before the monitor status changes.",
550
+ }),
551
+ Column({
552
+ type: ColumnType.Number,
553
+ nullable: true,
554
+ }),
555
+ __metadata("design:type", Number)
556
+ ], MonitorTemplate.prototype, "minimumProbeAgreement", void 0);
557
+ __decorate([
558
+ ColumnAccessControl({
559
+ create: [
560
+ Permission.ProjectOwner,
561
+ Permission.ProjectAdmin,
562
+ Permission.ProjectMember,
563
+ Permission.MonitorManager,
564
+ Permission.CreateMonitorTemplate,
565
+ ],
566
+ read: [
567
+ Permission.ProjectOwner,
568
+ Permission.ProjectAdmin,
569
+ Permission.ProjectMember,
570
+ Permission.Viewer,
571
+ Permission.MonitorManager,
572
+ Permission.ReadMonitorTemplate,
573
+ Permission.ReadAllProjectResources,
574
+ ],
575
+ update: [],
576
+ }),
577
+ TableColumn({
578
+ manyToOneRelationColumn: "createdByUserId",
579
+ type: TableColumnType.Entity,
580
+ modelType: User,
581
+ title: "Created by User",
582
+ description: "Relation to User who created this object (if this object was created by a User)",
583
+ }),
584
+ ManyToOne(() => {
585
+ return User;
586
+ }, {
587
+ eager: false,
588
+ nullable: true,
589
+ onDelete: "SET NULL",
590
+ orphanedRowAction: "nullify",
591
+ }),
592
+ JoinColumn({ name: "createdByUserId" }),
593
+ __metadata("design:type", User)
594
+ ], MonitorTemplate.prototype, "createdByUser", void 0);
595
+ __decorate([
596
+ ColumnAccessControl({
597
+ create: [
598
+ Permission.ProjectOwner,
599
+ Permission.ProjectAdmin,
600
+ Permission.ProjectMember,
601
+ Permission.MonitorManager,
602
+ Permission.CreateMonitorTemplate,
603
+ ],
604
+ read: [
605
+ Permission.ProjectOwner,
606
+ Permission.ProjectAdmin,
607
+ Permission.ProjectMember,
608
+ Permission.Viewer,
609
+ Permission.MonitorManager,
610
+ Permission.ReadMonitorTemplate,
611
+ Permission.ReadAllProjectResources,
612
+ ],
613
+ update: [],
614
+ }),
615
+ TableColumn({
616
+ type: TableColumnType.ObjectID,
617
+ title: "Created by User ID",
618
+ description: "User ID who created this object (if this object was created by a User)",
619
+ }),
620
+ Column({
621
+ type: ColumnType.ObjectID,
622
+ nullable: true,
623
+ transformer: ObjectID.getDatabaseTransformer(),
624
+ }),
625
+ __metadata("design:type", ObjectID)
626
+ ], MonitorTemplate.prototype, "createdByUserId", void 0);
627
+ __decorate([
628
+ ColumnAccessControl({
629
+ create: [],
630
+ read: [],
631
+ update: [],
632
+ }),
633
+ TableColumn({
634
+ manyToOneRelationColumn: "deletedByUserId",
635
+ type: TableColumnType.Entity,
636
+ title: "Deleted by User",
637
+ modelType: User,
638
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
639
+ }),
640
+ ManyToOne(() => {
641
+ return User;
642
+ }, {
643
+ cascade: false,
644
+ eager: false,
645
+ nullable: true,
646
+ onDelete: "SET NULL",
647
+ orphanedRowAction: "nullify",
648
+ }),
649
+ JoinColumn({ name: "deletedByUserId" }),
650
+ __metadata("design:type", User)
651
+ ], MonitorTemplate.prototype, "deletedByUser", void 0);
652
+ __decorate([
653
+ ColumnAccessControl({
654
+ create: [],
655
+ read: [],
656
+ update: [],
657
+ }),
658
+ TableColumn({
659
+ type: TableColumnType.ObjectID,
660
+ title: "Deleted by User ID",
661
+ description: "User ID who deleted this object (if this object was deleted by a User)",
662
+ }),
663
+ Column({
664
+ type: ColumnType.ObjectID,
665
+ nullable: true,
666
+ transformer: ObjectID.getDatabaseTransformer(),
667
+ }),
668
+ __metadata("design:type", ObjectID)
669
+ ], MonitorTemplate.prototype, "deletedByUserId", void 0);
670
+ MonitorTemplate = __decorate([
671
+ EnableDocumentation(),
672
+ AccessControlColumn("labels"),
673
+ TenantColumn("projectId"),
674
+ TableAccessControl({
675
+ create: [
676
+ Permission.ProjectOwner,
677
+ Permission.ProjectAdmin,
678
+ Permission.ProjectMember,
679
+ Permission.MonitorManager,
680
+ Permission.CreateMonitorTemplate,
681
+ ],
682
+ read: [
683
+ Permission.ProjectOwner,
684
+ Permission.ProjectAdmin,
685
+ Permission.ProjectMember,
686
+ Permission.Viewer,
687
+ Permission.MonitorManager,
688
+ Permission.ReadMonitorTemplate,
689
+ Permission.ReadAllProjectResources,
690
+ ],
691
+ delete: [
692
+ Permission.ProjectOwner,
693
+ Permission.ProjectAdmin,
694
+ Permission.ProjectMember,
695
+ Permission.MonitorManager,
696
+ Permission.DeleteMonitorTemplate,
697
+ ],
698
+ update: [
699
+ Permission.ProjectOwner,
700
+ Permission.ProjectAdmin,
701
+ Permission.ProjectMember,
702
+ Permission.MonitorManager,
703
+ Permission.EditMonitorTemplate,
704
+ ],
705
+ }),
706
+ CrudApiEndpoint(new Route("/monitor-template")),
707
+ SlugifyColumn("templateName", "slug"),
708
+ Entity({
709
+ name: "MonitorTemplate",
710
+ }),
711
+ EnableWorkflow({
712
+ create: true,
713
+ delete: true,
714
+ update: true,
715
+ read: true,
716
+ }),
717
+ TableMetadata({
718
+ tableName: "MonitorTemplate",
719
+ singularName: "Monitor Template",
720
+ pluralName: "Monitor Templates",
721
+ icon: IconProp.AltGlobe,
722
+ tableDescription: "Reusable monitor template. Use it to create new monitors with the same configuration.",
723
+ })
724
+ ], MonitorTemplate);
725
+ export default MonitorTemplate;
726
+ //# sourceMappingURL=MonitorTemplate.js.map