@oneuptime/common 14.0.3 → 14.0.5

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 (617) hide show
  1. package/Models/DatabaseModels/Alert.ts +55 -0
  2. package/Models/DatabaseModels/DatabaseServer.ts +1650 -0
  3. package/Models/DatabaseModels/DatabaseServerEndpoint.ts +540 -0
  4. package/Models/DatabaseModels/DatabaseServerFeed.ts +625 -0
  5. package/Models/DatabaseModels/DatabaseServerLabelRule.ts +514 -0
  6. package/Models/DatabaseModels/DatabaseServerOwnerRule.ts +596 -0
  7. package/Models/DatabaseModels/DatabaseServerOwnerTeam.ts +491 -0
  8. package/Models/DatabaseModels/DatabaseServerOwnerUser.ts +490 -0
  9. package/Models/DatabaseModels/Incident.ts +55 -0
  10. package/Models/DatabaseModels/Index.ts +16 -0
  11. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +26 -0
  12. package/Models/DatabaseModels/ScheduledMaintenance.ts +55 -0
  13. package/Models/DatabaseModels/TelemetryException.ts +2 -0
  14. package/Models/DatabaseModels/UserProjectSsoConsent.ts +146 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.ts +673 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.ts +51 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  18. package/Server/Middleware/MultipartFormData.ts +1 -1
  19. package/Server/Middleware/TelemetryIngest.ts +15 -8
  20. package/Server/Services/AlertReminderRuleService.ts +100 -24
  21. package/Server/Services/DatabaseServerEndpointService.ts +895 -0
  22. package/Server/Services/DatabaseServerFeedService.ts +128 -0
  23. package/Server/Services/DatabaseServerLabelRuleEngineService.ts +340 -0
  24. package/Server/Services/DatabaseServerLabelRuleService.ts +14 -0
  25. package/Server/Services/DatabaseServerOwnerRuleEngineService.ts +425 -0
  26. package/Server/Services/DatabaseServerOwnerRuleService.ts +14 -0
  27. package/Server/Services/DatabaseServerOwnerTeamService.ts +180 -0
  28. package/Server/Services/DatabaseServerOwnerUserService.ts +173 -0
  29. package/Server/Services/DatabaseServerService.ts +4546 -0
  30. package/Server/Services/DatabaseService.ts +14 -8
  31. package/Server/Services/DockerResourceService.ts +43 -2
  32. package/Server/Services/IncidentReminderRuleService.ts +103 -23
  33. package/Server/Services/Index.ts +16 -0
  34. package/Server/Services/InventoryItemService.ts +113 -5
  35. package/Server/Services/IoTDeviceService.ts +145 -37
  36. package/Server/Services/OpenTelemetryIngestService.ts +19 -0
  37. package/Server/Services/PodmanResourceService.ts +43 -2
  38. package/Server/Services/ScheduledMaintenanceReminderRuleService.ts +107 -23
  39. package/Server/Services/ServiceService.ts +1 -1
  40. package/Server/Services/TelemetryUsageBillingService.ts +29 -2
  41. package/Server/Services/UserProjectSsoConsentService.ts +74 -0
  42. package/Server/Services/UserService.ts +14 -1
  43. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +18 -0
  44. package/Server/Types/Database/QueryHelper.ts +30 -1
  45. package/Server/Utils/AI/Toolbox/ResourceTools.ts +69 -1
  46. package/Server/Utils/Database/AffectedResourceRelations.ts +6 -0
  47. package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +188 -6
  48. package/Server/Utils/Monitor/MonitorAlert.ts +28 -1
  49. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +2262 -755
  50. package/Server/Utils/Monitor/MonitorIncident.ts +28 -1
  51. package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +268 -6
  52. package/Server/Utils/Monitor/MonitorResource.ts +47 -11
  53. package/Server/Utils/Monitor/MonitorResourceContext.ts +1 -0
  54. package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +239 -21
  55. package/Server/Utils/Monitor/PerSeriesResolutionRootCause.ts +43 -0
  56. package/Server/Utils/Monitor/SeriesResourceLabels.ts +291 -0
  57. package/Server/Utils/Monitor/SeriesResourceLinker.ts +111 -12
  58. package/Server/Utils/Rules/RuleRun/RuleRunRegistry.ts +25 -0
  59. package/Server/Utils/StartServer.ts +26 -6
  60. package/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.ts +2 -0
  61. package/Server/Utils/Telemetry/DatabaseEndpointDiscovery.ts +688 -0
  62. package/Server/Utils/Telemetry/EntityRegistry.ts +5 -1
  63. package/Server/Utils/Telemetry/LogExceptionExtractor.ts +18 -1
  64. package/Server/Utils/Telemetry/ResourceEntityFilter.ts +175 -12
  65. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +12 -0
  66. package/Server/Utils/Telemetry/ServiceDependencyDiscovery.ts +606 -36
  67. package/Server/Utils/Telemetry/Telemetry.ts +16 -0
  68. package/Server/Utils/Telemetry/TelemetryEntity.ts +22 -22
  69. package/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.ts +16 -10
  70. package/Tests/App/Accounts/SignedInRedirect.test.tsx +241 -0
  71. package/Tests/App/AdminDashboard/AdminHeaderSmallScreens.test.tsx +221 -4
  72. package/Tests/App/Dashboard/AIInsightsResourcePageContext.test.ts +42 -0
  73. package/Tests/App/Dashboard/AffectedResourcesDisplay.test.tsx +100 -0
  74. package/Tests/App/Dashboard/AffectedResourcesPicker.test.tsx +86 -0
  75. package/Tests/App/Dashboard/AffectedResourcesPickerHiddenTypes.test.tsx +2 -0
  76. package/Tests/App/Dashboard/AffectedResourcesSummaryStep.test.tsx +19 -0
  77. package/Tests/App/Dashboard/BreadcrumbCoverage.test.tsx +14 -0
  78. package/Tests/App/Dashboard/CorrelateFilterBuilder.test.tsx +26 -1
  79. package/Tests/App/Dashboard/DashboardAppSsoError.test.tsx +501 -0
  80. package/Tests/App/Dashboard/DashboardHeaderRequests.test.tsx +64 -1
  81. package/Tests/App/Dashboard/DashboardHeaderSmallScreens.test.tsx +178 -18
  82. package/Tests/App/Dashboard/DashboardMasterPageSsoRedirect.test.tsx +444 -0
  83. package/Tests/App/Dashboard/DashboardNavBarForeignHiddenRule.test.tsx +573 -0
  84. package/Tests/App/Dashboard/DatabaseChartAxes.test.tsx +431 -0
  85. package/Tests/App/Dashboard/DatabaseContainerDetailBadge.test.tsx +249 -0
  86. package/Tests/App/Dashboard/DatabaseDashboardE2EFixes.test.ts +681 -0
  87. package/Tests/App/Dashboard/DatabaseDocumentationMarkdown.test.ts +1801 -0
  88. package/Tests/App/Dashboard/DatabaseFleetSummaryRefresh.test.tsx +280 -0
  89. package/Tests/App/Dashboard/DatabaseFormHelpers.test.tsx +321 -0
  90. package/Tests/App/Dashboard/DatabaseMetricMonitorLink.test.tsx +795 -0
  91. package/Tests/App/Dashboard/DatabaseOverviewHeader.test.tsx +580 -0
  92. package/Tests/App/Dashboard/DatabaseRecommendationsEngineMetrics.test.ts +270 -0
  93. package/Tests/App/Dashboard/DatabaseServerComponents.test.tsx +1486 -0
  94. package/Tests/App/Dashboard/DatabaseServerEngineMetricsFilter.test.ts +223 -0
  95. package/Tests/App/Dashboard/DatabaseServerPresentation.test.ts +435 -0
  96. package/Tests/App/Dashboard/DatabaseServerSummary.test.ts +186 -0
  97. package/Tests/App/Dashboard/DatabaseServerTelemetryQueries.test.ts +1553 -0
  98. package/Tests/App/Dashboard/DatabaseTableTruncation.test.tsx +326 -0
  99. package/Tests/App/Dashboard/DatabaseTelemetryScope.test.ts +512 -0
  100. package/Tests/App/Dashboard/DatabaseTelemetryTabs.test.tsx +774 -0
  101. package/Tests/App/Dashboard/DatabaseViewLayout.test.tsx +233 -0
  102. package/Tests/App/Dashboard/DatabaseWorkloadBadge.test.tsx +972 -0
  103. package/Tests/App/Dashboard/DiscoveryReviewInventoryRefresh.test.tsx +5 -0
  104. package/Tests/App/Dashboard/DiscoveryReviewUnnamedHostHint.test.tsx +1061 -0
  105. package/Tests/App/Dashboard/EventOverlayScope.test.ts +147 -0
  106. package/Tests/App/Dashboard/EventOverlayScopeHook.test.tsx +1 -0
  107. package/Tests/App/Dashboard/LogsResourceFacetChips.test.tsx +1 -0
  108. package/Tests/App/Dashboard/MetricsViewerDrillDown.test.tsx +310 -0
  109. package/Tests/App/Dashboard/MetricsViewerEntityScopedRows.test.tsx +495 -0
  110. package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +132 -1
  111. package/Tests/App/Dashboard/NavigationSearchKeywords.test.tsx +5 -0
  112. package/Tests/App/Dashboard/ProductOrientation.test.tsx +4 -3
  113. package/Tests/App/Dashboard/RecommendationsLoadedContext.test.tsx +349 -0
  114. package/Tests/App/Dashboard/ResourceArchiveSettings.test.tsx +62 -0
  115. package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +8 -1
  116. package/Tests/App/Dashboard/ResourceFeedPagesFilterSort.test.tsx +14 -0
  117. package/Tests/App/Dashboard/ScheduledMaintenanceOverviewPage.test.tsx +2 -0
  118. package/Tests/App/Dashboard/ServiceMapDatabaseLink.test.tsx +1085 -0
  119. package/Tests/App/Dashboard/TelemetryResourceRetentionSettings.test.tsx +10 -0
  120. package/Tests/App/Dashboard/TracesResourceFacets.test.tsx +2 -1
  121. package/Tests/App/StatusPage/StatusPageHeaderForeignHiddenRule.test.tsx +284 -0
  122. package/Tests/ClassStrings.ts +178 -0
  123. package/Tests/Fixtures/MobilePasskeyUser.json +1 -2
  124. package/Tests/ForeignHiddenRuleGuard.ts +2152 -0
  125. package/Tests/Models/DatabaseModels/DatabaseServerModels.test.ts +2250 -0
  126. package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +24 -5
  127. package/Tests/Models/DatabaseModels/StaticRuleCriteriaInheritance.test.ts +4 -2
  128. package/Tests/RenderedMarkup.ts +518 -0
  129. package/Tests/ResponsiveVisibility.test.ts +490 -4
  130. package/Tests/ResponsiveVisibility.ts +505 -52
  131. package/Tests/Server/Infrastructure/Postgres/AddConfigurableRuleCriteriaMigration.test.ts +3 -0
  132. package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +541 -0
  133. package/Tests/Server/Infrastructure/Postgres/AddUserProjectSsoConsentMigration.test.ts +234 -0
  134. package/Tests/Server/Services/ContainerSnapshotUpsertPostgres.test.ts +319 -0
  135. package/Tests/Server/Services/CrossProjectRelationWriteGuard.test.ts +13 -0
  136. package/Tests/Server/Services/DatabaseServerEndpointService.test.ts +2033 -0
  137. package/Tests/Server/Services/DatabaseServerFeedAndOwnerServices.test.ts +529 -0
  138. package/Tests/Server/Services/DatabaseServerLifecycle.test.ts +3302 -0
  139. package/Tests/Server/Services/DatabaseServerRegistries.test.ts +603 -0
  140. package/Tests/Server/Services/DatabaseServerRuleEngines.test.ts +754 -0
  141. package/Tests/Server/Services/DatabaseServerService.test.ts +3558 -0
  142. package/Tests/Server/Services/DatabaseServerSqlPostgres.test.ts +2045 -0
  143. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlockedPostgres.test.ts +362 -0
  144. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlockedReply.test.ts +210 -0
  145. package/Tests/Server/Services/HookFreeWriteLengthClamp.test.ts +18 -0
  146. package/Tests/Server/Services/IncidentAlertSloLinkSurvivesEdit.test.ts +2 -0
  147. package/Tests/Server/Services/IncomingCallPolicyEscalationRuleTarget.test.ts +225 -0
  148. package/Tests/Server/Services/InventoryItemDisplayName.test.ts +280 -2
  149. package/Tests/Server/Services/InventoryUpsertSchemaParity.test.ts +8 -2
  150. package/Tests/Server/Services/IoTDeviceLatestMetricsPostgres.test.ts +689 -0
  151. package/Tests/Server/Services/IoTDeviceService.test.ts +379 -0
  152. package/Tests/Server/Services/LatestMetricsValuesShape.test.ts +360 -0
  153. package/Tests/Server/Services/LlmModelPriceService.test.ts +402 -0
  154. package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +7 -1
  155. package/Tests/Server/Services/OwnerRowUniqueness.test.ts +61 -9
  156. package/Tests/Server/Services/ReminderRuleLookupPostgres.test.ts +2250 -0
  157. package/Tests/Server/Services/ReminderRuleRefreshOpenSubjectsPaging.test.ts +653 -0
  158. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +68 -20
  159. package/Tests/Server/Services/StaticRuleCriteriaRuntimeCoverage.test.ts +3 -3
  160. package/Tests/Server/Services/TelemetryResourceFacetCounting.test.ts +9 -0
  161. package/Tests/Server/Services/UserProjectSsoConsentPostgres.test.ts +153 -0
  162. package/Tests/Server/Services/UserProjectSsoConsentService.test.ts +192 -0
  163. package/Tests/Server/Services/UserServiceFirstMasterAdminElection.test.ts +71 -0
  164. package/Tests/Server/Services/UserSignupIdTakeoverPostgres.test.ts +238 -0
  165. package/Tests/Server/Services/WorkspaceNotificationSummaryHelpers.test.ts +592 -0
  166. package/Tests/Server/Types/Billing/PayAsYouGoMeteredAuthorization.test.ts +3 -0
  167. package/Tests/Server/Types/Database/EventOverlayScopePostgres.test.ts +1 -0
  168. package/Tests/Server/Types/Database/FeedEventTypeFilterQuery.test.ts +11 -0
  169. package/Tests/Server/Types/Database/Permissions/InfrastructureOwnershipScope.test.ts +8 -0
  170. package/Tests/Server/Types/Database/QueryHelperBooleanForCriteriaBackedRule.test.ts +1094 -0
  171. package/Tests/Server/Utils/AI/ResourceTools.test.ts +134 -0
  172. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.ts +41 -0
  173. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteriaAnomalyUnits.test.ts +279 -9
  174. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteriaDisplayContext.test.ts +933 -0
  175. package/Tests/Server/Utils/Monitor/DatabaseMaintenanceSuppression.test.ts +582 -0
  176. package/Tests/Server/Utils/Monitor/DatabaseServerMonitorLinking.test.ts +753 -0
  177. package/Tests/Server/Utils/Monitor/MonitorActionTimestamps.test.ts +1 -0
  178. package/Tests/Server/Utils/Monitor/MonitorAlertCriteriaReferences.test.ts +1 -0
  179. package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +119 -0
  180. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +60 -25
  181. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorAffectedResourceEdgeCases.test.ts +1719 -0
  182. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorKubernetesAffectedResources.test.ts +1447 -0
  183. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorKubernetesRatioEmail.test.ts +352 -0
  184. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformMetricUnits.test.ts +717 -0
  185. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformRawScan.test.ts +2125 -0
  186. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformSeriesAffectedResources.test.ts +1288 -0
  187. package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +1 -0
  188. package/Tests/Server/Utils/Monitor/MonitorIncidentCriteriaReferences.test.ts +1 -0
  189. package/Tests/Server/Utils/Monitor/MonitorIncidentMemberRoleMembership.test.ts +1 -0
  190. package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +88 -0
  191. package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +205 -0
  192. package/Tests/Server/Utils/Monitor/MonitorResourceContext.test.ts +62 -0
  193. package/Tests/Server/Utils/Monitor/MonitorResourceDatabaseMaintenance.test.ts +803 -0
  194. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +133 -3
  195. package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +1 -0
  196. package/Tests/Server/Utils/Monitor/PerSeriesRecoveryResolution.test.ts +472 -1
  197. package/Tests/Server/Utils/Monitor/PerSeriesSecondEntityAlerting.test.ts +1 -0
  198. package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +236 -2
  199. package/Tests/Server/Utils/SeriesResourceLabels.test.ts +70 -0
  200. package/Tests/Server/Utils/StartServerProtobufContentType.test.ts +54 -0
  201. package/Tests/Server/Utils/Telemetry/DatabaseEndpointDiscovery.test.ts +1895 -0
  202. package/Tests/Server/Utils/Telemetry/EntityRegistry.test.ts +7 -0
  203. package/Tests/Server/Utils/Telemetry/LogExceptionExtractorSeverityGate.test.ts +90 -0
  204. package/Tests/Server/Utils/Telemetry/ResourceEntityFilter.test.ts +570 -0
  205. package/Tests/Server/Utils/Telemetry/ResourceFacetResolver.test.ts +97 -2
  206. package/Tests/Server/Utils/Telemetry/ServiceDependencyDiscovery.test.ts +1337 -0
  207. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +295 -0
  208. package/Tests/Types/AI/AIResourceContext.test.ts +30 -0
  209. package/Tests/Types/DatabaseServer/DatabaseContainerClassifier.test.ts +3644 -0
  210. package/Tests/Types/DatabaseServer/DatabaseContainerCommand.test.ts +340 -0
  211. package/Tests/Types/DatabaseServer/DatabaseContainerCommandCorpus.ts +826 -0
  212. package/Tests/Types/DatabaseServer/DatabaseContainerCommandPostgres.test.ts +150 -0
  213. package/Tests/Types/DatabaseServer/DatabaseEndpoint.test.ts +2657 -0
  214. package/Tests/Types/DatabaseServer/DatabaseServerDiscoverySource.test.ts +64 -0
  215. package/Tests/Types/DatabaseServer/DatabaseServerEntityKeys.test.ts +952 -0
  216. package/Tests/Types/DatabaseServer/DatabaseServerMetricCatalog.test.ts +1161 -0
  217. package/Tests/Types/DatabaseServer/DatabaseSystem.test.ts +1514 -0
  218. package/Tests/Types/DatabaseServer/DatabaseTelemetryResolver.test.ts +1558 -0
  219. package/Tests/Types/Monitor/CephAlertTemplates.test.ts +255 -6
  220. package/Tests/Types/Monitor/DatabaseAlertTemplates.test.ts +2254 -0
  221. package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +298 -0
  222. package/Tests/Types/Monitor/KubernetesMetricCatalog.test.ts +271 -0
  223. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +253 -9
  224. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +13 -5
  225. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +4 -2
  226. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +111 -2
  227. package/Tests/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.test.ts +61 -0
  228. package/Tests/Types/Monitor/SeriesContext/SeriesLabelDisplay.test.ts +114 -0
  229. package/Tests/Types/Monitor/Utils/KubernetesAgentEmittedMetrics.ts +181 -0
  230. package/Tests/Types/NetworkDevice/DiscoveredHostNamingStatus.test.ts +401 -0
  231. package/Tests/Types/Telemetry/ResourceEntityFacet.test.ts +4 -1
  232. package/Tests/Types/Telemetry/ResourceFacetCatalog.test.ts +24 -2
  233. package/Tests/UI/Components/Card.test.tsx +93 -2
  234. package/Tests/UI/Components/FeedOptions.test.ts +6 -0
  235. package/Tests/UI/Components/FeedOptionsButton.test.tsx +8 -1
  236. package/Tests/UI/Components/ForeignHiddenRuleResilience.test.tsx +1147 -0
  237. package/Tests/UI/Components/HeaderRightRail.test.tsx +41 -1
  238. package/Tests/UI/Components/LogsEntityNames.test.ts +16 -1
  239. package/Tests/UI/Components/LogsFacetSidebarHiddenFacets.test.tsx +7 -3
  240. package/Tests/UI/Components/ResourceFacetConfigs.test.ts +2 -1
  241. package/Tests/UI/Components/RuleCriteria/RuleCriteriaModelTable.test.tsx +3 -3
  242. package/Tests/UI/Components/SrOnlyForeignRule.test.tsx +994 -0
  243. package/Tests/UI/Components/StatusPage/ResourceListSelection.test.tsx +34 -1
  244. package/Tests/UI/Components/TelemetryFacetSidebarHiddenFacets.test.tsx +4 -1
  245. package/Tests/UI/ForeignHiddenRuleGuard.test.ts +1951 -0
  246. package/Tests/UI/Rum/ReplayPlayerChrome.test.tsx +19 -1
  247. package/Tests/UI/Rum/ReplayTabSwitcher.test.tsx +19 -1
  248. package/Tests/UI/TailwindPlayCdnForeignHiddenRule.test.ts +1005 -0
  249. package/Tests/UI/ThemeGroupHoverReveal.test.ts +847 -0
  250. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +70 -0
  251. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +21 -0
  252. package/Tests/UI/Utils/ModelAPISsoRedirect.test.ts +127 -0
  253. package/Tests/UI/Utils/Navigation.test.ts +102 -0
  254. package/Tests/UI/Utils/Telemetry/TelemetryEntityNames.test.ts +23 -0
  255. package/Tests/Utils/LabelRuleImportExport.test.ts +5 -0
  256. package/Tests/Utils/MetricUnitUtil.test.ts +227 -2
  257. package/Tests/Utils/Monitor/MetricValueFormatter.test.ts +288 -2
  258. package/Tests/Utils/Monitor/PlatformResourceIdentityAndUnits.test.ts +1559 -0
  259. package/Tests/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.test.ts +2546 -0
  260. package/Tests/Utils/NetworkDiscovery/DiscoveredHostUtil.test.ts +315 -0
  261. package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +336 -1
  262. package/Tests/Utils/NetworkDiscovery/NetbiosNameUtil.test.ts +244 -0
  263. package/Tests/Utils/ValueFormatter.test.ts +50 -0
  264. package/Tests/tsconfig.json +16 -0
  265. package/Types/AI/AIResourceContext.ts +7 -0
  266. package/Types/Dashboard/DashboardTemplates.ts +2 -1
  267. package/Types/DatabaseServer/DatabaseConnectionSpan.ts +77 -0
  268. package/Types/DatabaseServer/DatabaseContainerClassifier.ts +2068 -0
  269. package/Types/DatabaseServer/DatabaseContainerCommand.ts +801 -0
  270. package/Types/DatabaseServer/DatabaseEndpoint.ts +1943 -0
  271. package/Types/DatabaseServer/DatabaseServerDiscoverySource.ts +68 -0
  272. package/Types/DatabaseServer/DatabaseServerMetricCatalog.ts +966 -0
  273. package/Types/DatabaseServer/DatabaseSystem.ts +2124 -0
  274. package/Types/DatabaseServer/DatabaseTelemetryResolver.ts +555 -0
  275. package/Types/Email/EmailTemplateType.ts +1 -0
  276. package/Types/Monitor/CephAlertTemplates.ts +18 -0
  277. package/Types/Monitor/DatabaseAlertTemplates.ts +2020 -0
  278. package/Types/Monitor/KubernetesAlertTemplates.ts +64 -24
  279. package/Types/Monitor/KubernetesMetricCatalog.ts +118 -19
  280. package/Types/Monitor/MetricMonitor/MetricCriteriaContext.ts +14 -0
  281. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +93 -10
  282. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +109 -8
  283. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +36 -7
  284. package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +43 -2
  285. package/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.ts +41 -6
  286. package/Types/Monitor/SeriesContext/SeriesLabelDisplay.ts +26 -0
  287. package/Types/NetworkDevice/DiscoveredHostNamingStatus.ts +147 -0
  288. package/Types/Permission.ts +267 -0
  289. package/Types/Probe/ProbeApiIngestResponse.ts +8 -0
  290. package/Types/Rules/RuleCriteriaFieldRegistry.ts +10 -0
  291. package/Types/Rules/RuleRun.ts +12 -0
  292. package/Types/Telemetry/EntityType.ts +23 -0
  293. package/Types/Telemetry/ResourceFacetCatalog.ts +14 -0
  294. package/Types/Telemetry/ServiceType.ts +8 -0
  295. package/UI/Components/Banner/Banner.tsx +1 -1
  296. package/UI/Components/Card/Card.tsx +1 -1
  297. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +2 -2
  298. package/UI/Components/Charts/Line/LineChart.tsx +7 -0
  299. package/UI/Components/CommandPalette/CommandPalette.tsx +1 -1
  300. package/UI/Components/Date/StartAndEndDate.tsx +5 -5
  301. package/UI/Components/Diagram/HorizontalStepChain.tsx +1 -1
  302. package/UI/Components/Feed/FeedOptionsButton.tsx +1 -1
  303. package/UI/Components/Forms/BasicForm.tsx +1 -1
  304. package/UI/Components/Header/Header.tsx +1 -1
  305. package/UI/Components/Header/HeaderIconDropdownButton.tsx +1 -1
  306. package/UI/Components/HeaderAlert/HeaderAlert.tsx +1 -1
  307. package/UI/Components/LogsViewer/components/FacetValueRow.tsx +1 -1
  308. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +1 -1
  309. package/UI/Components/Modal/ModalFooter.tsx +1 -1
  310. package/UI/Components/ModelDetail/CardModelDetail.tsx +2 -2
  311. package/UI/Components/ModelTable/BaseModelTable.tsx +4 -4
  312. package/UI/Components/Navbar/NavBar.tsx +9 -2
  313. package/UI/Components/Navbar/NavBarMenuModal.tsx +2 -2
  314. package/UI/Components/Page/Page.tsx +1 -1
  315. package/UI/Components/Pagination/Pagination.tsx +3 -3
  316. package/UI/Components/ProgressButtons/ProgressButtonItem.tsx +1 -1
  317. package/UI/Components/SideMenu/SideMenu.tsx +4 -1
  318. package/UI/Components/StatusPage/ResourceGroupNavigator.tsx +4 -2
  319. package/UI/Components/StatusPage/ResourceList.tsx +6 -6
  320. package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +1 -1
  321. package/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.tsx +1 -1
  322. package/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.tsx +1 -1
  323. package/UI/Components/Workflow/ComponentsModal.tsx +2 -2
  324. package/UI/Components/Workflow/StepTraceViewer.tsx +1 -1
  325. package/UI/Styles/Theme.css +8 -1
  326. package/UI/Utils/Navigation.ts +89 -42
  327. package/UI/Utils/Telemetry/TelemetryEntityNames.ts +7 -0
  328. package/UI/Utils/TelemetryService.ts +4 -3
  329. package/Utils/LabelRuleImportExport.ts +2 -0
  330. package/Utils/MetricUnitUtil.ts +103 -11
  331. package/Utils/Monitor/MetricValueFormatter.ts +66 -13
  332. package/Utils/Monitor/PlatformMetricUnitUtil.ts +215 -0
  333. package/Utils/Monitor/PlatformResourceIdentity.ts +514 -0
  334. package/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.ts +425 -0
  335. package/Utils/NetworkDiscovery/DiscoveredHostUtil.ts +32 -0
  336. package/Utils/NetworkDiscovery/NetbiosNameUtil.ts +73 -0
  337. package/Utils/Telemetry/DatabaseServerEntityKeys.ts +275 -0
  338. package/Utils/Telemetry/EntityKey.ts +176 -0
  339. package/Utils/ValueFormatter.ts +16 -0
  340. package/build/dist/Models/DatabaseModels/Alert.js +54 -0
  341. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  342. package/build/dist/Models/DatabaseModels/DatabaseServer.js +1683 -0
  343. package/build/dist/Models/DatabaseModels/DatabaseServer.js.map +1 -0
  344. package/build/dist/Models/DatabaseModels/DatabaseServerEndpoint.js +559 -0
  345. package/build/dist/Models/DatabaseModels/DatabaseServerEndpoint.js.map +1 -0
  346. package/build/dist/Models/DatabaseModels/DatabaseServerFeed.js +648 -0
  347. package/build/dist/Models/DatabaseModels/DatabaseServerFeed.js.map +1 -0
  348. package/build/dist/Models/DatabaseModels/DatabaseServerLabelRule.js +522 -0
  349. package/build/dist/Models/DatabaseModels/DatabaseServerLabelRule.js.map +1 -0
  350. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerRule.js +603 -0
  351. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerRule.js.map +1 -0
  352. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerTeam.js +506 -0
  353. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerTeam.js.map +1 -0
  354. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerUser.js +505 -0
  355. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerUser.js.map +1 -0
  356. package/build/dist/Models/DatabaseModels/Incident.js +54 -0
  357. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  358. package/build/dist/Models/DatabaseModels/Index.js +16 -0
  359. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  360. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  361. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +54 -0
  362. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  363. package/build/dist/Models/DatabaseModels/TelemetryException.js +2 -0
  364. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  365. package/build/dist/Models/DatabaseModels/UserProjectSsoConsent.js +162 -0
  366. package/build/dist/Models/DatabaseModels/UserProjectSsoConsent.js.map +1 -0
  367. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.js +240 -0
  368. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.js.map +1 -0
  369. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.js +26 -0
  370. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.js.map +1 -0
  371. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  372. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  373. package/build/dist/Server/Middleware/MultipartFormData.js +1 -1
  374. package/build/dist/Server/Middleware/TelemetryIngest.js +15 -8
  375. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  376. package/build/dist/Server/Services/AlertReminderRuleService.js +72 -23
  377. package/build/dist/Server/Services/AlertReminderRuleService.js.map +1 -1
  378. package/build/dist/Server/Services/DatabaseServerEndpointService.js +694 -0
  379. package/build/dist/Server/Services/DatabaseServerEndpointService.js.map +1 -0
  380. package/build/dist/Server/Services/DatabaseServerFeedService.js +110 -0
  381. package/build/dist/Server/Services/DatabaseServerFeedService.js.map +1 -0
  382. package/build/dist/Server/Services/DatabaseServerLabelRuleEngineService.js +272 -0
  383. package/build/dist/Server/Services/DatabaseServerLabelRuleEngineService.js.map +1 -0
  384. package/build/dist/Server/Services/DatabaseServerLabelRuleService.js +13 -0
  385. package/build/dist/Server/Services/DatabaseServerLabelRuleService.js.map +1 -0
  386. package/build/dist/Server/Services/DatabaseServerOwnerRuleEngineService.js +340 -0
  387. package/build/dist/Server/Services/DatabaseServerOwnerRuleEngineService.js.map +1 -0
  388. package/build/dist/Server/Services/DatabaseServerOwnerRuleService.js +13 -0
  389. package/build/dist/Server/Services/DatabaseServerOwnerRuleService.js.map +1 -0
  390. package/build/dist/Server/Services/DatabaseServerOwnerTeamService.js +160 -0
  391. package/build/dist/Server/Services/DatabaseServerOwnerTeamService.js.map +1 -0
  392. package/build/dist/Server/Services/DatabaseServerOwnerUserService.js +153 -0
  393. package/build/dist/Server/Services/DatabaseServerOwnerUserService.js.map +1 -0
  394. package/build/dist/Server/Services/DatabaseServerService.js +3272 -0
  395. package/build/dist/Server/Services/DatabaseServerService.js.map +1 -0
  396. package/build/dist/Server/Services/DatabaseService.js +8 -4
  397. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  398. package/build/dist/Server/Services/DockerResourceService.js +30 -3
  399. package/build/dist/Server/Services/DockerResourceService.js.map +1 -1
  400. package/build/dist/Server/Services/IncidentReminderRuleService.js +73 -23
  401. package/build/dist/Server/Services/IncidentReminderRuleService.js.map +1 -1
  402. package/build/dist/Server/Services/Index.js +16 -0
  403. package/build/dist/Server/Services/Index.js.map +1 -1
  404. package/build/dist/Server/Services/InventoryItemService.js +88 -5
  405. package/build/dist/Server/Services/InventoryItemService.js.map +1 -1
  406. package/build/dist/Server/Services/IoTDeviceService.js +111 -24
  407. package/build/dist/Server/Services/IoTDeviceService.js.map +1 -1
  408. package/build/dist/Server/Services/OpenTelemetryIngestService.js +24 -9
  409. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  410. package/build/dist/Server/Services/PodmanResourceService.js +30 -3
  411. package/build/dist/Server/Services/PodmanResourceService.js.map +1 -1
  412. package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js +75 -23
  413. package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js.map +1 -1
  414. package/build/dist/Server/Services/ServiceService.js +1 -1
  415. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  416. package/build/dist/Server/Services/TelemetryUsageBillingService.js +23 -2
  417. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  418. package/build/dist/Server/Services/UserProjectSsoConsentService.js +79 -0
  419. package/build/dist/Server/Services/UserProjectSsoConsentService.js.map +1 -0
  420. package/build/dist/Server/Services/UserService.js +13 -1
  421. package/build/dist/Server/Services/UserService.js.map +1 -1
  422. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +18 -0
  423. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  424. package/build/dist/Server/Types/Database/QueryHelper.js +26 -1
  425. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  426. package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js +46 -0
  427. package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js.map +1 -1
  428. package/build/dist/Server/Utils/Database/AffectedResourceRelations.js +6 -0
  429. package/build/dist/Server/Utils/Database/AffectedResourceRelations.js.map +1 -1
  430. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +134 -13
  431. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
  432. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +22 -6
  433. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  434. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +1489 -524
  435. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  436. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +22 -6
  437. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  438. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +196 -6
  439. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
  440. package/build/dist/Server/Utils/Monitor/MonitorResource.js +36 -9
  441. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  442. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js +1 -0
  443. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js.map +1 -1
  444. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +175 -17
  445. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -1
  446. package/build/dist/Server/Utils/Monitor/PerSeriesResolutionRootCause.js +29 -0
  447. package/build/dist/Server/Utils/Monitor/PerSeriesResolutionRootCause.js.map +1 -0
  448. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +211 -0
  449. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
  450. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +82 -10
  451. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -1
  452. package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js +25 -0
  453. package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js.map +1 -1
  454. package/build/dist/Server/Utils/StartServer.js +20 -4
  455. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  456. package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js +2 -0
  457. package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js.map +1 -1
  458. package/build/dist/Server/Utils/Telemetry/DatabaseEndpointDiscovery.js +442 -0
  459. package/build/dist/Server/Utils/Telemetry/DatabaseEndpointDiscovery.js.map +1 -0
  460. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +5 -1
  461. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  462. package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js +15 -1
  463. package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js.map +1 -1
  464. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +121 -5
  465. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -1
  466. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +12 -0
  467. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  468. package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js +438 -36
  469. package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js.map +1 -1
  470. package/build/dist/Server/Utils/Telemetry/Telemetry.js +12 -0
  471. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  472. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -18
  473. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  474. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js +16 -10
  475. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js.map +1 -1
  476. package/build/dist/Types/AI/AIResourceContext.js +7 -0
  477. package/build/dist/Types/AI/AIResourceContext.js.map +1 -1
  478. package/build/dist/Types/Dashboard/DashboardTemplates.js +2 -1
  479. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  480. package/build/dist/Types/DatabaseServer/DatabaseConnectionSpan.js +71 -0
  481. package/build/dist/Types/DatabaseServer/DatabaseConnectionSpan.js.map +1 -0
  482. package/build/dist/Types/DatabaseServer/DatabaseContainerClassifier.js +1462 -0
  483. package/build/dist/Types/DatabaseServer/DatabaseContainerClassifier.js.map +1 -0
  484. package/build/dist/Types/DatabaseServer/DatabaseContainerCommand.js +691 -0
  485. package/build/dist/Types/DatabaseServer/DatabaseContainerCommand.js.map +1 -0
  486. package/build/dist/Types/DatabaseServer/DatabaseEndpoint.js +1407 -0
  487. package/build/dist/Types/DatabaseServer/DatabaseEndpoint.js.map +1 -0
  488. package/build/dist/Types/DatabaseServer/DatabaseServerDiscoverySource.js +60 -0
  489. package/build/dist/Types/DatabaseServer/DatabaseServerDiscoverySource.js.map +1 -0
  490. package/build/dist/Types/DatabaseServer/DatabaseServerMetricCatalog.js +804 -0
  491. package/build/dist/Types/DatabaseServer/DatabaseServerMetricCatalog.js.map +1 -0
  492. package/build/dist/Types/DatabaseServer/DatabaseSystem.js +1860 -0
  493. package/build/dist/Types/DatabaseServer/DatabaseSystem.js.map +1 -0
  494. package/build/dist/Types/DatabaseServer/DatabaseTelemetryResolver.js +406 -0
  495. package/build/dist/Types/DatabaseServer/DatabaseTelemetryResolver.js.map +1 -0
  496. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  497. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  498. package/build/dist/Types/Monitor/CephAlertTemplates.js +18 -0
  499. package/build/dist/Types/Monitor/CephAlertTemplates.js.map +1 -1
  500. package/build/dist/Types/Monitor/DatabaseAlertTemplates.js +1518 -0
  501. package/build/dist/Types/Monitor/DatabaseAlertTemplates.js.map +1 -0
  502. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +57 -24
  503. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  504. package/build/dist/Types/Monitor/KubernetesMetricCatalog.js +104 -18
  505. package/build/dist/Types/Monitor/KubernetesMetricCatalog.js.map +1 -1
  506. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +80 -3
  507. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  508. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +10 -3
  509. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  510. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +29 -0
  511. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
  512. package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js +21 -6
  513. package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js.map +1 -1
  514. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js +25 -0
  515. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js.map +1 -1
  516. package/build/dist/Types/NetworkDevice/DiscoveredHostNamingStatus.js +136 -0
  517. package/build/dist/Types/NetworkDevice/DiscoveredHostNamingStatus.js.map +1 -0
  518. package/build/dist/Types/Permission.js +234 -0
  519. package/build/dist/Types/Permission.js.map +1 -1
  520. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js +10 -0
  521. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js.map +1 -1
  522. package/build/dist/Types/Rules/RuleRun.js +4 -0
  523. package/build/dist/Types/Rules/RuleRun.js.map +1 -1
  524. package/build/dist/Types/Telemetry/EntityType.js +23 -0
  525. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  526. package/build/dist/Types/Telemetry/ResourceFacetCatalog.js +14 -0
  527. package/build/dist/Types/Telemetry/ResourceFacetCatalog.js.map +1 -1
  528. package/build/dist/Types/Telemetry/ServiceType.js +8 -0
  529. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  530. package/build/dist/UI/Components/Banner/Banner.js +1 -1
  531. package/build/dist/UI/Components/Banner/Banner.js.map +1 -1
  532. package/build/dist/UI/Components/Card/Card.js +1 -1
  533. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  534. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +2 -2
  535. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  536. package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
  537. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  538. package/build/dist/UI/Components/CommandPalette/CommandPalette.js +1 -1
  539. package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -1
  540. package/build/dist/UI/Components/Date/StartAndEndDate.js +5 -5
  541. package/build/dist/UI/Components/Date/StartAndEndDate.js.map +1 -1
  542. package/build/dist/UI/Components/Diagram/HorizontalStepChain.js +1 -1
  543. package/build/dist/UI/Components/Diagram/HorizontalStepChain.js.map +1 -1
  544. package/build/dist/UI/Components/Feed/FeedOptionsButton.js +1 -1
  545. package/build/dist/UI/Components/Feed/FeedOptionsButton.js.map +1 -1
  546. package/build/dist/UI/Components/Forms/BasicForm.js +1 -1
  547. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  548. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +1 -1
  549. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
  550. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js +1 -1
  551. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js.map +1 -1
  552. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js +1 -1
  553. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js.map +1 -1
  554. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +1 -1
  555. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  556. package/build/dist/UI/Components/Modal/ModalFooter.js +1 -1
  557. package/build/dist/UI/Components/Modal/ModalFooter.js.map +1 -1
  558. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +2 -2
  559. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
  560. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +4 -4
  561. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  562. package/build/dist/UI/Components/Navbar/NavBar.js +9 -2
  563. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  564. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +2 -2
  565. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  566. package/build/dist/UI/Components/Page/Page.js +1 -1
  567. package/build/dist/UI/Components/Page/Page.js.map +1 -1
  568. package/build/dist/UI/Components/Pagination/Pagination.js +3 -3
  569. package/build/dist/UI/Components/Pagination/Pagination.js.map +1 -1
  570. package/build/dist/UI/Components/ProgressButtons/ProgressButtonItem.js +1 -1
  571. package/build/dist/UI/Components/ProgressButtons/ProgressButtonItem.js.map +1 -1
  572. package/build/dist/UI/Components/SideMenu/SideMenu.js +4 -1
  573. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  574. package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js +3 -1
  575. package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js.map +1 -1
  576. package/build/dist/UI/Components/StatusPage/ResourceList.js +6 -6
  577. package/build/dist/UI/Components/StatusPage/ResourceList.js.map +1 -1
  578. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +1 -1
  579. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
  580. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js +1 -1
  581. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js.map +1 -1
  582. package/build/dist/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.js +1 -1
  583. package/build/dist/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.js.map +1 -1
  584. package/build/dist/UI/Components/Workflow/ComponentsModal.js +2 -2
  585. package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
  586. package/build/dist/UI/Components/Workflow/StepTraceViewer.js +1 -1
  587. package/build/dist/UI/Components/Workflow/StepTraceViewer.js.map +1 -1
  588. package/build/dist/UI/Utils/Navigation.js +66 -33
  589. package/build/dist/UI/Utils/Navigation.js.map +1 -1
  590. package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js +7 -0
  591. package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js.map +1 -1
  592. package/build/dist/UI/Utils/TelemetryService.js +3 -2
  593. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  594. package/build/dist/Utils/LabelRuleImportExport.js +2 -0
  595. package/build/dist/Utils/LabelRuleImportExport.js.map +1 -1
  596. package/build/dist/Utils/MetricUnitUtil.js +77 -13
  597. package/build/dist/Utils/MetricUnitUtil.js.map +1 -1
  598. package/build/dist/Utils/Monitor/MetricValueFormatter.js +58 -13
  599. package/build/dist/Utils/Monitor/MetricValueFormatter.js.map +1 -1
  600. package/build/dist/Utils/Monitor/PlatformMetricUnitUtil.js +161 -0
  601. package/build/dist/Utils/Monitor/PlatformMetricUnitUtil.js.map +1 -0
  602. package/build/dist/Utils/Monitor/PlatformResourceIdentity.js +323 -0
  603. package/build/dist/Utils/Monitor/PlatformResourceIdentity.js.map +1 -0
  604. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.js +270 -0
  605. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.js.map +1 -0
  606. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js +23 -0
  607. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js.map +1 -1
  608. package/build/dist/Utils/NetworkDiscovery/NetbiosNameUtil.js +61 -0
  609. package/build/dist/Utils/NetworkDiscovery/NetbiosNameUtil.js.map +1 -1
  610. package/build/dist/Utils/Telemetry/DatabaseServerEntityKeys.js +178 -0
  611. package/build/dist/Utils/Telemetry/DatabaseServerEntityKeys.js.map +1 -0
  612. package/build/dist/Utils/Telemetry/EntityKey.js +133 -0
  613. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
  614. package/build/dist/Utils/ValueFormatter.js +15 -0
  615. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  616. package/package.json +1 -1
  617. package/tsconfig.tests.json +7 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformResourceIdentity.js","sourceRoot":"","sources":["../../../../Utils/Monitor/PlatformResourceIdentity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,270 @@
1
+ import { DiscoveredHostNetbiosStatus, DiscoveredHostReverseDnsStatus, readDiscoveredHostNetbiosStatus, readDiscoveredHostReverseDnsStatus, } from "../../Types/NetworkDevice/DiscoveredHostNamingStatus";
2
+ import { DiscoveryScanStatus } from "./DiscoveryScanStatus";
3
+ import { isNetbiosQueryableIPv4Address, normalizeNetbiosName, } from "./NetbiosNameUtil";
4
+ import { normalizeReverseDnsName } from "./ReverseDnsNameUtil";
5
+ import { ScanModeUtil } from "./ScanModeUtil";
6
+ export const UNNAMED_HOST_LABEL = "No name found";
7
+ export const NOT_YET_NAMED_HOST_LABEL = "Not named yet";
8
+ /*
9
+ * Said for a scan still sweeping. Names are looked up only after the sweep
10
+ * finishes (Probe/Jobs/Discovery/FetchScans.ts, scanWithDeadline), so every
11
+ * host a running scan has reported so far is unnamed by construction — the
12
+ * interesting question has not been asked yet.
13
+ */
14
+ export const IN_PROGRESS_EXPLANATION = "Names are looked up after the sweep finishes, so hosts found so far are listed by address. Open Review Results again when the scan completes.";
15
+ /*
16
+ * Said for a scan that failed. A sweep that misses its deadline or throws is
17
+ * reported without ever reaching the naming passes, so its hosts are the ones
18
+ * it had uploaded along the way — which carry no names by design.
19
+ */
20
+ export const FAILED_SCAN_EXPLANATION = "This scan stopped before it looked up names, so its hosts are listed by address. Run it again to name them.";
21
+ /*
22
+ * One sentence per code. None of them says how many times the probe asked:
23
+ * a retry has to fit in the naming pass's time budget, so "even on a retry"
24
+ * could be false for exactly the hosts a slow DNS server pushed past the
25
+ * deadline. The tip that follows these codes says to rescan, which is the
26
+ * part the operator can act on.
27
+ */
28
+ const REVERSE_DNS_SENTENCES = {
29
+ [DiscoveredHostReverseDnsStatus.NoRecord]: "Reverse DNS: the probe's DNS server has no PTR record for this address.",
30
+ [DiscoveredHostReverseDnsStatus.UnusableName]: "Reverse DNS: a PTR record came back, but it is not a valid hostname, so it was not used.",
31
+ [DiscoveredHostReverseDnsStatus.Timeout]: "Reverse DNS: the probe's DNS server did not answer in time.",
32
+ [DiscoveredHostReverseDnsStatus.ServerFailure]: "Reverse DNS: the probe's DNS server answered with a server failure (SERVFAIL).",
33
+ [DiscoveredHostReverseDnsStatus.Refused]: "Reverse DNS: the probe's DNS server refused the query.",
34
+ [DiscoveredHostReverseDnsStatus.Unreachable]: "Reverse DNS: the probe could not reach its DNS server.",
35
+ [DiscoveredHostReverseDnsStatus.Failed]: "Reverse DNS: the lookup failed on the probe.",
36
+ [DiscoveredHostReverseDnsStatus.SkippedTimeBudget]: "Reverse DNS: not looked up. The scan ran out of time for name lookups before reaching this address.",
37
+ [DiscoveredHostReverseDnsStatus.SkippedNoResolver]: "Reverse DNS: not looked up. The probe's DNS server was not answering, so it stopped asking.",
38
+ };
39
+ /*
40
+ * A row with no reverse-DNS code: stored by a probe older than the codes, or
41
+ * by one whose pass failed outright. Nothing on the row says which, or why,
42
+ * so this claims neither.
43
+ */
44
+ export const REVERSE_DNS_NOT_RECORDED_SENTENCE = "Reverse DNS: no name was recorded for this address.";
45
+ const NETBIOS_SENTENCES = {
46
+ [DiscoveredHostNetbiosStatus.NoReply]: "NetBIOS: no reply on UDP 137, which is usual for devices that are not Windows, or when a firewall blocks it.",
47
+ [DiscoveredHostNetbiosStatus.NoUsableName]: "NetBIOS: the device replied, but reported no usable name.",
48
+ [DiscoveredHostNetbiosStatus.SendFailed]: "NetBIOS: the query could not be sent from the probe.",
49
+ [DiscoveredHostNetbiosStatus.Skipped]: "NetBIOS: not asked. The lookup stopped before reaching this address.",
50
+ [DiscoveredHostNetbiosStatus.SkippedHostCap]: "NetBIOS: not asked. The scan reached the probe's NetBIOS host limit.",
51
+ [DiscoveredHostNetbiosStatus.SkippedIneligibleAddress]: "NetBIOS: not asked. Only private addresses are asked.",
52
+ [DiscoveredHostNetbiosStatus.SkippedGlobalProbe]: "NetBIOS: not asked. This scan ran on a global probe, and global probes never send NetBIOS queries.",
53
+ };
54
+ export const NETBIOS_OFF_SENTENCE = "NetBIOS: off for this scan.";
55
+ // NetBIOS was on, and yet the row carries no code: an older probe's row.
56
+ export const NETBIOS_NOT_RECORDED_SENTENCE = "NetBIOS: no name was recorded.";
57
+ export const SNMP_NOT_CHECKED_SENTENCE = "SNMP: not checked by this scan.";
58
+ export const SNMP_NO_ANSWER_SENTENCE = "SNMP: no answer with this scan's credentials.";
59
+ export const SNMP_NO_SYSNAME_SENTENCE = "SNMP: the device answered, but reported no name (sysName).";
60
+ /*
61
+ * The one piece of advice that fits the reverse-DNS code best, when any
62
+ * does. "No record" gets the one that matters most for the issue this came
63
+ * from: the probe resolves through ITS OWN DNS server, which need not be the
64
+ * one the operator checked with, so the comparison worth making is from where
65
+ * the probe resolves. That is inside its container or pod, not the machine
66
+ * under it (#3916): a pod's resolver is the cluster DNS, not the node's
67
+ * /etc/resolv.conf, and a Docker container's can differ from its host's too,
68
+ * so "from the probe's host" sent the operator to a lookup that could name
69
+ * the device while the probe's could not. The probe image ships nslookup
70
+ * (dnsutils, Probe/Dockerfile.tpl), so the advice can be followed as written.
71
+ */
72
+ export const NO_RECORD_TIP = "The probe uses its own DNS server, which may not be the one you checked with. Run nslookup on this address inside the probe's container or pod to compare.";
73
+ export const TRANSIENT_FAILURE_TIP = "Rescan to try again. If it keeps happening, check the DNS servers the probe uses, inside its container or pod.";
74
+ /*
75
+ * Offered when the scan left one or both of the ways of asking the DEVICE for
76
+ * its name switched off. Those are exactly the names the issue asked to see
77
+ * first — the one configured on the device — so saying where they come from
78
+ * is the useful answer to "but it has a hostname". Only the sources that were
79
+ * actually off, and would run if turned on, are named — for NetBIOS that
80
+ * means the probe is not a global one AND the address is one its lookup
81
+ * would query at all (isNetbiosQueryableIPv4Address).
82
+ */
83
+ export const ASK_THE_DEVICE_TIP = "Checking SNMP, or NetBIOS lookup for Windows hosts, asks the device for its own name.";
84
+ export const ASK_THE_DEVICE_SNMP_TIP = "Checking SNMP asks the device for its own name.";
85
+ export const ASK_THE_DEVICE_NETBIOS_TIP = "NetBIOS lookup asks Windows hosts for their own name.";
86
+ /*
87
+ * The codes that get TRANSIENT_FAILURE_TIP: the lookup failed rather than
88
+ * answered, so a rescan may name the host, and the DNS servers the probe's
89
+ * host uses are where to look when it does not.
90
+ *
91
+ * SkippedNoResolver is one of them although its address was never looked up
92
+ * (#3916). The probe stopped asking only because every lookup before it had
93
+ * failed in these same ways, so the advice is the same. Without it, the hosts
94
+ * a pass gave up on were the only failed lookups with nothing to check.
95
+ */
96
+ const TRANSIENT_REVERSE_DNS_STATUSES = new Set([
97
+ DiscoveredHostReverseDnsStatus.Timeout,
98
+ DiscoveredHostReverseDnsStatus.ServerFailure,
99
+ DiscoveredHostReverseDnsStatus.Refused,
100
+ DiscoveredHostReverseDnsStatus.Unreachable,
101
+ DiscoveredHostReverseDnsStatus.Failed,
102
+ DiscoveredHostReverseDnsStatus.SkippedNoResolver,
103
+ ]);
104
+ // A string with something in it besides whitespace.
105
+ function hasText(value) {
106
+ return typeof value === "string" && value.trim().length > 0;
107
+ }
108
+ /**
109
+ * True when the row would be named by something other than its address: a
110
+ * sysName, a usable PTR name or a usable NetBIOS name. Mirrors
111
+ * getDiscoveredHostFullName's order and its re-normalisation, so the hint is
112
+ * shown on exactly the rows whose name line is the address.
113
+ */
114
+ export function isDiscoveredHostNamed(host) {
115
+ return (hasText(host.sysName) ||
116
+ Boolean(normalizeReverseDnsName(host.dnsHostname)) ||
117
+ Boolean(normalizeNetbiosName(host.netbiosName)));
118
+ }
119
+ function describeSnmp(data) {
120
+ if (data.scan && !ScanModeUtil.isSnmpEnabled(data.scan)) {
121
+ return SNMP_NOT_CHECKED_SENTENCE;
122
+ }
123
+ if (data.host.snmpReachable === false) {
124
+ return SNMP_NO_ANSWER_SENTENCE;
125
+ }
126
+ /*
127
+ * Answered SNMP — or a row from before `snmpReachable` existed, when every
128
+ * host listed had answered it. Either way the host is unnamed, so whatever
129
+ * it said had no sysName in it.
130
+ */
131
+ if (data.scan || data.host.snmpReachable === true) {
132
+ return SNMP_NO_SYSNAME_SENTENCE;
133
+ }
134
+ return undefined;
135
+ }
136
+ function describeNetbios(data) {
137
+ if (data.status) {
138
+ return NETBIOS_SENTENCES[data.status];
139
+ }
140
+ // Without the scan there is no telling whether NetBIOS was ever on.
141
+ if (!data.scan) {
142
+ return undefined;
143
+ }
144
+ if (data.scan.isNetbiosLookupEnabled !== true) {
145
+ return NETBIOS_OFF_SENTENCE;
146
+ }
147
+ /*
148
+ * On, but no code: a row from a probe older than the codes. If the scan's
149
+ * probe is a global one, the lookup was skipped whatever that probe's
150
+ * version — the global-probe refusal predates the codes.
151
+ */
152
+ if (data.isGlobalProbe) {
153
+ return NETBIOS_SENTENCES[DiscoveredHostNetbiosStatus.SkippedGlobalProbe];
154
+ }
155
+ /*
156
+ * Likewise for an address outside the private and CGNAT ranges (#3916):
157
+ * the probe's refusal of those shipped in the same change as the
158
+ * isNetbiosLookupEnabled column, so no probe that honoured the setting
159
+ * ever asked one.
160
+ */
161
+ if (!data.isQueryableAddress) {
162
+ return NETBIOS_SENTENCES[DiscoveredHostNetbiosStatus.SkippedIneligibleAddress];
163
+ }
164
+ return NETBIOS_NOT_RECORDED_SENTENCE;
165
+ }
166
+ /**
167
+ * Why this discovered host has no name, or undefined when it has one (or has
168
+ * no address, which its row already explains).
169
+ *
170
+ * `isGlobalProbe` is whether the scan's probe is a global one, when the
171
+ * caller knows. It matters only for rows that carry no NetBIOS code, and for
172
+ * whether a scan with NetBIOS off is advised to turn it on.
173
+ */
174
+ export function explainUnnamedDiscoveredHost(data) {
175
+ var _a, _b;
176
+ const host = data.host;
177
+ if (!host || typeof host !== "object") {
178
+ return undefined;
179
+ }
180
+ /*
181
+ * A row with no address cannot be imported, and says so on its checkbox.
182
+ * Nullish is checked before stringifying: String(null) is "null", which
183
+ * would read as an address.
184
+ */
185
+ if (host.ipAddress === undefined ||
186
+ host.ipAddress === null ||
187
+ !hasText(String(host.ipAddress))) {
188
+ return undefined;
189
+ }
190
+ if (isDiscoveredHostNamed(host)) {
191
+ return undefined;
192
+ }
193
+ const dnsHostnameStatus = readDiscoveredHostReverseDnsStatus(host.dnsHostnameStatus);
194
+ const netbiosNameStatus = readDiscoveredHostNetbiosStatus(host.netbiosNameStatus);
195
+ /*
196
+ * A per-host code means the naming passes ran for this row, whatever the
197
+ * scan is doing now — a recurring scan keeps its previous run's results
198
+ * while the next run starts. Only a row with no code at all is explained by
199
+ * the scan's state.
200
+ */
201
+ if (!dnsHostnameStatus && !netbiosNameStatus) {
202
+ if (((_a = data.scan) === null || _a === void 0 ? void 0 : _a.status) === DiscoveryScanStatus.InProgress) {
203
+ return {
204
+ label: NOT_YET_NAMED_HOST_LABEL,
205
+ text: IN_PROGRESS_EXPLANATION,
206
+ };
207
+ }
208
+ if (((_b = data.scan) === null || _b === void 0 ? void 0 : _b.status) === DiscoveryScanStatus.Failed) {
209
+ return { label: UNNAMED_HOST_LABEL, text: FAILED_SCAN_EXPLANATION };
210
+ }
211
+ }
212
+ /*
213
+ * Whether the probe's NetBIOS lookup would send this address a query at
214
+ * all. It refuses everything but private and CGNAT IPv4, whoever asks.
215
+ */
216
+ const isNetbiosQueryableAddress = isNetbiosQueryableIPv4Address(host.ipAddress);
217
+ const netbiosSentence = describeNetbios({
218
+ status: netbiosNameStatus,
219
+ scan: data.scan,
220
+ isGlobalProbe: data.isGlobalProbe === true,
221
+ isQueryableAddress: isNetbiosQueryableAddress,
222
+ });
223
+ const sentences = [];
224
+ // The naming order, so the sentences read in the order the sources win.
225
+ const snmpSentence = describeSnmp({
226
+ host: host,
227
+ scan: data.scan,
228
+ });
229
+ if (snmpSentence) {
230
+ sentences.push(snmpSentence);
231
+ }
232
+ sentences.push(dnsHostnameStatus
233
+ ? REVERSE_DNS_SENTENCES[dnsHostnameStatus]
234
+ : REVERSE_DNS_NOT_RECORDED_SENTENCE);
235
+ if (netbiosSentence) {
236
+ sentences.push(netbiosSentence);
237
+ }
238
+ if (dnsHostnameStatus === DiscoveredHostReverseDnsStatus.NoRecord) {
239
+ sentences.push(NO_RECORD_TIP);
240
+ }
241
+ else if (dnsHostnameStatus &&
242
+ TRANSIENT_REVERSE_DNS_STATUSES.has(dnsHostnameStatus)) {
243
+ sentences.push(TRANSIENT_FAILURE_TIP);
244
+ }
245
+ const isSnmpOff = snmpSentence === SNMP_NOT_CHECKED_SENTENCE;
246
+ /*
247
+ * NetBIOS is suggested only where turning it on could work. A global probe
248
+ * never sends NetBIOS queries whatever the scan asks for, so on one this
249
+ * advice would send the operator to a setting whose only effect is the
250
+ * "not asked" line on the next scan (#3916). The bundled self-hosted probes
251
+ * are global, so that is not a rare case. The same goes for an address the
252
+ * lookup refuses — public space, IPv6, anything not a strict dotted quad —
253
+ * where the next scan would only say "Only private addresses are asked".
254
+ */
255
+ const shouldSuggestNetbios = netbiosSentence === NETBIOS_OFF_SENTENCE &&
256
+ data.isGlobalProbe !== true &&
257
+ isNetbiosQueryableAddress;
258
+ if (isSnmpOff && shouldSuggestNetbios) {
259
+ sentences.push(ASK_THE_DEVICE_TIP);
260
+ }
261
+ else if (isSnmpOff) {
262
+ sentences.push(ASK_THE_DEVICE_SNMP_TIP);
263
+ }
264
+ else if (shouldSuggestNetbios) {
265
+ sentences.push(ASK_THE_DEVICE_NETBIOS_TIP);
266
+ }
267
+ return { label: UNNAMED_HOST_LABEL, text: sentences.join(" ") };
268
+ }
269
+ export default explainUnnamedDiscoveredHost;
270
+ //# sourceMappingURL=DiscoveredHostNamingDiagnosis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiscoveredHostNamingDiagnosis.js","sourceRoot":"","sources":["../../../../Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { readDiscoveredHostNetbiosStatus, readDiscoveredHostReverseDnsStatus, } from "../../Types/NetworkDevice/DiscoveredHostNamingStatus";
1
2
  import { normalizeNetbiosName } from "./NetbiosNameUtil";
2
3
  import { normalizeReverseDnsName } from "./ReverseDnsNameUtil";
3
4
  /*
@@ -121,6 +122,28 @@ export function normalizeDiscoveredHosts(hosts) {
121
122
  else {
122
123
  delete normalized.netbiosName;
123
124
  }
125
+ /*
126
+ * The two "why is this host unnamed" codes (OneUptime issue #3916). Not
127
+ * chosen by the scanned network, but still read out of the same verbatim
128
+ * jsonb, and the dialog turns them into tooltip copy — so only the exact
129
+ * codes survive, and anything else is DELETED for the reason the names
130
+ * above are. A code this build does not know (a newer probe's) goes the
131
+ * same way and the row falls back to the explanation older rows get.
132
+ */
133
+ const dnsHostnameStatus = readDiscoveredHostReverseDnsStatus(host.dnsHostnameStatus);
134
+ if (dnsHostnameStatus) {
135
+ normalized.dnsHostnameStatus = dnsHostnameStatus;
136
+ }
137
+ else {
138
+ delete normalized.dnsHostnameStatus;
139
+ }
140
+ const netbiosNameStatus = readDiscoveredHostNetbiosStatus(host.netbiosNameStatus);
141
+ if (netbiosNameStatus) {
142
+ normalized.netbiosNameStatus = netbiosNameStatus;
143
+ }
144
+ else {
145
+ delete normalized.netbiosNameStatus;
146
+ }
124
147
  cleaned.push(normalized);
125
148
  }
126
149
  // An address the scan reports as registered is registered on every row.
@@ -1 +1 @@
1
- {"version":3,"file":"DiscoveredHostUtil.js","sourceRoot":"","sources":["../../../../Utils/NetworkDiscovery/DiscoveredHostUtil.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;;;GAOG;AAEH;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,IAAa;IAEb,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAqC;IAErC,MAAM,OAAO,GAAmC,EAAE,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,SAAS;QACX,CAAC;QAED;;;;WAIG;QACH,MAAM,UAAU,mCACX,IAAI,KACP,SAAS,EACP,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;gBACrD,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,GACpC,CAAC;QAEF;;;;;;;;;;;;;;;;;;;WAmBG;QACH,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnE,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1B,CAAC;QAED;;;;;;;;;WASG;QACH,MAAM,WAAW,GAAuB,uBAAuB,CAC7D,IAAI,CAAC,WAAW,CACjB,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,UAAU,CAAC,WAAW,CAAC;QAChC,CAAC;QAED;;;;;;;;;;WAUG;QACH,MAAM,WAAW,GAAuB,oBAAoB,CAC1D,IAAI,CAAC,WAAW,CACjB,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,OAAO,UAAU,CAAC,WAAW,CAAC;QAChC,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,wEAAwE;IACxE,MAAM,qBAAqB,GAAgB,IAAI,GAAG,EAAU,CAAC;IAE7D,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/C,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,qBAAqB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAA6B,EAAE,EAAE;QACnD,IACE,IAAI,CAAC,mBAAmB;YACxB,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAC1C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uCAAY,IAAI,KAAE,mBAAmB,EAAE,IAAI,IAAG;IAChD,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"DiscoveredHostUtil.js","sourceRoot":"","sources":["../../../../Utils/NetworkDiscovery/DiscoveredHostUtil.ts"],"names":[],"mappings":"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"}
@@ -125,5 +125,66 @@ export function normalizeNetbiosName(value) {
125
125
  }
126
126
  return lowerCased;
127
127
  }
128
+ /*
129
+ * One octet of a dotted quad in the only spelling the probe's sweep reports:
130
+ * ASCII digits, no leading zero. The 0-255 bound is checked on the number.
131
+ */
132
+ const IPV4_OCTET_PATTERN = /^(?:0|[1-9][0-9]{0,2})$/;
133
+ /**
134
+ * True exactly for the addresses the probe's NetBIOS lookup would send a
135
+ * query to: a strict dotted-quad IPv4 literal in 10.0.0.0/8, 172.16.0.0/12,
136
+ * 192.168.0.0/16 or the 100.64.0.0/10 CGNAT range (OneUptime issue #3916).
137
+ *
138
+ * The probe's own rule is isNetbiosQueryAddressAllowed
139
+ * (Probe/Utils/Discovery/NetbiosNameResolver.ts), which refuses every other
140
+ * address whoever asks. This is the dashboard's copy of it, for the Review
141
+ * dialog: an unnamed host on a scan with NetBIOS off used to be told that
142
+ * "NetBIOS lookup asks Windows hosts for their own name" whatever its
143
+ * address, so an operator scanning public space turned NetBIOS on, rescanned,
144
+ * and got "not asked. Only private addresses are asked." — advice whose only
145
+ * effect was a different way of saying no name.
146
+ *
147
+ * A copy rather than an import, because Common is bundled into the dashboard
148
+ * and the probe's rule leans on Node's `net.isIPv4`. The strict form below is
149
+ * what `net.isIPv4` accepts (no leading zeros, no whitespace, no IPv6 or
150
+ * IPv4-mapped IPv6). The probe's NetbiosEligibilityParity test holds the two
151
+ * to the same answer on every range edge, on a sweep of every first and
152
+ * second octet, and on the malformed spellings, so changing one without the
153
+ * other fails it.
154
+ *
155
+ * `unknown`, like normalizeNetbiosName, because the dashboard reads the
156
+ * address out of jsonb.
157
+ */
158
+ export function isNetbiosQueryableIPv4Address(value) {
159
+ if (typeof value !== "string") {
160
+ return false;
161
+ }
162
+ const parts = value.split(".");
163
+ if (parts.length !== 4) {
164
+ return false;
165
+ }
166
+ const octets = [];
167
+ for (const part of parts) {
168
+ if (!IPV4_OCTET_PATTERN.test(part)) {
169
+ return false;
170
+ }
171
+ const octet = parseInt(part, 10);
172
+ if (octet > 255) {
173
+ return false;
174
+ }
175
+ octets.push(octet);
176
+ }
177
+ const first = octets[0];
178
+ const second = octets[1];
179
+ return (
180
+ // 10.0.0.0/8, RFC 1918.
181
+ first === 10 ||
182
+ // 172.16.0.0/12, RFC 1918: second octet 16-31.
183
+ (first === 172 && second >= 16 && second <= 31) ||
184
+ // 192.168.0.0/16, RFC 1918.
185
+ (first === 192 && second === 168) ||
186
+ // 100.64.0.0/10, RFC 6598 shared/CGNAT space: second octet 64-127.
187
+ (first === 100 && second >= 64 && second <= 127));
188
+ }
128
189
  export default normalizeNetbiosName;
129
190
  //# sourceMappingURL=NetbiosNameUtil.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NetbiosNameUtil.js","sourceRoot":"","sources":["../../../../Utils/NetworkDiscovery/NetbiosNameUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAW,EAAE,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,4BAA4B,GAAW,cAAc,CAAC;AAE5D,uEAAuE;AACvE,MAAM,cAAc,GAAW,UAAU,CAAC;AAE1C;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,KAAa;IACzC,IAAI,GAAG,GAAW,KAAK,CAAC,MAAM,CAAC;IAE/B,OAAO,GAAG,GAAG,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,EAAE,CAAC;IACR,CAAC;IAED,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAW,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7D,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,IAAI,uBAAuB,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAW,SAAS,CAAC,WAAW,EAAE,CAAC;IAEnD,IAAI,UAAU,KAAK,4BAA4B,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"NetbiosNameUtil.js","sourceRoot":"","sources":["../../../../Utils/NetworkDiscovery/NetbiosNameUtil.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import { keyForDatabaseEndpoint, keyForDatabaseServerRow } from "./EntityKey";
2
+ import { parseDatabaseEndpointString, } from "../../Types/DatabaseServer/DatabaseEndpoint";
3
+ export const DEFAULT_MEMBER_KEY_MAX_AGE_DAYS = 30;
4
+ export const DEFAULT_MEMBER_KEY_MAX_COUNT = 200;
5
+ export const MAX_DATABASE_SERVER_ENTITY_KEYS = 200;
6
+ const ENTITY_KEY_REGEX = /^[0-9a-f]{16}$/;
7
+ const DAY_IN_MS = 24 * 60 * 60 * 1000;
8
+ function normalizeEntityKey(value) {
9
+ if (typeof value !== "string") {
10
+ return null;
11
+ }
12
+ const key = value.trim().toLowerCase();
13
+ return ENTITY_KEY_REGEX.test(key) ? key : null;
14
+ }
15
+ function toTimestamp(value) {
16
+ if (typeof value !== "string" && !(value instanceof Date)) {
17
+ return null;
18
+ }
19
+ const time = value instanceof Date ? value.getTime() : Date.parse(value);
20
+ return Number.isFinite(time) ? time : null;
21
+ }
22
+ /*
23
+ * Read a stored member-key value leniently: the canonical `{ key: iso }`
24
+ * map, or an array of `{ key, lastSeenAt }` entries (plus, when
25
+ * `acceptBareKeys`, bare key strings, treated as oldest). Anything malformed
26
+ * is skipped, never thrown on — the column is JSON written by a worker.
27
+ */
28
+ function readMemberKeys(value, acceptBareKeys = false) {
29
+ const entries = new Map();
30
+ const add = (rawKey, rawTime) => {
31
+ const key = normalizeEntityKey(rawKey);
32
+ const time = toTimestamp(rawTime);
33
+ if (key === null || time === null) {
34
+ return;
35
+ }
36
+ const existing = entries.get(key);
37
+ if (existing === undefined || time > existing) {
38
+ entries.set(key, time);
39
+ }
40
+ };
41
+ if (Array.isArray(value)) {
42
+ for (const item of value) {
43
+ if (acceptBareKeys && typeof item === "string") {
44
+ add(item, new Date(0));
45
+ }
46
+ else if (item && typeof item === "object") {
47
+ add(item.key, item.lastSeenAt);
48
+ }
49
+ }
50
+ return entries;
51
+ }
52
+ if (value && typeof value === "object") {
53
+ for (const rawKey of Object.keys(value)) {
54
+ add(rawKey, value[rawKey]);
55
+ }
56
+ }
57
+ return entries;
58
+ }
59
+ // Most recent first; ties broken by key so the order is stable.
60
+ function sortByRecency(entries) {
61
+ return Array.from(entries.entries())
62
+ .map(([key, time]) => {
63
+ return { key, time };
64
+ })
65
+ .sort((a, b) => {
66
+ if (b.time !== a.time) {
67
+ return b.time - a.time;
68
+ }
69
+ if (a.key < b.key) {
70
+ return -1;
71
+ }
72
+ return a.key > b.key ? 1 : 0;
73
+ });
74
+ }
75
+ /**
76
+ * Merge the member keys seen this run into the stored set: seen keys are
77
+ * stamped `now`, older ones are kept until they have not been seen for
78
+ * `maxAgeDays` (default 30 — a restarted pod's logs stay on the page), and
79
+ * the set is capped at `max` (default 200) by recency. Timestamps in the
80
+ * future are clamped to `now`. Never throws.
81
+ */
82
+ export function mergeDatabaseServerMemberKeys(existing, seenNow, now, opts) {
83
+ const nowTime = now instanceof Date && Number.isFinite(now.getTime())
84
+ ? now.getTime()
85
+ : Date.now();
86
+ const maxAgeDays = typeof (opts === null || opts === void 0 ? void 0 : opts.maxAgeDays) === "number" && opts.maxAgeDays > 0
87
+ ? opts.maxAgeDays
88
+ : DEFAULT_MEMBER_KEY_MAX_AGE_DAYS;
89
+ const max = typeof (opts === null || opts === void 0 ? void 0 : opts.max) === "number" && opts.max >= 1
90
+ ? Math.floor(opts.max)
91
+ : DEFAULT_MEMBER_KEY_MAX_COUNT;
92
+ const entries = readMemberKeys(existing);
93
+ for (const [key, time] of entries) {
94
+ if (time > nowTime) {
95
+ entries.set(key, nowTime);
96
+ }
97
+ }
98
+ for (const raw of Array.isArray(seenNow) ? seenNow : []) {
99
+ const key = normalizeEntityKey(raw);
100
+ if (key !== null) {
101
+ entries.set(key, nowTime);
102
+ }
103
+ }
104
+ const cutoff = nowTime - maxAgeDays * DAY_IN_MS;
105
+ const merged = {};
106
+ let count = 0;
107
+ for (const entry of sortByRecency(entries)) {
108
+ if (entry.time < cutoff) {
109
+ continue;
110
+ }
111
+ if (count >= max) {
112
+ break;
113
+ }
114
+ merged[entry.key] = new Date(entry.time).toISOString();
115
+ count++;
116
+ }
117
+ return merged;
118
+ }
119
+ /*
120
+ * A row id as text: a string or anything with a string form (an ObjectID),
121
+ * trimmed; "" when there is none.
122
+ */
123
+ function databaseServerIdText(value) {
124
+ if (typeof value === "string") {
125
+ return value.trim();
126
+ }
127
+ if (value && typeof value === "object") {
128
+ const text = value.toString();
129
+ return typeof text === "string" && text !== "[object Object]"
130
+ ? text.trim()
131
+ : "";
132
+ }
133
+ return "";
134
+ }
135
+ /**
136
+ * Every entity key that belongs to a DatabaseServer: its row key (when the
137
+ * row's id is given), then the `database.server` key of each parseable
138
+ * stored endpoint (engine default port applied, as ingest does), then its
139
+ * member keys (valid 16-hex keys only, most recent first). Deduped, stable,
140
+ * capped at 200 with the row key first and endpoint keys next, so a large
141
+ * member set never evicts either.
142
+ *
143
+ * An empty result means "nothing to query" — callers must NEVER turn it into
144
+ * an empty `Includes` (that drops the predicate and scopes to the whole
145
+ * project).
146
+ */
147
+ export function getDatabaseServerSignalEntityKeys(input) {
148
+ const projectId = input && typeof input.projectId === "string" ? input.projectId.trim() : "";
149
+ if (!projectId) {
150
+ return [];
151
+ }
152
+ const keys = [];
153
+ const seen = new Set();
154
+ const push = (key) => {
155
+ if (keys.length < MAX_DATABASE_SERVER_ENTITY_KEYS && !seen.has(key)) {
156
+ seen.add(key);
157
+ keys.push(key);
158
+ }
159
+ };
160
+ const databaseServerId = databaseServerIdText(input.databaseServerId);
161
+ if (databaseServerId) {
162
+ push(keyForDatabaseServerRow(projectId, databaseServerId));
163
+ }
164
+ for (const item of Array.isArray(input.endpoints) ? input.endpoints : []) {
165
+ const value = item && typeof item === "object"
166
+ ? item.endpoint
167
+ : item;
168
+ const endpoint = parseDatabaseEndpointString(value, { system: input.dbSystem || "" });
169
+ if (endpoint) {
170
+ push(keyForDatabaseEndpoint(projectId, endpoint));
171
+ }
172
+ }
173
+ for (const entry of sortByRecency(readMemberKeys(input.memberEntityKeys, true))) {
174
+ push(entry.key);
175
+ }
176
+ return keys;
177
+ }
178
+ //# sourceMappingURL=DatabaseServerEntityKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatabaseServerEntityKeys.js","sourceRoot":"","sources":["../../../../Utils/Telemetry/DatabaseServerEntityKeys.ts"],"names":[],"mappings":"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"}