@oneuptime/common 12.0.1 → 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 (385) hide show
  1. package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +14 -0
  2. package/Models/DatabaseModels/Host.ts +12 -4
  3. package/Models/DatabaseModels/Index.ts +2 -0
  4. package/Models/DatabaseModels/KubernetesContainer.ts +5 -4
  5. package/Models/DatabaseModels/KubernetesResource.ts +8 -7
  6. package/Models/DatabaseModels/LogDropFilter.ts +9 -20
  7. package/Models/DatabaseModels/PodmanResource.ts +6 -6
  8. package/Models/DatabaseModels/ServiceLevelObjective.ts +91 -0
  9. package/Models/DatabaseModels/StatusPage.ts +95 -0
  10. package/Models/DatabaseModels/StatusPageMonitorRule.ts +911 -0
  11. package/Models/DatabaseModels/StatusPageResource.ts +73 -0
  12. package/Models/DatabaseModels/TraceDropFilter.ts +9 -20
  13. package/Server/API/BaseAPI.ts +13 -2
  14. package/Server/API/DashboardAPI.ts +39 -0
  15. package/Server/API/TeamMemberAPI.ts +85 -0
  16. package/Server/EnvironmentConfig.ts +31 -1
  17. package/Server/Infrastructure/GlobalCache.ts +115 -0
  18. package/Server/Infrastructure/Postgres/DataSourceOptions.ts +16 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1785900000000-AddSloMonitorLabelRule.ts +84 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1785915638551-IncreaseHostIpAddressesLength.ts +40 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1785930000000-WidenInventoryResourceNameColumns.ts +131 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1785930709405-AddStatusPageReportPeriod.ts +25 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.ts +123 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
  25. package/Server/Middleware/ProjectAuthorization.ts +66 -4
  26. package/Server/Services/AlertStateTimelineService.ts +20 -0
  27. package/Server/Services/BillingService.ts +600 -51
  28. package/Server/Services/CephClusterService.ts +27 -45
  29. package/Server/Services/CephResourceService.ts +43 -4
  30. package/Server/Services/CloudResourceService.ts +24 -42
  31. package/Server/Services/DatabaseService.ts +198 -6
  32. package/Server/Services/DockerHostService.ts +20 -38
  33. package/Server/Services/DockerResourceService.ts +62 -8
  34. package/Server/Services/DockerSwarmClusterService.ts +28 -46
  35. package/Server/Services/DockerSwarmResourceService.ts +53 -4
  36. package/Server/Services/HostService.ts +47 -57
  37. package/Server/Services/IncidentStateTimelineService.ts +20 -0
  38. package/Server/Services/Index.ts +2 -0
  39. package/Server/Services/IoTDeviceService.ts +1 -17
  40. package/Server/Services/IoTFleetService.ts +20 -38
  41. package/Server/Services/KubernetesClusterService.ts +18 -36
  42. package/Server/Services/KubernetesContainerService.ts +50 -9
  43. package/Server/Services/KubernetesResourceService.ts +53 -7
  44. package/Server/Services/LabelService.ts +153 -1
  45. package/Server/Services/MetricTypeService.ts +84 -0
  46. package/Server/Services/MonitorService.ts +146 -14
  47. package/Server/Services/MonitorStatusTimelineService.ts +29 -0
  48. package/Server/Services/MonitorTemplateService.ts +65 -0
  49. package/Server/Services/PodmanHostService.ts +20 -38
  50. package/Server/Services/PodmanResourceService.ts +62 -8
  51. package/Server/Services/ProjectService.ts +165 -35
  52. package/Server/Services/ProxmoxClusterService.ts +24 -42
  53. package/Server/Services/ProxmoxResourceService.ts +43 -4
  54. package/Server/Services/RumApplicationService.ts +20 -38
  55. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +21 -0
  56. package/Server/Services/ServerlessFunctionService.ts +25 -43
  57. package/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.ts +426 -0
  58. package/Server/Services/ServiceLevelObjectiveService.ts +39 -0
  59. package/Server/Services/ServiceService.ts +299 -73
  60. package/Server/Services/StatusPageMonitorRuleEngineService.ts +752 -0
  61. package/Server/Services/StatusPageMonitorRuleService.ts +471 -0
  62. package/Server/Services/StatusPageService.ts +95 -36
  63. package/Server/Services/StatusPageSubscriberNotificationTemplateService.ts +18 -1
  64. package/Server/Services/StatusPageSubscriberService.ts +3 -0
  65. package/Server/Services/TelemetryEntityRelationshipService.ts +1 -0
  66. package/Server/Services/TelemetryEntityService.ts +1 -0
  67. package/Server/Types/Database/JSONColumnQuery.ts +621 -0
  68. package/Server/Types/Database/Permissions/PublicPermission.ts +9 -2
  69. package/Server/Types/Database/QueryHelper.ts +17 -32
  70. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +170 -39
  71. package/Server/Utils/Database/TruncateColumnValue.ts +84 -0
  72. package/Server/Utils/Monitor/MonitorResource.ts +63 -36
  73. package/Server/Utils/Monitor/MonitorStatusTimeline.ts +36 -0
  74. package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +148 -127
  75. package/Server/Utils/Monitor/MonitorStepsReferenceExtractor.ts +434 -0
  76. package/Server/Utils/SingleFlight.ts +83 -0
  77. package/Server/Utils/StatusPage/MonitorRulePatternValidator.ts +46 -0
  78. package/Server/Utils/Telemetry/EntityRegistry.ts +107 -26
  79. package/Server/Utils/Telemetry/ResourceHeartbeat.ts +314 -0
  80. package/Server/Utils/Telemetry/Telemetry.ts +351 -122
  81. package/Tests/App/Dashboard/UsersTableGroupsByPerson.test.tsx +448 -0
  82. package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
  83. package/Tests/Models/DatabaseModels/ColumnTransformerInvariants.test.ts +306 -0
  84. package/Tests/Models/DatabaseModels/NumberColumnDeserialization.test.ts +333 -0
  85. package/Tests/Models/DatabaseModels/StatusPageMonitorRuleModel.test.ts +190 -0
  86. package/Tests/Server/API/BaseAPIApiKeyAuth.test.ts +704 -0
  87. package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +26 -0
  88. package/Tests/Server/API/TeamMemberRemoveUserFromProjectAPI.test.ts +303 -0
  89. package/Tests/Server/Infrastructure/GlobalCache.test.ts +226 -0
  90. package/Tests/Server/Infrastructure/PostgresLockTimeoutOptions.test.ts +181 -0
  91. package/Tests/Server/Middleware/MasterAdminAuthorization.test.ts +350 -0
  92. package/Tests/Server/Middleware/ProjectAuthorizationApiKeyHeader.test.ts +362 -0
  93. package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +687 -0
  94. package/Tests/Server/Services/BillingService.test.ts +78 -3
  95. package/Tests/Server/Services/BillingServiceChangePlanCancel.test.ts +645 -0
  96. package/Tests/Server/Services/BillingServiceTrialPlanChange.test.ts +1005 -0
  97. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlocked.test.ts +342 -0
  98. package/Tests/Server/Services/DropFilterSaveValidation.test.ts +245 -0
  99. package/Tests/Server/Services/HookFreeWriteLengthClamp.test.ts +503 -0
  100. package/Tests/Server/Services/HostIpAddressesColumnWidth.test.ts +198 -0
  101. package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +658 -0
  102. package/Tests/Server/Services/InventoryResourceNameColumnWidth.test.ts +500 -0
  103. package/Tests/Server/Services/InventoryUpsertSchemaParity.test.ts +586 -0
  104. package/Tests/Server/Services/InventoryUpsertTruncationGuard.test.ts +1242 -0
  105. package/Tests/Server/Services/MetricTypeAttachServices.test.ts +222 -0
  106. package/Tests/Server/Services/MissingReferenceWriteGuard.test.ts +614 -0
  107. package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +23 -0
  108. package/Tests/Server/Services/ProjectServiceChangePlan.test.ts +650 -0
  109. package/Tests/Server/Services/ProjectServiceExtendTrial.test.ts +1 -0
  110. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +636 -0
  111. package/Tests/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.test.ts +770 -0
  112. package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +130 -0
  113. package/Tests/Server/Services/ServiceUpdateLastSeenSplitGates.test.ts +705 -0
  114. package/Tests/Server/Services/SloMonitorLabelRuleHooks.test.ts +352 -0
  115. package/Tests/Server/Services/StatusPageMonitorRuleEngineService.test.ts +1719 -0
  116. package/Tests/Server/Services/StatusPageMonitorRuleHooks.test.ts +1212 -0
  117. package/Tests/Server/Services/StatusPageMonitorRuleMonitorCreateHook.test.ts +228 -0
  118. package/Tests/Server/Services/StatusPageSubscriberReport.test.ts +29 -13
  119. package/Tests/Server/TestingUtils/Services/BillingServiceHelper.ts +69 -8
  120. package/Tests/Server/Types/Database/JSONColumnQuery.test.ts +593 -0
  121. package/Tests/Server/Types/Database/Permissions/PublicPermission.test.ts +495 -0
  122. package/Tests/Server/Types/Database/QueryUtil.test.ts +113 -0
  123. package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +267 -0
  124. package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +260 -13
  125. package/Tests/Server/Utils/Database/TruncateColumnValue.test.ts +179 -0
  126. package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +302 -0
  127. package/Tests/Server/Utils/MetricTypeIndexConvergence.test.ts +598 -0
  128. package/Tests/Server/Utils/Monitor/MonitorStatusTimelineUnusableStatus.test.ts +154 -0
  129. package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +638 -92
  130. package/Tests/Server/Utils/Monitor/MonitorStepsReferenceExtractor.test.ts +724 -0
  131. package/Tests/Server/Utils/SingleFlight.test.ts +221 -0
  132. package/Tests/Types/Dashboard/NetworkDashboardTemplate.test.ts +793 -0
  133. package/Tests/Types/Database/BigIntColumnTransformer.test.ts +147 -0
  134. package/Tests/Types/Database/DatabasePropertyTransformer.test.ts +140 -0
  135. package/Tests/Types/Database/NumericColumnValue.test.ts +127 -0
  136. package/Tests/Types/Decimal.test.ts +37 -0
  137. package/Tests/Types/Events/Recurring.test.ts +157 -0
  138. package/Tests/Types/Monitor/SnmpVersionParsing.test.ts +152 -0
  139. package/Tests/Types/Port.test.ts +38 -0
  140. package/Tests/UI/Components/LogsHistogram.test.tsx +276 -0
  141. package/Tests/UI/Components/ModelTable/ModelTableGroupsProjectUsers.test.tsx +375 -0
  142. package/Tests/UI/Components/ModelTable/useCustomFieldColumns.test.tsx +196 -0
  143. package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +489 -0
  144. package/Tests/UI/Components/UseLogsHistogram.test.tsx +500 -0
  145. package/Tests/UI/Utils/ProjectUsersModelAPI.test.ts +739 -0
  146. package/Tests/UI/Utils/TeamMembersByUser.test.ts +633 -0
  147. package/Tests/Utils/Dashboard/Components/DashboardComponentsUtil.test.ts +120 -0
  148. package/Tests/Utils/Dashboard/DashboardNetworkMapComponent.test.ts +327 -0
  149. package/Tests/Utils/StatusPage/ReportPeriod.test.ts +218 -0
  150. package/Tests/Utils/Telemetry/HostIpAddresses.test.ts +291 -0
  151. package/Types/CustomField/CustomFieldDefinition.ts +24 -0
  152. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  153. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  154. package/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts +40 -0
  155. package/Types/Dashboard/DashboardTemplates.ts +397 -0
  156. package/Types/Database/BigIntColumnTransformer.ts +74 -0
  157. package/Types/Database/DatabaseProperty.ts +26 -0
  158. package/Types/Database/NumericColumnValue.ts +128 -0
  159. package/Types/Date.ts +112 -0
  160. package/Types/Decimal.ts +16 -4
  161. package/Types/Events/Recurring.ts +99 -1
  162. package/Types/Permission.ts +48 -0
  163. package/Types/Port.ts +16 -4
  164. package/Types/StatusPage/StatusPageReport.ts +11 -0
  165. package/Types/StatusPage/StatusPageReportPeriodType.ts +21 -0
  166. package/UI/Components/LogsViewer/useLiveLogsRefresh.ts +86 -0
  167. package/UI/Components/LogsViewer/useLogsHistogram.ts +113 -0
  168. package/UI/Components/ModelTable/CustomFieldColumns.tsx +2 -6
  169. package/UI/Components/ModelTable/useCustomFieldColumns.ts +21 -2
  170. package/UI/Utils/ModelAPI/ProjectUsersModelAPI.ts +305 -0
  171. package/UI/Utils/TeamMembersByUser.ts +302 -0
  172. package/Utils/Dashboard/Components/DashboardNetworkMapComponent.ts +136 -0
  173. package/Utils/Dashboard/Components/Index.ts +7 -0
  174. package/Utils/StatusPage/ReportPeriod.ts +236 -0
  175. package/Utils/Telemetry/HostIpAddresses.ts +98 -0
  176. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +12 -0
  177. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  178. package/build/dist/Models/DatabaseModels/Host.js +12 -4
  179. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  180. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  181. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  182. package/build/dist/Models/DatabaseModels/KubernetesContainer.js +4 -4
  183. package/build/dist/Models/DatabaseModels/KubernetesContainer.js.map +1 -1
  184. package/build/dist/Models/DatabaseModels/KubernetesResource.js +7 -7
  185. package/build/dist/Models/DatabaseModels/KubernetesResource.js.map +1 -1
  186. package/build/dist/Models/DatabaseModels/LogDropFilter.js +9 -20
  187. package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
  188. package/build/dist/Models/DatabaseModels/PodmanResource.js +6 -6
  189. package/build/dist/Models/DatabaseModels/PodmanResource.js.map +1 -1
  190. package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js +87 -0
  191. package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js.map +1 -1
  192. package/build/dist/Models/DatabaseModels/StatusPage.js +98 -0
  193. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  194. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js +925 -0
  195. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js.map +1 -0
  196. package/build/dist/Models/DatabaseModels/StatusPageResource.js +72 -0
  197. package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
  198. package/build/dist/Models/DatabaseModels/TraceDropFilter.js +9 -20
  199. package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
  200. package/build/dist/Server/API/BaseAPI.js +11 -1
  201. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  202. package/build/dist/Server/API/DashboardAPI.js +39 -0
  203. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  204. package/build/dist/Server/API/TeamMemberAPI.js +57 -2
  205. package/build/dist/Server/API/TeamMemberAPI.js.map +1 -1
  206. package/build/dist/Server/EnvironmentConfig.js +27 -1
  207. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  208. package/build/dist/Server/Infrastructure/GlobalCache.js +91 -0
  209. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  210. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +5 -3
  211. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
  212. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785900000000-AddSloMonitorLabelRule.js +45 -0
  213. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785900000000-AddSloMonitorLabelRule.js.map +1 -0
  214. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785915638551-IncreaseHostIpAddressesLength.js +31 -0
  215. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785915638551-IncreaseHostIpAddressesLength.js.map +1 -0
  216. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930000000-WidenInventoryResourceNameColumns.js +90 -0
  217. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930000000-WidenInventoryResourceNameColumns.js.map +1 -0
  218. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930709405-AddStatusPageReportPeriod.js +14 -0
  219. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930709405-AddStatusPageReportPeriod.js.map +1 -0
  220. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js +48 -0
  221. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js.map +1 -0
  222. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  223. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  224. package/build/dist/Server/Middleware/ProjectAuthorization.js +59 -4
  225. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  226. package/build/dist/Server/Services/AlertStateTimelineService.js +19 -0
  227. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  228. package/build/dist/Server/Services/BillingService.js +466 -36
  229. package/build/dist/Server/Services/BillingService.js.map +1 -1
  230. package/build/dist/Server/Services/CephClusterService.js +26 -39
  231. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  232. package/build/dist/Server/Services/CephResourceService.js +28 -3
  233. package/build/dist/Server/Services/CephResourceService.js.map +1 -1
  234. package/build/dist/Server/Services/CloudResourceService.js +23 -36
  235. package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
  236. package/build/dist/Server/Services/DatabaseService.js +155 -2
  237. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  238. package/build/dist/Server/Services/DockerHostService.js +19 -32
  239. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  240. package/build/dist/Server/Services/DockerResourceService.js +34 -4
  241. package/build/dist/Server/Services/DockerResourceService.js.map +1 -1
  242. package/build/dist/Server/Services/DockerSwarmClusterService.js +27 -40
  243. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  244. package/build/dist/Server/Services/DockerSwarmResourceService.js +28 -3
  245. package/build/dist/Server/Services/DockerSwarmResourceService.js.map +1 -1
  246. package/build/dist/Server/Services/HostService.js +58 -64
  247. package/build/dist/Server/Services/HostService.js.map +1 -1
  248. package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
  249. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  250. package/build/dist/Server/Services/Index.js +2 -0
  251. package/build/dist/Server/Services/Index.js.map +1 -1
  252. package/build/dist/Server/Services/IoTDeviceService.js +1 -8
  253. package/build/dist/Server/Services/IoTDeviceService.js.map +1 -1
  254. package/build/dist/Server/Services/IoTFleetService.js +19 -32
  255. package/build/dist/Server/Services/IoTFleetService.js.map +1 -1
  256. package/build/dist/Server/Services/KubernetesClusterService.js +17 -30
  257. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  258. package/build/dist/Server/Services/KubernetesContainerService.js +29 -3
  259. package/build/dist/Server/Services/KubernetesContainerService.js.map +1 -1
  260. package/build/dist/Server/Services/KubernetesResourceService.js +32 -4
  261. package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -1
  262. package/build/dist/Server/Services/LabelService.js +127 -0
  263. package/build/dist/Server/Services/LabelService.js.map +1 -1
  264. package/build/dist/Server/Services/MetricTypeService.js +74 -0
  265. package/build/dist/Server/Services/MetricTypeService.js.map +1 -1
  266. package/build/dist/Server/Services/MonitorService.js +128 -9
  267. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  268. package/build/dist/Server/Services/MonitorStatusTimelineService.js +28 -0
  269. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  270. package/build/dist/Server/Services/MonitorTemplateService.js +60 -0
  271. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  272. package/build/dist/Server/Services/PodmanHostService.js +19 -32
  273. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  274. package/build/dist/Server/Services/PodmanResourceService.js +34 -4
  275. package/build/dist/Server/Services/PodmanResourceService.js.map +1 -1
  276. package/build/dist/Server/Services/ProjectService.js +135 -21
  277. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  278. package/build/dist/Server/Services/ProxmoxClusterService.js +23 -36
  279. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  280. package/build/dist/Server/Services/ProxmoxResourceService.js +28 -3
  281. package/build/dist/Server/Services/ProxmoxResourceService.js.map +1 -1
  282. package/build/dist/Server/Services/RumApplicationService.js +19 -32
  283. package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
  284. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +20 -0
  285. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  286. package/build/dist/Server/Services/ServerlessFunctionService.js +24 -37
  287. package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
  288. package/build/dist/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.js +347 -0
  289. package/build/dist/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.js.map +1 -0
  290. package/build/dist/Server/Services/ServiceLevelObjectiveService.js +33 -1
  291. package/build/dist/Server/Services/ServiceLevelObjectiveService.js.map +1 -1
  292. package/build/dist/Server/Services/ServiceService.js +236 -61
  293. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  294. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +603 -0
  295. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -0
  296. package/build/dist/Server/Services/StatusPageMonitorRuleService.js +401 -0
  297. package/build/dist/Server/Services/StatusPageMonitorRuleService.js.map +1 -0
  298. package/build/dist/Server/Services/StatusPageService.js +69 -46
  299. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  300. package/build/dist/Server/Services/StatusPageSubscriberNotificationTemplateService.js +17 -1
  301. package/build/dist/Server/Services/StatusPageSubscriberNotificationTemplateService.js.map +1 -1
  302. package/build/dist/Server/Services/StatusPageSubscriberService.js +3 -0
  303. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  304. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +1 -0
  305. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -1
  306. package/build/dist/Server/Services/TelemetryEntityService.js +1 -0
  307. package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -1
  308. package/build/dist/Server/Types/Database/JSONColumnQuery.js +402 -0
  309. package/build/dist/Server/Types/Database/JSONColumnQuery.js.map +1 -0
  310. package/build/dist/Server/Types/Database/Permissions/PublicPermission.js +9 -2
  311. package/build/dist/Server/Types/Database/Permissions/PublicPermission.js.map +1 -1
  312. package/build/dist/Server/Types/Database/QueryHelper.js +17 -27
  313. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  314. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +105 -29
  315. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
  316. package/build/dist/Server/Utils/Database/TruncateColumnValue.js +32 -0
  317. package/build/dist/Server/Utils/Database/TruncateColumnValue.js.map +1 -0
  318. package/build/dist/Server/Utils/Monitor/MonitorResource.js +56 -32
  319. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  320. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +30 -3
  321. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
  322. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +110 -98
  323. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -1
  324. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js +312 -0
  325. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js.map +1 -0
  326. package/build/dist/Server/Utils/SingleFlight.js +76 -0
  327. package/build/dist/Server/Utils/SingleFlight.js.map +1 -0
  328. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js +29 -0
  329. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js.map +1 -0
  330. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +78 -19
  331. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  332. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +160 -0
  333. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -0
  334. package/build/dist/Server/Utils/Telemetry/Telemetry.js +279 -104
  335. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  336. package/build/dist/Types/CustomField/CustomFieldDefinition.js +2 -0
  337. package/build/dist/Types/CustomField/CustomFieldDefinition.js.map +1 -0
  338. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  339. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  340. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  341. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  342. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js +2 -0
  343. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js.map +1 -0
  344. package/build/dist/Types/Dashboard/DashboardTemplates.js +368 -0
  345. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  346. package/build/dist/Types/Database/BigIntColumnTransformer.js +66 -0
  347. package/build/dist/Types/Database/BigIntColumnTransformer.js.map +1 -0
  348. package/build/dist/Types/Database/DatabaseProperty.js +25 -0
  349. package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
  350. package/build/dist/Types/Database/NumericColumnValue.js +97 -0
  351. package/build/dist/Types/Database/NumericColumnValue.js.map +1 -0
  352. package/build/dist/Types/Date.js +68 -0
  353. package/build/dist/Types/Date.js.map +1 -1
  354. package/build/dist/Types/Decimal.js +14 -3
  355. package/build/dist/Types/Decimal.js.map +1 -1
  356. package/build/dist/Types/Events/Recurring.js +63 -0
  357. package/build/dist/Types/Events/Recurring.js.map +1 -1
  358. package/build/dist/Types/Permission.js +42 -0
  359. package/build/dist/Types/Permission.js.map +1 -1
  360. package/build/dist/Types/Port.js +15 -5
  361. package/build/dist/Types/Port.js.map +1 -1
  362. package/build/dist/Types/StatusPage/StatusPageReportPeriodType.js +22 -0
  363. package/build/dist/Types/StatusPage/StatusPageReportPeriodType.js.map +1 -0
  364. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js +44 -0
  365. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js.map +1 -0
  366. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js +75 -0
  367. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js.map +1 -0
  368. package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -1
  369. package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +18 -2
  370. package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -1
  371. package/build/dist/UI/Utils/ModelAPI/ProjectUsersModelAPI.js +213 -0
  372. package/build/dist/UI/Utils/ModelAPI/ProjectUsersModelAPI.js.map +1 -0
  373. package/build/dist/UI/Utils/TeamMembersByUser.js +195 -0
  374. package/build/dist/UI/Utils/TeamMembersByUser.js.map +1 -0
  375. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js +114 -0
  376. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js.map +1 -0
  377. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  378. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  379. package/build/dist/Utils/StatusPage/ReportPeriod.js +131 -0
  380. package/build/dist/Utils/StatusPage/ReportPeriod.js.map +1 -0
  381. package/build/dist/Utils/Telemetry/HostIpAddresses.js +82 -0
  382. package/build/dist/Utils/Telemetry/HostIpAddresses.js.map +1 -0
  383. package/jest.config.json +2 -0
  384. package/package.json +1 -1
  385. package/tsconfig.json +12 -1
@@ -1 +1 @@
1
- {"version":3,"file":"KubernetesContainerService.js","sourceRoot":"","sources":["../../../../Server/Services/KubernetesContainerService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KubernetesContainerService.js","sourceRoot":"","sources":["../../../../Server/Services/KubernetesContainerService.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import DatabaseService from "./DatabaseService";
11
11
  import Model from "../../Models/DatabaseModels/KubernetesResource";
12
12
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
13
+ import ColumnLength from "../../Types/Database/ColumnLength";
13
14
  import OneUptimeDate from "../../Types/Date";
15
+ import { truncateLongText, truncateShortText, } from "../Utils/Database/TruncateColumnValue";
14
16
  import logger from "../Utils/Logger";
15
17
  const DEGRADED_SAMPLE_LIMIT = 20;
16
18
  /*
@@ -185,6 +187,18 @@ const UPSERT_COLUMNS = [
185
187
  "resourceCreationTimestamp",
186
188
  "version",
187
189
  ];
190
+ /*
191
+ * KubernetesResource's text columns are bounded varchars — name and
192
+ * controllerDeploymentName at 500 chars, kind / namespaceKey / uid /
193
+ * phase at 100. The bulk paths below go through manager.query(), which
194
+ * skips the length validation DatabaseService applies to ordinary
195
+ * writes, so a single oversized value aborts the whole 500-row INSERT
196
+ * chunk it rides in. Clamp per value instead, so one pathological
197
+ * object can never drop the rest of the snapshot.
198
+ */
199
+ function sanitizeResource(r) {
200
+ return Object.assign(Object.assign({}, r), { kind: truncateShortText(r.kind), namespaceKey: truncateShortText(r.namespaceKey), name: truncateLongText(r.name), uid: truncateShortText(r.uid), phase: truncateShortText(r.phase) });
201
+ }
188
202
  export class Service extends DatabaseService {
189
203
  constructor() {
190
204
  super(Model);
@@ -199,9 +213,16 @@ export class Service extends DatabaseService {
199
213
  if (data.resources.length === 0) {
200
214
  return;
201
215
  }
216
+ const resources = data.resources.map((r) => {
217
+ const sanitized = sanitizeResource(r);
218
+ if (sanitized.name !== r.name) {
219
+ logger.warn(`KubernetesResource name exceeds ${ColumnLength.LongText} chars; truncated to "${sanitized.name}" (cluster ${data.kubernetesClusterId.toString()}).`);
220
+ }
221
+ return sanitized;
222
+ });
202
223
  // Chunk to keep individual statement parameter counts reasonable.
203
- for (let i = 0; i < data.resources.length; i += UPSERT_BATCH_SIZE) {
204
- const chunk = data.resources.slice(i, i + UPSERT_BATCH_SIZE);
224
+ for (let i = 0; i < resources.length; i += UPSERT_BATCH_SIZE) {
225
+ const chunk = resources.slice(i, i + UPSERT_BATCH_SIZE);
205
226
  const valueFragments = [];
206
227
  const params = [];
207
228
  let paramIndex = 1;
@@ -269,13 +290,20 @@ export class Service extends DatabaseService {
269
290
  let paramIndex = 3;
270
291
  for (const m of chunk) {
271
292
  valueFragments.push(`($${paramIndex++}, $${paramIndex++}, $${paramIndex++}, $${paramIndex++}::numeric, $${paramIndex++}::bigint, $${paramIndex++}::numeric, $${paramIndex++}::timestamptz, $${paramIndex++}, $${paramIndex++})`);
272
- params.push(m.kind, m.namespaceKey, m.name, m.cpuPercent !== null && m.cpuPercent !== undefined
293
+ /*
294
+ * The identity clamps MUST match bulkUpsert's, or this mirror
295
+ * UPDATE would silently miss the row the upsert just wrote
296
+ * under the truncated name. controllerDeploymentName /
297
+ * controllerCronJobName are assigned columns, so an oversized
298
+ * value there aborts the chunk exactly like the INSERT path.
299
+ */
300
+ params.push(truncateShortText(m.kind), truncateShortText(m.namespaceKey), truncateLongText(m.name), m.cpuPercent !== null && m.cpuPercent !== undefined
273
301
  ? m.cpuPercent
274
302
  : null, m.memoryBytes !== null && m.memoryBytes !== undefined
275
303
  ? Math.trunc(m.memoryBytes).toString()
276
304
  : null, m.memoryPercent !== null && m.memoryPercent !== undefined
277
305
  ? m.memoryPercent
278
- : null, m.observedAt, (_a = m.controllerDeploymentName) !== null && _a !== void 0 ? _a : null, (_b = m.controllerCronJobName) !== null && _b !== void 0 ? _b : null);
306
+ : null, m.observedAt, truncateLongText((_a = m.controllerDeploymentName) !== null && _a !== void 0 ? _a : null), truncateShortText((_b = m.controllerCronJobName) !== null && _b !== void 0 ? _b : null));
279
307
  }
280
308
  const sql = `
281
309
  UPDATE "KubernetesResource" AS k
@@ -1 +1 @@
1
- {"version":3,"file":"KubernetesResourceService.js","sourceRoot":"","sources":["../../../../Server/Services/KubernetesResourceService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KubernetesResourceService.js","sourceRoot":"","sources":["../../../../Server/Services/KubernetesResourceService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,gDAAgD,CAAC;AACnE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAE7D,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAwFrC,MAAM,qBAAqB,GAAW,EAAE,CAAC;AAEzC;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,GAKzB;IACC,MAAM,MAAM,GACV,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAC1C,CAAC,CAAE,GAAG,CAAC,MAAkC;QACzC,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,MAAM,GAAW,EAAE,CAAC;IACxB,IAAI,OAAO,GAAW,EAAE,CAAC;IAEzB,MAAM,iBAAiB,GAAmC,KAAK,CAAC,OAAO,CACrE,MAAM,CAAC,mBAAmB,CAAC,CAC5B;QACC,CAAC,CAAE,MAAM,CAAC,mBAAmB,CAAoC;QACjE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,qBAAqB,GAAmC,KAAK,CAAC,OAAO,CACzE,MAAM,CAAC,uBAAuB,CAAC,CAChC;QACC,CAAC,CAAE,MAAM,CAAC,uBAAuB,CAAoC;QACrE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,aAAa,GAG+B,CAChD,IAAoC,EACpC,WAAmB,EACnB,EAAE;QACF,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YACD,MAAM,CAAC,GAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAY,EAAE,CAAC,SAAS,CAAC,CAAC;gBACjC,OAAO;oBACL,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;iBACxC,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,UAAU,GACd,aAAa,CAAC,iBAAiB,EAAE,SAAS,CAAC;QAC3C,aAAa,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,aAAa,GAA+C,UAAU;QAC1E,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,aAAa,CAAC,iBAAiB,EAAE,YAAY,CAAC;YAC9C,aAAa,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,GAAG,GACP,UAAU,IAAI,aAAa,CAAC;IAE9B,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACpB,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IACxB,CAAC;SAAM,CAAC;QACN;;;WAGG;QACH,MAAM,SAAS,GAAY,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAY,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,UAAU,GAAmC,KAAK,CAAC,OAAO,CAC9D,MAAM,CAAC,YAAY,CAAC,CACrB;gBACC,CAAC,CAAE,MAAM,CAAC,YAAY,CAAoC;gBAC1D,CAAC,CAAC,EAAE,CAAC;YACP,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;oBAC9B,MAAM,CAAC,GAAY,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAClC,MAAM,CAAC,GAAY,IAAI,CAAC,SAAS,CAAC,CAAC;oBACnC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC;wBAC/B,MAAM,GAAG,CAAC,CAAC;wBACX,OAAO,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACzC,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;QACjC,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;QAC7B,MAAM;QACN,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,GAO1B;IACC,MAAM,MAAM,GACV,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAC1C,CAAC,CAAE,GAAG,CAAC,MAAkC;QACzC,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,UAAU,GAAmC,KAAK,CAAC,OAAO,CAC9D,MAAM,CAAC,YAAY,CAAC,CACrB;QACC,CAAC,CAAE,MAAM,CAAC,YAAY,CAAoC;QAC1D,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,aAAa,GAEmB,CACpC,SAAkD,EAClD,EAAE;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjB,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,IAAI,MAAM,GAAmC,IAAI,CAAC;IAClD,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,GAAG,aAAa,CAAC,CAAC,CAA0B,EAAE,EAAE;YACpD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,GAAG,aAAa,CAAC,CAAC,CAA0B,EAAE,EAAE;YACpD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,gBAAgB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,GAAG,aAAa,CAAC,CAAC,CAA0B,EAAE,EAAE;YACpD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,cAAc,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,GAAG,aAAa,CAAC,CAAC,CAA0B,EAAE,EAAE;YACpD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,aAAa,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GACV,MAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ;QAC5C,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAY;QAC9B,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,OAAO,GACX,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ;QAC7C,CAAC,CAAE,MAAM,CAAC,SAAS,CAAY;QAC/B,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI;QAC7B,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,KAAK,IAAI;QACjD,eAAe,EAAE,GAAG,CAAC,eAAe,KAAK,IAAI;QAC7C,cAAc,EAAE,GAAG,CAAC,cAAc,KAAK,IAAI;QAC3C,MAAM;QACN,OAAO;KACR,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAW,GAAG,CAAC;AACtC,MAAM,2BAA2B,GAAW,GAAG,CAAC;AAEhD;;;GAGG;AACH,MAAM,cAAc,GAAmD;IACrE,WAAW;IACX,qBAAqB;IACrB,MAAM;IACN,cAAc;IACd,MAAM;IACN,KAAK;IACL,OAAO;IACP,SAAS;IACT,mBAAmB;IACnB,iBAAiB;IACjB,gBAAgB;IAChB,QAAQ;IACR,aAAa;IACb,iBAAiB;IACjB,MAAM;IACN,gBAAgB;IAChB,QAAQ;IACR,YAAY;IACZ,2BAA2B;IAC3B,SAAS;CACV,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CACvB,CAA2B;IAE3B,uCACK,CAAC,KACJ,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,EAC/B,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,EAC/C,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EAC9B,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,EAC7B,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,IACjC;AACJ,CAAC;AAED,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED;;;;;OAKG;IAEU,AAAN,KAAK,CAAC,UAAU,CAAC,IAIvB;QACC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAoC,IAAI,CAAC,SAAS,CAAC,GAAG,CACnE,CAAC,CAA2B,EAAE,EAAE;YAC9B,MAAM,SAAS,GAA6B,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CACT,mCAAmC,YAAY,CAAC,QAAQ,yBAAyB,SAAS,CAAC,IAAI,cAAc,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CACrJ,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CACF,CAAC;QAEF,kEAAkE;QAClE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACrE,MAAM,KAAK,GAAoC,SAAS,CAAC,KAAK,CAC5D,CAAC,EACD,CAAC,GAAG,iBAAiB,CACtB,CAAC;YAEF,MAAM,cAAc,GAAkB,EAAE,CAAC;YACzC,MAAM,MAAM,GAAmB,EAAE,CAAC;YAClC,IAAI,UAAU,GAAW,CAAC,CAAC;YAE3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAkB,EAAE,CAAC;gBACvC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvD,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,EAAE,CAAC,CAAC;gBACxC,CAAC;gBACD,cAAc,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEpD,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EACzB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EACnC,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,GAAG,EACL,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,OAAO,EACT,CAAC,CAAC,iBAAiB,EACnB,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1C,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EACpD,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EAC5D,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EACtC,CAAC,CAAC,cAAc,EAChB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1C,CAAC,CAAC,UAAU,EACZ,CAAC,CAAC,yBAAyB,EAC3B,CAAC,CACF,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAW;;;;;;;;iBAQT,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;OAmBnC,CAAC;YAEF,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IAEU,AAAN,KAAK,CAAC,uBAAuB,CAAC,IAIpC;;QACC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACxE,MAAM,KAAK,GAAgC,IAAI,CAAC,OAAO,CAAC,KAAK,CAC3D,CAAC,EACD,CAAC,GAAG,iBAAiB,CACtB,CAAC;YAEF,MAAM,cAAc,GAAkB,EAAE,CAAC;YACzC,MAAM,MAAM,GAAmB;gBAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACzB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;aACpC,CAAC;YACF,IAAI,UAAU,GAAW,CAAC,CAAC;YAE3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,cAAc,CAAC,IAAI,CACjB,KAAK,UAAU,EAAE,MAAM,UAAU,EAAE,MAAM,UAAU,EAAE,MAAM,UAAU,EAAE,eAAe,UAAU,EAAE,cAAc,UAAU,EAAE,eAAe,UAAU,EAAE,mBAAmB,UAAU,EAAE,MAAM,UAAU,EAAE,GAAG,CAC5M,CAAC;gBACF;;;;;;mBAMG;gBACH,MAAM,CAAC,IAAI,CACT,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,EACzB,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,EACjC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EACxB,CAAC,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;oBACjD,CAAC,CAAC,CAAC,CAAC,UAAU;oBACd,CAAC,CAAC,IAAI,EACR,CAAC,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;oBACnD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;oBACtC,CAAC,CAAC,IAAI,EACR,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS;oBACvD,CAAC,CAAC,CAAC,CAAC,aAAa;oBACjB,CAAC,CAAC,IAAI,EACR,CAAC,CAAC,UAAU,EACZ,gBAAgB,CAAC,MAAA,CAAC,CAAC,wBAAwB,mCAAI,IAAI,CAAC,EACpD,iBAAiB,CAAC,MAAA,CAAC,CAAC,qBAAqB,mCAAI,IAAI,CAAC,CACnD,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,GAAW;;;;;;;;;;uBAUH,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;OASzC,CAAC;YAEF,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;OAGG;IAEU,AAAN,KAAK,CAAC,qBAAqB,CAAC,IAGlC;QACC,MAAM,MAAM,GACV,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CACtC,yFAAyF,EACzF,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CACtD,CAAC;QAEJ,mEAAmE;QACnE,IAAI,QAAQ,GAAW,CAAC,CAAC;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,MAAM,GAAa,MAAyB,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,QAAQ,GAAG,MAAM,CAAC;YACpB,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,GAAG,2BAA2B,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CACT,sCAAsC,QAAQ,2BAA2B,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,oDAAoD,CACjK,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IAEU,AAAN,KAAK,CAAC,mBAAmB,CAAC,IAGhC;;QACC,MAAM,OAAO,GACX,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC;QAE/B,MAAM,CACJ,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EACjB,GAyBG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpB,OAAO,CAAC,KAAK,CACX;;;yBAGiB,EACjB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CACjE;YACD,OAAO,CAAC,KAAK,CACX;;;0BAGkB,EAClB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CACjE;YACD,OAAO,CAAC,KAAK,CACX;;;;;;;2GAOmG,EACnG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CACjE;YACD,OAAO,CAAC,KAAK;YACX;;;;;;;eAOG;YACH;;0GAEkG,EAClG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CACjE;YACD;;;;eAIG;YACH,OAAO,CAAC,KAAK,CACX;;;;;;;;;;;;;;iBAcS,qBAAqB,EAAE,EAChC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CACjE;YACD,OAAO,CAAC,KAAK,CACX;;;;;;;;;;;;;;;iBAeS,qBAAqB,EAAE,EAChC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CACjE;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,cAAc,GAAuC;YACzD,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;SACX,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAW,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;YAC7C,MAAM,KAAK,GAAW,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,CAAC;iBAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,CAAC;iBAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;YAChC,CAAC;iBAAM,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBACjC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,OAAO,IAAI,KAAK,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAQG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,cAAc,GAClB,QAAQ,CAAC,CAAA,MAAA,aAAa,CAAC,CAAC,CAAC,0CAAE,KAAK,KAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAEpD,MAAM,YAAY,GAAuB,eAAe,CAAC,GAAG,CAC1D,CAAC,GAKA,EAAE,EAAE;YACH,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;QACF,MAAM,aAAa,GAAwB,gBAAgB,CAAC,GAAG,CAC7D,CAAC,GAOA,EAAE,EAAE;YACH,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC,CACF,CAAC;QAEF,OAAO;YACL,YAAY;YACZ,cAAc;YACd,cAAc;YACd,eAAe,EAAE;gBACf,KAAK,EAAE,QAAQ,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;gBAC/C,QAAQ,EAAE,QAAQ,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;aACtD;YACD,kBAAkB,EAAE;gBAClB,cAAc,EAAE,QAAQ,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,KAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;gBACjE,YAAY,EAAE,QAAQ,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,KAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;gBAC7D,WAAW,EAAE,QAAQ,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC;aAC5D;YACD,YAAY;YACZ,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IAEU,AAAN,KAAK,CAAC,2BAA2B,CAAC,IAIxC;QAMC,MAAM,IAAI,GAKL,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAC3C;;;;;;;;;;;+BAWyB,EACzB;YACE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YACzB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;YACnC,IAAI,CAAC,UAAU;SAChB,CACF,CAAC;QAEF,MAAM,GAAG,GAGL,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE;gBAC9B,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;OAcG;IAEU,AAAN,KAAK,CAAC,uBAAuB,CAAC,IAKpC;QAMC,IAAI,IAKF,CAAC;QAEH,IAAI,IAAI,CAAC,SAAS,KAAK,YAAY,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpE,MAAM,MAAM,GACV,IAAI,CAAC,SAAS,KAAK,YAAY;gBAC7B,CAAC,CAAC,0BAA0B;gBAC5B,CAAC,CAAC,uBAAuB,CAAC;YAC9B,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAC7C;cACM,MAAM;;;;;;;;;;;kBAWF,MAAM;qBACH,MAAM,GAAG,EACtB;gBACE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACzB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;gBACnC,IAAI,CAAC,UAAU;aAChB,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAC7C;;;;;;;;;;;;;;;mCAe2B,EAC3B;gBACE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;gBACzB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;gBACnC,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,SAAS;aACf,CACF,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAGL,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE;gBACrB,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,qBAAqB,CAAC,WAAkB;QAC7C,MAAM,OAAO,GAAW,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACxD,OAAO,aAAa,CAAC,gBAAgB,CACnC,WAAW,IAAI,aAAa,CAAC,cAAc,EAAE,EAC7C,CAAC,OAAO,CACT,CAAC;IACJ,CAAC;IAEM,wBAAwB;QAC7B,MAAM,GAAG,GAAuB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3E,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,MAAM,GAAW,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;gBAClC,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAlmBc;IADZ,WAAW,EAAE;;;;yCA+Fb;AAaY;IADZ,WAAW,EAAE;;;;sDA4Eb;AAOY;IADZ,WAAW,EAAE;;;;oDA2Bb;AAQY;IADZ,WAAW,EAAE;;;;kDA4Mb;AASY;IADZ,WAAW,EAAE;;;;0DAgDb;AAkBY;IADZ,WAAW,EAAE;;;;sDAuFb;AA0BH,eAAe,IAAI,OAAO,EAAE,CAAC"}
@@ -9,13 +9,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import QueryHelper from "../Types/Database/QueryHelper";
11
11
  import DatabaseService from "./DatabaseService";
12
+ import ServiceLevelObjectiveMonitorRuleEngineService from "./ServiceLevelObjectiveMonitorRuleEngineService";
13
+ import ServiceLevelObjectiveService from "./ServiceLevelObjectiveService";
14
+ import StatusPageMonitorRuleEngineService from "./StatusPageMonitorRuleEngineService";
15
+ import StatusPageMonitorRuleService from "./StatusPageMonitorRuleService";
12
16
  import BadDataException from "../../Types/Exception/BadDataException";
17
+ import LIMIT_MAX from "../../Types/Database/LimitMax";
13
18
  import ObjectID from "../../Types/ObjectID";
14
19
  import Color from "../../Types/Color";
15
20
  import { BrightColors } from "../../Types/BrandColors";
16
21
  import GlobalCache from "../Infrastructure/GlobalCache";
17
22
  import Model from "../../Models/DatabaseModels/Label";
18
23
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
24
+ import logger from "../Utils/Logger";
19
25
  const AUTO_LABEL_ID_CACHE_NAMESPACE = "auto-label-id";
20
26
  const AUTO_LABEL_ID_CACHE_TTL_SECONDS = 24 * 60 * 60;
21
27
  export class Service extends DatabaseService {
@@ -47,6 +53,115 @@ export class Service extends DatabaseService {
47
53
  }
48
54
  return Promise.resolve({ createBy, carryForward: null });
49
55
  }
56
+ /*
57
+ * Deleting a label cascades its join rows away at the database level, so no
58
+ * service hook ever fires for the SLO label rules or status page monitor
59
+ * rules that referenced it. Those would keep the monitors the rule attached,
60
+ * with nothing left to explain why. Note the ids down while the label still
61
+ * exists, and re-run the (now smaller) rules once it is gone.
62
+ */
63
+ async onBeforeDelete(deleteBy) {
64
+ let serviceLevelObjectiveIds = [];
65
+ let statusPageMonitorRuleIds = [];
66
+ try {
67
+ const labels = await this.findBy({
68
+ query: deleteBy.query,
69
+ select: {
70
+ _id: true,
71
+ },
72
+ limit: LIMIT_MAX,
73
+ skip: 0,
74
+ props: {
75
+ isRoot: true,
76
+ },
77
+ });
78
+ const labelIds = labels
79
+ .map((label) => {
80
+ return label.id;
81
+ })
82
+ .filter((id) => {
83
+ return Boolean(id);
84
+ });
85
+ if (labelIds.length > 0) {
86
+ const slos = await ServiceLevelObjectiveService.findBy({
87
+ query: {
88
+ monitorLabels: labelIds,
89
+ },
90
+ select: {
91
+ _id: true,
92
+ },
93
+ limit: LIMIT_MAX,
94
+ skip: 0,
95
+ props: {
96
+ isRoot: true,
97
+ },
98
+ });
99
+ serviceLevelObjectiveIds = slos
100
+ .map((slo) => {
101
+ return slo.id;
102
+ })
103
+ .filter((id) => {
104
+ return Boolean(id);
105
+ });
106
+ const statusPageMonitorRules = await StatusPageMonitorRuleService.findBy({
107
+ query: {
108
+ monitorLabels: labelIds,
109
+ },
110
+ select: {
111
+ _id: true,
112
+ },
113
+ limit: LIMIT_MAX,
114
+ skip: 0,
115
+ props: {
116
+ isRoot: true,
117
+ },
118
+ });
119
+ statusPageMonitorRuleIds = statusPageMonitorRules
120
+ .map((rule) => {
121
+ return rule.id;
122
+ })
123
+ .filter((id) => {
124
+ return Boolean(id);
125
+ });
126
+ }
127
+ }
128
+ catch (err) {
129
+ logger.error(`Error collecting label rules affected by a label delete: ${err}`);
130
+ }
131
+ return {
132
+ deleteBy,
133
+ carryForward: {
134
+ serviceLevelObjectiveIds: serviceLevelObjectiveIds,
135
+ statusPageMonitorRuleIds: statusPageMonitorRuleIds,
136
+ },
137
+ };
138
+ }
139
+ async onDeleteSuccess(onDelete, _itemIdsBeforeDelete) {
140
+ const carryForward = onDelete.carryForward;
141
+ const serviceLevelObjectiveIds = (carryForward === null || carryForward === void 0 ? void 0 : carryForward.serviceLevelObjectiveIds) || [];
142
+ for (const serviceLevelObjectiveId of serviceLevelObjectiveIds) {
143
+ try {
144
+ await ServiceLevelObjectiveMonitorRuleEngineService.syncMonitorsForSlo({
145
+ serviceLevelObjectiveId: serviceLevelObjectiveId,
146
+ });
147
+ }
148
+ catch (err) {
149
+ logger.error(`Error re-applying the monitor label rule for SLO ${serviceLevelObjectiveId.toString()} after a label delete: ${err}`);
150
+ }
151
+ }
152
+ const statusPageMonitorRuleIds = (carryForward === null || carryForward === void 0 ? void 0 : carryForward.statusPageMonitorRuleIds) || [];
153
+ for (const statusPageMonitorRuleId of statusPageMonitorRuleIds) {
154
+ try {
155
+ await StatusPageMonitorRuleEngineService.syncResourcesForRule({
156
+ statusPageMonitorRuleId: statusPageMonitorRuleId,
157
+ });
158
+ }
159
+ catch (err) {
160
+ logger.error(`Error re-applying status page monitor rule ${statusPageMonitorRuleId.toString()} after a label delete: ${err}`);
161
+ }
162
+ }
163
+ return onDelete;
164
+ }
50
165
  /**
51
166
  * Find existing labels by name (case-insensitive) or auto-create
52
167
  * them, returning the ObjectIDs in the same order as the input.
@@ -148,6 +263,18 @@ __decorate([
148
263
  __metadata("design:paramtypes", [Object]),
149
264
  __metadata("design:returntype", Promise)
150
265
  ], Service.prototype, "onBeforeCreate", null);
266
+ __decorate([
267
+ CaptureSpan(),
268
+ __metadata("design:type", Function),
269
+ __metadata("design:paramtypes", [Object]),
270
+ __metadata("design:returntype", Promise)
271
+ ], Service.prototype, "onBeforeDelete", null);
272
+ __decorate([
273
+ CaptureSpan(),
274
+ __metadata("design:type", Function),
275
+ __metadata("design:paramtypes", [Object, Array]),
276
+ __metadata("design:returntype", Promise)
277
+ ], Service.prototype, "onDeleteSuccess", null);
151
278
  __decorate([
152
279
  CaptureSpan(),
153
280
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"LabelService.js","sourceRoot":"","sources":["../../../../Server/Services/LabelService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LabelService.js","sourceRoot":"","sources":["../../../../Server/Services/LabelService.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,83 @@
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
+ };
1
10
  import DatabaseService from "./DatabaseService";
2
11
  import Model from "../../Models/DatabaseModels/MetricType";
12
+ import BadDataException from "../../Types/Exception/BadDataException";
13
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
3
14
  export class Service extends DatabaseService {
4
15
  constructor() {
5
16
  super(Model);
6
17
  }
18
+ /*
19
+ * Additively associate services with a metric type, in ONE statement.
20
+ *
21
+ * This replaces routing the association through `updateOneById` with the
22
+ * whole `services` array in the payload. That looked innocuous and was not:
23
+ * `services` is a `TableColumnType.EntityArray`, and its mere PRESENCE as a
24
+ * key flips `hasRelationUpdates` in DatabaseService, which routes the write
25
+ * to `getRepository().save()` — a real BEGIN/COMMIT that reloads the entity,
26
+ * loads the relation ids, bumps `version`, and DELETEs then re-INSERTs
27
+ * junction rows, holding the MetricType row's write lock across every one of
28
+ * those round trips. On the ingest path, where this runs per metric name per
29
+ * batch with no backpressure, it was the only multi-round-trip lock hold in
30
+ * the pipeline.
31
+ *
32
+ * The whole-array write was also silently LOSING data. `save()` diffs the
33
+ * array it is given against what is currently in the database and deletes
34
+ * anything missing — but each ingest worker only knows the services in ITS
35
+ * batch. Two workers with different batches therefore deleted each other's
36
+ * associations and re-inserted them on the next batch: permanent junction
37
+ * churn, and real service-to-metric links disappearing from the UI in
38
+ * between. Additive insert makes that impossible to express.
39
+ *
40
+ * ON CONFLICT DO NOTHING is well-defined here: the junction's primary key is
41
+ * exactly (metricTypeId, serviceId), so a concurrent writer adding the same
42
+ * association is a no-op rather than a unique violation.
43
+ */
44
+ async attachServices(data) {
45
+ var _a, _b, _c, _d, _e;
46
+ if (!data.metricTypeId) {
47
+ throw new BadDataException("metricTypeId is required");
48
+ }
49
+ if (!data.serviceIds || data.serviceIds.length === 0) {
50
+ return;
51
+ }
52
+ /*
53
+ * Identifiers come from entity metadata, never from the caller, and every
54
+ * value is bound as a parameter — the same rule the other raw-SQL paths in
55
+ * DatabaseService follow.
56
+ */
57
+ const relation = this.getRepository().metadata.findRelationWithPropertyPath("services");
58
+ const junction = (_a = relation === null || relation === void 0 ? void 0 : relation.junctionEntityMetadata) === null || _a === void 0 ? void 0 : _a.tableName;
59
+ const metricTypeColumn = (_c = (_b = relation === null || relation === void 0 ? void 0 : relation.junctionEntityMetadata) === null || _b === void 0 ? void 0 : _b.columns[0]) === null || _c === void 0 ? void 0 : _c.databaseName;
60
+ const serviceColumn = (_e = (_d = relation === null || relation === void 0 ? void 0 : relation.junctionEntityMetadata) === null || _d === void 0 ? void 0 : _d.columns[1]) === null || _e === void 0 ? void 0 : _e.databaseName;
61
+ if (!junction || !metricTypeColumn || !serviceColumn) {
62
+ throw new BadDataException("MetricTypeService.attachServices: the services relation has no junction metadata");
63
+ }
64
+ /*
65
+ * Deduplicate and SORT. Concurrent statements that insert overlapping sets
66
+ * acquire their row locks in the same order this way, which is what keeps
67
+ * two workers associating the same services from deadlocking each other.
68
+ */
69
+ const serviceIds = Array.from(new Set(data.serviceIds.map((id) => {
70
+ return id.toString();
71
+ }))).sort();
72
+ await this.getRepository().manager.query(`INSERT INTO "${junction}" ("${metricTypeColumn}", "${serviceColumn}") ` +
73
+ `SELECT $1, unnest($2::uuid[]) ON CONFLICT DO NOTHING`, [data.metricTypeId.toString(), serviceIds]);
74
+ }
7
75
  }
76
+ __decorate([
77
+ CaptureSpan(),
78
+ __metadata("design:type", Function),
79
+ __metadata("design:paramtypes", [Object]),
80
+ __metadata("design:returntype", Promise)
81
+ ], Service.prototype, "attachServices", null);
8
82
  export default new Service();
9
83
  //# sourceMappingURL=MetricTypeService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricTypeService.js","sourceRoot":"","sources":["../../../../Server/Services/MetricTypeService.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,wCAAwC,CAAC;AAE3D,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF;AAED,eAAe,IAAI,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"MetricTypeService.js","sourceRoot":"","sources":["../../../../Server/Services/MetricTypeService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,wCAAwC,CAAC;AAE3D,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAGzD,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IAEU,AAAN,KAAK,CAAC,cAAc,CAAC,IAG3B;;QACC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QAED;;;;WAIG;QACH,MAAM,QAAQ,GACZ,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;QAEzE,MAAM,QAAQ,GACZ,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,sBAAsB,0CAAE,SAAS,CAAC;QAC9C,MAAM,gBAAgB,GACpB,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,sBAAsB,0CAAE,OAAO,CAAC,CAAC,CAAC,0CAAE,YAAY,CAAC;QAC7D,MAAM,aAAa,GACjB,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,sBAAsB,0CAAE,OAAO,CAAC,CAAC,CAAC,0CAAE,YAAY,CAAC;QAE7D,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrD,MAAM,IAAI,gBAAgB,CACxB,kFAAkF,CACnF,CAAC;QACJ,CAAC;QAED;;;;WAIG;QACH,MAAM,UAAU,GAAkB,KAAK,CAAC,IAAI,CAC1C,IAAI,GAAG,CACL,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAY,EAAE,EAAE;YACnC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CACH,CACF,CAAC,IAAI,EAAE,CAAC;QAET,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CACtC,gBAAgB,QAAQ,OAAO,gBAAgB,OAAO,aAAa,KAAK;YACtE,sDAAsD,EACxD,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,CAC3C,CAAC;IACJ,CAAC;CACF;AApDc;IADZ,WAAW,EAAE;;;;6CAoDb;AAGH,eAAe,IAAI,OAAO,EAAE,CAAC"}
@@ -18,6 +18,8 @@ import MonitorOwnerTeamService from "./MonitorOwnerTeamService";
18
18
  import MonitorOwnerUserService from "./MonitorOwnerUserService";
19
19
  import MonitorProbeService from "./MonitorProbeService";
20
20
  import MonitorStatusService from "./MonitorStatusService";
21
+ import ServiceLevelObjectiveMonitorRuleEngineService from "./ServiceLevelObjectiveMonitorRuleEngineService";
22
+ import StatusPageMonitorRuleEngineService from "./StatusPageMonitorRuleEngineService";
21
23
  import NetworkSiteService from "./NetworkSiteService";
22
24
  import MonitorStatusTimelineService, { MONITOR_STATUS_SAME_AS_PREVIOUS_ERROR_MESSAGE, MONITOR_STATUS_TIMELINE_LOCK_ERROR_MESSAGE, } from "./MonitorStatusTimelineService";
23
25
  import ServerException from "../../Types/Exception/ServerException";
@@ -301,21 +303,44 @@ export class Service extends DatabaseService {
301
303
  */
302
304
  const currentMonitorStatusId = resolveReferenceId(updateBy.data.currentMonitorStatusId) ||
303
305
  resolveReferenceId(updateBy.data.currentMonitorStatus);
304
- if (updateBy.data.monitorSteps || currentMonitorStatusId) {
306
+ if (updateBy.data.monitorSteps) {
305
307
  /*
306
- * Root/API updates do not always carry a tenantId, so fall back to the
307
- * project of each monitor the query actually matches.
308
+ * Validated per matched monitor rather than per distinct project, because
309
+ * the check needs that monitor's CURRENT monitorSteps: a reference id it
310
+ * already holds is exempt from the existence check, so an update never
311
+ * refuses a monitor that was stored broken before the guard existed. See
312
+ * MonitorStepsProjectValidator.
308
313
  */
314
+ const monitors = await this.findBy({
315
+ query: updateBy.query,
316
+ select: {
317
+ projectId: true,
318
+ monitorSteps: true,
319
+ },
320
+ limit: LIMIT_MAX,
321
+ skip: 0,
322
+ props: {
323
+ isRoot: true,
324
+ ignoreHooks: true,
325
+ },
326
+ });
327
+ for (const monitor of monitors) {
328
+ await MonitorStepsProjectValidator.validateMonitorStepsBelongToProject({
329
+ monitorSteps: updateBy.data.monitorSteps,
330
+ /*
331
+ * Root/API updates do not always carry a tenantId, so fall back to
332
+ * the project of the monitor being updated.
333
+ */
334
+ projectId: updateBy.props.tenantId || monitor.projectId,
335
+ alreadyStoredMonitorSteps: monitor.monitorSteps,
336
+ });
337
+ }
338
+ }
339
+ if (currentMonitorStatusId) {
309
340
  const projectIds = updateBy.props.tenantId
310
341
  ? [updateBy.props.tenantId]
311
342
  : await this.getProjectIdsForUpdateQuery(updateBy);
312
343
  for (const projectId of projectIds) {
313
- if (updateBy.data.monitorSteps) {
314
- await MonitorStepsProjectValidator.validateMonitorStepsBelongToProject({
315
- monitorSteps: updateBy.data.monitorSteps,
316
- projectId: projectId,
317
- });
318
- }
319
344
  await ProjectScopedReferenceValidator.validateReferencesBelongToProject({
320
345
  projectId: projectId,
321
346
  subject: "monitor",
@@ -457,6 +482,56 @@ export class Service extends DatabaseService {
457
482
  }
458
483
  }
459
484
  }
485
+ /*
486
+ * Labels decide SLO membership, so a label added or removed here can pull
487
+ * this monitor into an SLO's error budget or push it out of one. Keyed on
488
+ * `!== undefined` rather than on a non-empty array: clearing every label
489
+ * arrives as `[]`, and that is precisely the edit that should detach the
490
+ * monitor from every rule-driven SLO.
491
+ */
492
+ if (onUpdate.updateBy.data.labels !== undefined &&
493
+ updatedItemIds.length > 0) {
494
+ for (const monitorId of updatedItemIds) {
495
+ try {
496
+ await ServiceLevelObjectiveMonitorRuleEngineService.syncSlosForMonitor({
497
+ monitorId: monitorId,
498
+ projectId: onUpdate.updateBy.props.tenantId,
499
+ });
500
+ }
501
+ catch (error) {
502
+ logger.error("Syncing SLO label rules failed in MonitorService.onUpdateSuccess", {
503
+ monitorId: monitorId === null || monitorId === void 0 ? void 0 : monitorId.toString(),
504
+ });
505
+ logger.error(error);
506
+ }
507
+ }
508
+ }
509
+ /*
510
+ * Status page monitor rules match on labels, name and description, so an
511
+ * edit to any of the three can pull this monitor onto a status page or
512
+ * push it off one. Keyed on `!== undefined` for the same reason as the SLO
513
+ * block above: clearing every label arrives as `[]`, and that is exactly
514
+ * the edit that should detach the monitor from every label-driven rule.
515
+ */
516
+ if ((onUpdate.updateBy.data.labels !== undefined ||
517
+ onUpdate.updateBy.data.name !== undefined ||
518
+ onUpdate.updateBy.data.description !== undefined) &&
519
+ updatedItemIds.length > 0) {
520
+ for (const monitorId of updatedItemIds) {
521
+ try {
522
+ await StatusPageMonitorRuleEngineService.syncRulesForMonitor({
523
+ monitorId: monitorId,
524
+ projectId: onUpdate.updateBy.props.tenantId,
525
+ });
526
+ }
527
+ catch (error) {
528
+ logger.error("Syncing status page monitor rules failed in MonitorService.onUpdateSuccess", {
529
+ monitorId: monitorId === null || monitorId === void 0 ? void 0 : monitorId.toString(),
530
+ });
531
+ logger.error(error);
532
+ }
533
+ }
534
+ }
460
535
  return onUpdate;
461
536
  }
462
537
  getEnabledMonitorQuery() {
@@ -745,6 +820,50 @@ ${((_d = createdItem.description) === null || _d === void 0 ? void 0 : _d.trim()
745
820
  return Promise.resolve();
746
821
  }
747
822
  return Promise.resolve();
823
+ })
824
+ .then(async () => {
825
+ var _a, _b;
826
+ /*
827
+ * Runs after the label rules above so a monitor created with no labels
828
+ * of its own, but given some by a MonitorLabelRule, still lands in the
829
+ * SLOs those labels imply.
830
+ */
831
+ try {
832
+ await ServiceLevelObjectiveMonitorRuleEngineService.syncSlosForMonitor({
833
+ monitorId: createdItem.id,
834
+ projectId: createdItem.projectId,
835
+ });
836
+ }
837
+ catch (error) {
838
+ logger.error("Syncing SLO label rules failed in MonitorService.onCreateSuccess", {
839
+ projectId: (_a = createdItem.projectId) === null || _a === void 0 ? void 0 : _a.toString(),
840
+ monitorId: (_b = createdItem.id) === null || _b === void 0 ? void 0 : _b.toString(),
841
+ });
842
+ logger.error(error);
843
+ }
844
+ return Promise.resolve();
845
+ })
846
+ .then(async () => {
847
+ var _a, _b;
848
+ /*
849
+ * Also runs after the label rules above, so a monitor that only earns
850
+ * its labels from a MonitorLabelRule still lands on the status pages
851
+ * those labels imply.
852
+ */
853
+ try {
854
+ await StatusPageMonitorRuleEngineService.syncRulesForMonitor({
855
+ monitorId: createdItem.id,
856
+ projectId: createdItem.projectId,
857
+ });
858
+ }
859
+ catch (error) {
860
+ logger.error("Syncing status page monitor rules failed in MonitorService.onCreateSuccess", {
861
+ projectId: (_a = createdItem.projectId) === null || _a === void 0 ? void 0 : _a.toString(),
862
+ monitorId: (_b = createdItem.id) === null || _b === void 0 ? void 0 : _b.toString(),
863
+ });
864
+ logger.error(error);
865
+ }
866
+ return Promise.resolve();
748
867
  })
749
868
  .then(async () => {
750
869
  var _a, _b;