@oneuptime/common 12.0.32 → 12.0.33

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 (597) hide show
  1. package/Models/AnalyticsModels/Span.ts +14 -0
  2. package/Models/DatabaseModels/EnterpriseLicense.ts +56 -0
  3. package/Models/DatabaseModels/Index.ts +10 -0
  4. package/Models/DatabaseModels/Monitor.ts +76 -0
  5. package/Models/DatabaseModels/NetworkAlertPolicy.ts +690 -0
  6. package/Models/DatabaseModels/NetworkDevice.ts +176 -1
  7. package/Models/DatabaseModels/NetworkSite.ts +201 -2
  8. package/Models/DatabaseModels/NetworkSiteType.ts +102 -3
  9. package/Models/DatabaseModels/NetworkSnmpCredentialProfile.ts +841 -0
  10. package/Models/DatabaseModels/TelemetryException.ts +119 -0
  11. package/Models/DatabaseModels/UserNotificationEmailRollupBatch.ts +334 -0
  12. package/Models/DatabaseModels/UserNotificationEmailRollupItem.ts +370 -0
  13. package/Models/DatabaseModels/UserNotificationEmailRollupSetting.ts +282 -0
  14. package/Server/API/EnterpriseLicenseAPI.ts +391 -64
  15. package/Server/API/LlmProviderAPI.ts +137 -22
  16. package/Server/EnvironmentConfig.ts +14 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.ts +55 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.ts +31 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.ts +124 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.ts +132 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.ts +79 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.ts +191 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  24. package/Server/Infrastructure/QueueWorker.ts +38 -8
  25. package/Server/Middleware/BearerTokenAuthorization.ts +12 -0
  26. package/Server/Middleware/ProjectAuthorization.ts +11 -0
  27. package/Server/Middleware/SCIMAuthorization.ts +12 -0
  28. package/Server/Middleware/TelemetryIngest.ts +11 -0
  29. package/Server/Services/AIBillingService.ts +101 -27
  30. package/Server/Services/EnterpriseLicenseInstanceService.ts +197 -0
  31. package/Server/Services/EnterpriseLicenseService.ts +55 -0
  32. package/Server/Services/Index.ts +10 -0
  33. package/Server/Services/MonitorService.ts +143 -21
  34. package/Server/Services/MonitorStatusTimelineService.ts +150 -8
  35. package/Server/Services/MonitorTemplateService.ts +217 -1
  36. package/Server/Services/NetworkAlertPolicyEngineService.ts +2159 -0
  37. package/Server/Services/NetworkAlertPolicyService.ts +944 -0
  38. package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +9 -10
  39. package/Server/Services/NetworkDeviceAutoImportRuleService.ts +60 -15
  40. package/Server/Services/NetworkDeviceService.ts +1032 -73
  41. package/Server/Services/NetworkSiteService.ts +1502 -129
  42. package/Server/Services/NetworkSiteTypeService.ts +1216 -0
  43. package/Server/Services/NetworkSnmpCredentialProfileService.ts +238 -0
  44. package/Server/Services/NotificationService.ts +118 -28
  45. package/Server/Services/ProjectService.ts +105 -48
  46. package/Server/Services/StatusPagePrivateUserService.ts +103 -3
  47. package/Server/Services/UserNotificationEmailRollupBatchService.ts +78 -0
  48. package/Server/Services/UserNotificationEmailRollupItemService.ts +79 -0
  49. package/Server/Services/UserNotificationEmailRollupSettingService.ts +113 -0
  50. package/Server/Services/UserNotificationSettingService.ts +62 -25
  51. package/Server/Services/UserService.ts +95 -0
  52. package/Server/Types/Database/QueryHelper.ts +2 -2
  53. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +14 -3
  54. package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +10 -0
  55. package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +10 -0
  56. package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +62 -1
  57. package/Server/Utils/AI/Toolbox/AlertTools.ts +15 -1
  58. package/Server/Utils/Billing/BillingFailureNoticeThrottle.ts +80 -0
  59. package/Server/Utils/DataSource/HttpFetch.ts +9 -2
  60. package/Server/Utils/EmailRollup/EmailRollupConstants.ts +98 -0
  61. package/Server/Utils/EmailRollup/EmailRollupFlushRunner.ts +872 -0
  62. package/Server/Utils/EmailRollup/EmailRollupRenderer.ts +781 -0
  63. package/Server/Utils/EmailRollup/EmailRollupWriter.ts +368 -0
  64. package/Server/Utils/LLM/LLMService.ts +78 -0
  65. package/Server/Utils/LogRedaction.ts +8 -0
  66. package/Server/Utils/Logger.ts +79 -1
  67. package/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.ts +190 -0
  68. package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +9 -2
  69. package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +61 -1
  70. package/Server/Utils/Monitor/MonitorCriteriaDataExtractor.ts +14 -0
  71. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +49 -0
  72. package/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.ts +255 -4
  73. package/Server/Utils/Monitor/MonitorMetricUtil.ts +41 -0
  74. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +43 -0
  75. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +499 -19
  76. package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +66 -10
  77. package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +238 -44
  78. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +146 -39
  79. package/Server/Utils/NetworkDevice/DeviceHealthAggregation.ts +31 -18
  80. package/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.ts +213 -0
  81. package/Server/Utils/OutboundUserAgent.ts +152 -0
  82. package/Server/Utils/StartServer.ts +51 -19
  83. package/Server/Utils/Telemetry/CaptureSpan.ts +32 -8
  84. package/Server/Utils/Telemetry/ErrorClassResolver.ts +120 -0
  85. package/Server/Utils/Telemetry/SpanUtil.ts +33 -0
  86. package/Server/Utils/Telemetry.ts +198 -51
  87. package/Server/Views/Partials/SensitiveUrlToken.ejs +140 -0
  88. package/Tests/App/Dashboard/AddNeighborToMonitoringModal.test.tsx +134 -33
  89. package/Tests/App/Dashboard/AskAiSuggestedPrompts.test.ts +279 -0
  90. package/Tests/App/Dashboard/DashboardEditPermissions.test.tsx +517 -0
  91. package/Tests/App/Dashboard/DashboardVariablesDiscard.test.tsx +26 -0
  92. package/Tests/App/Dashboard/DeviceStatusHero.test.tsx +588 -0
  93. package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +18 -9
  94. package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +632 -0
  95. package/Tests/App/Dashboard/MonitorRecommendationCreateProgress.test.tsx +682 -0
  96. package/Tests/App/Dashboard/MonitorTypePicker.test.tsx +4 -2
  97. package/Tests/App/Dashboard/NetworkDeviceCreateFormMonitorBinding.test.tsx +676 -0
  98. package/Tests/App/Dashboard/NetworkDeviceCreateFormPingMonitor.test.tsx +791 -0
  99. package/Tests/App/Dashboard/NetworkDeviceCreateFormProbeAndSnmp.test.tsx +833 -0
  100. package/Tests/App/Dashboard/NetworkDeviceCriteriaFilter.test.ts +161 -0
  101. package/Tests/App/Dashboard/NetworkDeviceSettingsMonitoringSection.test.tsx +458 -0
  102. package/Tests/App/Dashboard/NetworkSideMenu.test.tsx +41 -5
  103. package/Tests/App/Dashboard/PingMonitorProvisioning.test.ts +368 -0
  104. package/Tests/App/Dashboard/RecommendationCard.test.tsx +796 -0
  105. package/Tests/App/Dashboard/RecommendationToolbar.test.tsx +519 -0
  106. package/Tests/App/Dashboard/RecommendationsList.test.tsx +661 -0
  107. package/Tests/App/Dashboard/UseBulkCreatePingMonitors.test.tsx +899 -0
  108. package/Tests/App/Dashboard/UseBulkSnmpCredentialProfileActions.test.tsx +732 -0
  109. package/Tests/App/SensitiveUrlTokenBootstrap.test.ts +256 -0
  110. package/Tests/App/StatusPage/StatusPageIndexPageRobotsMeta.test.ts +11 -1
  111. package/Tests/App/StatusPage/StatusPageLoginCodeBootstrap.test.ts +9 -4
  112. package/Tests/Models/NetworkSiteHierarchy.test.ts +41 -4
  113. package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +951 -7
  114. package/Tests/Server/API/LlmProviderConnectionTest.test.ts +522 -0
  115. package/Tests/Server/Infrastructure/Postgres/NetworkSnmpCredentialProfilesAndAlertPoliciesMigration.test.ts +854 -0
  116. package/Tests/Server/Infrastructure/Postgres/SchemaMigrationsOrdering.test.ts +18 -0
  117. package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupTableMigration.test.ts +535 -0
  118. package/Tests/Server/Services/AIChatPrivacyPin.test.ts +560 -0
  119. package/Tests/Server/Services/BillingRechargeOwnerEmailGuards.test.ts +783 -0
  120. package/Tests/Server/Services/EnterpriseLicenseInstanceServiceDeletionUsage.test.ts +707 -0
  121. package/Tests/Server/Services/EnterpriseLicenseServiceUsageAggregationLock.test.ts +329 -0
  122. package/Tests/Server/Services/MonitorServiceDeleteNetworkDeviceCleanup.test.ts +294 -0
  123. package/Tests/Server/Services/MonitorStatusBridgeProbePath.test.ts +802 -0
  124. package/Tests/Server/Services/MonitorStatusTimelineService.test.ts +72 -2
  125. package/Tests/Server/Services/NetworkAlertPolicyEngineHooks.test.ts +752 -0
  126. package/Tests/Server/Services/NetworkAlertPolicyEngineService.test.ts +1849 -0
  127. package/Tests/Server/Services/NetworkAlertPolicyModel.test.ts +1793 -0
  128. package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +47 -4
  129. package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +97 -12
  130. package/Tests/Server/Services/NetworkDeviceAutoMonitorLifecycle.test.ts +148 -3
  131. package/Tests/Server/Services/NetworkDeviceMonitorBindingUpdateGuard.test.ts +514 -0
  132. package/Tests/Server/Services/NetworkDeviceMonitorStatusStamp.test.ts +447 -58
  133. package/Tests/Server/Services/NetworkDeviceMonitoringMethodTransition.test.ts +739 -0
  134. package/Tests/Server/Services/NetworkDevicePollingTenancy.test.ts +501 -0
  135. package/Tests/Server/Services/NetworkDeviceSiteDefaultProbe.test.ts +432 -0
  136. package/Tests/Server/Services/NetworkSiteMonitoringDefaults.test.ts +498 -0
  137. package/Tests/Server/Services/NetworkSiteRollupPolicyAndMaintenance.test.ts +337 -55
  138. package/Tests/Server/Services/NetworkSiteService.test.ts +1868 -131
  139. package/Tests/Server/Services/NetworkSiteTypeService.test.ts +1109 -0
  140. package/Tests/Server/Services/NetworkSnmpCredentialProfileModel.test.ts +926 -0
  141. package/Tests/Server/Services/NetworkSnmpCredentialProfileService.test.ts +796 -0
  142. package/Tests/Server/Services/ProjectServiceNetworkSiteTypeDefaults.test.ts +214 -0
  143. package/Tests/Server/Services/StatusPagePrivateUserEmailChangePasswordResetExpiry.test.ts +269 -0
  144. package/Tests/Server/Services/UserEmailChangePasswordResetExpiry.test.ts +472 -0
  145. package/Tests/Server/Services/UserNotificationEmailRollupModels.test.ts +569 -0
  146. package/Tests/Server/Services/UserNotificationEmailRollupSettingModel.test.ts +314 -0
  147. package/Tests/Server/Services/UserNotificationEmailRollupSettingService.test.ts +409 -0
  148. package/Tests/Server/Services/UserNotificationSettingRollupRouting.test.ts +856 -0
  149. package/Tests/Server/Services/UserNotificationSettingWorkspaceChannels.test.ts +102 -1
  150. package/Tests/Server/Types/Database/Permissions/DashboardAccessPermission.test.ts +321 -0
  151. package/Tests/Server/Types/Database/QueryHelperOperators.test.ts +17 -0
  152. package/Tests/Server/Utils/AI/AlertMonitorFilters.test.ts +124 -0
  153. package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +208 -0
  154. package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +235 -0
  155. package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +253 -0
  156. package/Tests/Server/Utils/Captcha.test.ts +422 -0
  157. package/Tests/Server/Utils/DataSource/HttpFetch.test.ts +96 -2
  158. package/Tests/Server/Utils/Database/MigrationFailureLog.test.ts +466 -0
  159. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerBehaviour.test.ts +1096 -0
  160. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerClaim.test.ts +466 -0
  161. package/Tests/Server/Utils/EmailRollup/EmailRollupRenderer.test.ts +1428 -0
  162. package/Tests/Server/Utils/EmailRollup/EmailRollupTestHarness.ts +752 -0
  163. package/Tests/Server/Utils/EmailRollup/EmailRollupWriter.test.ts +864 -0
  164. package/Tests/Server/Utils/LoggerFaultDemotion.test.ts +346 -0
  165. package/Tests/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.test.ts +633 -0
  166. package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +196 -0
  167. package/Tests/Server/Utils/Monitor/DatabaseMetricWrite.test.ts +367 -0
  168. package/Tests/Server/Utils/Monitor/MonitorCriteriaObservationBuilderUnits.test.ts +100 -0
  169. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +5 -0
  170. package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +512 -31
  171. package/Tests/Server/Utils/Monitor/NetworkDeviceMetricUtil.test.ts +252 -0
  172. package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +479 -42
  173. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +351 -5
  174. package/Tests/Server/Utils/NetworkDevice/DeviceHealthAggregation.test.ts +136 -12
  175. package/Tests/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.test.ts +306 -0
  176. package/Tests/Server/Utils/OutboundUserAgent.test.ts +266 -0
  177. package/Tests/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClientUserAgent.test.ts +141 -0
  178. package/Tests/Server/Utils/Telemetry/ErrorClassResolver.test.ts +298 -0
  179. package/Tests/Server/Utils/Telemetry.test.ts +456 -66
  180. package/Tests/Types/Monitor/DatabaseMetricCatalog.test.ts +388 -0
  181. package/Tests/Types/Monitor/MonitorStepDatabaseMonitor.test.ts +243 -0
  182. package/Tests/Types/Monitor/MonitorStepDefaultTelemetryConfig.test.ts +1 -0
  183. package/Tests/Types/Monitor/MonitorType.test.ts +1 -0
  184. package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +16 -7
  185. package/Tests/Types/Monitor/NetworkDeviceAlertPack.test.ts +60 -0
  186. package/Tests/Types/NetworkDevice/NetworkAlertPolicyScope.test.ts +655 -0
  187. package/Tests/Types/NetworkDevice/NetworkDeviceMonitoringMethod.test.ts +115 -26
  188. package/Tests/Types/NetworkSite/DefaultNetworkSiteType.test.ts +39 -0
  189. package/Tests/Types/NotificationSetting/NotificationEmailRollupPolicy.test.ts +299 -0
  190. package/Tests/Types/Telemetry/ErrorClass.test.ts +483 -0
  191. package/Tests/UI/Components/BasicRadioButtons.test.tsx +336 -0
  192. package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +15 -0
  193. package/Tests/UI/Components/ProgressBar.test.tsx +38 -2
  194. package/Tests/UI/Components/SideMenuItem.test.tsx +226 -4
  195. package/Tests/UI/Components/SideMenuSection.test.tsx +310 -0
  196. package/Tests/UI/Components/SideOverSubmitState.test.tsx +335 -0
  197. package/Tests/UI/Utils/PageScrollLock.test.tsx +377 -0
  198. package/Tests/UI/Utils/PermissionGate.test.ts +78 -0
  199. package/Tests/UI/Utils/SensitiveUrlToken.test.ts +140 -0
  200. package/Tests/Utils/EnterpriseLicenseSeats.test.ts +69 -0
  201. package/Tests/Utils/EnterpriseLicenseSync.test.ts +7 -1
  202. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +433 -2
  203. package/Tests/Utils/Monitor/MonitorMetricType.test.ts +280 -1
  204. package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +1 -0
  205. package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +38 -0
  206. package/Tests/Utils/NetworkDevice/DeviceHealthStateUtil.test.ts +284 -23
  207. package/Tests/Utils/NetworkDevice/DeviceReachabilityUtil.test.ts +177 -0
  208. package/Tests/Utils/NetworkDevice/MonitoringMethodThreadedClassifiers.test.ts +992 -0
  209. package/Tests/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.test.ts +427 -0
  210. package/Tests/Utils/NetworkDevice/ReachabilityStampConsistency.test.ts +185 -0
  211. package/Tests/Utils/NetworkDevice/SnmpCredentialUtil.test.ts +268 -0
  212. package/Tests/Utils/NetworkDiscovery/AutoImportRuleMatcher.test.ts +55 -5
  213. package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +98 -21
  214. package/Tests/Utils/NetworkDiscovery/DiscoveryImportEligibility.test.ts +98 -20
  215. package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +8 -7
  216. package/Tests/Utils/NetworkDiscovery/PingMonitorBuilderForAddress.test.ts +274 -0
  217. package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +230 -51
  218. package/Tests/Utils/NetworkSite/TypeHierarchyUtil.test.ts +209 -0
  219. package/Tests/Utils/Telemetry/CaptureSpanExportGating.test.ts +145 -0
  220. package/Types/AI/ExceptionAIClassification.ts +10 -24
  221. package/Types/Email/EmailTemplateType.ts +2 -0
  222. package/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.ts +5 -0
  223. package/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.ts +13 -0
  224. package/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.ts +6 -0
  225. package/Types/Exception/ApiException.ts +10 -0
  226. package/Types/Exception/BadDataException.ts +11 -0
  227. package/Types/Exception/BadRequestException.ts +11 -0
  228. package/Types/Exception/Exception.ts +65 -0
  229. package/Types/Exception/ForbiddenException.ts +10 -0
  230. package/Types/Exception/NotAuthenticatedException.ts +10 -0
  231. package/Types/Exception/NotAuthorizedException.ts +10 -0
  232. package/Types/Exception/NotFoundException.ts +11 -0
  233. package/Types/Exception/PayloadTooLargeException.ts +11 -0
  234. package/Types/Exception/PaymentRequiredException.ts +10 -0
  235. package/Types/Exception/ServiceUnavailableException.ts +10 -0
  236. package/Types/Exception/SsoAuthorizationException.ts +10 -0
  237. package/Types/Exception/TenantNotFoundException.ts +11 -0
  238. package/Types/Exception/TimeoutException.ts +10 -0
  239. package/Types/Exception/TooManyRequestsException.ts +10 -0
  240. package/Types/Exception/UnableToReachServer.ts +10 -0
  241. package/Types/Exception/WebsiteRequestException.ts +10 -0
  242. package/Types/Monitor/CriteriaFilter.ts +60 -2
  243. package/Types/Monitor/DatabaseMetricCatalog.ts +693 -0
  244. package/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.ts +83 -0
  245. package/Types/Monitor/MonitorCriteriaInstance.ts +76 -0
  246. package/Types/Monitor/MonitorMetricType.ts +71 -0
  247. package/Types/Monitor/MonitorStep.ts +76 -0
  248. package/Types/Monitor/MonitorStepDatabaseMonitor.ts +171 -0
  249. package/Types/Monitor/MonitorStepSqlMonitor.ts +2 -20
  250. package/Types/Monitor/MonitorType.ts +47 -1
  251. package/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.ts +22 -1
  252. package/Types/Monitor/SqlConnectionConfig.ts +31 -0
  253. package/Types/NetworkDevice/NetworkAlertPolicyScope.ts +343 -0
  254. package/Types/NetworkDevice/NetworkDeviceMonitoringMethod.ts +42 -22
  255. package/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.ts +30 -0
  256. package/Types/NotificationSetting/NotificationEmailRollupCategory.ts +255 -0
  257. package/Types/NotificationSetting/NotificationEmailRollupPolicy.ts +104 -0
  258. package/Types/Permission.ts +90 -0
  259. package/Types/Probe/ProbeMonitorResponse.ts +16 -0
  260. package/Types/Telemetry/ErrorClass.ts +274 -0
  261. package/Types/Telemetry/UnitOfWork.ts +59 -0
  262. package/UI/Components/CommandPalette/CommandPalette.tsx +2 -8
  263. package/UI/Components/EditionLabel/EditionLabel.tsx +4 -0
  264. package/UI/Components/Modal/Modal.tsx +2 -8
  265. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +44 -0
  266. package/UI/Components/ProgressBar/ProgressBar.tsx +12 -1
  267. package/UI/Components/RadioButtons/BasicRadioButtons.tsx +37 -7
  268. package/UI/Components/SideMenu/SideMenu.tsx +123 -5
  269. package/UI/Components/SideMenu/SideMenuItem.tsx +76 -84
  270. package/UI/Components/SideMenu/SideMenuSection.tsx +55 -23
  271. package/UI/Components/SideOver/SideOver.tsx +21 -20
  272. package/UI/Utils/PageScrollLock.ts +79 -3
  273. package/UI/Utils/PermissionGate.ts +61 -0
  274. package/UI/Utils/SensitiveUrlToken.ts +112 -0
  275. package/UI/Utils/TestLLMProvider.ts +11 -0
  276. package/Utils/EnterpriseLicense/EnterpriseLicenseSeats.ts +16 -0
  277. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +191 -11
  278. package/Utils/Monitor/MonitorMetricType.ts +153 -1
  279. package/Utils/Monitor/NetworkTopologyUtil.ts +23 -3
  280. package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +65 -14
  281. package/Utils/NetworkDevice/DeviceReachabilityUtil.ts +43 -14
  282. package/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.ts +247 -0
  283. package/Utils/NetworkDevice/SnmpCredentialUtil.ts +68 -0
  284. package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +15 -7
  285. package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +52 -17
  286. package/Utils/NetworkDiscovery/DiscoveryImportEligibility.ts +55 -23
  287. package/Utils/NetworkDiscovery/PingMonitorBuilder.ts +115 -13
  288. package/Utils/NetworkSite/SiteStatusRollupUtil.ts +66 -20
  289. package/Utils/NetworkSite/TypeHierarchyUtil.ts +313 -0
  290. package/build/dist/Models/AnalyticsModels/Span.js +14 -0
  291. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  292. package/build/dist/Models/DatabaseModels/EnterpriseLicense.js +59 -0
  293. package/build/dist/Models/DatabaseModels/EnterpriseLicense.js.map +1 -1
  294. package/build/dist/Models/DatabaseModels/Index.js +10 -0
  295. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  296. package/build/dist/Models/DatabaseModels/Monitor.js +75 -0
  297. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  298. package/build/dist/Models/DatabaseModels/NetworkAlertPolicy.js +713 -0
  299. package/build/dist/Models/DatabaseModels/NetworkAlertPolicy.js.map +1 -0
  300. package/build/dist/Models/DatabaseModels/NetworkDevice.js +180 -1
  301. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  302. package/build/dist/Models/DatabaseModels/NetworkSite.js +200 -2
  303. package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
  304. package/build/dist/Models/DatabaseModels/NetworkSiteType.js +102 -3
  305. package/build/dist/Models/DatabaseModels/NetworkSiteType.js.map +1 -1
  306. package/build/dist/Models/DatabaseModels/NetworkSnmpCredentialProfile.js +878 -0
  307. package/build/dist/Models/DatabaseModels/NetworkSnmpCredentialProfile.js.map +1 -0
  308. package/build/dist/Models/DatabaseModels/TelemetryException.js +123 -0
  309. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  310. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupBatch.js +363 -0
  311. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupBatch.js.map +1 -0
  312. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js +402 -0
  313. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js.map +1 -0
  314. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupSetting.js +296 -0
  315. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupSetting.js.map +1 -0
  316. package/build/dist/Server/API/EnterpriseLicenseAPI.js +273 -60
  317. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  318. package/build/dist/Server/API/LlmProviderAPI.js +108 -13
  319. package/build/dist/Server/API/LlmProviderAPI.js.map +1 -1
  320. package/build/dist/Server/EnvironmentConfig.js +12 -0
  321. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  322. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.js +24 -0
  323. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.js.map +1 -0
  324. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.js +16 -0
  325. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.js.map +1 -0
  326. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.js +111 -0
  327. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.js.map +1 -0
  328. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.js +77 -0
  329. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.js.map +1 -0
  330. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.js +50 -0
  331. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.js.map +1 -0
  332. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.js +83 -0
  333. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.js.map +1 -0
  334. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  335. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  336. package/build/dist/Server/Infrastructure/QueueWorker.js +33 -5
  337. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  338. package/build/dist/Server/Middleware/BearerTokenAuthorization.js +12 -0
  339. package/build/dist/Server/Middleware/BearerTokenAuthorization.js.map +1 -1
  340. package/build/dist/Server/Middleware/ProjectAuthorization.js +11 -0
  341. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  342. package/build/dist/Server/Middleware/SCIMAuthorization.js +12 -0
  343. package/build/dist/Server/Middleware/SCIMAuthorization.js.map +1 -1
  344. package/build/dist/Server/Middleware/TelemetryIngest.js +11 -0
  345. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  346. package/build/dist/Server/Services/AIBillingService.js +70 -16
  347. package/build/dist/Server/Services/AIBillingService.js.map +1 -1
  348. package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js +167 -0
  349. package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js.map +1 -1
  350. package/build/dist/Server/Services/EnterpriseLicenseService.js +39 -0
  351. package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
  352. package/build/dist/Server/Services/Index.js +10 -0
  353. package/build/dist/Server/Services/Index.js.map +1 -1
  354. package/build/dist/Server/Services/MonitorService.js +119 -21
  355. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  356. package/build/dist/Server/Services/MonitorStatusTimelineService.js +127 -8
  357. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  358. package/build/dist/Server/Services/MonitorTemplateService.js +162 -0
  359. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  360. package/build/dist/Server/Services/NetworkAlertPolicyEngineService.js +1683 -0
  361. package/build/dist/Server/Services/NetworkAlertPolicyEngineService.js.map +1 -0
  362. package/build/dist/Server/Services/NetworkAlertPolicyService.js +732 -0
  363. package/build/dist/Server/Services/NetworkAlertPolicyService.js.map +1 -0
  364. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +10 -9
  365. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
  366. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +54 -11
  367. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
  368. package/build/dist/Server/Services/NetworkDeviceService.js +841 -70
  369. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  370. package/build/dist/Server/Services/NetworkSiteService.js +1145 -107
  371. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
  372. package/build/dist/Server/Services/NetworkSiteTypeService.js +863 -0
  373. package/build/dist/Server/Services/NetworkSiteTypeService.js.map +1 -1
  374. package/build/dist/Server/Services/NetworkSnmpCredentialProfileService.js +217 -0
  375. package/build/dist/Server/Services/NetworkSnmpCredentialProfileService.js.map +1 -0
  376. package/build/dist/Server/Services/NotificationService.js +80 -17
  377. package/build/dist/Server/Services/NotificationService.js.map +1 -1
  378. package/build/dist/Server/Services/ProjectService.js +66 -30
  379. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  380. package/build/dist/Server/Services/StatusPagePrivateUserService.js +92 -2
  381. package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
  382. package/build/dist/Server/Services/UserNotificationEmailRollupBatchService.js +76 -0
  383. package/build/dist/Server/Services/UserNotificationEmailRollupBatchService.js.map +1 -0
  384. package/build/dist/Server/Services/UserNotificationEmailRollupItemService.js +77 -0
  385. package/build/dist/Server/Services/UserNotificationEmailRollupItemService.js.map +1 -0
  386. package/build/dist/Server/Services/UserNotificationEmailRollupSettingService.js +111 -0
  387. package/build/dist/Server/Services/UserNotificationEmailRollupSettingService.js.map +1 -0
  388. package/build/dist/Server/Services/UserNotificationSettingService.js +46 -20
  389. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  390. package/build/dist/Server/Services/UserService.js +90 -0
  391. package/build/dist/Server/Services/UserService.js.map +1 -1
  392. package/build/dist/Server/Types/Database/QueryHelper.js +1 -1
  393. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  394. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +14 -3
  395. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
  396. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +10 -0
  397. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -1
  398. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +10 -0
  399. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -1
  400. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +54 -1
  401. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -1
  402. package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js +18 -4
  403. package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js.map +1 -1
  404. package/build/dist/Server/Utils/Billing/BillingFailureNoticeThrottle.js +59 -0
  405. package/build/dist/Server/Utils/Billing/BillingFailureNoticeThrottle.js.map +1 -0
  406. package/build/dist/Server/Utils/DataSource/HttpFetch.js +2 -1
  407. package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
  408. package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js +91 -0
  409. package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js.map +1 -0
  410. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js +691 -0
  411. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js.map +1 -0
  412. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js +497 -0
  413. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js.map +1 -0
  414. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js +257 -0
  415. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js.map +1 -0
  416. package/build/dist/Server/Utils/LLM/LLMService.js +64 -1
  417. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  418. package/build/dist/Server/Utils/LogRedaction.js +8 -0
  419. package/build/dist/Server/Utils/LogRedaction.js.map +1 -1
  420. package/build/dist/Server/Utils/Logger.js +63 -1
  421. package/build/dist/Server/Utils/Logger.js.map +1 -1
  422. package/build/dist/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.js +141 -0
  423. package/build/dist/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.js.map +1 -0
  424. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +8 -1
  425. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
  426. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +51 -1
  427. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
  428. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js +7 -0
  429. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js.map +1 -1
  430. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +37 -0
  431. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  432. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +158 -6
  433. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -1
  434. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +33 -0
  435. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  436. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +32 -0
  437. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  438. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +330 -21
  439. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  440. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +55 -10
  441. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -1
  442. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +178 -49
  443. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
  444. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +119 -29
  445. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  446. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js +30 -17
  447. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js.map +1 -1
  448. package/build/dist/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.js +158 -0
  449. package/build/dist/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.js.map +1 -0
  450. package/build/dist/Server/Utils/OutboundUserAgent.js +123 -0
  451. package/build/dist/Server/Utils/OutboundUserAgent.js.map +1 -0
  452. package/build/dist/Server/Utils/StartServer.js +38 -14
  453. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  454. package/build/dist/Server/Utils/Telemetry/CaptureSpan.js +28 -8
  455. package/build/dist/Server/Utils/Telemetry/CaptureSpan.js.map +1 -1
  456. package/build/dist/Server/Utils/Telemetry/ErrorClassResolver.js +95 -0
  457. package/build/dist/Server/Utils/Telemetry/ErrorClassResolver.js.map +1 -0
  458. package/build/dist/Server/Utils/Telemetry/SpanUtil.js +29 -0
  459. package/build/dist/Server/Utils/Telemetry/SpanUtil.js.map +1 -1
  460. package/build/dist/Server/Utils/Telemetry.js +162 -46
  461. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  462. package/build/dist/Types/AI/ExceptionAIClassification.js +10 -24
  463. package/build/dist/Types/AI/ExceptionAIClassification.js.map +1 -1
  464. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  465. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  466. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.js +2 -0
  467. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.js.map +1 -0
  468. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.js +7 -0
  469. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.js.map +1 -0
  470. package/build/dist/Types/Exception/ApiException.js +9 -0
  471. package/build/dist/Types/Exception/ApiException.js.map +1 -1
  472. package/build/dist/Types/Exception/BadDataException.js +10 -0
  473. package/build/dist/Types/Exception/BadDataException.js.map +1 -1
  474. package/build/dist/Types/Exception/BadRequestException.js +10 -0
  475. package/build/dist/Types/Exception/BadRequestException.js.map +1 -1
  476. package/build/dist/Types/Exception/Exception.js +56 -0
  477. package/build/dist/Types/Exception/Exception.js.map +1 -1
  478. package/build/dist/Types/Exception/ForbiddenException.js +9 -0
  479. package/build/dist/Types/Exception/ForbiddenException.js.map +1 -1
  480. package/build/dist/Types/Exception/NotAuthenticatedException.js +9 -0
  481. package/build/dist/Types/Exception/NotAuthenticatedException.js.map +1 -1
  482. package/build/dist/Types/Exception/NotAuthorizedException.js +9 -0
  483. package/build/dist/Types/Exception/NotAuthorizedException.js.map +1 -1
  484. package/build/dist/Types/Exception/NotFoundException.js +10 -0
  485. package/build/dist/Types/Exception/NotFoundException.js.map +1 -1
  486. package/build/dist/Types/Exception/PayloadTooLargeException.js +10 -0
  487. package/build/dist/Types/Exception/PayloadTooLargeException.js.map +1 -1
  488. package/build/dist/Types/Exception/PaymentRequiredException.js +9 -0
  489. package/build/dist/Types/Exception/PaymentRequiredException.js.map +1 -1
  490. package/build/dist/Types/Exception/ServiceUnavailableException.js +9 -0
  491. package/build/dist/Types/Exception/ServiceUnavailableException.js.map +1 -1
  492. package/build/dist/Types/Exception/SsoAuthorizationException.js +9 -0
  493. package/build/dist/Types/Exception/SsoAuthorizationException.js.map +1 -1
  494. package/build/dist/Types/Exception/TenantNotFoundException.js +10 -0
  495. package/build/dist/Types/Exception/TenantNotFoundException.js.map +1 -1
  496. package/build/dist/Types/Exception/TimeoutException.js +9 -0
  497. package/build/dist/Types/Exception/TimeoutException.js.map +1 -1
  498. package/build/dist/Types/Exception/TooManyRequestsException.js +9 -0
  499. package/build/dist/Types/Exception/TooManyRequestsException.js.map +1 -1
  500. package/build/dist/Types/Exception/UnableToReachServer.js +9 -0
  501. package/build/dist/Types/Exception/UnableToReachServer.js.map +1 -1
  502. package/build/dist/Types/Exception/WebsiteRequestException.js +9 -0
  503. package/build/dist/Types/Exception/WebsiteRequestException.js.map +1 -1
  504. package/build/dist/Types/Monitor/CriteriaFilter.js +45 -2
  505. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  506. package/build/dist/Types/Monitor/DatabaseMetricCatalog.js +594 -0
  507. package/build/dist/Types/Monitor/DatabaseMetricCatalog.js.map +1 -0
  508. package/build/dist/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.js +21 -0
  509. package/build/dist/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.js.map +1 -0
  510. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +70 -0
  511. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  512. package/build/dist/Types/Monitor/MonitorMetricType.js +61 -0
  513. package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
  514. package/build/dist/Types/Monitor/MonitorStep.js +54 -0
  515. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  516. package/build/dist/Types/Monitor/MonitorStepDatabaseMonitor.js +122 -0
  517. package/build/dist/Types/Monitor/MonitorStepDatabaseMonitor.js.map +1 -0
  518. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
  519. package/build/dist/Types/Monitor/MonitorType.js +45 -1
  520. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  521. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js +21 -1
  522. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js.map +1 -1
  523. package/build/dist/Types/Monitor/SqlConnectionConfig.js +2 -0
  524. package/build/dist/Types/Monitor/SqlConnectionConfig.js.map +1 -0
  525. package/build/dist/Types/NetworkDevice/NetworkAlertPolicyScope.js +172 -0
  526. package/build/dist/Types/NetworkDevice/NetworkAlertPolicyScope.js.map +1 -0
  527. package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js +40 -22
  528. package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js.map +1 -1
  529. package/build/dist/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.js +26 -0
  530. package/build/dist/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.js.map +1 -0
  531. package/build/dist/Types/NotificationSetting/NotificationEmailRollupCategory.js +186 -0
  532. package/build/dist/Types/NotificationSetting/NotificationEmailRollupCategory.js.map +1 -0
  533. package/build/dist/Types/NotificationSetting/NotificationEmailRollupPolicy.js +87 -0
  534. package/build/dist/Types/NotificationSetting/NotificationEmailRollupPolicy.js.map +1 -0
  535. package/build/dist/Types/Permission.js +80 -0
  536. package/build/dist/Types/Permission.js.map +1 -1
  537. package/build/dist/Types/Telemetry/ErrorClass.js +216 -0
  538. package/build/dist/Types/Telemetry/ErrorClass.js.map +1 -0
  539. package/build/dist/Types/Telemetry/UnitOfWork.js +59 -0
  540. package/build/dist/Types/Telemetry/UnitOfWork.js.map +1 -0
  541. package/build/dist/UI/Components/CommandPalette/CommandPalette.js +2 -7
  542. package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -1
  543. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +3 -0
  544. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  545. package/build/dist/UI/Components/Modal/Modal.js +2 -7
  546. package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
  547. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +39 -0
  548. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  549. package/build/dist/UI/Components/ProgressBar/ProgressBar.js +12 -1
  550. package/build/dist/UI/Components/ProgressBar/ProgressBar.js.map +1 -1
  551. package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js +6 -6
  552. package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js.map +1 -1
  553. package/build/dist/UI/Components/SideMenu/SideMenu.js +67 -5
  554. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  555. package/build/dist/UI/Components/SideMenu/SideMenuItem.js +49 -53
  556. package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
  557. package/build/dist/UI/Components/SideMenu/SideMenuSection.js +25 -7
  558. package/build/dist/UI/Components/SideMenu/SideMenuSection.js.map +1 -1
  559. package/build/dist/UI/Components/SideOver/SideOver.js +5 -20
  560. package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
  561. package/build/dist/UI/Utils/PageScrollLock.js +31 -3
  562. package/build/dist/UI/Utils/PageScrollLock.js.map +1 -1
  563. package/build/dist/UI/Utils/PermissionGate.js +42 -1
  564. package/build/dist/UI/Utils/PermissionGate.js.map +1 -1
  565. package/build/dist/UI/Utils/SensitiveUrlToken.js +97 -0
  566. package/build/dist/UI/Utils/SensitiveUrlToken.js.map +1 -0
  567. package/build/dist/UI/Utils/TestLLMProvider.js +4 -5
  568. package/build/dist/UI/Utils/TestLLMProvider.js.map +1 -1
  569. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js +15 -0
  570. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js.map +1 -1
  571. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +111 -9
  572. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  573. package/build/dist/Utils/Monitor/MonitorMetricType.js +109 -1
  574. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  575. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +8 -3
  576. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  577. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js +27 -7
  578. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js.map +1 -1
  579. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js +7 -5
  580. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js.map +1 -1
  581. package/build/dist/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.js +180 -0
  582. package/build/dist/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.js.map +1 -0
  583. package/build/dist/Utils/NetworkDevice/SnmpCredentialUtil.js +12 -0
  584. package/build/dist/Utils/NetworkDevice/SnmpCredentialUtil.js.map +1 -0
  585. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js +15 -5
  586. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
  587. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +44 -15
  588. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
  589. package/build/dist/Utils/NetworkDiscovery/DiscoveryImportEligibility.js +52 -23
  590. package/build/dist/Utils/NetworkDiscovery/DiscoveryImportEligibility.js.map +1 -1
  591. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js +85 -13
  592. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js.map +1 -1
  593. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +30 -15
  594. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
  595. package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js +191 -0
  596. package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js.map +1 -0
  597. package/package.json +2 -2
@@ -1,4 +1,6 @@
1
1
  import NetworkDeviceService from "../../Services/NetworkDeviceService";
2
+ import NetworkSiteService from "../../Services/NetworkSiteService";
3
+ import NetworkSnmpCredentialProfileService from "../../Services/NetworkSnmpCredentialProfileService";
2
4
  import QueryHelper from "../../Types/Database/QueryHelper";
3
5
  import LIMIT_MAX from "../../../Types/Database/LimitMax";
4
6
  import MonitorType from "../../../Types/Monitor/MonitorType";
@@ -6,22 +8,275 @@ import { SnmpVersionUtil, } from "../../../Types/Monitor/SnmpMonitor/SnmpVersion
6
8
  import SnmpSecurityLevel from "../../../Types/Monitor/SnmpMonitor/SnmpSecurityLevel";
7
9
  import IP from "../../../Types/IP/IP";
8
10
  import IpCanonicalUtil from "../../../Utils/IpCanonicalUtil";
11
+ import { hasUsableCredentials, } from "../../../Utils/NetworkDevice/SnmpCredentialUtil";
9
12
  import DnsResolutionCache from "./DnsResolutionCache";
10
13
  import logger from "../Logger";
11
14
  class NetworkDeviceHydrationUtil {
12
15
  /*
13
- * Assembles the concrete SNMP config a stateless probe can execute from a
14
- * device's stored connection identity. The caller chooses what to collect
16
+ * The poll-time decision: walk the device over SNMP, or only ping it?
17
+ *
18
+ * Purely a function of whether the credential carrier the caller resolved
19
+ * (see resolveSnmpCredentials: the device's own columns, its credential
20
+ * profile, or its site's) has enough to open an SNMP session with - see
21
+ * SnmpCredentialUtil.hasUsableCredentials for what "enough" means. It is
22
+ * deliberately NOT a function of the monitoring method: a Probe device is
23
+ * polled either way, and the method only says whether a probe polls it at
24
+ * all.
25
+ */
26
+ static resolvePollMode(carrier) {
27
+ return hasUsableCredentials(carrier) ? "snmp" : "ping";
28
+ }
29
+ /*
30
+ * Resolves, for a batch of devices, WHICH row each one is walked with -
31
+ * and therefore whether it is walked at all.
32
+ *
33
+ * Resolution order, first row with usable credentials wins:
34
+ * 1. the device's own snmp* columns,
35
+ * 2. the NetworkSnmpCredentialProfile the device points at,
36
+ * 3. the profile the device's SITE points at.
37
+ * With none of the three the device is pinged and never walked, and the
38
+ * carrier handed back is the device itself so the answer is always
39
+ * complete.
40
+ *
41
+ * TENANCY. Both lookups run as root, because a poll batch spans projects
42
+ * and there is no caller tenant to scope to. Root reads mean the FK is
43
+ * NOT a tenancy guarantee, so every profile is compared against the
44
+ * device's own projectId and a mismatch is DROPPED with an error log
45
+ * rather than used. A device pointed at another project's profile is
46
+ * therefore polled with NO credentials (ping) rather than with that
47
+ * project's community string - which is the difference between a device
48
+ * that reads Pending and a cross-tenant credential leak onto the wire.
49
+ *
50
+ * COST. Three queries per batch at the very worst, and zero for the
51
+ * common fleet where every device carries its own credentials: profiles
52
+ * are only looked up for devices that have no usable columns of their
53
+ * own, and sites only for those of them that still have nothing.
54
+ *
55
+ * This is the single resolver for BOTH the poll list handler and monitor
56
+ * hydration, so the walk a probe is told to run and the walk the monitor
57
+ * evaluation believes ran can never be based on different credentials.
58
+ */
59
+ static async resolveSnmpCredentials(devices) {
60
+ var _a;
61
+ const byDeviceId = new Map();
62
+ const unresolvedDeviceIds = new Set();
63
+ /*
64
+ * A device whose own columns already open a session needs nothing read.
65
+ * Everything below is scoped to the rest, so a fleet that never adopted
66
+ * profiles pays for none of this.
67
+ */
68
+ const devicesNeedingLookup = [];
69
+ for (const device of devices) {
70
+ if (!device.id) {
71
+ continue;
72
+ }
73
+ if (hasUsableCredentials(device)) {
74
+ byDeviceId.set(device.id.toString(), {
75
+ carrier: device,
76
+ pollMode: NetworkDeviceHydrationUtil.resolvePollMode(device),
77
+ });
78
+ continue;
79
+ }
80
+ if (device.snmpCredentialProfileId || device.siteId) {
81
+ devicesNeedingLookup.push(device);
82
+ continue;
83
+ }
84
+ // Nothing of its own, nothing to inherit from: pinged only.
85
+ byDeviceId.set(device.id.toString(), {
86
+ carrier: device,
87
+ pollMode: NetworkDeviceHydrationUtil.resolvePollMode(device),
88
+ });
89
+ }
90
+ if (devicesNeedingLookup.length === 0) {
91
+ return {
92
+ byDeviceId: byDeviceId,
93
+ unresolvedDeviceIds: unresolvedDeviceIds,
94
+ };
95
+ }
96
+ const profilesById = new Map();
97
+ const siteProfileIdBySiteId = new Map();
98
+ try {
99
+ const deviceProfileIds = Array.from(new Set(devicesNeedingLookup.flatMap((device) => {
100
+ return device.snmpCredentialProfileId
101
+ ? [device.snmpCredentialProfileId.toString()]
102
+ : [];
103
+ })));
104
+ const siteIds = Array.from(new Set(devicesNeedingLookup.flatMap((device) => {
105
+ return device.siteId ? [device.siteId.toString()] : [];
106
+ })));
107
+ /*
108
+ * Round one: the profiles the devices name, and the sites they sit in
109
+ * (for the profile those sites name). Issued together because neither
110
+ * depends on the other.
111
+ */
112
+ const [deviceProfiles, sites] = await Promise.all([
113
+ NetworkDeviceHydrationUtil.loadCredentialProfiles(deviceProfileIds),
114
+ siteIds.length === 0
115
+ ? Promise.resolve([])
116
+ : NetworkSiteService.findBy({
117
+ query: {
118
+ _id: QueryHelper.any(siteIds),
119
+ },
120
+ select: {
121
+ _id: true,
122
+ projectId: true,
123
+ snmpCredentialProfileId: true,
124
+ },
125
+ limit: LIMIT_MAX,
126
+ skip: 0,
127
+ props: {
128
+ isRoot: true,
129
+ },
130
+ }),
131
+ ]);
132
+ for (const profile of deviceProfiles) {
133
+ if (profile.id) {
134
+ profilesById.set(profile.id.toString(), profile);
135
+ }
136
+ }
137
+ for (const site of sites) {
138
+ if (site.id && site.snmpCredentialProfileId) {
139
+ siteProfileIdBySiteId.set(site.id.toString(), site.snmpCredentialProfileId.toString());
140
+ }
141
+ }
142
+ /*
143
+ * Round two: the profiles the sites name that were not already loaded
144
+ * as a device's own. Only ever one extra statement, and only when a
145
+ * site actually carries a profile.
146
+ */
147
+ const siteProfileIdsToLoad = Array.from(new Set(siteProfileIdBySiteId.values())).filter((profileId) => {
148
+ return !profilesById.has(profileId);
149
+ });
150
+ for (const profile of await NetworkDeviceHydrationUtil.loadCredentialProfiles(siteProfileIdsToLoad)) {
151
+ if (profile.id) {
152
+ profilesById.set(profile.id.toString(), profile);
153
+ }
154
+ }
155
+ }
156
+ catch (err) {
157
+ /*
158
+ * Skip these devices this cycle rather than polling them without the
159
+ * credentials they are configured with.
160
+ *
161
+ * The alternative - falling back to the device's own (empty) columns -
162
+ * would hand the probe a ping-mode device, and a device that has been
163
+ * answering SNMP would silently stop reporting interfaces, inventory
164
+ * and walk health for as long as the lookup keeps failing. Claiming
165
+ * has already advanced nextPollAt, so the cost of skipping is one
166
+ * interval; the cost of guessing is a wrong verdict.
167
+ */
168
+ logger.error(`Could not resolve SNMP credential profiles for ${devicesNeedingLookup.length} network device(s); skipping them for this cycle rather than polling them without the credentials they are configured with.`);
169
+ logger.error(err);
170
+ for (const device of devicesNeedingLookup) {
171
+ if (device.id) {
172
+ unresolvedDeviceIds.add(device.id.toString());
173
+ }
174
+ }
175
+ return {
176
+ byDeviceId: byDeviceId,
177
+ unresolvedDeviceIds: unresolvedDeviceIds,
178
+ };
179
+ }
180
+ for (const device of devicesNeedingLookup) {
181
+ const deviceId = device.id.toString();
182
+ const candidates = [
183
+ NetworkDeviceHydrationUtil.sameProjectProfile({
184
+ device: device,
185
+ profileId: (_a = device.snmpCredentialProfileId) === null || _a === void 0 ? void 0 : _a.toString(),
186
+ profilesById: profilesById,
187
+ referencedBy: "device",
188
+ }),
189
+ NetworkDeviceHydrationUtil.sameProjectProfile({
190
+ device: device,
191
+ profileId: device.siteId
192
+ ? siteProfileIdBySiteId.get(device.siteId.toString())
193
+ : undefined,
194
+ profilesById: profilesById,
195
+ referencedBy: "site",
196
+ }),
197
+ ];
198
+ const winner = candidates.find((candidate) => {
199
+ return candidate !== undefined && hasUsableCredentials(candidate);
200
+ });
201
+ // No usable row anywhere: the device's own (empty) columns, pinged only.
202
+ const carrier = winner || device;
203
+ byDeviceId.set(deviceId, {
204
+ carrier: carrier,
205
+ // One definition of "credentials -> mode", asked of the winning row.
206
+ pollMode: NetworkDeviceHydrationUtil.resolvePollMode(carrier),
207
+ });
208
+ }
209
+ return { byDeviceId: byDeviceId, unresolvedDeviceIds: unresolvedDeviceIds };
210
+ }
211
+ static async loadCredentialProfiles(profileIds) {
212
+ if (profileIds.length === 0) {
213
+ return [];
214
+ }
215
+ return await NetworkSnmpCredentialProfileService.findBy({
216
+ query: {
217
+ _id: QueryHelper.any(profileIds),
218
+ },
219
+ select: NetworkDeviceHydrationUtil.credentialProfileSelect,
220
+ limit: LIMIT_MAX,
221
+ skip: 0,
222
+ props: {
223
+ isRoot: true,
224
+ },
225
+ });
226
+ }
227
+ /*
228
+ * The tenancy comparison, in the one place both references pass through.
229
+ * Returns the profile only when it exists AND belongs to the device's
230
+ * project; a cross-project reference is dropped loudly, because the only
231
+ * ways a row can get into that state are corrupted data or a write that
232
+ * predates the guards in NetworkDeviceService/NetworkSiteService - and in
233
+ * either case shipping those credentials to this project's probe is a
234
+ * credential leak, not a degraded poll.
235
+ */
236
+ static sameProjectProfile(data) {
237
+ var _a;
238
+ if (!data.profileId) {
239
+ return undefined;
240
+ }
241
+ const profile = data.profilesById.get(data.profileId);
242
+ if (!profile) {
243
+ // Deleted between the device's write and this poll; nothing to log loudly.
244
+ return undefined;
245
+ }
246
+ /*
247
+ * Both sides must be present AND equal. A row missing its projectId is
248
+ * not "unknown, therefore fine": it is a row whose tenancy cannot be
249
+ * established, and the credentials in it are about to be put on a
250
+ * specific project's wire. The only safe reading of an unverifiable
251
+ * reference is to refuse it.
252
+ */
253
+ const isSameProject = Boolean(profile.projectId &&
254
+ data.device.projectId &&
255
+ profile.projectId.toString() === data.device.projectId.toString());
256
+ if (!isSameProject) {
257
+ logger.error(`Network device ${(_a = data.device.id) === null || _a === void 0 ? void 0 : _a.toString()} resolves (via its ${data.referencedBy}) to SNMP Credential Profile ${data.profileId}, whose project does not match the device's. Dropping the profile: the device is pinged only until the reference is corrected.`);
258
+ return undefined;
259
+ }
260
+ return profile;
261
+ }
262
+ /*
263
+ * Assembles the concrete SNMP config a stateless probe can execute.
264
+ *
265
+ * `hostname` and `credentials` are separate parameters, and deliberately
266
+ * so: WHERE to connect always comes from the device, WHAT to connect with
267
+ * comes from whichever row won resolveSnmpCredentials' order. Passing the
268
+ * device for both was the old shape, and it made "poll this device with
269
+ * its site's profile" unrepresentable. The caller chooses what to collect
15
270
  * (OIDs / interface walk) — for device polling those come from the
16
271
  * device's own snmpOids/walkInterfaces columns.
17
272
  */
18
273
  static buildSnmpMonitorConfig(data) {
19
274
  return {
20
- snmpVersion: NetworkDeviceHydrationUtil.parseSnmpVersion(data.device.snmpVersion),
21
- hostname: data.device.hostname || "",
22
- port: data.device.snmpPort || 161,
23
- communityString: data.device.snmpCommunityString || undefined,
24
- snmpV3Auth: NetworkDeviceHydrationUtil.buildSnmpV3Auth(data.device),
275
+ snmpVersion: NetworkDeviceHydrationUtil.parseSnmpVersion(data.credentials.snmpVersion || undefined),
276
+ hostname: data.hostname,
277
+ port: data.credentials.snmpPort || 161,
278
+ communityString: data.credentials.snmpCommunityString || undefined,
279
+ snmpV3Auth: NetworkDeviceHydrationUtil.buildSnmpV3Auth(data.credentials),
25
280
  oids: data.oids,
26
281
  timeout: 5000,
27
282
  retries: 3,
@@ -53,7 +308,7 @@ class NetworkDeviceHydrationUtil {
53
308
  }
54
309
  // Accepts Monitor and MonitorTest alike (structural: monitorType + monitorSteps).
55
310
  static async hydrateNetworkDeviceMonitors(monitors) {
56
- var _a, _b, _c, _d, _e, _f, _g;
311
+ var _a, _b, _c, _d, _e, _f, _g, _h;
57
312
  const deviceIds = NetworkDeviceHydrationUtil.getReferencedNetworkDeviceIds(monitors);
58
313
  if (deviceIds.length === 0) {
59
314
  return;
@@ -75,6 +330,14 @@ class NetworkDeviceHydrationUtil {
75
330
  devicesById.set(device.id.toString(), device);
76
331
  }
77
332
  }
333
+ /*
334
+ * The same resolver the poll list handler uses, for the same devices.
335
+ * Sharing it is the point: a device walked with its site's profile must
336
+ * be EVALUATED against that walk too, and two independent readings of
337
+ * "which credentials does this device use" would eventually disagree —
338
+ * silently, and only for the devices that use a profile.
339
+ */
340
+ const resolvedCredentials = await NetworkDeviceHydrationUtil.resolveSnmpCredentials(devices);
78
341
  for (const monitor of monitors) {
79
342
  if (monitor.monitorType !== MonitorType.NetworkDevice) {
80
343
  continue;
@@ -89,6 +352,19 @@ class NetworkDeviceHydrationUtil {
89
352
  logger.warn(`Network Device monitor ${(_e = monitor.id) === null || _e === void 0 ? void 0 : _e.toString()} references missing device ${deviceId}. Step will not be executable.`);
90
353
  continue;
91
354
  }
355
+ const resolved = resolvedCredentials.byDeviceId.get(deviceId);
356
+ /*
357
+ * Only ever absent when the credential lookup failed this cycle
358
+ * (resolveSnmpCredentials withholds those devices). Leave the step
359
+ * unhydrated rather than assembling a config from the device's own
360
+ * empty columns: the probe would open a session with SnmpMonitor's
361
+ * default "public" community and report a perfectly healthy device
362
+ * as failing its walk.
363
+ */
364
+ if (!resolved) {
365
+ logger.warn(`Network Device monitor ${(_f = monitor.id) === null || _f === void 0 ? void 0 : _f.toString()}: could not resolve SNMP credentials for device ${deviceId} this cycle. Leaving the step unhydrated rather than executing it without credentials.`);
366
+ continue;
367
+ }
92
368
  /*
93
369
  * Legacy path: reads the step's own (deprecated) oids and
94
370
  * monitorInterfaces. Only monitor TESTS still flow through here —
@@ -97,9 +373,10 @@ class NetworkDeviceHydrationUtil {
97
373
  */
98
374
  step.data.snmpMonitor =
99
375
  NetworkDeviceHydrationUtil.buildSnmpMonitorConfig({
100
- device: device,
101
- oids: ((_f = step.data.networkDeviceMonitor) === null || _f === void 0 ? void 0 : _f.oids) || [],
102
- monitorInterfaces: ((_g = step.data.networkDeviceMonitor) === null || _g === void 0 ? void 0 : _g.monitorInterfaces) !== false,
376
+ hostname: device.hostname,
377
+ credentials: resolved.carrier,
378
+ oids: ((_g = step.data.networkDeviceMonitor) === null || _g === void 0 ? void 0 : _g.oids) || [],
379
+ monitorInterfaces: ((_h = step.data.networkDeviceMonitor) === null || _h === void 0 ? void 0 : _h.monitorInterfaces) !== false,
103
380
  });
104
381
  }
105
382
  }
@@ -125,22 +402,27 @@ class NetworkDeviceHydrationUtil {
125
402
  * probe cannot tell from "never configured" — and would therefore poll with
126
403
  * a silently defaulted algorithm.
127
404
  */
128
- static buildSnmpV3Auth(device) {
129
- if (device.snmpV3Username) {
405
+ static buildSnmpV3Auth(credentials) {
406
+ if (credentials.snmpV3Username) {
130
407
  return {
131
- securityLevel: device.snmpV3SecurityLevel ||
408
+ securityLevel: credentials.snmpV3SecurityLevel ||
132
409
  SnmpSecurityLevel.NoAuthNoPriv,
133
- username: device.snmpV3Username,
134
- authProtocol: device.snmpV3AuthProtocol ||
410
+ username: credentials.snmpV3Username,
411
+ authProtocol: credentials.snmpV3AuthProtocol ||
135
412
  undefined,
136
- authKey: device.snmpV3AuthKey || undefined,
137
- privProtocol: device.snmpV3PrivProtocol ||
413
+ authKey: credentials.snmpV3AuthKey || undefined,
414
+ privProtocol: credentials.snmpV3PrivProtocol ||
138
415
  undefined,
139
- privKey: device.snmpV3PrivKey || undefined,
416
+ privKey: credentials.snmpV3PrivKey || undefined,
140
417
  };
141
418
  }
142
- // Legacy devices stored the whole object in the snmpV3Auth JSON column.
143
- const legacy = device.snmpV3Auth;
419
+ /*
420
+ * Legacy devices stored the whole object in the snmpV3Auth JSON column.
421
+ * Only devices ever had it — a credential profile is newer than the
422
+ * flattened columns — so this branch is unreachable for a profile
423
+ * carrier, which is exactly why the field is optional on the interface.
424
+ */
425
+ const legacy = credentials.snmpV3Auth;
144
426
  if (legacy && legacy.username) {
145
427
  return legacy;
146
428
  }
@@ -244,9 +526,18 @@ class NetworkDeviceHydrationUtil {
244
526
  * Shared by monitor hydration below and the device polling claim
245
527
  * endpoint, so the two can never drift apart on which credentials they
246
528
  * load.
529
+ *
530
+ * `projectId`, `siteId` and `snmpCredentialProfileId` are part of the
531
+ * credential set, not extras: a device's credentials may live on a
532
+ * profile it or its site points at, and a profile is only usable when it
533
+ * belongs to the same project as the device (resolveSnmpCredentials drops
534
+ * it otherwise, and cannot compare what it did not select).
247
535
  */
248
536
  NetworkDeviceHydrationUtil.snmpConfigSelect = {
249
537
  _id: true,
538
+ projectId: true,
539
+ siteId: true,
540
+ snmpCredentialProfileId: true,
250
541
  hostname: true,
251
542
  snmpVersion: true,
252
543
  snmpCommunityString: true,
@@ -259,6 +550,24 @@ NetworkDeviceHydrationUtil.snmpConfigSelect = {
259
550
  snmpV3PrivProtocol: true,
260
551
  snmpV3PrivKey: true,
261
552
  };
553
+ /*
554
+ * The columns a NetworkSnmpCredentialProfile contributes when it is the
555
+ * winning carrier. `projectId` is here for the tenancy comparison, which
556
+ * is the whole reason the profiles are loaded as root.
557
+ */
558
+ NetworkDeviceHydrationUtil.credentialProfileSelect = {
559
+ _id: true,
560
+ projectId: true,
561
+ snmpVersion: true,
562
+ snmpCommunityString: true,
563
+ snmpPort: true,
564
+ snmpV3SecurityLevel: true,
565
+ snmpV3Username: true,
566
+ snmpV3AuthProtocol: true,
567
+ snmpV3AuthKey: true,
568
+ snmpV3PrivProtocol: true,
569
+ snmpV3PrivKey: true,
570
+ };
262
571
  // Shared across trap and syslog ingest; 5-minute TTL, failure-cached.
263
572
  NetworkDeviceHydrationUtil.dnsCache = new DnsResolutionCache();
264
573
  export default NetworkDeviceHydrationUtil;
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkDeviceHydrationUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetworkDeviceHydrationUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts"],"names":[],"mappings":"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"}
@@ -20,14 +20,26 @@ import ObjectID from "../../../Types/ObjectID";
20
20
  import OneUptimeDate from "../../../Types/Date";
21
21
  import CaptureSpan from "../Telemetry/CaptureSpan";
22
22
  /*
23
- * Emits device-scoped metrics from each device walk — availability,
24
- * response time, per-interface status/bandwidth/utilization/errors, and
25
- * polled health-OID values. Series are keyed to the NetworkDevice
26
- * (primaryEntityId = deviceId, attributes.networkDeviceId), NOT to a
27
- * monitor, so the device pages can chart health for every registered
28
- * device — including devices no monitor watches. Mirrors the SNMP sections
29
- * of MonitorMetricUtil, which continue to emit monitor-scoped series for
30
- * monitors that alert on the device.
23
+ * Ping round-trip time of a network device, in ms.
24
+ *
25
+ * Ping monitors write their RTT into MonitorMetricType.ResponseTime, but on
26
+ * a network device that series is the SNMP walk's time (and is absent on a
27
+ * ping-only poll), so the RTT needs a series of its own. It sits in the
28
+ * `oneuptime.monitor.ping.*` namespace beside PacketLossPercent and Jitter,
29
+ * which ARE reused from the Ping monitor. MonitorMetricType has no member
30
+ * for it yet; this constant should graduate into that enum (and the device
31
+ * metric catalog) rather than be duplicated.
32
+ */
33
+ export const NETWORK_DEVICE_PING_ROUND_TRIP_TIME_METRIC_NAME = "oneuptime.monitor.ping.round.trip.time";
34
+ /*
35
+ * Emits device-scoped metrics from each device poll — reachability, ping
36
+ * RTT / packet loss, SNMP walk time, per-interface
37
+ * status/bandwidth/utilization/errors, and polled health-OID values.
38
+ * Series are keyed to the NetworkDevice (primaryEntityId = deviceId,
39
+ * attributes.networkDeviceId), NOT to a monitor, so the device pages can
40
+ * chart health for every registered device — including devices no monitor
41
+ * watches. Mirrors the SNMP sections of MonitorMetricUtil, which continue
42
+ * to emit monitor-scoped series for monitors that alert on the device.
31
43
  */
32
44
  class NetworkDeviceMetricUtil {
33
45
  static async getRetentionDays() {
@@ -106,15 +118,48 @@ class NetworkDeviceMetricUtil {
106
118
  pushMetric({
107
119
  metricName: MonitorMetricType.IsOnline,
108
120
  value: data.isOnline ? 1 : 0,
109
- description: "SNMP reachability of this network device (1 up, 0 down)",
121
+ description: "Reachability of this network device by ping or SNMP (1 up, 0 down)",
110
122
  unit: "",
111
123
  });
112
124
  }
125
+ /*
126
+ * Walk time only. A ping-only poll has no walk and writes no point
127
+ * here; its latency is the RTT series below. Mixing the two into one
128
+ * series would chart a 1 ms ICMP echo and a 400 ms 48-port walk as the
129
+ * same thing.
130
+ */
113
131
  if (data.responseTimeInMs !== undefined) {
114
132
  pushMetric({
115
133
  metricName: MonitorMetricType.ResponseTime,
116
134
  value: data.responseTimeInMs,
117
- description: "SNMP response time of this network device",
135
+ description: "SNMP walk time of this network device (absent when the poll ran no walk)",
136
+ unit: "ms",
137
+ });
138
+ }
139
+ /*
140
+ * The probe's ping, when it ran one. Packet loss and jitter reuse the
141
+ * Ping monitor's series so the same charts and criteria vocabulary
142
+ * apply; the RTT gets its own (see the constant's comment). pushMetric
143
+ * skips undefined values, so an older probe that reports no ping
144
+ * writes nothing here.
145
+ */
146
+ if (data.pingResponse) {
147
+ pushMetric({
148
+ metricName: NETWORK_DEVICE_PING_ROUND_TRIP_TIME_METRIC_NAME,
149
+ value: data.pingResponse.avgRoundTripTimeInMs,
150
+ description: "Ping round-trip time to this network device",
151
+ unit: "ms",
152
+ });
153
+ pushMetric({
154
+ metricName: MonitorMetricType.PacketLossPercent,
155
+ value: data.pingResponse.packetLossPercent,
156
+ description: "Ping packet loss to this network device",
157
+ unit: "%",
158
+ });
159
+ pushMetric({
160
+ metricName: MonitorMetricType.Jitter,
161
+ value: data.pingResponse.jitterInMs,
162
+ description: "Ping jitter to this network device",
118
163
  unit: "ms",
119
164
  });
120
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkDeviceMetricUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/NetworkDeviceMetricUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetworkDeviceMetricUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/NetworkDeviceMetricUtil.ts"],"names":[],"mappings":"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"}