@oneuptime/common 10.2.18 → 10.2.20

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 (109) hide show
  1. package/Models/DatabaseModels/Index.ts +4 -0
  2. package/Models/DatabaseModels/ScheduledMaintenanceFeed.ts +2 -0
  3. package/Models/DatabaseModels/ScheduledMaintenanceLabelRule.ts +742 -0
  4. package/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.ts +828 -0
  5. package/Server/Infrastructure/Postgres/SchemaMigrations/1778703414082-AddScheduledMaintenanceRules.ts +375 -0
  6. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  7. package/Server/Services/ScheduledMaintenanceLabelRuleEngineService.ts +463 -0
  8. package/Server/Services/ScheduledMaintenanceLabelRuleService.ts +14 -0
  9. package/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.ts +545 -0
  10. package/Server/Services/ScheduledMaintenanceOwnerRuleService.ts +14 -0
  11. package/Server/Services/ScheduledMaintenanceService.ts +34 -0
  12. package/Types/Call/CallRequest.ts +29 -5
  13. package/Types/Docs/DocsLanguage.ts +36 -0
  14. package/Types/Permission.ts +96 -0
  15. package/UI/Components/AlertBanner/AlertBanner.tsx +4 -1
  16. package/UI/Components/Alerts/Alert.tsx +15 -4
  17. package/UI/Components/Button/DropdownButton.tsx +4 -2
  18. package/UI/Components/Detail/Detail.tsx +5 -1
  19. package/UI/Components/Detail/FieldLabel.tsx +14 -6
  20. package/UI/Components/Detail/PlaceholderText.tsx +4 -1
  21. package/UI/Components/Dropdown/Dropdown.tsx +13 -4
  22. package/UI/Components/ErrorMessage/ErrorMessage.tsx +9 -2
  23. package/UI/Components/Filters/FilterViewer.tsx +42 -31
  24. package/UI/Components/Filters/FiltersForm.tsx +13 -6
  25. package/UI/Components/Forms/BasicForm.tsx +23 -6
  26. package/UI/Components/Forms/Fields/FieldLabel.tsx +18 -6
  27. package/UI/Components/ModelTable/BaseModelTable.tsx +16 -13
  28. package/UI/Components/MoreMenu/MoreMenuSection.tsx +4 -1
  29. package/UI/Components/Navbar/NavBarItem.tsx +4 -1
  30. package/UI/Components/Navbar/NavBarMenuItem.tsx +7 -2
  31. package/UI/Components/Navbar/NavBarMenuSubItem.tsx +4 -1
  32. package/UI/Components/ProgressButtons/ProgressButtonItem.tsx +4 -1
  33. package/UI/Components/Table/Table.tsx +13 -7
  34. package/UI/Components/Table/TableHeader.tsx +3 -1
  35. package/UI/Components/Tabs/Tab.tsx +5 -1
  36. package/UI/Components/TopAlert/TopAlert.tsx +8 -2
  37. package/build/dist/Models/DatabaseModels/Index.js +4 -0
  38. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  39. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceFeed.js +2 -0
  40. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceFeed.js.map +1 -1
  41. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js +749 -0
  42. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js.map +1 -0
  43. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js +834 -0
  44. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js.map +1 -0
  45. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778703414082-AddScheduledMaintenanceRules.js +132 -0
  46. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778703414082-AddScheduledMaintenanceRules.js.map +1 -0
  47. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  48. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  49. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js +375 -0
  50. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js.map +1 -0
  51. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleService.js +13 -0
  52. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleService.js.map +1 -0
  53. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js +431 -0
  54. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js.map +1 -0
  55. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleService.js +13 -0
  56. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleService.js.map +1 -0
  57. package/build/dist/Server/Services/ScheduledMaintenanceService.js +28 -0
  58. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  59. package/build/dist/Types/Call/CallRequest.js +28 -5
  60. package/build/dist/Types/Call/CallRequest.js.map +1 -1
  61. package/build/dist/Types/Docs/DocsLanguage.js +25 -0
  62. package/build/dist/Types/Docs/DocsLanguage.js.map +1 -0
  63. package/build/dist/Types/Permission.js +84 -0
  64. package/build/dist/Types/Permission.js.map +1 -1
  65. package/build/dist/UI/Components/AlertBanner/AlertBanner.js +5 -1
  66. package/build/dist/UI/Components/AlertBanner/AlertBanner.js.map +1 -1
  67. package/build/dist/UI/Components/Alerts/Alert.js +9 -4
  68. package/build/dist/UI/Components/Alerts/Alert.js.map +1 -1
  69. package/build/dist/UI/Components/Button/DropdownButton.js +6 -2
  70. package/build/dist/UI/Components/Button/DropdownButton.js.map +1 -1
  71. package/build/dist/UI/Components/Detail/Detail.js +4 -1
  72. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  73. package/build/dist/UI/Components/Detail/FieldLabel.js +11 -6
  74. package/build/dist/UI/Components/Detail/FieldLabel.js.map +1 -1
  75. package/build/dist/UI/Components/Detail/PlaceholderText.js +5 -1
  76. package/build/dist/UI/Components/Detail/PlaceholderText.js.map +1 -1
  77. package/build/dist/UI/Components/Dropdown/Dropdown.js +11 -4
  78. package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
  79. package/build/dist/UI/Components/ErrorMessage/ErrorMessage.js +8 -2
  80. package/build/dist/UI/Components/ErrorMessage/ErrorMessage.js.map +1 -1
  81. package/build/dist/UI/Components/Filters/FilterViewer.js +49 -32
  82. package/build/dist/UI/Components/Filters/FilterViewer.js.map +1 -1
  83. package/build/dist/UI/Components/Filters/FiltersForm.js +9 -3
  84. package/build/dist/UI/Components/Filters/FiltersForm.js.map +1 -1
  85. package/build/dist/UI/Components/Forms/BasicForm.js +16 -6
  86. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  87. package/build/dist/UI/Components/Forms/Fields/FieldLabel.js +13 -6
  88. package/build/dist/UI/Components/Forms/Fields/FieldLabel.js.map +1 -1
  89. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +15 -10
  90. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  91. package/build/dist/UI/Components/MoreMenu/MoreMenuSection.js +5 -1
  92. package/build/dist/UI/Components/MoreMenu/MoreMenuSection.js.map +1 -1
  93. package/build/dist/UI/Components/Navbar/NavBarItem.js +5 -1
  94. package/build/dist/UI/Components/Navbar/NavBarItem.js.map +1 -1
  95. package/build/dist/UI/Components/Navbar/NavBarMenuItem.js +7 -2
  96. package/build/dist/UI/Components/Navbar/NavBarMenuItem.js.map +1 -1
  97. package/build/dist/UI/Components/Navbar/NavBarMenuSubItem.js +5 -1
  98. package/build/dist/UI/Components/Navbar/NavBarMenuSubItem.js.map +1 -1
  99. package/build/dist/UI/Components/ProgressButtons/ProgressButtonItem.js +5 -1
  100. package/build/dist/UI/Components/ProgressButtons/ProgressButtonItem.js.map +1 -1
  101. package/build/dist/UI/Components/Table/Table.js +12 -7
  102. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  103. package/build/dist/UI/Components/Table/TableHeader.js +4 -2
  104. package/build/dist/UI/Components/Table/TableHeader.js.map +1 -1
  105. package/build/dist/UI/Components/Tabs/Tab.js +5 -1
  106. package/build/dist/UI/Components/Tabs/Tab.js.map +1 -1
  107. package/build/dist/UI/Components/TopAlert/TopAlert.js +7 -2
  108. package/build/dist/UI/Components/TopAlert/TopAlert.js.map +1 -1
  109. package/package.json +1 -1
@@ -0,0 +1,749 @@
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 Monitor from "./Monitor";
12
+ import Project from "./Project";
13
+ import User from "./User";
14
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
15
+ import Route from "../../Types/API/Route";
16
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
17
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
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 TableColumn from "../../Types/Database/TableColumn";
24
+ import TableColumnType from "../../Types/Database/TableColumnType";
25
+ import TableMetadata from "../../Types/Database/TableMetadata";
26
+ import TenantColumn from "../../Types/Database/TenantColumn";
27
+ import IconProp from "../../Types/Icon/IconProp";
28
+ import ObjectID from "../../Types/ObjectID";
29
+ import Permission from "../../Types/Permission";
30
+ import { Column, Entity, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, } from "typeorm";
31
+ let ScheduledMaintenanceLabelRule = class ScheduledMaintenanceLabelRule extends BaseModel {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.project = undefined;
35
+ this.projectId = undefined;
36
+ this.name = undefined;
37
+ this.description = undefined;
38
+ this.isEnabled = undefined;
39
+ // Match Criteria
40
+ this.monitors = undefined;
41
+ this.scheduledMaintenanceLabels = undefined;
42
+ this.monitorLabels = undefined;
43
+ this.titlePattern = undefined;
44
+ this.descriptionPattern = undefined;
45
+ this.monitorNamePattern = undefined;
46
+ this.monitorDescriptionPattern = undefined;
47
+ // Action: Labels to add
48
+ this.labelsToAdd = undefined;
49
+ this.inheritLabelsFromMonitors = 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.CreateScheduledMaintenanceLabelRule,
62
+ ],
63
+ read: [
64
+ Permission.ProjectOwner,
65
+ Permission.ProjectAdmin,
66
+ Permission.ProjectMember,
67
+ Permission.Viewer,
68
+ Permission.ScheduledMaintenanceManager,
69
+ Permission.ReadScheduledMaintenanceLabelRule,
70
+ Permission.ReadAllProjectResources,
71
+ ],
72
+ update: [],
73
+ }),
74
+ TableColumn({
75
+ manyToOneRelationColumn: "projectId",
76
+ type: TableColumnType.Entity,
77
+ modelType: Project,
78
+ title: "Project",
79
+ description: "Relation to Project Resource in which this object belongs",
80
+ }),
81
+ ManyToOne(() => {
82
+ return Project;
83
+ }, {
84
+ eager: false,
85
+ nullable: true,
86
+ onDelete: "CASCADE",
87
+ orphanedRowAction: "nullify",
88
+ }),
89
+ JoinColumn({ name: "projectId" }),
90
+ __metadata("design:type", Project)
91
+ ], ScheduledMaintenanceLabelRule.prototype, "project", void 0);
92
+ __decorate([
93
+ ColumnAccessControl({
94
+ create: [
95
+ Permission.ProjectOwner,
96
+ Permission.ProjectAdmin,
97
+ Permission.CreateScheduledMaintenanceLabelRule,
98
+ ],
99
+ read: [
100
+ Permission.ProjectOwner,
101
+ Permission.ProjectAdmin,
102
+ Permission.ProjectMember,
103
+ Permission.Viewer,
104
+ Permission.ScheduledMaintenanceManager,
105
+ Permission.ReadScheduledMaintenanceLabelRule,
106
+ Permission.ReadAllProjectResources,
107
+ ],
108
+ update: [],
109
+ }),
110
+ Index(),
111
+ TableColumn({
112
+ type: TableColumnType.ObjectID,
113
+ required: true,
114
+ canReadOnRelationQuery: true,
115
+ title: "Project ID",
116
+ description: "ID of your OneUptime Project in which this object belongs",
117
+ }),
118
+ Column({
119
+ type: ColumnType.ObjectID,
120
+ nullable: false,
121
+ transformer: ObjectID.getDatabaseTransformer(),
122
+ }),
123
+ __metadata("design:type", ObjectID)
124
+ ], ScheduledMaintenanceLabelRule.prototype, "projectId", void 0);
125
+ __decorate([
126
+ ColumnAccessControl({
127
+ create: [
128
+ Permission.ProjectOwner,
129
+ Permission.ProjectAdmin,
130
+ Permission.CreateScheduledMaintenanceLabelRule,
131
+ ],
132
+ read: [
133
+ Permission.ProjectOwner,
134
+ Permission.ProjectAdmin,
135
+ Permission.ProjectMember,
136
+ Permission.Viewer,
137
+ Permission.ScheduledMaintenanceManager,
138
+ Permission.ReadScheduledMaintenanceLabelRule,
139
+ Permission.ReadAllProjectResources,
140
+ ],
141
+ update: [
142
+ Permission.ProjectOwner,
143
+ Permission.ProjectAdmin,
144
+ Permission.EditScheduledMaintenanceLabelRule,
145
+ ],
146
+ }),
147
+ Index(),
148
+ TableColumn({
149
+ required: true,
150
+ type: TableColumnType.ShortText,
151
+ canReadOnRelationQuery: true,
152
+ title: "Name",
153
+ description: "Name of this scheduled maintenance label rule",
154
+ }),
155
+ Column({
156
+ nullable: false,
157
+ type: ColumnType.ShortText,
158
+ length: ColumnLength.ShortText,
159
+ }),
160
+ __metadata("design:type", String)
161
+ ], ScheduledMaintenanceLabelRule.prototype, "name", void 0);
162
+ __decorate([
163
+ ColumnAccessControl({
164
+ create: [
165
+ Permission.ProjectOwner,
166
+ Permission.ProjectAdmin,
167
+ Permission.CreateScheduledMaintenanceLabelRule,
168
+ ],
169
+ read: [
170
+ Permission.ProjectOwner,
171
+ Permission.ProjectAdmin,
172
+ Permission.ProjectMember,
173
+ Permission.Viewer,
174
+ Permission.ScheduledMaintenanceManager,
175
+ Permission.ReadScheduledMaintenanceLabelRule,
176
+ Permission.ReadAllProjectResources,
177
+ ],
178
+ update: [
179
+ Permission.ProjectOwner,
180
+ Permission.ProjectAdmin,
181
+ Permission.EditScheduledMaintenanceLabelRule,
182
+ ],
183
+ }),
184
+ TableColumn({
185
+ required: false,
186
+ type: TableColumnType.LongText,
187
+ title: "Description",
188
+ description: "Description of this scheduled maintenance label rule",
189
+ }),
190
+ Column({
191
+ nullable: true,
192
+ type: ColumnType.LongText,
193
+ length: ColumnLength.LongText,
194
+ }),
195
+ __metadata("design:type", String)
196
+ ], ScheduledMaintenanceLabelRule.prototype, "description", void 0);
197
+ __decorate([
198
+ ColumnAccessControl({
199
+ create: [
200
+ Permission.ProjectOwner,
201
+ Permission.ProjectAdmin,
202
+ Permission.CreateScheduledMaintenanceLabelRule,
203
+ ],
204
+ read: [
205
+ Permission.ProjectOwner,
206
+ Permission.ProjectAdmin,
207
+ Permission.ProjectMember,
208
+ Permission.Viewer,
209
+ Permission.ScheduledMaintenanceManager,
210
+ Permission.ReadScheduledMaintenanceLabelRule,
211
+ Permission.ReadAllProjectResources,
212
+ ],
213
+ update: [
214
+ Permission.ProjectOwner,
215
+ Permission.ProjectAdmin,
216
+ Permission.EditScheduledMaintenanceLabelRule,
217
+ ],
218
+ }),
219
+ Index(),
220
+ TableColumn({
221
+ required: true,
222
+ type: TableColumnType.Boolean,
223
+ title: "Is Enabled",
224
+ description: "Whether this rule is enabled",
225
+ defaultValue: true,
226
+ isDefaultValueColumn: true,
227
+ }),
228
+ Column({
229
+ type: ColumnType.Boolean,
230
+ nullable: false,
231
+ default: true,
232
+ }),
233
+ __metadata("design:type", Boolean)
234
+ ], ScheduledMaintenanceLabelRule.prototype, "isEnabled", void 0);
235
+ __decorate([
236
+ ColumnAccessControl({
237
+ create: [
238
+ Permission.ProjectOwner,
239
+ Permission.ProjectAdmin,
240
+ Permission.CreateScheduledMaintenanceLabelRule,
241
+ ],
242
+ read: [
243
+ Permission.ProjectOwner,
244
+ Permission.ProjectAdmin,
245
+ Permission.ProjectMember,
246
+ Permission.Viewer,
247
+ Permission.ScheduledMaintenanceManager,
248
+ Permission.ReadScheduledMaintenanceLabelRule,
249
+ Permission.ReadAllProjectResources,
250
+ ],
251
+ update: [
252
+ Permission.ProjectOwner,
253
+ Permission.ProjectAdmin,
254
+ Permission.EditScheduledMaintenanceLabelRule,
255
+ ],
256
+ }),
257
+ TableColumn({
258
+ required: false,
259
+ type: TableColumnType.EntityArray,
260
+ modelType: Monitor,
261
+ title: "Monitors",
262
+ description: "Only trigger for events on these monitors. Leave empty to match events on any monitor.",
263
+ }),
264
+ ManyToMany(() => {
265
+ return Monitor;
266
+ }, { eager: false }),
267
+ JoinTable({
268
+ name: "ScheduledMaintenanceLabelRuleMonitor",
269
+ inverseJoinColumn: {
270
+ name: "monitorId",
271
+ referencedColumnName: "_id",
272
+ },
273
+ joinColumn: {
274
+ name: "scheduledMaintenanceLabelRuleId",
275
+ referencedColumnName: "_id",
276
+ },
277
+ }),
278
+ __metadata("design:type", Array)
279
+ ], ScheduledMaintenanceLabelRule.prototype, "monitors", void 0);
280
+ __decorate([
281
+ ColumnAccessControl({
282
+ create: [
283
+ Permission.ProjectOwner,
284
+ Permission.ProjectAdmin,
285
+ Permission.CreateScheduledMaintenanceLabelRule,
286
+ ],
287
+ read: [
288
+ Permission.ProjectOwner,
289
+ Permission.ProjectAdmin,
290
+ Permission.ProjectMember,
291
+ Permission.Viewer,
292
+ Permission.ScheduledMaintenanceManager,
293
+ Permission.ReadScheduledMaintenanceLabelRule,
294
+ Permission.ReadAllProjectResources,
295
+ ],
296
+ update: [
297
+ Permission.ProjectOwner,
298
+ Permission.ProjectAdmin,
299
+ Permission.EditScheduledMaintenanceLabelRule,
300
+ ],
301
+ }),
302
+ TableColumn({
303
+ required: false,
304
+ type: TableColumnType.EntityArray,
305
+ modelType: Label,
306
+ title: "Scheduled Maintenance Labels",
307
+ description: "Only trigger for events that already have at least one of these labels. Leave empty to match regardless of event labels.",
308
+ }),
309
+ ManyToMany(() => {
310
+ return Label;
311
+ }, { eager: false }),
312
+ JoinTable({
313
+ name: "ScheduledMaintenanceLabelRuleEventLabel",
314
+ inverseJoinColumn: {
315
+ name: "labelId",
316
+ referencedColumnName: "_id",
317
+ },
318
+ joinColumn: {
319
+ name: "scheduledMaintenanceLabelRuleId",
320
+ referencedColumnName: "_id",
321
+ },
322
+ }),
323
+ __metadata("design:type", Array)
324
+ ], ScheduledMaintenanceLabelRule.prototype, "scheduledMaintenanceLabels", void 0);
325
+ __decorate([
326
+ ColumnAccessControl({
327
+ create: [
328
+ Permission.ProjectOwner,
329
+ Permission.ProjectAdmin,
330
+ Permission.CreateScheduledMaintenanceLabelRule,
331
+ ],
332
+ read: [
333
+ Permission.ProjectOwner,
334
+ Permission.ProjectAdmin,
335
+ Permission.ProjectMember,
336
+ Permission.Viewer,
337
+ Permission.ScheduledMaintenanceManager,
338
+ Permission.ReadScheduledMaintenanceLabelRule,
339
+ Permission.ReadAllProjectResources,
340
+ ],
341
+ update: [
342
+ Permission.ProjectOwner,
343
+ Permission.ProjectAdmin,
344
+ Permission.EditScheduledMaintenanceLabelRule,
345
+ ],
346
+ }),
347
+ TableColumn({
348
+ required: false,
349
+ type: TableColumnType.EntityArray,
350
+ modelType: Label,
351
+ title: "Monitor Labels",
352
+ description: "Only trigger for events on monitors that have at least one of these labels. Leave empty to match regardless of monitor labels.",
353
+ }),
354
+ ManyToMany(() => {
355
+ return Label;
356
+ }, { eager: false }),
357
+ JoinTable({
358
+ name: "ScheduledMaintenanceLabelRuleMonitorLabel",
359
+ inverseJoinColumn: {
360
+ name: "labelId",
361
+ referencedColumnName: "_id",
362
+ },
363
+ joinColumn: {
364
+ name: "scheduledMaintenanceLabelRuleId",
365
+ referencedColumnName: "_id",
366
+ },
367
+ }),
368
+ __metadata("design:type", Array)
369
+ ], ScheduledMaintenanceLabelRule.prototype, "monitorLabels", void 0);
370
+ __decorate([
371
+ ColumnAccessControl({
372
+ create: [
373
+ Permission.ProjectOwner,
374
+ Permission.ProjectAdmin,
375
+ Permission.CreateScheduledMaintenanceLabelRule,
376
+ ],
377
+ read: [
378
+ Permission.ProjectOwner,
379
+ Permission.ProjectAdmin,
380
+ Permission.ProjectMember,
381
+ Permission.Viewer,
382
+ Permission.ScheduledMaintenanceManager,
383
+ Permission.ReadScheduledMaintenanceLabelRule,
384
+ Permission.ReadAllProjectResources,
385
+ ],
386
+ update: [
387
+ Permission.ProjectOwner,
388
+ Permission.ProjectAdmin,
389
+ Permission.EditScheduledMaintenanceLabelRule,
390
+ ],
391
+ }),
392
+ TableColumn({
393
+ required: false,
394
+ type: TableColumnType.LongText,
395
+ title: "Title Pattern",
396
+ description: "Regex (case-insensitive) matched against the event title. Leave empty to match any title.",
397
+ }),
398
+ Column({
399
+ type: ColumnType.LongText,
400
+ nullable: true,
401
+ length: ColumnLength.LongText,
402
+ }),
403
+ __metadata("design:type", String)
404
+ ], ScheduledMaintenanceLabelRule.prototype, "titlePattern", void 0);
405
+ __decorate([
406
+ ColumnAccessControl({
407
+ create: [
408
+ Permission.ProjectOwner,
409
+ Permission.ProjectAdmin,
410
+ Permission.CreateScheduledMaintenanceLabelRule,
411
+ ],
412
+ read: [
413
+ Permission.ProjectOwner,
414
+ Permission.ProjectAdmin,
415
+ Permission.ProjectMember,
416
+ Permission.Viewer,
417
+ Permission.ScheduledMaintenanceManager,
418
+ Permission.ReadScheduledMaintenanceLabelRule,
419
+ Permission.ReadAllProjectResources,
420
+ ],
421
+ update: [
422
+ Permission.ProjectOwner,
423
+ Permission.ProjectAdmin,
424
+ Permission.EditScheduledMaintenanceLabelRule,
425
+ ],
426
+ }),
427
+ TableColumn({
428
+ required: false,
429
+ type: TableColumnType.LongText,
430
+ title: "Description Pattern",
431
+ description: "Regex (case-insensitive) matched against the event description. Leave empty to match any description.",
432
+ }),
433
+ Column({
434
+ type: ColumnType.LongText,
435
+ nullable: true,
436
+ length: ColumnLength.LongText,
437
+ }),
438
+ __metadata("design:type", String)
439
+ ], ScheduledMaintenanceLabelRule.prototype, "descriptionPattern", void 0);
440
+ __decorate([
441
+ ColumnAccessControl({
442
+ create: [
443
+ Permission.ProjectOwner,
444
+ Permission.ProjectAdmin,
445
+ Permission.CreateScheduledMaintenanceLabelRule,
446
+ ],
447
+ read: [
448
+ Permission.ProjectOwner,
449
+ Permission.ProjectAdmin,
450
+ Permission.ProjectMember,
451
+ Permission.Viewer,
452
+ Permission.ScheduledMaintenanceManager,
453
+ Permission.ReadScheduledMaintenanceLabelRule,
454
+ Permission.ReadAllProjectResources,
455
+ ],
456
+ update: [
457
+ Permission.ProjectOwner,
458
+ Permission.ProjectAdmin,
459
+ Permission.EditScheduledMaintenanceLabelRule,
460
+ ],
461
+ }),
462
+ TableColumn({
463
+ required: false,
464
+ type: TableColumnType.LongText,
465
+ title: "Monitor Name Pattern",
466
+ description: "Regex (case-insensitive) matched against any of the event's monitor names. Leave empty to match any monitor.",
467
+ }),
468
+ Column({
469
+ type: ColumnType.LongText,
470
+ nullable: true,
471
+ length: ColumnLength.LongText,
472
+ }),
473
+ __metadata("design:type", String)
474
+ ], ScheduledMaintenanceLabelRule.prototype, "monitorNamePattern", void 0);
475
+ __decorate([
476
+ ColumnAccessControl({
477
+ create: [
478
+ Permission.ProjectOwner,
479
+ Permission.ProjectAdmin,
480
+ Permission.CreateScheduledMaintenanceLabelRule,
481
+ ],
482
+ read: [
483
+ Permission.ProjectOwner,
484
+ Permission.ProjectAdmin,
485
+ Permission.ProjectMember,
486
+ Permission.Viewer,
487
+ Permission.ScheduledMaintenanceManager,
488
+ Permission.ReadScheduledMaintenanceLabelRule,
489
+ Permission.ReadAllProjectResources,
490
+ ],
491
+ update: [
492
+ Permission.ProjectOwner,
493
+ Permission.ProjectAdmin,
494
+ Permission.EditScheduledMaintenanceLabelRule,
495
+ ],
496
+ }),
497
+ TableColumn({
498
+ required: false,
499
+ type: TableColumnType.LongText,
500
+ title: "Monitor Description Pattern",
501
+ description: "Regex (case-insensitive) matched against any of the event's monitor descriptions. Leave empty to match any description.",
502
+ }),
503
+ Column({
504
+ type: ColumnType.LongText,
505
+ nullable: true,
506
+ length: ColumnLength.LongText,
507
+ }),
508
+ __metadata("design:type", String)
509
+ ], ScheduledMaintenanceLabelRule.prototype, "monitorDescriptionPattern", void 0);
510
+ __decorate([
511
+ ColumnAccessControl({
512
+ create: [
513
+ Permission.ProjectOwner,
514
+ Permission.ProjectAdmin,
515
+ Permission.CreateScheduledMaintenanceLabelRule,
516
+ ],
517
+ read: [
518
+ Permission.ProjectOwner,
519
+ Permission.ProjectAdmin,
520
+ Permission.ProjectMember,
521
+ Permission.Viewer,
522
+ Permission.ScheduledMaintenanceManager,
523
+ Permission.ReadScheduledMaintenanceLabelRule,
524
+ Permission.ReadAllProjectResources,
525
+ ],
526
+ update: [
527
+ Permission.ProjectOwner,
528
+ Permission.ProjectAdmin,
529
+ Permission.EditScheduledMaintenanceLabelRule,
530
+ ],
531
+ }),
532
+ TableColumn({
533
+ required: false,
534
+ type: TableColumnType.EntityArray,
535
+ modelType: Label,
536
+ title: "Labels to Add",
537
+ description: "Labels to attach to the event when this rule matches. Already-attached labels are not duplicated.",
538
+ }),
539
+ ManyToMany(() => {
540
+ return Label;
541
+ }, { eager: false }),
542
+ JoinTable({
543
+ name: "ScheduledMaintenanceLabelRuleLabelToAdd",
544
+ inverseJoinColumn: {
545
+ name: "labelId",
546
+ referencedColumnName: "_id",
547
+ },
548
+ joinColumn: {
549
+ name: "scheduledMaintenanceLabelRuleId",
550
+ referencedColumnName: "_id",
551
+ },
552
+ }),
553
+ __metadata("design:type", Array)
554
+ ], ScheduledMaintenanceLabelRule.prototype, "labelsToAdd", void 0);
555
+ __decorate([
556
+ ColumnAccessControl({
557
+ create: [
558
+ Permission.ProjectOwner,
559
+ Permission.ProjectAdmin,
560
+ Permission.CreateScheduledMaintenanceLabelRule,
561
+ ],
562
+ read: [
563
+ Permission.ProjectOwner,
564
+ Permission.ProjectAdmin,
565
+ Permission.ProjectMember,
566
+ Permission.Viewer,
567
+ Permission.ScheduledMaintenanceManager,
568
+ Permission.ReadScheduledMaintenanceLabelRule,
569
+ Permission.ReadAllProjectResources,
570
+ ],
571
+ update: [
572
+ Permission.ProjectOwner,
573
+ Permission.ProjectAdmin,
574
+ Permission.EditScheduledMaintenanceLabelRule,
575
+ ],
576
+ }),
577
+ TableColumn({
578
+ required: false,
579
+ type: TableColumnType.Boolean,
580
+ title: "Inherit Labels From Monitors",
581
+ description: "When this rule matches, also copy every label of the event's monitors onto the event.",
582
+ defaultValue: false,
583
+ isDefaultValueColumn: true,
584
+ }),
585
+ Column({
586
+ type: ColumnType.Boolean,
587
+ nullable: false,
588
+ default: false,
589
+ }),
590
+ __metadata("design:type", Boolean)
591
+ ], ScheduledMaintenanceLabelRule.prototype, "inheritLabelsFromMonitors", void 0);
592
+ __decorate([
593
+ ColumnAccessControl({
594
+ create: [
595
+ Permission.ProjectOwner,
596
+ Permission.ProjectAdmin,
597
+ Permission.CreateScheduledMaintenanceLabelRule,
598
+ ],
599
+ read: [
600
+ Permission.ProjectOwner,
601
+ Permission.ProjectAdmin,
602
+ Permission.ProjectMember,
603
+ Permission.Viewer,
604
+ Permission.ScheduledMaintenanceManager,
605
+ Permission.ReadScheduledMaintenanceLabelRule,
606
+ Permission.ReadAllProjectResources,
607
+ ],
608
+ update: [],
609
+ }),
610
+ TableColumn({
611
+ manyToOneRelationColumn: "createdByUserId",
612
+ type: TableColumnType.Entity,
613
+ modelType: User,
614
+ title: "Created by User",
615
+ description: "Relation to User who created this object (if this object was created by a User)",
616
+ }),
617
+ ManyToOne(() => {
618
+ return User;
619
+ }, {
620
+ eager: false,
621
+ nullable: true,
622
+ onDelete: "SET NULL",
623
+ orphanedRowAction: "nullify",
624
+ }),
625
+ JoinColumn({ name: "createdByUserId" }),
626
+ __metadata("design:type", User)
627
+ ], ScheduledMaintenanceLabelRule.prototype, "createdByUser", void 0);
628
+ __decorate([
629
+ ColumnAccessControl({
630
+ create: [
631
+ Permission.ProjectOwner,
632
+ Permission.ProjectAdmin,
633
+ Permission.CreateScheduledMaintenanceLabelRule,
634
+ ],
635
+ read: [
636
+ Permission.ProjectOwner,
637
+ Permission.ProjectAdmin,
638
+ Permission.ProjectMember,
639
+ Permission.Viewer,
640
+ Permission.ScheduledMaintenanceManager,
641
+ Permission.ReadScheduledMaintenanceLabelRule,
642
+ Permission.ReadAllProjectResources,
643
+ ],
644
+ update: [],
645
+ }),
646
+ TableColumn({
647
+ type: TableColumnType.ObjectID,
648
+ title: "Created by User ID",
649
+ description: "User ID who created this object (if this object was created by a User)",
650
+ }),
651
+ Column({
652
+ type: ColumnType.ObjectID,
653
+ nullable: true,
654
+ transformer: ObjectID.getDatabaseTransformer(),
655
+ }),
656
+ __metadata("design:type", ObjectID)
657
+ ], ScheduledMaintenanceLabelRule.prototype, "createdByUserId", void 0);
658
+ __decorate([
659
+ ColumnAccessControl({
660
+ create: [],
661
+ read: [],
662
+ update: [],
663
+ }),
664
+ TableColumn({
665
+ manyToOneRelationColumn: "deletedByUserId",
666
+ type: TableColumnType.Entity,
667
+ title: "Deleted by User",
668
+ modelType: User,
669
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
670
+ }),
671
+ ManyToOne(() => {
672
+ return User;
673
+ }, {
674
+ cascade: false,
675
+ eager: false,
676
+ nullable: true,
677
+ onDelete: "SET NULL",
678
+ orphanedRowAction: "nullify",
679
+ }),
680
+ JoinColumn({ name: "deletedByUserId" }),
681
+ __metadata("design:type", User)
682
+ ], ScheduledMaintenanceLabelRule.prototype, "deletedByUser", void 0);
683
+ __decorate([
684
+ ColumnAccessControl({
685
+ create: [],
686
+ read: [],
687
+ update: [],
688
+ }),
689
+ TableColumn({
690
+ type: TableColumnType.ObjectID,
691
+ title: "Deleted by User ID",
692
+ description: "User ID who deleted this object (if this object was deleted by a User)",
693
+ }),
694
+ Column({
695
+ type: ColumnType.ObjectID,
696
+ nullable: true,
697
+ transformer: ObjectID.getDatabaseTransformer(),
698
+ }),
699
+ __metadata("design:type", ObjectID)
700
+ ], ScheduledMaintenanceLabelRule.prototype, "deletedByUserId", void 0);
701
+ ScheduledMaintenanceLabelRule = __decorate([
702
+ EnableDocumentation(),
703
+ TenantColumn("projectId"),
704
+ TableAccessControl({
705
+ create: [
706
+ Permission.ProjectOwner,
707
+ Permission.ProjectAdmin,
708
+ Permission.CreateScheduledMaintenanceLabelRule,
709
+ ],
710
+ read: [
711
+ Permission.ProjectOwner,
712
+ Permission.ProjectAdmin,
713
+ Permission.ProjectMember,
714
+ Permission.Viewer,
715
+ Permission.ScheduledMaintenanceManager,
716
+ Permission.ReadScheduledMaintenanceLabelRule,
717
+ Permission.ReadAllProjectResources,
718
+ ],
719
+ delete: [
720
+ Permission.ProjectOwner,
721
+ Permission.ProjectAdmin,
722
+ Permission.DeleteScheduledMaintenanceLabelRule,
723
+ ],
724
+ update: [
725
+ Permission.ProjectOwner,
726
+ Permission.ProjectAdmin,
727
+ Permission.EditScheduledMaintenanceLabelRule,
728
+ ],
729
+ }),
730
+ CrudApiEndpoint(new Route("/scheduled-maintenance-label-rule")),
731
+ Entity({
732
+ name: "ScheduledMaintenanceLabelRule",
733
+ }),
734
+ EnableWorkflow({
735
+ create: true,
736
+ delete: true,
737
+ update: true,
738
+ read: true,
739
+ }),
740
+ TableMetadata({
741
+ tableName: "ScheduledMaintenanceLabelRule",
742
+ singularName: "Scheduled Maintenance Label Rule",
743
+ pluralName: "Scheduled Maintenance Label Rules",
744
+ icon: IconProp.Tag,
745
+ tableDescription: "Configure rules for automatically attaching labels to scheduled maintenance events — including labels inherited from the event's monitors — when matching events are created",
746
+ })
747
+ ], ScheduledMaintenanceLabelRule);
748
+ export default ScheduledMaintenanceLabelRule;
749
+ //# sourceMappingURL=ScheduledMaintenanceLabelRule.js.map