@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,375 @@
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 "../../Models/DatabaseModels/Label";
11
+ import ScheduledMaintenance from "../../Models/DatabaseModels/ScheduledMaintenance";
12
+ import ScheduledMaintenanceLabelRule from "../../Models/DatabaseModels/ScheduledMaintenanceLabelRule";
13
+ import LabelService from "./LabelService";
14
+ import MonitorService from "./MonitorService";
15
+ import ScheduledMaintenanceFeedService from "./ScheduledMaintenanceFeedService";
16
+ import ScheduledMaintenanceLabelRuleService from "./ScheduledMaintenanceLabelRuleService";
17
+ import ScheduledMaintenanceService from "./ScheduledMaintenanceService";
18
+ import { ScheduledMaintenanceFeedEventType } from "../../Models/DatabaseModels/ScheduledMaintenanceFeed";
19
+ import { Indigo500 } from "../../Types/BrandColors";
20
+ import ObjectID from "../../Types/ObjectID";
21
+ import LIMIT_MAX from "../../Types/Database/LimitMax";
22
+ import QueryHelper from "../Types/Database/QueryHelper";
23
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
24
+ import logger from "../Utils/Logger";
25
+ class ScheduledMaintenanceLabelRuleEngineServiceClass {
26
+ /**
27
+ * Evaluates ScheduledMaintenanceLabelRule rows for the given event and
28
+ * attaches matched labels to the event. Each matched rule contributes:
29
+ * - labels listed on `labelsToAdd`
30
+ * - all labels of the event's monitors when `inheritLabelsFromMonitors`
31
+ * The union is deduped against labels already on the event before insert
32
+ * to avoid PK conflicts on the ScheduledMaintenanceLabel join table.
33
+ */
34
+ async applyRulesToScheduledMaintenance(scheduledMaintenance) {
35
+ var _a, _b, _c;
36
+ if (!scheduledMaintenance.id || !scheduledMaintenance.projectId) {
37
+ return;
38
+ }
39
+ try {
40
+ const rules = await ScheduledMaintenanceLabelRuleService.findBy({
41
+ query: {
42
+ projectId: scheduledMaintenance.projectId,
43
+ isEnabled: true,
44
+ },
45
+ props: { isRoot: true },
46
+ select: {
47
+ _id: true,
48
+ name: true,
49
+ monitors: { _id: true },
50
+ scheduledMaintenanceLabels: { _id: true },
51
+ monitorLabels: { _id: true },
52
+ titlePattern: true,
53
+ descriptionPattern: true,
54
+ monitorNamePattern: true,
55
+ monitorDescriptionPattern: true,
56
+ labelsToAdd: { _id: true },
57
+ inheritLabelsFromMonitors: true,
58
+ },
59
+ limit: 100,
60
+ skip: 0,
61
+ });
62
+ if (rules.length === 0) {
63
+ return;
64
+ }
65
+ const labelIdsToAdd = new Set();
66
+ let inheritFromMonitors = false;
67
+ const matchedRules = [];
68
+ for (const rule of rules) {
69
+ const matches = await this.doesScheduledMaintenanceMatchRule(scheduledMaintenance, rule);
70
+ if (!matches) {
71
+ continue;
72
+ }
73
+ matchedRules.push(rule);
74
+ for (const label of rule.labelsToAdd || []) {
75
+ if (label.id) {
76
+ labelIdsToAdd.add(label.id.toString());
77
+ }
78
+ }
79
+ if (rule.inheritLabelsFromMonitors) {
80
+ inheritFromMonitors = true;
81
+ }
82
+ }
83
+ if (inheritFromMonitors && ((_a = scheduledMaintenance.monitors) === null || _a === void 0 ? void 0 : _a.length)) {
84
+ for (const eventMonitor of scheduledMaintenance.monitors) {
85
+ if (!eventMonitor.id) {
86
+ continue;
87
+ }
88
+ const monitor = await MonitorService.findOneById({
89
+ id: eventMonitor.id,
90
+ select: { labels: { _id: true } },
91
+ props: { isRoot: true },
92
+ });
93
+ for (const label of (monitor === null || monitor === void 0 ? void 0 : monitor.labels) || []) {
94
+ if (label.id) {
95
+ labelIdsToAdd.add(label.id.toString());
96
+ }
97
+ }
98
+ }
99
+ }
100
+ if (labelIdsToAdd.size === 0) {
101
+ return;
102
+ }
103
+ const eventWithLabels = await ScheduledMaintenanceService.findOneById({
104
+ id: scheduledMaintenance.id,
105
+ select: { labels: { _id: true } },
106
+ props: { isRoot: true },
107
+ });
108
+ const existingLabelIds = new Set(((eventWithLabels === null || eventWithLabels === void 0 ? void 0 : eventWithLabels.labels) || [])
109
+ .map((l) => {
110
+ var _a;
111
+ return ((_a = l.id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
112
+ })
113
+ .filter((id) => {
114
+ return id !== "";
115
+ }));
116
+ const newLabelIds = Array.from(labelIdsToAdd).filter((id) => {
117
+ return !existingLabelIds.has(id);
118
+ });
119
+ if (newLabelIds.length === 0) {
120
+ return;
121
+ }
122
+ await ScheduledMaintenanceService.getRepository()
123
+ .createQueryBuilder()
124
+ .relation(ScheduledMaintenance, "labels")
125
+ .of(scheduledMaintenance.id.toString())
126
+ .add(newLabelIds);
127
+ /*
128
+ * Sync in-memory event.labels with the now-persisted set so any
129
+ * downstream consumers in the same onCreateSuccess chain see the new
130
+ * labels.
131
+ */
132
+ const mergedLabelIds = new Set([
133
+ ...existingLabelIds,
134
+ ...newLabelIds,
135
+ ]);
136
+ scheduledMaintenance.labels = Array.from(mergedLabelIds).map((id) => {
137
+ const label = new Label();
138
+ label.id = new ObjectID(id);
139
+ return label;
140
+ });
141
+ logger.debug(`ScheduledMaintenanceLabelRuleEngine attached ${newLabelIds.length} labels to event ${scheduledMaintenance.id}`, {
142
+ projectId: scheduledMaintenance.projectId.toString(),
143
+ });
144
+ await this.createRuleExecutedFeedItem({
145
+ scheduledMaintenance,
146
+ matchedRules,
147
+ addedLabelIds: newLabelIds,
148
+ });
149
+ }
150
+ catch (error) {
151
+ logger.error(`Error applying scheduled maintenance label rules: ${error}`, {
152
+ projectId: (_b = scheduledMaintenance.projectId) === null || _b === void 0 ? void 0 : _b.toString(),
153
+ scheduledMaintenanceId: (_c = scheduledMaintenance.id) === null || _c === void 0 ? void 0 : _c.toString(),
154
+ });
155
+ }
156
+ }
157
+ async createRuleExecutedFeedItem(data) {
158
+ var _a, _b;
159
+ const { scheduledMaintenance, matchedRules, addedLabelIds } = data;
160
+ if (!scheduledMaintenance.id ||
161
+ !scheduledMaintenance.projectId ||
162
+ matchedRules.length === 0 ||
163
+ addedLabelIds.length === 0) {
164
+ return;
165
+ }
166
+ try {
167
+ const labelObjectIds = addedLabelIds.map((id) => {
168
+ return new ObjectID(id);
169
+ });
170
+ const labels = await LabelService.findBy({
171
+ query: {
172
+ _id: QueryHelper.any(labelObjectIds),
173
+ },
174
+ select: { name: true },
175
+ props: { isRoot: true },
176
+ limit: LIMIT_MAX,
177
+ skip: 0,
178
+ });
179
+ const labelNames = labels
180
+ .map((l) => {
181
+ var _a;
182
+ return ((_a = l.name) === null || _a === void 0 ? void 0 : _a.toString()) || "";
183
+ })
184
+ .filter((n) => {
185
+ return n !== "";
186
+ });
187
+ const ruleNames = matchedRules
188
+ .map((r) => {
189
+ var _a;
190
+ return ((_a = r.name) === null || _a === void 0 ? void 0 : _a.toString()) || "Unnamed Rule";
191
+ })
192
+ .filter((n) => {
193
+ return n !== "";
194
+ });
195
+ const rulesPart = ruleNames.length === 1
196
+ ? `**${ruleNames[0]}**`
197
+ : ruleNames
198
+ .map((n) => {
199
+ return `**${n}**`;
200
+ })
201
+ .join(", ");
202
+ const labelsPart = labelNames.length > 0
203
+ ? labelNames
204
+ .map((n) => {
205
+ return `\n- ${n}`;
206
+ })
207
+ .join("")
208
+ : "\n- (no named labels)";
209
+ const feedInfoInMarkdown = `🏷️ **Scheduled Maintenance Label Rule${matchedRules.length > 1 ? "s" : ""} executed:** ${rulesPart}\n\nAdded the following label${labelNames.length === 1 ? "" : "s"} to the event:${labelsPart}`;
210
+ await ScheduledMaintenanceFeedService.createScheduledMaintenanceFeedItem({
211
+ scheduledMaintenanceId: scheduledMaintenance.id,
212
+ projectId: scheduledMaintenance.projectId,
213
+ scheduledMaintenanceFeedEventType: ScheduledMaintenanceFeedEventType.LabelRuleExecuted,
214
+ displayColor: Indigo500,
215
+ feedInfoInMarkdown,
216
+ });
217
+ }
218
+ catch (error) {
219
+ logger.error(`ScheduledMaintenanceLabelRuleEngine: failed to create rule-executed feed item: ${error instanceof Error ? error.message : String(error)}`, {
220
+ projectId: (_a = scheduledMaintenance.projectId) === null || _a === void 0 ? void 0 : _a.toString(),
221
+ scheduledMaintenanceId: (_b = scheduledMaintenance.id) === null || _b === void 0 ? void 0 : _b.toString(),
222
+ });
223
+ }
224
+ }
225
+ async doesScheduledMaintenanceMatchRule(scheduledMaintenance, rule) {
226
+ if (rule.monitors && rule.monitors.length > 0) {
227
+ if (!scheduledMaintenance.monitors ||
228
+ scheduledMaintenance.monitors.length === 0) {
229
+ return false;
230
+ }
231
+ const ruleMonitorIds = rule.monitors.map((m) => {
232
+ var _a;
233
+ return ((_a = m.id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
234
+ });
235
+ const eventMonitorIds = scheduledMaintenance.monitors.map((m) => {
236
+ var _a;
237
+ return ((_a = m.id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
238
+ });
239
+ if (!ruleMonitorIds.some((id) => {
240
+ return eventMonitorIds.includes(id);
241
+ })) {
242
+ return false;
243
+ }
244
+ }
245
+ if (rule.scheduledMaintenanceLabels &&
246
+ rule.scheduledMaintenanceLabels.length > 0) {
247
+ if (!scheduledMaintenance.labels ||
248
+ scheduledMaintenance.labels.length === 0) {
249
+ return false;
250
+ }
251
+ const ruleLabelIds = rule.scheduledMaintenanceLabels.map((l) => {
252
+ var _a;
253
+ return ((_a = l.id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
254
+ });
255
+ const eventLabelIds = scheduledMaintenance.labels.map((l) => {
256
+ var _a;
257
+ return ((_a = l.id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
258
+ });
259
+ if (!ruleLabelIds.some((id) => {
260
+ return eventLabelIds.includes(id);
261
+ })) {
262
+ return false;
263
+ }
264
+ }
265
+ const hasMonitorCriteria = Boolean((rule.monitorLabels && rule.monitorLabels.length > 0) ||
266
+ rule.monitorNamePattern ||
267
+ rule.monitorDescriptionPattern);
268
+ if (hasMonitorCriteria) {
269
+ if (!scheduledMaintenance.monitors ||
270
+ scheduledMaintenance.monitors.length === 0) {
271
+ return false;
272
+ }
273
+ let anyMonitorMatches = false;
274
+ for (const eventMonitor of scheduledMaintenance.monitors) {
275
+ if (!eventMonitor.id) {
276
+ continue;
277
+ }
278
+ const monitor = await MonitorService.findOneById({
279
+ id: eventMonitor.id,
280
+ select: {
281
+ name: true,
282
+ description: true,
283
+ labels: { _id: true },
284
+ },
285
+ props: { isRoot: true },
286
+ });
287
+ if (!monitor) {
288
+ continue;
289
+ }
290
+ let monitorMatches = true;
291
+ if (rule.monitorLabels && rule.monitorLabels.length > 0) {
292
+ if (!monitor.labels || monitor.labels.length === 0) {
293
+ monitorMatches = false;
294
+ }
295
+ else {
296
+ const ruleMonitorLabelIds = rule.monitorLabels.map((l) => {
297
+ var _a;
298
+ return ((_a = l.id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
299
+ });
300
+ const monitorLabelIds = monitor.labels.map((l) => {
301
+ var _a;
302
+ return ((_a = l.id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
303
+ });
304
+ if (!ruleMonitorLabelIds.some((id) => {
305
+ return monitorLabelIds.includes(id);
306
+ })) {
307
+ monitorMatches = false;
308
+ }
309
+ }
310
+ }
311
+ if (monitorMatches &&
312
+ rule.monitorNamePattern &&
313
+ (!monitor.name ||
314
+ !this.testRegex(rule.monitorNamePattern, monitor.name, rule))) {
315
+ monitorMatches = false;
316
+ }
317
+ if (monitorMatches &&
318
+ rule.monitorDescriptionPattern &&
319
+ (!monitor.description ||
320
+ !this.testRegex(rule.monitorDescriptionPattern, monitor.description, rule))) {
321
+ monitorMatches = false;
322
+ }
323
+ if (monitorMatches) {
324
+ anyMonitorMatches = true;
325
+ break;
326
+ }
327
+ }
328
+ if (!anyMonitorMatches) {
329
+ return false;
330
+ }
331
+ }
332
+ if (rule.titlePattern &&
333
+ (!scheduledMaintenance.title ||
334
+ !this.testRegex(rule.titlePattern, scheduledMaintenance.title, rule))) {
335
+ return false;
336
+ }
337
+ if (rule.descriptionPattern &&
338
+ (!scheduledMaintenance.description ||
339
+ !this.testRegex(rule.descriptionPattern, scheduledMaintenance.description, rule))) {
340
+ return false;
341
+ }
342
+ return true;
343
+ }
344
+ testRegex(pattern, value, rule) {
345
+ try {
346
+ const regex = new RegExp(pattern, "i");
347
+ return regex.test(value);
348
+ }
349
+ catch (_a) {
350
+ logger.warn(`Invalid regex in scheduled maintenance label rule ${rule.id}: ${pattern}`);
351
+ return false;
352
+ }
353
+ }
354
+ }
355
+ __decorate([
356
+ CaptureSpan(),
357
+ __metadata("design:type", Function),
358
+ __metadata("design:paramtypes", [ScheduledMaintenance]),
359
+ __metadata("design:returntype", Promise)
360
+ ], ScheduledMaintenanceLabelRuleEngineServiceClass.prototype, "applyRulesToScheduledMaintenance", null);
361
+ __decorate([
362
+ CaptureSpan(),
363
+ __metadata("design:type", Function),
364
+ __metadata("design:paramtypes", [Object]),
365
+ __metadata("design:returntype", Promise)
366
+ ], ScheduledMaintenanceLabelRuleEngineServiceClass.prototype, "createRuleExecutedFeedItem", null);
367
+ __decorate([
368
+ CaptureSpan(),
369
+ __metadata("design:type", Function),
370
+ __metadata("design:paramtypes", [ScheduledMaintenance,
371
+ ScheduledMaintenanceLabelRule]),
372
+ __metadata("design:returntype", Promise)
373
+ ], ScheduledMaintenanceLabelRuleEngineServiceClass.prototype, "doesScheduledMaintenanceMatchRule", null);
374
+ export default new ScheduledMaintenanceLabelRuleEngineServiceClass();
375
+ //# sourceMappingURL=ScheduledMaintenanceLabelRuleEngineService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScheduledMaintenanceLabelRuleEngineService.js","sourceRoot":"","sources":["../../../../Server/Services/ScheduledMaintenanceLabelRuleEngineService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import DatabaseService from "./DatabaseService";
2
+ import Model from "../../Models/DatabaseModels/ScheduledMaintenanceLabelRule";
3
+ import { IsBillingEnabled } from "../EnvironmentConfig";
4
+ export class Service extends DatabaseService {
5
+ constructor() {
6
+ super(Model);
7
+ if (IsBillingEnabled) {
8
+ this.hardDeleteItemsOlderThanInDays("createdAt", 3 * 365);
9
+ }
10
+ }
11
+ }
12
+ export default new Service();
13
+ //# sourceMappingURL=ScheduledMaintenanceLabelRuleService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScheduledMaintenanceLabelRuleService.js","sourceRoot":"","sources":["../../../../Server/Services/ScheduledMaintenanceLabelRuleService.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,2DAA2D,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF;AAED,eAAe,IAAI,OAAO,EAAE,CAAC"}