@oneuptime/common 12.0.2 → 12.0.4

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 (384) hide show
  1. package/Models/DatabaseModels/CephCluster.ts +14 -0
  2. package/Models/DatabaseModels/CodeRepository.ts +14 -6
  3. package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +14 -0
  4. package/Models/DatabaseModels/DockerHost.ts +14 -0
  5. package/Models/DatabaseModels/GlobalOidcProject.ts +18 -0
  6. package/Models/DatabaseModels/GlobalSsoProject.ts +18 -0
  7. package/Models/DatabaseModels/Index.ts +2 -0
  8. package/Models/DatabaseModels/IoTFleet.ts +14 -0
  9. package/Models/DatabaseModels/KubernetesCluster.ts +14 -0
  10. package/Models/DatabaseModels/LogDropFilter.ts +9 -20
  11. package/Models/DatabaseModels/NetworkDevice.ts +14 -0
  12. package/Models/DatabaseModels/NetworkInterface.ts +18 -0
  13. package/Models/DatabaseModels/Project.ts +16 -2
  14. package/Models/DatabaseModels/ProxmoxCluster.ts +14 -0
  15. package/Models/DatabaseModels/Service.ts +30 -0
  16. package/Models/DatabaseModels/StatusPageMonitorRule.ts +911 -0
  17. package/Models/DatabaseModels/StatusPagePrivateUser.ts +30 -0
  18. package/Models/DatabaseModels/StatusPageResource.ts +73 -0
  19. package/Models/DatabaseModels/TraceDropFilter.ts +9 -20
  20. package/Models/DatabaseModels/User.ts +30 -0
  21. package/Server/API/AIAgentDataAPI.ts +31 -0
  22. package/Server/API/BaseAPI.ts +13 -2
  23. package/Server/API/DashboardAPI.ts +458 -12
  24. package/Server/API/GitHubAPI.ts +119 -283
  25. package/Server/API/UserAPI.ts +263 -1
  26. package/Server/EnvironmentConfig.ts +38 -4
  27. package/Server/Infrastructure/GlobalCache.ts +152 -0
  28. package/Server/Infrastructure/Postgres/DataSourceOptions.ts +16 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.ts +123 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.ts +21 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.ts +68 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.ts +100 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.ts +214 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.ts +69 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  36. package/Server/Services/AlertStateTimelineService.ts +20 -0
  37. package/Server/Services/AnalyticsDatabaseService.ts +72 -1
  38. package/Server/Services/CephClusterService.ts +26 -86
  39. package/Server/Services/CloudResourceService.ts +23 -83
  40. package/Server/Services/CodeRepositoryService.ts +105 -2
  41. package/Server/Services/DatabaseService.ts +296 -2
  42. package/Server/Services/DockerHostService.ts +19 -79
  43. package/Server/Services/DockerSwarmClusterService.ts +27 -88
  44. package/Server/Services/HostService.ts +46 -99
  45. package/Server/Services/IncidentStateTimelineService.ts +20 -0
  46. package/Server/Services/Index.ts +2 -0
  47. package/Server/Services/IoTFleetService.ts +19 -79
  48. package/Server/Services/KubernetesClusterService.ts +17 -78
  49. package/Server/Services/LabelService.ts +57 -10
  50. package/Server/Services/MetricTypeService.ts +84 -0
  51. package/Server/Services/MonitorService.ts +89 -14
  52. package/Server/Services/MonitorStatusTimelineService.ts +29 -0
  53. package/Server/Services/MonitorTemplateService.ts +65 -0
  54. package/Server/Services/OpenTelemetryIngestService.ts +230 -26
  55. package/Server/Services/PodmanHostService.ts +19 -79
  56. package/Server/Services/ProxmoxClusterService.ts +23 -83
  57. package/Server/Services/RumApplicationService.ts +19 -80
  58. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +21 -0
  59. package/Server/Services/ServerlessFunctionService.ts +24 -85
  60. package/Server/Services/ServiceService.ts +299 -73
  61. package/Server/Services/StatusPageMonitorRuleEngineService.ts +752 -0
  62. package/Server/Services/StatusPageMonitorRuleService.ts +471 -0
  63. package/Server/Services/TelemetryEntityRelationshipService.ts +1 -0
  64. package/Server/Services/TelemetryEntityService.ts +1 -0
  65. package/Server/Services/UserService.ts +184 -0
  66. package/Server/Utils/AI/Toolbox/CodeTools.ts +45 -4
  67. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +13 -0
  68. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +157 -4
  69. package/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.ts +130 -0
  70. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +170 -39
  71. package/Server/Utils/Monitor/MonitorResource.ts +63 -36
  72. package/Server/Utils/Monitor/MonitorStatusTimeline.ts +36 -0
  73. package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +148 -127
  74. package/Server/Utils/Monitor/MonitorStepsReferenceExtractor.ts +434 -0
  75. package/Server/Utils/PasswordHash.ts +306 -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/OverviewCustomFields.test.tsx +333 -0
  82. package/Tests/App/Dashboard/UserCustomFields.test.tsx +392 -0
  83. package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
  84. package/Tests/Models/DatabaseModels/ColumnTransformerInvariants.test.ts +306 -0
  85. package/Tests/Models/DatabaseModels/NumberColumnDeserialization.test.ts +333 -0
  86. package/Tests/Models/DatabaseModels/StatusPageMonitorRuleModel.test.ts +190 -0
  87. package/Tests/Server/API/AIAgentDataRepositoryToken.test.ts +381 -0
  88. package/Tests/Server/API/DashboardPublicAttributeValuesAPI.test.ts +943 -0
  89. package/Tests/Server/API/DashboardPublicMetricsAggregateAPI.test.ts +1296 -0
  90. package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +26 -0
  91. package/Tests/Server/API/DashboardPublicTemplatePayloads.test.ts +598 -0
  92. package/Tests/Server/API/GitHubAppInstallationBindingAPI.test.ts +539 -0
  93. package/Tests/Server/API/Helpers.ts +6 -1
  94. package/Tests/Server/API/UserProjectsAPI.test.ts +852 -0
  95. package/Tests/Server/Infrastructure/GlobalCache.test.ts +354 -0
  96. package/Tests/Server/Infrastructure/PostgresLockTimeoutOptions.test.ts +181 -0
  97. package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +215 -0
  98. package/Tests/Server/Services/AddPerUserPasswordSaltMigration.test.ts +178 -0
  99. package/Tests/Server/Services/AnalyticsDatabasePaginationStability.test.ts +582 -0
  100. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +5 -0
  101. package/Tests/Server/Services/CodeRepositoryInstallationBinding.test.ts +305 -0
  102. package/Tests/Server/Services/CodeRepositoryResolutionBinding.test.ts +147 -0
  103. package/Tests/Server/Services/DatabaseServicePerUserPasswordSalt.test.ts +870 -0
  104. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlocked.test.ts +342 -0
  105. package/Tests/Server/Services/DropFilterSaveValidation.test.ts +245 -0
  106. package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +163 -15
  107. package/Tests/Server/Services/MetricTypeAttachServices.test.ts +222 -0
  108. package/Tests/Server/Services/MissingReferenceWriteGuard.test.ts +614 -0
  109. package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +23 -0
  110. package/Tests/Server/Services/OpenTelemetryServiceResolutionCache.test.ts +568 -0
  111. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +305 -56
  112. package/Tests/Server/Services/RestoreDroppedUniqueIndexesMigration.test.ts +386 -0
  113. package/Tests/Server/Services/RestoreServiceLowerNameIndexMigration.test.ts +240 -0
  114. package/Tests/Server/Services/ServiceUpdateLastSeenSplitGates.test.ts +705 -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/UserServiceFirstMasterAdminElection.test.ts +885 -0
  119. package/Tests/Server/Services/WidenHashedStringColumnsForScryptMigration.test.ts +220 -0
  120. package/Tests/Server/Utils/AI/CodeTools.test.ts +47 -1
  121. package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +10 -0
  122. package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +267 -0
  123. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +120 -0
  124. package/Tests/Server/Utils/CodeRepository/GitHubInstallationBinding.test.ts +292 -0
  125. package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +260 -13
  126. package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +302 -0
  127. package/Tests/Server/Utils/GitHubInstallationOwnershipVerification.test.ts +340 -0
  128. package/Tests/Server/Utils/GitHubWebhookAndTreeCacheIsolation.test.ts +250 -0
  129. package/Tests/Server/Utils/MetricTypeIndexConvergence.test.ts +598 -0
  130. package/Tests/Server/Utils/Monitor/MonitorStatusTimelineUnusableStatus.test.ts +154 -0
  131. package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +638 -92
  132. package/Tests/Server/Utils/Monitor/MonitorStepsReferenceExtractor.test.ts +724 -0
  133. package/Tests/Server/Utils/PasswordHash.test.ts +555 -0
  134. package/Tests/Server/Utils/SingleFlight.test.ts +221 -0
  135. package/Tests/Types/Dashboard/NetworkDashboardTemplate.test.ts +793 -0
  136. package/Tests/Types/Database/BigIntColumnTransformer.test.ts +147 -0
  137. package/Tests/Types/Database/ColumnLength.test.ts +7 -1
  138. package/Tests/Types/Database/DatabasePropertyTransformer.test.ts +140 -0
  139. package/Tests/Types/Database/NumericColumnValue.test.ts +127 -0
  140. package/Tests/Types/Decimal.test.ts +37 -0
  141. package/Tests/Types/HashedStringPerUserSalt.test.ts +476 -0
  142. package/Tests/Types/Monitor/DockerAlertTemplates.test.ts +293 -0
  143. package/Tests/Types/Monitor/HostAlertTemplates.test.ts +249 -0
  144. package/Tests/Types/Monitor/IotAlertTemplates.test.ts +320 -0
  145. package/Tests/Types/Monitor/PodmanAlertTemplates.test.ts +271 -0
  146. package/Tests/Types/Monitor/SnmpVersionParsing.test.ts +152 -0
  147. package/Tests/Types/Port.test.ts +38 -0
  148. package/Tests/UI/Components/CustomFields/CustomFieldsDetail.test.tsx +696 -0
  149. package/Tests/UI/Components/LogsHistogram.test.tsx +276 -0
  150. package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +489 -0
  151. package/Tests/UI/Components/UseLogsHistogram.test.tsx +500 -0
  152. package/Tests/UI/Utils/UserProjectsModelAPI.test.ts +714 -0
  153. package/Tests/Utils/Dashboard/Components/DashboardComponentsUtil.test.ts +120 -0
  154. package/Tests/Utils/Dashboard/DashboardNetworkMapComponent.test.ts +327 -0
  155. package/Tests/Utils/TeamMembersByProject.test.ts +655 -0
  156. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  157. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  158. package/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts +40 -0
  159. package/Types/Dashboard/DashboardTemplates.ts +397 -0
  160. package/Types/Database/BigIntColumnTransformer.ts +74 -0
  161. package/Types/Database/ColumnLength.ts +9 -1
  162. package/Types/Database/DatabaseProperty.ts +26 -0
  163. package/Types/Database/NumericColumnValue.ts +128 -0
  164. package/Types/Database/TableColumn.ts +11 -0
  165. package/Types/Database/UnsynchronizedIndex.ts +48 -0
  166. package/Types/Decimal.ts +16 -4
  167. package/Types/HashedString.ts +139 -4
  168. package/Types/Permission.ts +48 -0
  169. package/Types/Port.ts +16 -4
  170. package/UI/Components/CustomFields/CustomFieldsDetail.tsx +85 -11
  171. package/UI/Components/LogsViewer/useLiveLogsRefresh.ts +86 -0
  172. package/UI/Components/LogsViewer/useLogsHistogram.ts +113 -0
  173. package/UI/Components/Navbar/NavBar.tsx +12 -2
  174. package/UI/Components/Navbar/NavBarMenuModal.tsx +19 -7
  175. package/UI/Utils/ModelAPI/UserProjectsModelAPI.ts +257 -0
  176. package/Utils/Dashboard/Components/DashboardNetworkMapComponent.ts +136 -0
  177. package/Utils/Dashboard/Components/Index.ts +7 -0
  178. package/Utils/TeamMembersByProject.ts +237 -0
  179. package/build/dist/Models/DatabaseModels/CephCluster.js +16 -1
  180. package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -1
  181. package/build/dist/Models/DatabaseModels/CodeRepository.js +14 -6
  182. package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
  183. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +12 -0
  184. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  185. package/build/dist/Models/DatabaseModels/DockerHost.js +16 -1
  186. package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
  187. package/build/dist/Models/DatabaseModels/GlobalOidcProject.js +16 -1
  188. package/build/dist/Models/DatabaseModels/GlobalOidcProject.js.map +1 -1
  189. package/build/dist/Models/DatabaseModels/GlobalSsoProject.js +16 -1
  190. package/build/dist/Models/DatabaseModels/GlobalSsoProject.js.map +1 -1
  191. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  192. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  193. package/build/dist/Models/DatabaseModels/IoTFleet.js +16 -1
  194. package/build/dist/Models/DatabaseModels/IoTFleet.js.map +1 -1
  195. package/build/dist/Models/DatabaseModels/KubernetesCluster.js +16 -1
  196. package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
  197. package/build/dist/Models/DatabaseModels/LogDropFilter.js +9 -20
  198. package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
  199. package/build/dist/Models/DatabaseModels/NetworkDevice.js +16 -1
  200. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  201. package/build/dist/Models/DatabaseModels/NetworkInterface.js +16 -1
  202. package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
  203. package/build/dist/Models/DatabaseModels/Project.js +16 -2
  204. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  205. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +16 -1
  206. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -1
  207. package/build/dist/Models/DatabaseModels/Service.js +28 -1
  208. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  209. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js +925 -0
  210. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js.map +1 -0
  211. package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +32 -0
  212. package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js.map +1 -1
  213. package/build/dist/Models/DatabaseModels/StatusPageResource.js +72 -0
  214. package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
  215. package/build/dist/Models/DatabaseModels/TraceDropFilter.js +9 -20
  216. package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
  217. package/build/dist/Models/DatabaseModels/User.js +32 -0
  218. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  219. package/build/dist/Server/API/AIAgentDataAPI.js +21 -2
  220. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  221. package/build/dist/Server/API/BaseAPI.js +11 -1
  222. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  223. package/build/dist/Server/API/DashboardAPI.js +343 -10
  224. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  225. package/build/dist/Server/API/GitHubAPI.js +94 -167
  226. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  227. package/build/dist/Server/API/UserAPI.js +187 -2
  228. package/build/dist/Server/API/UserAPI.js.map +1 -1
  229. package/build/dist/Server/EnvironmentConfig.js +34 -4
  230. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  231. package/build/dist/Server/Infrastructure/GlobalCache.js +120 -0
  232. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  233. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +5 -3
  234. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
  235. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js +48 -0
  236. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js.map +1 -0
  237. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.js +14 -0
  238. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.js.map +1 -0
  239. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.js +59 -0
  240. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.js.map +1 -0
  241. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.js +93 -0
  242. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.js.map +1 -0
  243. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.js +101 -0
  244. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.js.map +1 -0
  245. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.js +66 -0
  246. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.js.map +1 -0
  247. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  248. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  249. package/build/dist/Server/Services/AlertStateTimelineService.js +19 -0
  250. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  251. package/build/dist/Server/Services/AnalyticsDatabaseService.js +57 -1
  252. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  253. package/build/dist/Server/Services/CephClusterService.js +26 -76
  254. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  255. package/build/dist/Server/Services/CloudResourceService.js +23 -73
  256. package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
  257. package/build/dist/Server/Services/CodeRepositoryService.js +90 -2
  258. package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -1
  259. package/build/dist/Server/Services/DatabaseService.js +246 -2
  260. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  261. package/build/dist/Server/Services/DockerHostService.js +19 -69
  262. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  263. package/build/dist/Server/Services/DockerSwarmClusterService.js +27 -78
  264. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  265. package/build/dist/Server/Services/HostService.js +58 -102
  266. package/build/dist/Server/Services/HostService.js.map +1 -1
  267. package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
  268. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  269. package/build/dist/Server/Services/Index.js +2 -0
  270. package/build/dist/Server/Services/Index.js.map +1 -1
  271. package/build/dist/Server/Services/IoTFleetService.js +19 -69
  272. package/build/dist/Server/Services/IoTFleetService.js.map +1 -1
  273. package/build/dist/Server/Services/KubernetesClusterService.js +17 -68
  274. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  275. package/build/dist/Server/Services/LabelService.js +42 -7
  276. package/build/dist/Server/Services/LabelService.js.map +1 -1
  277. package/build/dist/Server/Services/MetricTypeService.js +74 -0
  278. package/build/dist/Server/Services/MetricTypeService.js.map +1 -1
  279. package/build/dist/Server/Services/MonitorService.js +81 -9
  280. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  281. package/build/dist/Server/Services/MonitorStatusTimelineService.js +28 -0
  282. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  283. package/build/dist/Server/Services/MonitorTemplateService.js +60 -0
  284. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  285. package/build/dist/Server/Services/OpenTelemetryIngestService.js +155 -25
  286. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  287. package/build/dist/Server/Services/PodmanHostService.js +19 -69
  288. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  289. package/build/dist/Server/Services/ProxmoxClusterService.js +23 -73
  290. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  291. package/build/dist/Server/Services/RumApplicationService.js +19 -70
  292. package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
  293. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +20 -0
  294. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  295. package/build/dist/Server/Services/ServerlessFunctionService.js +24 -75
  296. package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
  297. package/build/dist/Server/Services/ServiceService.js +236 -61
  298. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  299. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +603 -0
  300. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -0
  301. package/build/dist/Server/Services/StatusPageMonitorRuleService.js +401 -0
  302. package/build/dist/Server/Services/StatusPageMonitorRuleService.js.map +1 -0
  303. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +1 -0
  304. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -1
  305. package/build/dist/Server/Services/TelemetryEntityService.js +1 -0
  306. package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -1
  307. package/build/dist/Server/Services/UserService.js +165 -0
  308. package/build/dist/Server/Services/UserService.js.map +1 -1
  309. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js +31 -1
  310. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js.map +1 -1
  311. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +13 -0
  312. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  313. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +126 -4
  314. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  315. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.js +136 -0
  316. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.js.map +1 -0
  317. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +105 -29
  318. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
  319. package/build/dist/Server/Utils/Monitor/MonitorResource.js +56 -32
  320. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  321. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +30 -3
  322. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
  323. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +110 -98
  324. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -1
  325. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js +312 -0
  326. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js.map +1 -0
  327. package/build/dist/Server/Utils/PasswordHash.js +237 -0
  328. package/build/dist/Server/Utils/PasswordHash.js.map +1 -0
  329. package/build/dist/Server/Utils/SingleFlight.js +76 -0
  330. package/build/dist/Server/Utils/SingleFlight.js.map +1 -0
  331. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js +29 -0
  332. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js.map +1 -0
  333. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +78 -19
  334. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  335. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +160 -0
  336. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -0
  337. package/build/dist/Server/Utils/Telemetry/Telemetry.js +279 -104
  338. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  339. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  340. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  341. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  342. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  343. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js +2 -0
  344. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js.map +1 -0
  345. package/build/dist/Types/Dashboard/DashboardTemplates.js +368 -0
  346. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  347. package/build/dist/Types/Database/BigIntColumnTransformer.js +66 -0
  348. package/build/dist/Types/Database/BigIntColumnTransformer.js.map +1 -0
  349. package/build/dist/Types/Database/ColumnLength.js +9 -1
  350. package/build/dist/Types/Database/ColumnLength.js.map +1 -1
  351. package/build/dist/Types/Database/DatabaseProperty.js +25 -0
  352. package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
  353. package/build/dist/Types/Database/NumericColumnValue.js +97 -0
  354. package/build/dist/Types/Database/NumericColumnValue.js.map +1 -0
  355. package/build/dist/Types/Database/TableColumn.js.map +1 -1
  356. package/build/dist/Types/Database/UnsynchronizedIndex.js +46 -0
  357. package/build/dist/Types/Database/UnsynchronizedIndex.js.map +1 -0
  358. package/build/dist/Types/Decimal.js +14 -3
  359. package/build/dist/Types/Decimal.js.map +1 -1
  360. package/build/dist/Types/HashedString.js +95 -5
  361. package/build/dist/Types/HashedString.js.map +1 -1
  362. package/build/dist/Types/Permission.js +42 -0
  363. package/build/dist/Types/Permission.js.map +1 -1
  364. package/build/dist/Types/Port.js +15 -5
  365. package/build/dist/Types/Port.js.map +1 -1
  366. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +51 -10
  367. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
  368. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js +44 -0
  369. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js.map +1 -0
  370. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js +75 -0
  371. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js.map +1 -0
  372. package/build/dist/UI/Components/Navbar/NavBar.js +3 -1
  373. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  374. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +19 -7
  375. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  376. package/build/dist/UI/Utils/ModelAPI/UserProjectsModelAPI.js +156 -0
  377. package/build/dist/UI/Utils/ModelAPI/UserProjectsModelAPI.js.map +1 -0
  378. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js +114 -0
  379. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js.map +1 -0
  380. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  381. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  382. package/build/dist/Utils/TeamMembersByProject.js +145 -0
  383. package/build/dist/Utils/TeamMembersByProject.js.map +1 -0
  384. package/package.json +1 -1
@@ -12,6 +12,7 @@ import IoTFleetLabelRuleEngineService from "./IoTFleetLabelRuleEngineService";
12
12
  import IoTFleetOwnerRuleEngineService from "./IoTFleetOwnerRuleEngineService";
13
13
  import Model from "../../Models/DatabaseModels/IoTFleet";
14
14
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
15
+ import ResourceHeartbeat from "../Utils/Telemetry/ResourceHeartbeat";
15
16
  import ObjectID from "../../Types/ObjectID";
16
17
  import QueryHelper from "../Types/Database/QueryHelper";
17
18
  import OneUptimeDate from "../../Types/Date";
@@ -147,7 +148,6 @@ export class Service extends DatabaseService {
147
148
  */
148
149
  async updateLastSeen(fleetId, extra) {
149
150
  var _a, _b, _c;
150
- const cacheKey = fleetId.toString();
151
151
  const extrasFingerprint = crypto
152
152
  .createHash("sha1")
153
153
  .update(JSON.stringify({
@@ -156,89 +156,39 @@ export class Service extends DatabaseService {
156
156
  onlineDeviceCount: (_c = extra === null || extra === void 0 ? void 0 : extra.onlineDeviceCount) !== null && _c !== void 0 ? _c : null,
157
157
  }))
158
158
  .digest("hex");
159
- let cached = null;
160
- try {
161
- cached = await GlobalCache.getString(LAST_SEEN_CACHE_NAMESPACE, cacheKey);
162
- }
163
- catch (_d) {
164
- /*
165
- * Cache unavailable — fail open and refresh lastSeenAt anyway. A
166
- * cache error must never skip the DB write below, otherwise the
167
- * resource is wrongly marked "disconnected" while telemetry is
168
- * still flowing. Mirrors shouldRunMaintenance's fail-open stance.
169
- */
170
- cached = null;
171
- }
172
- if (cached === extrasFingerprint) {
173
- return; // same data was written recently
174
- }
175
- try {
176
- await GlobalCache.setString(LAST_SEEN_CACHE_NAMESPACE, cacheKey, extrasFingerprint, { expiresInSeconds: LAST_SEEN_THROTTLE_SECONDS });
177
- }
178
- catch (_e) {
179
- // Best-effort throttle write; proceed with the DB update regardless.
180
- }
181
159
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
182
160
  const liveness = {
183
161
  lastSeenAt: OneUptimeDate.getCurrentDate(),
184
162
  otelCollectorStatus: "connected",
185
163
  };
186
164
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
187
- const data = Object.assign({}, liveness);
165
+ const metadata = {};
188
166
  if (extra === null || extra === void 0 ? void 0 : extra.agentVersion) {
189
- data.agentVersion = extra.agentVersion;
167
+ metadata.agentVersion = extra.agentVersion;
190
168
  }
191
169
  // Counts: 0 is a legitimate value — gate on undefined, not falsiness.
192
170
  if ((extra === null || extra === void 0 ? void 0 : extra.deviceCount) !== undefined) {
193
- data.deviceCount = extra.deviceCount;
171
+ metadata.deviceCount = extra.deviceCount;
194
172
  }
195
173
  if ((extra === null || extra === void 0 ? void 0 : extra.onlineDeviceCount) !== undefined) {
196
- data.onlineDeviceCount = extra.onlineDeviceCount;
174
+ metadata.onlineDeviceCount = extra.onlineDeviceCount;
197
175
  }
198
176
  /*
199
- * Heartbeat write: a single-statement UPDATE with no hooks and no
200
- * `version` bump, avoiding the hot-row Postgres lock convoy that the
201
- * full updateOneById pipeline causes. See ServiceService.updateLastSeen.
202
- *
203
- * Collector-supplied strings are clamped to their declared column
204
- * widths inside updateColumnsByIdWithoutHooks — see
205
- * DatabaseService.truncateStringColumnsToMaxLength.
177
+ * One gated, non-blocking heartbeat write. The gates, the fail-open /
178
+ * fail-closed split and the liveness-only fallback all live in
179
+ * ResourceHeartbeat see there for why this row's throttle used to
180
+ * provide no throttling at all.
206
181
  */
207
- try {
208
- await this.updateColumnsByIdWithoutHooks({
209
- id: fleetId,
210
- data: data,
211
- });
212
- }
213
- catch (err) {
214
- /*
215
- * Liveness must survive bad metadata. The enriched write carries
216
- * `lastSeenAt` and `otelCollectorStatus` alongside optional,
217
- * collector-supplied columns; if any one of them makes Postgres
218
- * reject the statement, lastSeenAt silently stops advancing and
219
- * markDisconnectedFleets flips a perfectly healthy IoT fleet to
220
- * "disconnected" 15 minutes later — with telemetry still arriving the
221
- * whole time. That was issue #3006 on the Host path (a host.ip list
222
- * longer than the then-varchar(500) column). Retry with liveness only
223
- * so the enrichment is what gets dropped, never the heartbeat.
224
- */
225
- logger.warn(`IoTFleetService.updateLastSeen: metadata write failed for IoT fleet ${fleetId.toString()}, falling back to a liveness-only update: ${err instanceof Error ? err.message : String(err)}`);
226
- /*
227
- * The throttle fingerprint was already stored, so without this the
228
- * next batch would short-circuit on a cache hit and skip the retry
229
- * for the rest of the window.
230
- */
231
- try {
232
- await GlobalCache.deleteKey(LAST_SEEN_CACHE_NAMESPACE, cacheKey);
233
- }
234
- catch (_f) {
235
- // Best-effort; the fallback write below is what actually matters.
236
- }
237
- await this.updateColumnsByIdWithoutHooks({
238
- id: fleetId,
239
- data: liveness,
240
- });
241
- }
182
+ await ResourceHeartbeat.write({
183
+ service: this,
184
+ id: fleetId,
185
+ cacheNamespace: LAST_SEEN_CACHE_NAMESPACE,
186
+ throttleInSeconds: LAST_SEEN_THROTTLE_SECONDS,
187
+ liveness: liveness,
188
+ metadata: metadata,
189
+ fingerprint: extrasFingerprint,
190
+ describe: `iot fleet ${fleetId.toString()}`,
191
+ });
242
192
  }
243
193
  /**
244
194
  * Additively attach labels to an IoT fleet. Existing labels are
@@ -1 +1 @@
1
- {"version":3,"file":"IoTFleetService.js","sourceRoot":"","sources":["../../../../Server/Services/IoTFleetService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IoTFleetService.js","sourceRoot":"","sources":["../../../../Server/Services/IoTFleetService.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import KubernetesClusterLabelRuleEngineService from "./KubernetesClusterLabelRul
12
12
  import KubernetesClusterOwnerRuleEngineService from "./KubernetesClusterOwnerRuleEngineService";
13
13
  import Model from "../../Models/DatabaseModels/KubernetesCluster";
14
14
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
15
+ import ResourceHeartbeat from "../Utils/Telemetry/ResourceHeartbeat";
15
16
  import ObjectID from "../../Types/ObjectID";
16
17
  import QueryHelper from "../Types/Database/QueryHelper";
17
18
  import OneUptimeDate from "../../Types/Date";
@@ -118,90 +119,38 @@ export class Service extends DatabaseService {
118
119
  }
119
120
  async updateLastSeen(clusterId, extra) {
120
121
  var _a;
121
- const cacheKey = clusterId.toString();
122
122
  const extrasFingerprint = crypto
123
123
  .createHash("sha1")
124
124
  .update(JSON.stringify({
125
125
  agentVersion: (_a = extra === null || extra === void 0 ? void 0 : extra.agentVersion) !== null && _a !== void 0 ? _a : null,
126
126
  }))
127
127
  .digest("hex");
128
- let cached = null;
129
- try {
130
- cached = await GlobalCache.getString(LAST_SEEN_CACHE_NAMESPACE, cacheKey);
131
- }
132
- catch (_b) {
133
- /*
134
- * Cache unavailable — fail open and refresh lastSeenAt anyway. A
135
- * cache error must never skip the DB write below, otherwise the
136
- * resource is wrongly marked "disconnected" while telemetry is
137
- * still flowing. Mirrors shouldRunMaintenance's fail-open stance.
138
- */
139
- cached = null;
140
- }
141
- if (cached === extrasFingerprint) {
142
- return; // same data was written recently
143
- }
144
- try {
145
- await GlobalCache.setString(LAST_SEEN_CACHE_NAMESPACE, cacheKey, extrasFingerprint, { expiresInSeconds: LAST_SEEN_THROTTLE_SECONDS });
146
- }
147
- catch (_c) {
148
- // Best-effort throttle write; proceed with the DB update regardless.
149
- }
150
128
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
151
129
  const liveness = {
152
130
  lastSeenAt: OneUptimeDate.getCurrentDate(),
153
131
  otelCollectorStatus: "connected",
154
132
  };
155
133
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
156
- const data = Object.assign({}, liveness);
134
+ const metadata = {};
157
135
  if (extra === null || extra === void 0 ? void 0 : extra.agentVersion) {
158
- data.agentVersion = extra.agentVersion;
136
+ metadata.agentVersion = extra.agentVersion;
159
137
  }
160
138
  /*
161
- * Heartbeat write: a single-statement UPDATE with no hooks and no
162
- * `version` bump, avoiding the hot-row Postgres lock convoy that the
163
- * full updateOneById pipeline causes. See ServiceService.updateLastSeen.
164
- *
165
- * Collector-supplied strings are clamped to their declared column
166
- * widths inside updateColumnsByIdWithoutHooks — see
167
- * DatabaseService.truncateStringColumnsToMaxLength.
139
+ * One gated, non-blocking heartbeat write. The gates, the fail-open /
140
+ * fail-closed split and the liveness-only fallback all live in
141
+ * ResourceHeartbeat see there for why this row's throttle used to
142
+ * provide no throttling at all.
168
143
  */
169
- try {
170
- await this.updateColumnsByIdWithoutHooks({
171
- id: clusterId,
172
- data: data,
173
- });
174
- }
175
- catch (err) {
176
- /*
177
- * Liveness must survive bad metadata. The enriched write carries
178
- * `lastSeenAt` and `otelCollectorStatus` alongside optional,
179
- * collector-supplied columns; if any one of them makes Postgres
180
- * reject the statement, lastSeenAt silently stops advancing and
181
- * markDisconnectedClusters flips a perfectly healthy Kubernetes
182
- * cluster to "disconnected" 15 minutes later — with telemetry still
183
- * arriving the whole time. That was issue #3006 on the Host path (a
184
- * host.ip list longer than the then-varchar(500) column). Retry with
185
- * liveness only so the enrichment is what gets dropped, never the
186
- * heartbeat.
187
- */
188
- logger.warn(`KubernetesClusterService.updateLastSeen: metadata write failed for Kubernetes cluster ${clusterId.toString()}, falling back to a liveness-only update: ${err instanceof Error ? err.message : String(err)}`);
189
- /*
190
- * The throttle fingerprint was already stored, so without this the
191
- * next batch would short-circuit on a cache hit and skip the retry
192
- * for the rest of the window.
193
- */
194
- try {
195
- await GlobalCache.deleteKey(LAST_SEEN_CACHE_NAMESPACE, cacheKey);
196
- }
197
- catch (_d) {
198
- // Best-effort; the fallback write below is what actually matters.
199
- }
200
- await this.updateColumnsByIdWithoutHooks({
201
- id: clusterId,
202
- data: liveness,
203
- });
204
- }
144
+ await ResourceHeartbeat.write({
145
+ service: this,
146
+ id: clusterId,
147
+ cacheNamespace: LAST_SEEN_CACHE_NAMESPACE,
148
+ throttleInSeconds: LAST_SEEN_THROTTLE_SECONDS,
149
+ liveness: liveness,
150
+ metadata: metadata,
151
+ fingerprint: extrasFingerprint,
152
+ describe: `kubernetes cluster ${clusterId.toString()}`,
153
+ });
205
154
  }
206
155
  /**
207
156
  * Additively attach labels to a Kubernetes cluster. Existing labels
@@ -1 +1 @@
1
- {"version":3,"file":"KubernetesClusterService.js","sourceRoot":"","sources":["../../../../Server/Services/KubernetesClusterService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KubernetesClusterService.js","sourceRoot":"","sources":["../../../../Server/Services/KubernetesClusterService.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ import QueryHelper from "../Types/Database/QueryHelper";
11
11
  import DatabaseService from "./DatabaseService";
12
12
  import ServiceLevelObjectiveMonitorRuleEngineService from "./ServiceLevelObjectiveMonitorRuleEngineService";
13
13
  import ServiceLevelObjectiveService from "./ServiceLevelObjectiveService";
14
+ import StatusPageMonitorRuleEngineService from "./StatusPageMonitorRuleEngineService";
15
+ import StatusPageMonitorRuleService from "./StatusPageMonitorRuleService";
14
16
  import BadDataException from "../../Types/Exception/BadDataException";
15
17
  import LIMIT_MAX from "../../Types/Database/LimitMax";
16
18
  import ObjectID from "../../Types/ObjectID";
@@ -53,13 +55,14 @@ export class Service extends DatabaseService {
53
55
  }
54
56
  /*
55
57
  * Deleting a label cascades its join rows away at the database level, so no
56
- * service hook ever fires for the SLO label rules that referenced it. Those
57
- * SLOs would keep the monitors the rule attached, with nothing left to
58
- * explain why. Note the ids down while the label still exists, and re-run
59
- * the (now smaller) rules once it is gone.
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.
60
62
  */
61
63
  async onBeforeDelete(deleteBy) {
62
64
  let serviceLevelObjectiveIds = [];
65
+ let statusPageMonitorRuleIds = [];
63
66
  try {
64
67
  const labels = await this.findBy({
65
68
  query: deleteBy.query,
@@ -100,21 +103,42 @@ export class Service extends DatabaseService {
100
103
  .filter((id) => {
101
104
  return Boolean(id);
102
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
+ });
103
126
  }
104
127
  }
105
128
  catch (err) {
106
- logger.error(`Error collecting SLO label rules affected by a label delete: ${err}`);
129
+ logger.error(`Error collecting label rules affected by a label delete: ${err}`);
107
130
  }
108
131
  return {
109
132
  deleteBy,
110
133
  carryForward: {
111
134
  serviceLevelObjectiveIds: serviceLevelObjectiveIds,
135
+ statusPageMonitorRuleIds: statusPageMonitorRuleIds,
112
136
  },
113
137
  };
114
138
  }
115
139
  async onDeleteSuccess(onDelete, _itemIdsBeforeDelete) {
116
- var _a;
117
- const serviceLevelObjectiveIds = ((_a = onDelete.carryForward) === null || _a === void 0 ? void 0 : _a.serviceLevelObjectiveIds) || [];
140
+ const carryForward = onDelete.carryForward;
141
+ const serviceLevelObjectiveIds = (carryForward === null || carryForward === void 0 ? void 0 : carryForward.serviceLevelObjectiveIds) || [];
118
142
  for (const serviceLevelObjectiveId of serviceLevelObjectiveIds) {
119
143
  try {
120
144
  await ServiceLevelObjectiveMonitorRuleEngineService.syncMonitorsForSlo({
@@ -125,6 +149,17 @@ export class Service extends DatabaseService {
125
149
  logger.error(`Error re-applying the monitor label rule for SLO ${serviceLevelObjectiveId.toString()} after a label delete: ${err}`);
126
150
  }
127
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
+ }
128
163
  return onDelete;
129
164
  }
130
165
  /**
@@ -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"}