@oneuptime/common 12.0.2 → 12.0.3

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 (228) hide show
  1. package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +14 -0
  2. package/Models/DatabaseModels/Index.ts +2 -0
  3. package/Models/DatabaseModels/LogDropFilter.ts +9 -20
  4. package/Models/DatabaseModels/StatusPageMonitorRule.ts +911 -0
  5. package/Models/DatabaseModels/StatusPageResource.ts +73 -0
  6. package/Models/DatabaseModels/TraceDropFilter.ts +9 -20
  7. package/Server/API/BaseAPI.ts +13 -2
  8. package/Server/API/DashboardAPI.ts +39 -0
  9. package/Server/EnvironmentConfig.ts +31 -1
  10. package/Server/Infrastructure/GlobalCache.ts +115 -0
  11. package/Server/Infrastructure/Postgres/DataSourceOptions.ts +16 -0
  12. package/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.ts +123 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  14. package/Server/Services/AlertStateTimelineService.ts +20 -0
  15. package/Server/Services/CephClusterService.ts +26 -86
  16. package/Server/Services/CloudResourceService.ts +23 -83
  17. package/Server/Services/DatabaseService.ts +111 -0
  18. package/Server/Services/DockerHostService.ts +19 -79
  19. package/Server/Services/DockerSwarmClusterService.ts +27 -88
  20. package/Server/Services/HostService.ts +46 -99
  21. package/Server/Services/IncidentStateTimelineService.ts +20 -0
  22. package/Server/Services/Index.ts +2 -0
  23. package/Server/Services/IoTFleetService.ts +19 -79
  24. package/Server/Services/KubernetesClusterService.ts +17 -78
  25. package/Server/Services/LabelService.ts +57 -10
  26. package/Server/Services/MetricTypeService.ts +84 -0
  27. package/Server/Services/MonitorService.ts +89 -14
  28. package/Server/Services/MonitorStatusTimelineService.ts +29 -0
  29. package/Server/Services/MonitorTemplateService.ts +65 -0
  30. package/Server/Services/PodmanHostService.ts +19 -79
  31. package/Server/Services/ProxmoxClusterService.ts +23 -83
  32. package/Server/Services/RumApplicationService.ts +19 -80
  33. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +21 -0
  34. package/Server/Services/ServerlessFunctionService.ts +24 -85
  35. package/Server/Services/ServiceService.ts +299 -73
  36. package/Server/Services/StatusPageMonitorRuleEngineService.ts +752 -0
  37. package/Server/Services/StatusPageMonitorRuleService.ts +471 -0
  38. package/Server/Services/TelemetryEntityRelationshipService.ts +1 -0
  39. package/Server/Services/TelemetryEntityService.ts +1 -0
  40. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +170 -39
  41. package/Server/Utils/Monitor/MonitorResource.ts +63 -36
  42. package/Server/Utils/Monitor/MonitorStatusTimeline.ts +36 -0
  43. package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +148 -127
  44. package/Server/Utils/Monitor/MonitorStepsReferenceExtractor.ts +434 -0
  45. package/Server/Utils/SingleFlight.ts +83 -0
  46. package/Server/Utils/StatusPage/MonitorRulePatternValidator.ts +46 -0
  47. package/Server/Utils/Telemetry/EntityRegistry.ts +107 -26
  48. package/Server/Utils/Telemetry/ResourceHeartbeat.ts +314 -0
  49. package/Server/Utils/Telemetry/Telemetry.ts +351 -122
  50. package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
  51. package/Tests/Models/DatabaseModels/ColumnTransformerInvariants.test.ts +306 -0
  52. package/Tests/Models/DatabaseModels/NumberColumnDeserialization.test.ts +333 -0
  53. package/Tests/Models/DatabaseModels/StatusPageMonitorRuleModel.test.ts +190 -0
  54. package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +26 -0
  55. package/Tests/Server/Infrastructure/GlobalCache.test.ts +226 -0
  56. package/Tests/Server/Infrastructure/PostgresLockTimeoutOptions.test.ts +181 -0
  57. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlocked.test.ts +342 -0
  58. package/Tests/Server/Services/DropFilterSaveValidation.test.ts +245 -0
  59. package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +163 -15
  60. package/Tests/Server/Services/MetricTypeAttachServices.test.ts +222 -0
  61. package/Tests/Server/Services/MissingReferenceWriteGuard.test.ts +614 -0
  62. package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +23 -0
  63. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +305 -56
  64. package/Tests/Server/Services/ServiceUpdateLastSeenSplitGates.test.ts +705 -0
  65. package/Tests/Server/Services/StatusPageMonitorRuleEngineService.test.ts +1719 -0
  66. package/Tests/Server/Services/StatusPageMonitorRuleHooks.test.ts +1212 -0
  67. package/Tests/Server/Services/StatusPageMonitorRuleMonitorCreateHook.test.ts +228 -0
  68. package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +267 -0
  69. package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +260 -13
  70. package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +302 -0
  71. package/Tests/Server/Utils/MetricTypeIndexConvergence.test.ts +598 -0
  72. package/Tests/Server/Utils/Monitor/MonitorStatusTimelineUnusableStatus.test.ts +154 -0
  73. package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +638 -92
  74. package/Tests/Server/Utils/Monitor/MonitorStepsReferenceExtractor.test.ts +724 -0
  75. package/Tests/Server/Utils/SingleFlight.test.ts +221 -0
  76. package/Tests/Types/Dashboard/NetworkDashboardTemplate.test.ts +793 -0
  77. package/Tests/Types/Database/BigIntColumnTransformer.test.ts +147 -0
  78. package/Tests/Types/Database/DatabasePropertyTransformer.test.ts +140 -0
  79. package/Tests/Types/Database/NumericColumnValue.test.ts +127 -0
  80. package/Tests/Types/Decimal.test.ts +37 -0
  81. package/Tests/Types/Monitor/SnmpVersionParsing.test.ts +152 -0
  82. package/Tests/Types/Port.test.ts +38 -0
  83. package/Tests/UI/Components/LogsHistogram.test.tsx +276 -0
  84. package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +489 -0
  85. package/Tests/UI/Components/UseLogsHistogram.test.tsx +500 -0
  86. package/Tests/Utils/Dashboard/Components/DashboardComponentsUtil.test.ts +120 -0
  87. package/Tests/Utils/Dashboard/DashboardNetworkMapComponent.test.ts +327 -0
  88. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  89. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  90. package/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts +40 -0
  91. package/Types/Dashboard/DashboardTemplates.ts +397 -0
  92. package/Types/Database/BigIntColumnTransformer.ts +74 -0
  93. package/Types/Database/DatabaseProperty.ts +26 -0
  94. package/Types/Database/NumericColumnValue.ts +128 -0
  95. package/Types/Decimal.ts +16 -4
  96. package/Types/Permission.ts +48 -0
  97. package/Types/Port.ts +16 -4
  98. package/UI/Components/LogsViewer/useLiveLogsRefresh.ts +86 -0
  99. package/UI/Components/LogsViewer/useLogsHistogram.ts +113 -0
  100. package/Utils/Dashboard/Components/DashboardNetworkMapComponent.ts +136 -0
  101. package/Utils/Dashboard/Components/Index.ts +7 -0
  102. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +12 -0
  103. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  104. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  105. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  106. package/build/dist/Models/DatabaseModels/LogDropFilter.js +9 -20
  107. package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
  108. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js +925 -0
  109. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js.map +1 -0
  110. package/build/dist/Models/DatabaseModels/StatusPageResource.js +72 -0
  111. package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
  112. package/build/dist/Models/DatabaseModels/TraceDropFilter.js +9 -20
  113. package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
  114. package/build/dist/Server/API/BaseAPI.js +11 -1
  115. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  116. package/build/dist/Server/API/DashboardAPI.js +39 -0
  117. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  118. package/build/dist/Server/EnvironmentConfig.js +27 -1
  119. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  120. package/build/dist/Server/Infrastructure/GlobalCache.js +91 -0
  121. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  122. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +5 -3
  123. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
  124. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js +48 -0
  125. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js.map +1 -0
  126. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  127. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  128. package/build/dist/Server/Services/AlertStateTimelineService.js +19 -0
  129. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  130. package/build/dist/Server/Services/CephClusterService.js +26 -76
  131. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  132. package/build/dist/Server/Services/CloudResourceService.js +23 -73
  133. package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
  134. package/build/dist/Server/Services/DatabaseService.js +86 -0
  135. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  136. package/build/dist/Server/Services/DockerHostService.js +19 -69
  137. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  138. package/build/dist/Server/Services/DockerSwarmClusterService.js +27 -78
  139. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  140. package/build/dist/Server/Services/HostService.js +58 -102
  141. package/build/dist/Server/Services/HostService.js.map +1 -1
  142. package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
  143. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  144. package/build/dist/Server/Services/Index.js +2 -0
  145. package/build/dist/Server/Services/Index.js.map +1 -1
  146. package/build/dist/Server/Services/IoTFleetService.js +19 -69
  147. package/build/dist/Server/Services/IoTFleetService.js.map +1 -1
  148. package/build/dist/Server/Services/KubernetesClusterService.js +17 -68
  149. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  150. package/build/dist/Server/Services/LabelService.js +42 -7
  151. package/build/dist/Server/Services/LabelService.js.map +1 -1
  152. package/build/dist/Server/Services/MetricTypeService.js +74 -0
  153. package/build/dist/Server/Services/MetricTypeService.js.map +1 -1
  154. package/build/dist/Server/Services/MonitorService.js +81 -9
  155. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  156. package/build/dist/Server/Services/MonitorStatusTimelineService.js +28 -0
  157. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  158. package/build/dist/Server/Services/MonitorTemplateService.js +60 -0
  159. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  160. package/build/dist/Server/Services/PodmanHostService.js +19 -69
  161. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  162. package/build/dist/Server/Services/ProxmoxClusterService.js +23 -73
  163. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  164. package/build/dist/Server/Services/RumApplicationService.js +19 -70
  165. package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
  166. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +20 -0
  167. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  168. package/build/dist/Server/Services/ServerlessFunctionService.js +24 -75
  169. package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
  170. package/build/dist/Server/Services/ServiceService.js +236 -61
  171. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  172. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +603 -0
  173. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -0
  174. package/build/dist/Server/Services/StatusPageMonitorRuleService.js +401 -0
  175. package/build/dist/Server/Services/StatusPageMonitorRuleService.js.map +1 -0
  176. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +1 -0
  177. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -1
  178. package/build/dist/Server/Services/TelemetryEntityService.js +1 -0
  179. package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -1
  180. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +105 -29
  181. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
  182. package/build/dist/Server/Utils/Monitor/MonitorResource.js +56 -32
  183. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  184. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +30 -3
  185. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
  186. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +110 -98
  187. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -1
  188. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js +312 -0
  189. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js.map +1 -0
  190. package/build/dist/Server/Utils/SingleFlight.js +76 -0
  191. package/build/dist/Server/Utils/SingleFlight.js.map +1 -0
  192. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js +29 -0
  193. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js.map +1 -0
  194. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +78 -19
  195. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  196. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +160 -0
  197. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -0
  198. package/build/dist/Server/Utils/Telemetry/Telemetry.js +279 -104
  199. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  200. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  201. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  202. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  203. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  204. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js +2 -0
  205. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js.map +1 -0
  206. package/build/dist/Types/Dashboard/DashboardTemplates.js +368 -0
  207. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  208. package/build/dist/Types/Database/BigIntColumnTransformer.js +66 -0
  209. package/build/dist/Types/Database/BigIntColumnTransformer.js.map +1 -0
  210. package/build/dist/Types/Database/DatabaseProperty.js +25 -0
  211. package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
  212. package/build/dist/Types/Database/NumericColumnValue.js +97 -0
  213. package/build/dist/Types/Database/NumericColumnValue.js.map +1 -0
  214. package/build/dist/Types/Decimal.js +14 -3
  215. package/build/dist/Types/Decimal.js.map +1 -1
  216. package/build/dist/Types/Permission.js +42 -0
  217. package/build/dist/Types/Permission.js.map +1 -1
  218. package/build/dist/Types/Port.js +15 -5
  219. package/build/dist/Types/Port.js.map +1 -1
  220. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js +44 -0
  221. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js.map +1 -0
  222. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js +75 -0
  223. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js.map +1 -0
  224. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js +114 -0
  225. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js.map +1 -0
  226. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  227. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  228. package/package.json +1 -1
@@ -0,0 +1,925 @@
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 StatusPage from "./StatusPage";
13
+ import StatusPageGroup from "./StatusPageGroup";
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 CanAccessIfCanReadOn from "../../Types/Database/CanAccessIfCanReadOn";
20
+ import ColumnLength from "../../Types/Database/ColumnLength";
21
+ import ColumnType from "../../Types/Database/ColumnType";
22
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
23
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
24
+ import EnableWorkflow from "../../Types/Database/EnableWorkflow";
25
+ import TableColumn from "../../Types/Database/TableColumn";
26
+ import TableColumnType from "../../Types/Database/TableColumnType";
27
+ import TableMetadata from "../../Types/Database/TableMetadata";
28
+ import TenantColumn from "../../Types/Database/TenantColumn";
29
+ import IconProp from "../../Types/Icon/IconProp";
30
+ import ObjectID from "../../Types/ObjectID";
31
+ import Permission from "../../Types/Permission";
32
+ import UptimePrecision from "../../Types/StatusPage/UptimePrecision";
33
+ import { Column, Entity, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, } from "typeorm";
34
+ let StatusPageMonitorRule = class StatusPageMonitorRule extends BaseModel {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.project = undefined;
38
+ this.projectId = undefined;
39
+ this.statusPage = undefined;
40
+ this.statusPageId = undefined;
41
+ this.name = undefined;
42
+ this.description = undefined;
43
+ this.isEnabled = undefined;
44
+ // Match Criteria
45
+ this.monitorLabels = undefined;
46
+ this.monitorNamePattern = undefined;
47
+ this.monitorDescriptionPattern = undefined;
48
+ // Action: where matched monitors land, and how they are rendered.
49
+ this.statusPageGroup = undefined;
50
+ this.statusPageGroupId = undefined;
51
+ this.showCurrentStatus = undefined;
52
+ this.showUptimePercent = undefined;
53
+ this.uptimePercentPrecision = undefined;
54
+ this.showStatusHistoryChart = undefined;
55
+ this.createdByUser = undefined;
56
+ this.createdByUserId = undefined;
57
+ this.deletedByUser = undefined;
58
+ this.deletedByUserId = undefined;
59
+ }
60
+ };
61
+ __decorate([
62
+ ColumnAccessControl({
63
+ create: [
64
+ Permission.ProjectOwner,
65
+ Permission.ProjectAdmin,
66
+ Permission.ProjectMember,
67
+ Permission.StatusPageAdmin,
68
+ Permission.StatusPageMember,
69
+ Permission.CreateStatusPageMonitorRule,
70
+ ],
71
+ read: [
72
+ Permission.ProjectOwner,
73
+ Permission.ProjectAdmin,
74
+ Permission.ProjectMember,
75
+ Permission.Viewer,
76
+ Permission.StatusPageAdmin,
77
+ Permission.StatusPageMember,
78
+ Permission.StatusPageViewer,
79
+ Permission.ReadStatusPageMonitorRule,
80
+ ],
81
+ update: [],
82
+ }),
83
+ TableColumn({
84
+ manyToOneRelationColumn: "projectId",
85
+ type: TableColumnType.Entity,
86
+ modelType: Project,
87
+ title: "Project",
88
+ description: "Relation to Project Resource in which this object belongs",
89
+ }),
90
+ ManyToOne(() => {
91
+ return Project;
92
+ }, {
93
+ eager: false,
94
+ nullable: true,
95
+ onDelete: "CASCADE",
96
+ orphanedRowAction: "nullify",
97
+ }),
98
+ JoinColumn({ name: "projectId" }),
99
+ __metadata("design:type", Project)
100
+ ], StatusPageMonitorRule.prototype, "project", void 0);
101
+ __decorate([
102
+ ColumnAccessControl({
103
+ create: [
104
+ Permission.ProjectOwner,
105
+ Permission.ProjectAdmin,
106
+ Permission.ProjectMember,
107
+ Permission.StatusPageAdmin,
108
+ Permission.StatusPageMember,
109
+ Permission.CreateStatusPageMonitorRule,
110
+ ],
111
+ read: [
112
+ Permission.ProjectOwner,
113
+ Permission.ProjectAdmin,
114
+ Permission.ProjectMember,
115
+ Permission.Viewer,
116
+ Permission.StatusPageAdmin,
117
+ Permission.StatusPageMember,
118
+ Permission.StatusPageViewer,
119
+ Permission.ReadStatusPageMonitorRule,
120
+ ],
121
+ update: [],
122
+ }),
123
+ Index(),
124
+ TableColumn({
125
+ type: TableColumnType.ObjectID,
126
+ required: true,
127
+ canReadOnRelationQuery: true,
128
+ title: "Project ID",
129
+ description: "ID of your OneUptime Project in which this object belongs",
130
+ }),
131
+ Column({
132
+ type: ColumnType.ObjectID,
133
+ nullable: false,
134
+ transformer: ObjectID.getDatabaseTransformer(),
135
+ }),
136
+ __metadata("design:type", ObjectID)
137
+ ], StatusPageMonitorRule.prototype, "projectId", void 0);
138
+ __decorate([
139
+ ColumnAccessControl({
140
+ create: [
141
+ Permission.ProjectOwner,
142
+ Permission.ProjectAdmin,
143
+ Permission.ProjectMember,
144
+ Permission.StatusPageAdmin,
145
+ Permission.StatusPageMember,
146
+ Permission.CreateStatusPageMonitorRule,
147
+ ],
148
+ read: [
149
+ Permission.ProjectOwner,
150
+ Permission.ProjectAdmin,
151
+ Permission.ProjectMember,
152
+ Permission.Viewer,
153
+ Permission.StatusPageAdmin,
154
+ Permission.StatusPageMember,
155
+ Permission.StatusPageViewer,
156
+ Permission.ReadStatusPageMonitorRule,
157
+ ],
158
+ update: [],
159
+ }),
160
+ TableColumn({
161
+ manyToOneRelationColumn: "statusPageId",
162
+ type: TableColumnType.Entity,
163
+ modelType: StatusPage,
164
+ title: "Status Page",
165
+ description: "Status page this rule adds matching monitors to",
166
+ }),
167
+ ManyToOne(() => {
168
+ return StatusPage;
169
+ }, {
170
+ eager: false,
171
+ nullable: true,
172
+ onDelete: "CASCADE",
173
+ orphanedRowAction: "nullify",
174
+ }),
175
+ JoinColumn({ name: "statusPageId" }),
176
+ __metadata("design:type", StatusPage)
177
+ ], StatusPageMonitorRule.prototype, "statusPage", void 0);
178
+ __decorate([
179
+ ColumnAccessControl({
180
+ create: [
181
+ Permission.ProjectOwner,
182
+ Permission.ProjectAdmin,
183
+ Permission.ProjectMember,
184
+ Permission.StatusPageAdmin,
185
+ Permission.StatusPageMember,
186
+ Permission.CreateStatusPageMonitorRule,
187
+ ],
188
+ read: [
189
+ Permission.ProjectOwner,
190
+ Permission.ProjectAdmin,
191
+ Permission.ProjectMember,
192
+ Permission.Viewer,
193
+ Permission.StatusPageAdmin,
194
+ Permission.StatusPageMember,
195
+ Permission.StatusPageViewer,
196
+ Permission.ReadStatusPageMonitorRule,
197
+ ],
198
+ update: [],
199
+ }),
200
+ Index(),
201
+ TableColumn({
202
+ type: TableColumnType.ObjectID,
203
+ required: true,
204
+ canReadOnRelationQuery: true,
205
+ title: "Status Page ID",
206
+ description: "ID of the status page this rule adds matching monitors to",
207
+ example: "a1b2c3d4-e5f6-4789-abcd-ef0123456789",
208
+ }),
209
+ Column({
210
+ type: ColumnType.ObjectID,
211
+ nullable: false,
212
+ transformer: ObjectID.getDatabaseTransformer(),
213
+ }),
214
+ __metadata("design:type", ObjectID)
215
+ ], StatusPageMonitorRule.prototype, "statusPageId", void 0);
216
+ __decorate([
217
+ ColumnAccessControl({
218
+ create: [
219
+ Permission.ProjectOwner,
220
+ Permission.ProjectAdmin,
221
+ Permission.ProjectMember,
222
+ Permission.StatusPageAdmin,
223
+ Permission.StatusPageMember,
224
+ Permission.CreateStatusPageMonitorRule,
225
+ ],
226
+ read: [
227
+ Permission.ProjectOwner,
228
+ Permission.ProjectAdmin,
229
+ Permission.ProjectMember,
230
+ Permission.Viewer,
231
+ Permission.StatusPageAdmin,
232
+ Permission.StatusPageMember,
233
+ Permission.StatusPageViewer,
234
+ Permission.ReadStatusPageMonitorRule,
235
+ ],
236
+ update: [
237
+ Permission.ProjectOwner,
238
+ Permission.ProjectAdmin,
239
+ Permission.ProjectMember,
240
+ Permission.StatusPageAdmin,
241
+ Permission.StatusPageMember,
242
+ Permission.EditStatusPageMonitorRule,
243
+ ],
244
+ }),
245
+ Index(),
246
+ TableColumn({
247
+ required: true,
248
+ type: TableColumnType.ShortText,
249
+ canReadOnRelationQuery: true,
250
+ title: "Name",
251
+ description: "Name of this status page monitor rule",
252
+ }),
253
+ Column({
254
+ nullable: false,
255
+ type: ColumnType.ShortText,
256
+ length: ColumnLength.ShortText,
257
+ }),
258
+ __metadata("design:type", String)
259
+ ], StatusPageMonitorRule.prototype, "name", void 0);
260
+ __decorate([
261
+ ColumnAccessControl({
262
+ create: [
263
+ Permission.ProjectOwner,
264
+ Permission.ProjectAdmin,
265
+ Permission.ProjectMember,
266
+ Permission.StatusPageAdmin,
267
+ Permission.StatusPageMember,
268
+ Permission.CreateStatusPageMonitorRule,
269
+ ],
270
+ read: [
271
+ Permission.ProjectOwner,
272
+ Permission.ProjectAdmin,
273
+ Permission.ProjectMember,
274
+ Permission.Viewer,
275
+ Permission.StatusPageAdmin,
276
+ Permission.StatusPageMember,
277
+ Permission.StatusPageViewer,
278
+ Permission.ReadStatusPageMonitorRule,
279
+ ],
280
+ update: [
281
+ Permission.ProjectOwner,
282
+ Permission.ProjectAdmin,
283
+ Permission.ProjectMember,
284
+ Permission.StatusPageAdmin,
285
+ Permission.StatusPageMember,
286
+ Permission.EditStatusPageMonitorRule,
287
+ ],
288
+ }),
289
+ TableColumn({
290
+ required: false,
291
+ type: TableColumnType.LongText,
292
+ title: "Description",
293
+ description: "Description of this status page monitor rule",
294
+ }),
295
+ Column({
296
+ nullable: true,
297
+ type: ColumnType.LongText,
298
+ length: ColumnLength.LongText,
299
+ }),
300
+ __metadata("design:type", String)
301
+ ], StatusPageMonitorRule.prototype, "description", void 0);
302
+ __decorate([
303
+ ColumnAccessControl({
304
+ create: [
305
+ Permission.ProjectOwner,
306
+ Permission.ProjectAdmin,
307
+ Permission.ProjectMember,
308
+ Permission.StatusPageAdmin,
309
+ Permission.StatusPageMember,
310
+ Permission.CreateStatusPageMonitorRule,
311
+ ],
312
+ read: [
313
+ Permission.ProjectOwner,
314
+ Permission.ProjectAdmin,
315
+ Permission.ProjectMember,
316
+ Permission.Viewer,
317
+ Permission.StatusPageAdmin,
318
+ Permission.StatusPageMember,
319
+ Permission.StatusPageViewer,
320
+ Permission.ReadStatusPageMonitorRule,
321
+ ],
322
+ update: [
323
+ Permission.ProjectOwner,
324
+ Permission.ProjectAdmin,
325
+ Permission.ProjectMember,
326
+ Permission.StatusPageAdmin,
327
+ Permission.StatusPageMember,
328
+ Permission.EditStatusPageMonitorRule,
329
+ ],
330
+ }),
331
+ Index(),
332
+ TableColumn({
333
+ required: true,
334
+ type: TableColumnType.Boolean,
335
+ title: "Is Enabled",
336
+ description: "Whether this rule is enabled. A disabled rule removes the monitors it had added.",
337
+ defaultValue: true,
338
+ isDefaultValueColumn: true,
339
+ }),
340
+ Column({
341
+ type: ColumnType.Boolean,
342
+ nullable: false,
343
+ default: true,
344
+ }),
345
+ __metadata("design:type", Boolean)
346
+ ], StatusPageMonitorRule.prototype, "isEnabled", void 0);
347
+ __decorate([
348
+ ColumnAccessControl({
349
+ create: [
350
+ Permission.ProjectOwner,
351
+ Permission.ProjectAdmin,
352
+ Permission.ProjectMember,
353
+ Permission.StatusPageAdmin,
354
+ Permission.StatusPageMember,
355
+ Permission.CreateStatusPageMonitorRule,
356
+ ],
357
+ read: [
358
+ Permission.ProjectOwner,
359
+ Permission.ProjectAdmin,
360
+ Permission.ProjectMember,
361
+ Permission.Viewer,
362
+ Permission.StatusPageAdmin,
363
+ Permission.StatusPageMember,
364
+ Permission.StatusPageViewer,
365
+ Permission.ReadStatusPageMonitorRule,
366
+ ],
367
+ update: [
368
+ Permission.ProjectOwner,
369
+ Permission.ProjectAdmin,
370
+ Permission.ProjectMember,
371
+ Permission.StatusPageAdmin,
372
+ Permission.StatusPageMember,
373
+ Permission.EditStatusPageMonitorRule,
374
+ ],
375
+ }),
376
+ TableColumn({
377
+ required: false,
378
+ type: TableColumnType.EntityArray,
379
+ modelType: Label,
380
+ title: "Monitor Labels",
381
+ description: "Only match monitors that carry at least one of these labels. Leave empty to skip the label filter.",
382
+ }),
383
+ ManyToMany(() => {
384
+ return Label;
385
+ }, { eager: false }),
386
+ JoinTable({
387
+ name: "StatusPageMonitorRuleMonitorLabel",
388
+ inverseJoinColumn: {
389
+ name: "labelId",
390
+ referencedColumnName: "_id",
391
+ },
392
+ joinColumn: {
393
+ name: "statusPageMonitorRuleId",
394
+ referencedColumnName: "_id",
395
+ },
396
+ }),
397
+ __metadata("design:type", Array)
398
+ ], StatusPageMonitorRule.prototype, "monitorLabels", void 0);
399
+ __decorate([
400
+ ColumnAccessControl({
401
+ create: [
402
+ Permission.ProjectOwner,
403
+ Permission.ProjectAdmin,
404
+ Permission.ProjectMember,
405
+ Permission.StatusPageAdmin,
406
+ Permission.StatusPageMember,
407
+ Permission.CreateStatusPageMonitorRule,
408
+ ],
409
+ read: [
410
+ Permission.ProjectOwner,
411
+ Permission.ProjectAdmin,
412
+ Permission.ProjectMember,
413
+ Permission.Viewer,
414
+ Permission.StatusPageAdmin,
415
+ Permission.StatusPageMember,
416
+ Permission.StatusPageViewer,
417
+ Permission.ReadStatusPageMonitorRule,
418
+ ],
419
+ update: [
420
+ Permission.ProjectOwner,
421
+ Permission.ProjectAdmin,
422
+ Permission.ProjectMember,
423
+ Permission.StatusPageAdmin,
424
+ Permission.StatusPageMember,
425
+ Permission.EditStatusPageMonitorRule,
426
+ ],
427
+ }),
428
+ TableColumn({
429
+ required: false,
430
+ type: TableColumnType.LongText,
431
+ title: "Monitor Name Pattern",
432
+ description: "Regex (case-insensitive) matched against the monitor name. Leave empty to skip the name filter. Use .* to match every monitor.",
433
+ }),
434
+ Column({
435
+ type: ColumnType.LongText,
436
+ nullable: true,
437
+ length: ColumnLength.LongText,
438
+ }),
439
+ __metadata("design:type", String)
440
+ ], StatusPageMonitorRule.prototype, "monitorNamePattern", void 0);
441
+ __decorate([
442
+ ColumnAccessControl({
443
+ create: [
444
+ Permission.ProjectOwner,
445
+ Permission.ProjectAdmin,
446
+ Permission.ProjectMember,
447
+ Permission.StatusPageAdmin,
448
+ Permission.StatusPageMember,
449
+ Permission.CreateStatusPageMonitorRule,
450
+ ],
451
+ read: [
452
+ Permission.ProjectOwner,
453
+ Permission.ProjectAdmin,
454
+ Permission.ProjectMember,
455
+ Permission.Viewer,
456
+ Permission.StatusPageAdmin,
457
+ Permission.StatusPageMember,
458
+ Permission.StatusPageViewer,
459
+ Permission.ReadStatusPageMonitorRule,
460
+ ],
461
+ update: [
462
+ Permission.ProjectOwner,
463
+ Permission.ProjectAdmin,
464
+ Permission.ProjectMember,
465
+ Permission.StatusPageAdmin,
466
+ Permission.StatusPageMember,
467
+ Permission.EditStatusPageMonitorRule,
468
+ ],
469
+ }),
470
+ TableColumn({
471
+ required: false,
472
+ type: TableColumnType.LongText,
473
+ title: "Monitor Description Pattern",
474
+ description: "Regex (case-insensitive) matched against the monitor description. Leave empty to skip the description filter.",
475
+ }),
476
+ Column({
477
+ type: ColumnType.LongText,
478
+ nullable: true,
479
+ length: ColumnLength.LongText,
480
+ }),
481
+ __metadata("design:type", String)
482
+ ], StatusPageMonitorRule.prototype, "monitorDescriptionPattern", void 0);
483
+ __decorate([
484
+ ColumnAccessControl({
485
+ create: [
486
+ Permission.ProjectOwner,
487
+ Permission.ProjectAdmin,
488
+ Permission.ProjectMember,
489
+ Permission.StatusPageAdmin,
490
+ Permission.StatusPageMember,
491
+ Permission.CreateStatusPageMonitorRule,
492
+ ],
493
+ read: [
494
+ Permission.ProjectOwner,
495
+ Permission.ProjectAdmin,
496
+ Permission.ProjectMember,
497
+ Permission.Viewer,
498
+ Permission.StatusPageAdmin,
499
+ Permission.StatusPageMember,
500
+ Permission.StatusPageViewer,
501
+ Permission.ReadStatusPageMonitorRule,
502
+ ],
503
+ update: [
504
+ Permission.ProjectOwner,
505
+ Permission.ProjectAdmin,
506
+ Permission.ProjectMember,
507
+ Permission.StatusPageAdmin,
508
+ Permission.StatusPageMember,
509
+ Permission.EditStatusPageMonitorRule,
510
+ ],
511
+ }),
512
+ TableColumn({
513
+ manyToOneRelationColumn: "statusPageGroupId",
514
+ type: TableColumnType.Entity,
515
+ modelType: StatusPageGroup,
516
+ title: "Status Page Group",
517
+ description: "Group that matched monitors are added to. Leave empty to add them ungrouped.",
518
+ })
519
+ /*
520
+ * CASCADE, matching StatusPageResource.statusPageGroup: deleting a group
521
+ * takes the rules that target it with it. SET NULL would leave the rule
522
+ * alive and pointing nowhere, and its next run would re-publish the same
523
+ * monitors as UNGROUPED on a public page - a louder failure than losing a
524
+ * rule whose destination the user just deleted. The Groups page says so.
525
+ */
526
+ ,
527
+ ManyToOne(() => {
528
+ return StatusPageGroup;
529
+ }, {
530
+ eager: false,
531
+ nullable: true,
532
+ onDelete: "CASCADE",
533
+ orphanedRowAction: "nullify",
534
+ }),
535
+ JoinColumn({ name: "statusPageGroupId" }),
536
+ __metadata("design:type", StatusPageGroup)
537
+ ], StatusPageMonitorRule.prototype, "statusPageGroup", void 0);
538
+ __decorate([
539
+ ColumnAccessControl({
540
+ create: [
541
+ Permission.ProjectOwner,
542
+ Permission.ProjectAdmin,
543
+ Permission.ProjectMember,
544
+ Permission.StatusPageAdmin,
545
+ Permission.StatusPageMember,
546
+ Permission.CreateStatusPageMonitorRule,
547
+ ],
548
+ read: [
549
+ Permission.ProjectOwner,
550
+ Permission.ProjectAdmin,
551
+ Permission.ProjectMember,
552
+ Permission.Viewer,
553
+ Permission.StatusPageAdmin,
554
+ Permission.StatusPageMember,
555
+ Permission.StatusPageViewer,
556
+ Permission.ReadStatusPageMonitorRule,
557
+ ],
558
+ update: [
559
+ Permission.ProjectOwner,
560
+ Permission.ProjectAdmin,
561
+ Permission.ProjectMember,
562
+ Permission.StatusPageAdmin,
563
+ Permission.StatusPageMember,
564
+ Permission.EditStatusPageMonitorRule,
565
+ ],
566
+ }),
567
+ Index(),
568
+ TableColumn({
569
+ type: TableColumnType.ObjectID,
570
+ required: false,
571
+ title: "Status Page Group ID",
572
+ description: "ID of the group that matched monitors are added to. Empty means ungrouped.",
573
+ example: "c9d0e1f2-a3b4-5678-9abc-def012345678",
574
+ }),
575
+ Column({
576
+ type: ColumnType.ObjectID,
577
+ nullable: true,
578
+ transformer: ObjectID.getDatabaseTransformer(),
579
+ }),
580
+ __metadata("design:type", ObjectID)
581
+ ], StatusPageMonitorRule.prototype, "statusPageGroupId", void 0);
582
+ __decorate([
583
+ ColumnAccessControl({
584
+ create: [
585
+ Permission.ProjectOwner,
586
+ Permission.ProjectAdmin,
587
+ Permission.ProjectMember,
588
+ Permission.StatusPageAdmin,
589
+ Permission.StatusPageMember,
590
+ Permission.CreateStatusPageMonitorRule,
591
+ ],
592
+ read: [
593
+ Permission.ProjectOwner,
594
+ Permission.ProjectAdmin,
595
+ Permission.ProjectMember,
596
+ Permission.Viewer,
597
+ Permission.StatusPageAdmin,
598
+ Permission.StatusPageMember,
599
+ Permission.StatusPageViewer,
600
+ Permission.ReadStatusPageMonitorRule,
601
+ ],
602
+ update: [
603
+ Permission.ProjectOwner,
604
+ Permission.ProjectAdmin,
605
+ Permission.ProjectMember,
606
+ Permission.StatusPageAdmin,
607
+ Permission.StatusPageMember,
608
+ Permission.EditStatusPageMonitorRule,
609
+ ],
610
+ }),
611
+ TableColumn({
612
+ isDefaultValueColumn: true,
613
+ type: TableColumnType.Boolean,
614
+ title: "Show current status",
615
+ description: "Show current status like offline, operational or degraded on the resources this rule adds.",
616
+ defaultValue: true,
617
+ }),
618
+ Column({
619
+ type: ColumnType.Boolean,
620
+ default: true,
621
+ }),
622
+ __metadata("design:type", Boolean)
623
+ ], StatusPageMonitorRule.prototype, "showCurrentStatus", void 0);
624
+ __decorate([
625
+ ColumnAccessControl({
626
+ create: [
627
+ Permission.ProjectOwner,
628
+ Permission.ProjectAdmin,
629
+ Permission.ProjectMember,
630
+ Permission.StatusPageAdmin,
631
+ Permission.StatusPageMember,
632
+ Permission.CreateStatusPageMonitorRule,
633
+ ],
634
+ read: [
635
+ Permission.ProjectOwner,
636
+ Permission.ProjectAdmin,
637
+ Permission.ProjectMember,
638
+ Permission.Viewer,
639
+ Permission.StatusPageAdmin,
640
+ Permission.StatusPageMember,
641
+ Permission.StatusPageViewer,
642
+ Permission.ReadStatusPageMonitorRule,
643
+ ],
644
+ update: [
645
+ Permission.ProjectOwner,
646
+ Permission.ProjectAdmin,
647
+ Permission.ProjectMember,
648
+ Permission.StatusPageAdmin,
649
+ Permission.StatusPageMember,
650
+ Permission.EditStatusPageMonitorRule,
651
+ ],
652
+ }),
653
+ TableColumn({
654
+ isDefaultValueColumn: true,
655
+ type: TableColumnType.Boolean,
656
+ title: "Show uptime percent",
657
+ description: "Show uptime percent on the resources this rule adds to the status page.",
658
+ defaultValue: true,
659
+ }),
660
+ Column({
661
+ type: ColumnType.Boolean,
662
+ default: true,
663
+ }),
664
+ __metadata("design:type", Boolean)
665
+ ], StatusPageMonitorRule.prototype, "showUptimePercent", void 0);
666
+ __decorate([
667
+ ColumnAccessControl({
668
+ create: [
669
+ Permission.ProjectOwner,
670
+ Permission.ProjectAdmin,
671
+ Permission.ProjectMember,
672
+ Permission.StatusPageAdmin,
673
+ Permission.StatusPageMember,
674
+ Permission.CreateStatusPageMonitorRule,
675
+ ],
676
+ read: [
677
+ Permission.ProjectOwner,
678
+ Permission.ProjectAdmin,
679
+ Permission.ProjectMember,
680
+ Permission.Viewer,
681
+ Permission.StatusPageAdmin,
682
+ Permission.StatusPageMember,
683
+ Permission.StatusPageViewer,
684
+ Permission.ReadStatusPageMonitorRule,
685
+ ],
686
+ update: [
687
+ Permission.ProjectOwner,
688
+ Permission.ProjectAdmin,
689
+ Permission.ProjectMember,
690
+ Permission.StatusPageAdmin,
691
+ Permission.StatusPageMember,
692
+ Permission.EditStatusPageMonitorRule,
693
+ ],
694
+ }),
695
+ TableColumn({
696
+ type: TableColumnType.ShortText,
697
+ title: "Uptime Percent Precision",
698
+ required: false,
699
+ description: "Precision of the uptime percent shown on the resources this rule adds",
700
+ }),
701
+ Column({
702
+ type: ColumnType.ShortText,
703
+ nullable: true,
704
+ }),
705
+ __metadata("design:type", String)
706
+ ], StatusPageMonitorRule.prototype, "uptimePercentPrecision", void 0);
707
+ __decorate([
708
+ ColumnAccessControl({
709
+ create: [
710
+ Permission.ProjectOwner,
711
+ Permission.ProjectAdmin,
712
+ Permission.ProjectMember,
713
+ Permission.StatusPageAdmin,
714
+ Permission.StatusPageMember,
715
+ Permission.CreateStatusPageMonitorRule,
716
+ ],
717
+ read: [
718
+ Permission.ProjectOwner,
719
+ Permission.ProjectAdmin,
720
+ Permission.ProjectMember,
721
+ Permission.Viewer,
722
+ Permission.StatusPageAdmin,
723
+ Permission.StatusPageMember,
724
+ Permission.StatusPageViewer,
725
+ Permission.ReadStatusPageMonitorRule,
726
+ ],
727
+ update: [
728
+ Permission.ProjectOwner,
729
+ Permission.ProjectAdmin,
730
+ Permission.ProjectMember,
731
+ Permission.StatusPageAdmin,
732
+ Permission.StatusPageMember,
733
+ Permission.EditStatusPageMonitorRule,
734
+ ],
735
+ }),
736
+ TableColumn({
737
+ isDefaultValueColumn: true,
738
+ type: TableColumnType.Boolean,
739
+ title: "Show History Chart",
740
+ description: "Show a 90 day uptime history on the resources this rule adds to the status page.",
741
+ defaultValue: true,
742
+ }),
743
+ Column({
744
+ type: ColumnType.Boolean,
745
+ default: true,
746
+ }),
747
+ __metadata("design:type", Boolean)
748
+ ], StatusPageMonitorRule.prototype, "showStatusHistoryChart", void 0);
749
+ __decorate([
750
+ ColumnAccessControl({
751
+ create: [
752
+ Permission.ProjectOwner,
753
+ Permission.ProjectAdmin,
754
+ Permission.ProjectMember,
755
+ Permission.StatusPageAdmin,
756
+ Permission.StatusPageMember,
757
+ Permission.CreateStatusPageMonitorRule,
758
+ ],
759
+ read: [
760
+ Permission.ProjectOwner,
761
+ Permission.ProjectAdmin,
762
+ Permission.ProjectMember,
763
+ Permission.Viewer,
764
+ Permission.StatusPageAdmin,
765
+ Permission.StatusPageMember,
766
+ Permission.StatusPageViewer,
767
+ Permission.ReadStatusPageMonitorRule,
768
+ ],
769
+ update: [],
770
+ }),
771
+ TableColumn({
772
+ manyToOneRelationColumn: "createdByUserId",
773
+ type: TableColumnType.Entity,
774
+ modelType: User,
775
+ title: "Created by User",
776
+ description: "Relation to User who created this object (if this object was created by a User)",
777
+ }),
778
+ ManyToOne(() => {
779
+ return User;
780
+ }, {
781
+ eager: false,
782
+ nullable: true,
783
+ onDelete: "SET NULL",
784
+ orphanedRowAction: "nullify",
785
+ }),
786
+ JoinColumn({ name: "createdByUserId" }),
787
+ __metadata("design:type", User)
788
+ ], StatusPageMonitorRule.prototype, "createdByUser", void 0);
789
+ __decorate([
790
+ ColumnAccessControl({
791
+ create: [
792
+ Permission.ProjectOwner,
793
+ Permission.ProjectAdmin,
794
+ Permission.ProjectMember,
795
+ Permission.StatusPageAdmin,
796
+ Permission.StatusPageMember,
797
+ Permission.CreateStatusPageMonitorRule,
798
+ ],
799
+ read: [
800
+ Permission.ProjectOwner,
801
+ Permission.ProjectAdmin,
802
+ Permission.ProjectMember,
803
+ Permission.Viewer,
804
+ Permission.StatusPageAdmin,
805
+ Permission.StatusPageMember,
806
+ Permission.StatusPageViewer,
807
+ Permission.ReadStatusPageMonitorRule,
808
+ ],
809
+ update: [],
810
+ }),
811
+ TableColumn({
812
+ type: TableColumnType.ObjectID,
813
+ title: "Created by User ID",
814
+ description: "User ID who created this object (if this object was created by a User)",
815
+ }),
816
+ Column({
817
+ type: ColumnType.ObjectID,
818
+ nullable: true,
819
+ transformer: ObjectID.getDatabaseTransformer(),
820
+ }),
821
+ __metadata("design:type", ObjectID)
822
+ ], StatusPageMonitorRule.prototype, "createdByUserId", void 0);
823
+ __decorate([
824
+ ColumnAccessControl({
825
+ create: [],
826
+ read: [],
827
+ update: [],
828
+ }),
829
+ TableColumn({
830
+ manyToOneRelationColumn: "deletedByUserId",
831
+ type: TableColumnType.Entity,
832
+ title: "Deleted by User",
833
+ modelType: User,
834
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
835
+ }),
836
+ ManyToOne(() => {
837
+ return User;
838
+ }, {
839
+ cascade: false,
840
+ eager: false,
841
+ nullable: true,
842
+ onDelete: "SET NULL",
843
+ orphanedRowAction: "nullify",
844
+ }),
845
+ JoinColumn({ name: "deletedByUserId" }),
846
+ __metadata("design:type", User)
847
+ ], StatusPageMonitorRule.prototype, "deletedByUser", void 0);
848
+ __decorate([
849
+ ColumnAccessControl({
850
+ create: [],
851
+ read: [],
852
+ update: [],
853
+ }),
854
+ TableColumn({
855
+ type: TableColumnType.ObjectID,
856
+ title: "Deleted by User ID",
857
+ description: "User ID who deleted this object (if this object was deleted by a User)",
858
+ }),
859
+ Column({
860
+ type: ColumnType.ObjectID,
861
+ nullable: true,
862
+ transformer: ObjectID.getDatabaseTransformer(),
863
+ }),
864
+ __metadata("design:type", ObjectID)
865
+ ], StatusPageMonitorRule.prototype, "deletedByUserId", void 0);
866
+ StatusPageMonitorRule = __decorate([
867
+ EnableDocumentation(),
868
+ CanAccessIfCanReadOn("statusPage"),
869
+ TenantColumn("projectId"),
870
+ TableAccessControl({
871
+ create: [
872
+ Permission.ProjectOwner,
873
+ Permission.ProjectAdmin,
874
+ Permission.ProjectMember,
875
+ Permission.StatusPageAdmin,
876
+ Permission.StatusPageMember,
877
+ Permission.CreateStatusPageMonitorRule,
878
+ ],
879
+ read: [
880
+ Permission.ProjectOwner,
881
+ Permission.ProjectAdmin,
882
+ Permission.ProjectMember,
883
+ Permission.Viewer,
884
+ Permission.StatusPageAdmin,
885
+ Permission.StatusPageMember,
886
+ Permission.StatusPageViewer,
887
+ Permission.ReadStatusPageMonitorRule,
888
+ ],
889
+ delete: [
890
+ Permission.ProjectOwner,
891
+ Permission.ProjectAdmin,
892
+ Permission.ProjectMember,
893
+ Permission.StatusPageAdmin,
894
+ Permission.StatusPageMember,
895
+ Permission.DeleteStatusPageMonitorRule,
896
+ ],
897
+ update: [
898
+ Permission.ProjectOwner,
899
+ Permission.ProjectAdmin,
900
+ Permission.ProjectMember,
901
+ Permission.StatusPageAdmin,
902
+ Permission.StatusPageMember,
903
+ Permission.EditStatusPageMonitorRule,
904
+ ],
905
+ }),
906
+ CrudApiEndpoint(new Route("/status-page-monitor-rule")),
907
+ Entity({
908
+ name: "StatusPageMonitorRule",
909
+ }),
910
+ EnableWorkflow({
911
+ create: true,
912
+ delete: true,
913
+ update: true,
914
+ read: true,
915
+ }),
916
+ TableMetadata({
917
+ tableName: "StatusPageMonitorRule",
918
+ singularName: "Status Page Monitor Rule",
919
+ pluralName: "Status Page Monitor Rules",
920
+ icon: IconProp.Filter,
921
+ tableDescription: "Configure rules that automatically add matching monitors to a status page group, instead of picking every monitor by hand",
922
+ })
923
+ ], StatusPageMonitorRule);
924
+ export default StatusPageMonitorRule;
925
+ //# sourceMappingURL=StatusPageMonitorRule.js.map