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