@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
@@ -11,16 +11,129 @@ import CaptureSpan from "./CaptureSpan";
11
11
  import MetricType from "../../../Models/DatabaseModels/MetricType";
12
12
  import MetricTypeService from "../../Services/MetricTypeService";
13
13
  import Service from "../../../Models/DatabaseModels/Service";
14
+ import GlobalCache from "../../Infrastructure/GlobalCache";
15
+ import logger from "../Logger";
16
+ import crypto from "crypto";
17
+ /*
18
+ * Shares the namespace used by the OTLP maintenance fences so the metric
19
+ * catalog is throttled by the same machinery, with the same TTL, as every
20
+ * other per-batch reconcile on the ingest path.
21
+ */
22
+ const METRIC_TYPE_FENCE_NAMESPACE = "otel-maintenance-fence";
23
+ const METRIC_TYPE_FENCE_TTL_SECONDS = 5 * 60; // 5 minutes
14
24
  export default class TelemetryUtil {
25
+ /*
26
+ * Reconcile the metric catalog: one MetricType row per (project, metric
27
+ * name), carrying its description/unit/counter-semantics and the set of
28
+ * services that emit it.
29
+ *
30
+ * This runs on the ingest hot path, once per distinct metric name per batch,
31
+ * and it used to be the only per-batch Postgres writer with no fence, no
32
+ * cache and no dedup of any kind. It had two separate defects that together
33
+ * made it write on EVERY batch, forever:
34
+ *
35
+ * 1. Rows are created with `description || ""`, so the stored value is `""`
36
+ * whenever OTLP omits the field — but the INCOMING value is `undefined`
37
+ * for the same case (protobuf omits unset scalars). `"" !== undefined`
38
+ * is true, so the "has anything changed?" check answered yes on every
39
+ * batch for every metric without a description or unit. The counter
40
+ * semantics below already had the correct `!== undefined` guard;
41
+ * description and unit were simply left behind.
42
+ * 2. The write shipped the whole `services` array, which routes through
43
+ * `save()` — a multi-round-trip transaction holding the row's write lock
44
+ * — and deletes any association not present in the current batch.
45
+ *
46
+ * Both are fixed here. Absent now means "unknown", not "clear", and the two
47
+ * kinds of change are tracked separately so a scalar edit takes a single
48
+ * auto-committed UPDATE and an association takes an additive insert.
49
+ *
50
+ * A fence in front of the whole thing removes the SELECT as well as the
51
+ * write in the steady state. The fence key includes the batch's service set:
52
+ * `servicesInMap` holds only the services in THIS batch, so keying on the
53
+ * name alone would let a batch from service A satisfy the fence and suppress
54
+ * the association that a concurrent batch from service B still needs.
55
+ */
15
56
  static async indexMetricNameServiceNameMap(data) {
16
57
  var _a;
17
58
  for (const metricName of Object.keys(data.metricNameServiceNameMap)) {
18
- // fetch metric
19
- const metricType = await MetricTypeService.findOneBy({
20
- query: {
59
+ const metricTypeInMap = data.metricNameServiceNameMap[metricName];
60
+ // check if services are same as the ones in the map
61
+ const servicesInMap = ((_a = metricTypeInMap === null || metricTypeInMap === void 0 ? void 0 : metricTypeInMap.services) === null || _a === void 0 ? void 0 : _a.map((service) => {
62
+ return service.id;
63
+ })) || [];
64
+ const fenceKey = TelemetryUtil.buildMetricTypeFenceKey({
65
+ projectId: data.projectId,
66
+ metricName: metricName,
67
+ serviceIds: servicesInMap,
68
+ });
69
+ if (!(await TelemetryUtil.shouldIndexMetricType(fenceKey, TelemetryUtil.fingerprintMetricTypeScalars(metricTypeInMap)))) {
70
+ continue;
71
+ }
72
+ try {
73
+ await TelemetryUtil.reconcileMetricType({
21
74
  projectId: data.projectId,
22
- name: metricName,
23
- },
75
+ metricName: metricName,
76
+ metricTypeInMap: metricTypeInMap,
77
+ servicesInMap: servicesInMap,
78
+ });
79
+ }
80
+ catch (err) {
81
+ /*
82
+ * Per-metric isolation. This loop used to let any failure escape and
83
+ * abort indexing for every REMAINING metric name in the batch — and
84
+ * the only caller just logs, so a single bad row silently stopped the
85
+ * whole catalog from converging.
86
+ */
87
+ await TelemetryUtil.clearMetricTypeFence(fenceKey);
88
+ logger.warn(`TelemetryUtil.indexMetricNameServiceNameMap: failed to reconcile metric "${metricName}": ${err instanceof Error ? err.message : String(err)}`);
89
+ }
90
+ }
91
+ }
92
+ static async reconcileMetricType(data) {
93
+ const { projectId, metricName, metricTypeInMap, servicesInMap } = data;
94
+ const metricType = await MetricTypeService.findOneBy({
95
+ query: {
96
+ projectId: projectId,
97
+ name: metricName,
98
+ },
99
+ select: {
100
+ services: true,
101
+ name: true,
102
+ description: true,
103
+ unit: true,
104
+ isMonotonic: true,
105
+ aggregationTemporality: true,
106
+ },
107
+ props: {
108
+ isRoot: true,
109
+ },
110
+ });
111
+ if (metricType) {
112
+ await TelemetryUtil.updateExistingMetricType({
113
+ metricType,
114
+ metricTypeInMap,
115
+ servicesInMap,
116
+ });
117
+ return;
118
+ }
119
+ try {
120
+ await TelemetryUtil.createMetricType({
121
+ projectId,
122
+ metricName,
123
+ metricTypeInMap,
124
+ servicesInMap,
125
+ });
126
+ }
127
+ catch (err) {
128
+ /*
129
+ * Uniqueness on (projectId, name) is enforced in application code by a
130
+ * countBy, not by a database constraint, so two workers can both decide
131
+ * to create the same metric. Re-find to disambiguate: a row now means a
132
+ * concurrent worker won (harmless — reconcile against it); no row means
133
+ * the insert itself was invalid and must surface.
134
+ */
135
+ const winner = await MetricTypeService.findOneBy({
136
+ query: { projectId: projectId, name: metricName },
24
137
  select: {
25
138
  services: true,
26
139
  name: true,
@@ -29,107 +142,169 @@ export default class TelemetryUtil {
29
142
  isMonotonic: true,
30
143
  aggregationTemporality: true,
31
144
  },
32
- props: {
33
- isRoot: true,
34
- },
145
+ props: { isRoot: true },
35
146
  });
36
- const metricTypeInMap = data.metricNameServiceNameMap[metricName];
37
- // check if services are same as the ones in the map
38
- const servicesInMap = ((_a = metricTypeInMap === null || metricTypeInMap === void 0 ? void 0 : metricTypeInMap.services) === null || _a === void 0 ? void 0 : _a.map((service) => {
39
- return service.id;
40
- })) || [];
41
- if (metricType) {
42
- if (!metricType.services) {
43
- metricType.services = [];
44
- }
45
- const serviceIds = metricType.services.map((service) => {
46
- return service.id;
47
- });
48
- let isSame = true;
49
- // check if description is same
50
- if (metricType.description !== metricTypeInMap.description) {
51
- isSame = false;
52
- metricType.description = metricTypeInMap.description || "";
53
- }
54
- // check if unit is same
55
- if (metricType.unit !== metricTypeInMap.unit) {
56
- isSame = false;
57
- metricType.unit = metricTypeInMap.unit || "";
58
- }
59
- /*
60
- * Counter semantics (isMonotonic / aggregationTemporality) are only
61
- * known on OTel metric ingest paths — other callers (monitor
62
- * metrics, heartbeat metrics) never set them, so an undefined
63
- * incoming value means "unknown", not "clear the stored value".
64
- */
65
- if (metricTypeInMap.isMonotonic !== undefined &&
66
- metricType.isMonotonic !== metricTypeInMap.isMonotonic) {
67
- isSame = false;
68
- metricType.isMonotonic = metricTypeInMap.isMonotonic;
69
- }
70
- if (metricTypeInMap.aggregationTemporality !== undefined &&
71
- metricType.aggregationTemporality !==
72
- metricTypeInMap.aggregationTemporality) {
73
- isSame = false;
74
- metricType.aggregationTemporality =
75
- metricTypeInMap.aggregationTemporality;
76
- }
77
- // check if services are same
78
- for (const serviceId of servicesInMap) {
79
- if (serviceIds.filter((existingServiceId) => {
80
- return existingServiceId.toString() === serviceId.toString();
81
- }).length === 0) {
82
- isSame = false;
83
- // add the service id to the list
84
- const service = new Service();
85
- service.id = serviceId;
86
- metricType.services.push(service);
87
- }
88
- }
89
- // if its not the same then update the metric type
90
- if (!isSame) {
91
- // update metric type
92
- await MetricTypeService.updateOneById({
93
- id: metricType.id,
94
- data: Object.assign(Object.assign({ services: metricType.services || [], description: metricTypeInMap.description || "", unit: metricTypeInMap.unit || "" }, (metricType.isMonotonic !== undefined
95
- ? { isMonotonic: metricType.isMonotonic }
96
- : {})), (metricType.aggregationTemporality !== undefined
97
- ? { aggregationTemporality: metricType.aggregationTemporality }
98
- : {})),
99
- props: {
100
- isRoot: true,
101
- },
102
- });
103
- }
104
- }
105
- else {
106
- // create metric type
107
- const metricType = new MetricType();
108
- metricType.name = metricName;
109
- metricType.description = metricTypeInMap.description || "";
110
- metricType.unit = metricTypeInMap.unit || "";
111
- if (metricTypeInMap.isMonotonic !== undefined) {
112
- metricType.isMonotonic = metricTypeInMap.isMonotonic;
113
- }
114
- if (metricTypeInMap.aggregationTemporality !== undefined) {
115
- metricType.aggregationTemporality =
116
- metricTypeInMap.aggregationTemporality;
117
- }
118
- metricType.projectId = data.projectId;
119
- metricType.services = [];
120
- for (const serviceId of servicesInMap) {
121
- const service = new Service();
122
- service.id = serviceId;
123
- metricType.services.push(service);
124
- }
125
- // save metric type
126
- await MetricTypeService.create({
127
- data: metricType,
128
- props: {
129
- isRoot: true,
130
- },
131
- });
147
+ if (!winner) {
148
+ throw err;
132
149
  }
150
+ logger.debug(`TelemetryUtil: create raced for metric "${metricName}" (concurrent insert); reconciling against the winning row.`);
151
+ await TelemetryUtil.updateExistingMetricType({
152
+ metricType: winner,
153
+ metricTypeInMap,
154
+ servicesInMap,
155
+ });
156
+ }
157
+ }
158
+ static async updateExistingMetricType(data) {
159
+ var _a, _b;
160
+ const { metricType, metricTypeInMap, servicesInMap } = data;
161
+ if (!metricType.services) {
162
+ metricType.services = [];
163
+ }
164
+ const existingServiceIds = new Set(metricType.services.map((service) => {
165
+ return service.id.toString();
166
+ }));
167
+ /*
168
+ * Two flags, not one. A scalar edit and a new association need completely
169
+ * different statements, and conflating them is what forced every scalar
170
+ * edit through the relation-writing `save()` path.
171
+ */
172
+ let scalarsChanged = false;
173
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
174
+ const scalarUpdate = {};
175
+ /*
176
+ * An absent incoming value means "this producer didn't say", not "clear
177
+ * the stored value" — the same rule the counter-semantics block below has
178
+ * always used. Without the truthiness guard, a stored `""` compared
179
+ * against an incoming `undefined` reported a change on every single batch.
180
+ */
181
+ if (metricTypeInMap.description &&
182
+ ((_a = metricType.description) !== null && _a !== void 0 ? _a : "") !== metricTypeInMap.description) {
183
+ scalarsChanged = true;
184
+ scalarUpdate.description = metricTypeInMap.description;
185
+ }
186
+ if (metricTypeInMap.unit &&
187
+ ((_b = metricType.unit) !== null && _b !== void 0 ? _b : "") !== metricTypeInMap.unit) {
188
+ scalarsChanged = true;
189
+ scalarUpdate.unit = metricTypeInMap.unit;
190
+ }
191
+ /*
192
+ * Counter semantics (isMonotonic / aggregationTemporality) are only
193
+ * known on OTel metric ingest paths — other callers (monitor
194
+ * metrics, heartbeat metrics) never set them, so an undefined
195
+ * incoming value means "unknown", not "clear the stored value".
196
+ */
197
+ if (metricTypeInMap.isMonotonic !== undefined &&
198
+ metricType.isMonotonic !== metricTypeInMap.isMonotonic) {
199
+ scalarsChanged = true;
200
+ scalarUpdate.isMonotonic = metricTypeInMap.isMonotonic;
201
+ }
202
+ if (metricTypeInMap.aggregationTemporality !== undefined &&
203
+ metricType.aggregationTemporality !==
204
+ metricTypeInMap.aggregationTemporality) {
205
+ scalarsChanged = true;
206
+ scalarUpdate.aggregationTemporality =
207
+ metricTypeInMap.aggregationTemporality;
208
+ }
209
+ const servicesToAttach = servicesInMap.filter((serviceId) => {
210
+ return !existingServiceIds.has(serviceId.toString());
211
+ });
212
+ if (scalarsChanged) {
213
+ /*
214
+ * One auto-committed UPDATE. Deliberately NOT updateOneById: with
215
+ * `services` absent from the payload that path still opens a transaction
216
+ * and bumps `version`, and MetricType declares no update workflow, no
217
+ * realtime events and no audit log, so the full pipeline buys nothing
218
+ * here. Nothing in the codebase uses TypeORM optimistic locking, so the
219
+ * skipped version bump has no consumer.
220
+ */
221
+ await MetricTypeService.updateColumnsByIdWithoutHooks({
222
+ id: metricType.id,
223
+ data: scalarUpdate,
224
+ });
225
+ }
226
+ if (servicesToAttach.length > 0) {
227
+ await MetricTypeService.attachServices({
228
+ metricTypeId: metricType.id,
229
+ serviceIds: servicesToAttach,
230
+ });
231
+ }
232
+ }
233
+ static async createMetricType(data) {
234
+ const metricType = new MetricType();
235
+ metricType.name = data.metricName;
236
+ metricType.description = data.metricTypeInMap.description || "";
237
+ metricType.unit = data.metricTypeInMap.unit || "";
238
+ if (data.metricTypeInMap.isMonotonic !== undefined) {
239
+ metricType.isMonotonic = data.metricTypeInMap.isMonotonic;
240
+ }
241
+ if (data.metricTypeInMap.aggregationTemporality !== undefined) {
242
+ metricType.aggregationTemporality =
243
+ data.metricTypeInMap.aggregationTemporality;
244
+ }
245
+ metricType.projectId = data.projectId;
246
+ metricType.services = [];
247
+ for (const serviceId of data.servicesInMap) {
248
+ const service = new Service();
249
+ service.id = serviceId;
250
+ metricType.services.push(service);
251
+ }
252
+ /*
253
+ * Creates stay on the ORM path: a raw INSERT would bypass tenant stamping,
254
+ * slug generation and the uniqueness check. Creates are also rare — this
255
+ * runs once per metric name in a project's lifetime.
256
+ */
257
+ await MetricTypeService.create({
258
+ data: metricType,
259
+ props: {
260
+ isRoot: true,
261
+ },
262
+ });
263
+ }
264
+ static buildMetricTypeFenceKey(data) {
265
+ const services = data.serviceIds
266
+ .map((serviceId) => {
267
+ return serviceId.toString();
268
+ })
269
+ .sort()
270
+ .join(",");
271
+ return `metric-type:${data.projectId.toString()}:${data.metricName}:${crypto.createHash("sha1").update(services).digest("hex")}`;
272
+ }
273
+ static fingerprintMetricTypeScalars(metricType) {
274
+ var _a, _b, _c, _d;
275
+ return crypto
276
+ .createHash("sha1")
277
+ .update(JSON.stringify({
278
+ description: (_a = metricType.description) !== null && _a !== void 0 ? _a : null,
279
+ unit: (_b = metricType.unit) !== null && _b !== void 0 ? _b : null,
280
+ isMonotonic: (_c = metricType.isMonotonic) !== null && _c !== void 0 ? _c : null,
281
+ aggregationTemporality: (_d = metricType.aggregationTemporality) !== null && _d !== void 0 ? _d : null,
282
+ }))
283
+ .digest("hex");
284
+ }
285
+ /*
286
+ * Compare-and-claim rather than plain set-if-absent: a metric whose
287
+ * description or unit genuinely changed must be written promptly, not wait
288
+ * out the window. Atomic, so concurrent workers cannot all pass the gate the
289
+ * way a read-then-write lets them.
290
+ */
291
+ static async shouldIndexMetricType(fenceKey, fingerprint) {
292
+ try {
293
+ return await GlobalCache.setStringIfChanged(METRIC_TYPE_FENCE_NAMESPACE, fenceKey, fingerprint, {
294
+ expiresInSeconds: GlobalCache.withJitter(METRIC_TYPE_FENCE_TTL_SECONDS),
295
+ });
296
+ }
297
+ catch (_a) {
298
+ // If the cache is down, default to running the reconcile.
299
+ return true;
300
+ }
301
+ }
302
+ static async clearMetricTypeFence(fenceKey) {
303
+ try {
304
+ await GlobalCache.deleteKey(METRIC_TYPE_FENCE_NAMESPACE, fenceKey);
305
+ }
306
+ catch (_a) {
307
+ // Best effort — losing the release costs one window of staleness.
133
308
  }
134
309
  }
135
310
  static getAttributesForServiceIdAndServiceName(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"Telemetry.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/Telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Telemetry.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/Telemetry.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ var DashboardComponentType;
40
40
  DashboardComponentType["DockerSwarmServiceList"] = "DockerSwarmServiceList";
41
41
  DashboardComponentType["CephOsdList"] = "CephOsdList";
42
42
  DashboardComponentType["CephPoolList"] = "CephPoolList";
43
+ DashboardComponentType["NetworkMap"] = "NetworkMap";
43
44
  DashboardComponentType["Html"] = "Html";
44
45
  })(DashboardComponentType || (DashboardComponentType = {}));
45
46
  export default DashboardComponentType;
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardComponentType.js","sourceRoot":"","sources":["../../../../Types/Dashboard/DashboardComponentType.ts"],"names":[],"mappings":"AAAA,IAAK,sBA0CJ;AA1CD,WAAK,sBAAsB;IACzB,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,uCAAa,CAAA;IACb,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,iDAAuB,CAAA;IACvB,+CAAqB,CAAA;IACrB,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,mDAAyB,CAAA;IACzB,uDAA6B,CAAA;IAC7B,iDAAuB,CAAA;IACvB,qDAA2B,CAAA;IAC3B,qCAAW,CAAA;IACX,iEAAuC,CAAA;IACvC,mEAAyC,CAAA;IACzC,6EAAmD,CAAA;IACnD,+EAAqD,CAAA;IACrD,iFAAuD,CAAA;IACvD,6EAAmD,CAAA;IACnD,iEAAuC,CAAA;IACvC,yEAA+C,CAAA;IAC/C,2DAAiC,CAAA;IACjC,qEAA2C,CAAA;IAC3C,6DAAmC,CAAA;IACnC,iEAAuC,CAAA;IACvC,+DAAqC,CAAA;IACrC,2DAAiC,CAAA;IACjC,qEAA2C,CAAA;IAC3C,6DAAmC,CAAA;IACnC,iEAAuC,CAAA;IACvC,+DAAqC,CAAA;IACrC,+CAAqB,CAAA;IACrB,6DAAmC,CAAA;IACnC,+DAAqC,CAAA;IACrC,qEAA2C,CAAA;IAC3C,2EAAiD,CAAA;IACjD,qDAA2B,CAAA;IAC3B,uDAA6B,CAAA;IAC7B,uCAAa,CAAA;AACf,CAAC,EA1CI,sBAAsB,KAAtB,sBAAsB,QA0C1B;AAED,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"DashboardComponentType.js","sourceRoot":"","sources":["../../../../Types/Dashboard/DashboardComponentType.ts"],"names":[],"mappings":"AAAA,IAAK,sBA2CJ;AA3CD,WAAK,sBAAsB;IACzB,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,uCAAa,CAAA;IACb,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,iDAAuB,CAAA;IACvB,+CAAqB,CAAA;IACrB,iDAAuB,CAAA;IACvB,mDAAyB,CAAA;IACzB,mDAAyB,CAAA;IACzB,uDAA6B,CAAA;IAC7B,iDAAuB,CAAA;IACvB,qDAA2B,CAAA;IAC3B,qCAAW,CAAA;IACX,iEAAuC,CAAA;IACvC,mEAAyC,CAAA;IACzC,6EAAmD,CAAA;IACnD,+EAAqD,CAAA;IACrD,iFAAuD,CAAA;IACvD,6EAAmD,CAAA;IACnD,iEAAuC,CAAA;IACvC,yEAA+C,CAAA;IAC/C,2DAAiC,CAAA;IACjC,qEAA2C,CAAA;IAC3C,6DAAmC,CAAA;IACnC,iEAAuC,CAAA;IACvC,+DAAqC,CAAA;IACrC,2DAAiC,CAAA;IACjC,qEAA2C,CAAA;IAC3C,6DAAmC,CAAA;IACnC,iEAAuC,CAAA;IACvC,+DAAqC,CAAA;IACrC,+CAAqB,CAAA;IACrB,6DAAmC,CAAA;IACnC,+DAAqC,CAAA;IACrC,qEAA2C,CAAA;IAC3C,2EAAiD,CAAA;IACjD,qDAA2B,CAAA;IAC3B,uDAA6B,CAAA;IAC7B,mDAAyB,CAAA;IACzB,uCAAa,CAAA;AACf,CAAC,EA3CI,sBAAsB,KAAtB,sBAAsB,QA2C1B;AAED,eAAe,sBAAsB,CAAC"}
@@ -37,5 +37,6 @@ export var EntityFilterModelType;
37
37
  EntityFilterModelType["ProxmoxCluster"] = "ProxmoxCluster";
38
38
  EntityFilterModelType["CephCluster"] = "CephCluster";
39
39
  EntityFilterModelType["DockerSwarmCluster"] = "DockerSwarmCluster";
40
+ EntityFilterModelType["NetworkSiteType"] = "NetworkSiteType";
40
41
  })(EntityFilterModelType || (EntityFilterModelType = {}));
41
42
  //# sourceMappingURL=ComponentArgument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentArgument.js","sourceRoot":"","sources":["../../../../../Types/Dashboard/DashboardComponents/ComponentArgument.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,kBAqBX;AArBD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,4CAAsB,CAAA;IACtB,+CAAyB,CAAA;IACzB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;IACnB,+DAAyC,CAAA;IACzC,iEAA2C,CAAA;IAC3C,qEAA+C,CAAA;IAC/C,mDAA6B,CAAA;IAC7B,mDAA6B,CAAA;IAC7B,4CAAsB,CAAA;IACtB,2CAAqB,CAAA;IACrB,iEAA2C,CAAA;IAC3C,uDAAiC,CAAA;IACjC,6EAAuD,CAAA;IACvD,yCAAyC;IACzC,mCAAa,CAAA;IACb,iCAAW,CAAA;IACX,+CAAyB,CAAA;AAC3B,CAAC,EArBW,kBAAkB,KAAlB,kBAAkB,QAqB7B;AAED,MAAM,CAAN,IAAY,qBAeX;AAfD,WAAY,qBAAqB;IAC/B,8DAAqC,CAAA;IACrC,wDAA+B,CAAA;IAC/B,wDAA+B,CAAA;IAC/B,kDAAyB,CAAA;IACzB,wDAA+B,CAAA;IAC/B,4CAAmB,CAAA;IACnB,wEAA+C,CAAA;IAC/C,wCAAe,CAAA;IACf,gEAAuC,CAAA;IACvC,kDAAyB,CAAA;IACzB,kDAAyB,CAAA;IACzB,0DAAiC,CAAA;IACjC,oDAA2B,CAAA;IAC3B,kEAAyC,CAAA;AAC3C,CAAC,EAfW,qBAAqB,KAArB,qBAAqB,QAehC"}
1
+ {"version":3,"file":"ComponentArgument.js","sourceRoot":"","sources":["../../../../../Types/Dashboard/DashboardComponents/ComponentArgument.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,kBAqBX;AArBD,WAAY,kBAAkB;IAC5B,mCAAa,CAAA;IACb,mCAAa,CAAA;IACb,4CAAsB,CAAA;IACtB,+CAAyB,CAAA;IACzB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;IACnB,+DAAyC,CAAA;IACzC,iEAA2C,CAAA;IAC3C,qEAA+C,CAAA;IAC/C,mDAA6B,CAAA;IAC7B,mDAA6B,CAAA;IAC7B,4CAAsB,CAAA;IACtB,2CAAqB,CAAA;IACrB,iEAA2C,CAAA;IAC3C,uDAAiC,CAAA;IACjC,6EAAuD,CAAA;IACvD,yCAAyC;IACzC,mCAAa,CAAA;IACb,iCAAW,CAAA;IACX,+CAAyB,CAAA;AAC3B,CAAC,EArBW,kBAAkB,KAAlB,kBAAkB,QAqB7B;AAED,MAAM,CAAN,IAAY,qBAgBX;AAhBD,WAAY,qBAAqB;IAC/B,8DAAqC,CAAA;IACrC,wDAA+B,CAAA;IAC/B,wDAA+B,CAAA;IAC/B,kDAAyB,CAAA;IACzB,wDAA+B,CAAA;IAC/B,4CAAmB,CAAA;IACnB,wEAA+C,CAAA;IAC/C,wCAAe,CAAA;IACf,gEAAuC,CAAA;IACvC,kDAAyB,CAAA;IACzB,kDAAyB,CAAA;IACzB,0DAAiC,CAAA;IACjC,oDAA2B,CAAA;IAC3B,kEAAyC,CAAA;IACzC,4DAAmC,CAAA;AACrC,CAAC,EAhBW,qBAAqB,KAArB,qBAAqB,QAgBhC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DashboardNetworkMapComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardNetworkMapComponent.js","sourceRoot":"","sources":["../../../../../Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts"],"names":[],"mappings":""}