@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.
- package/Models/AnalyticsModels/Span.ts +14 -0
- package/Models/DatabaseModels/EnterpriseLicense.ts +56 -0
- package/Models/DatabaseModels/Index.ts +10 -0
- package/Models/DatabaseModels/Monitor.ts +76 -0
- package/Models/DatabaseModels/NetworkAlertPolicy.ts +690 -0
- package/Models/DatabaseModels/NetworkDevice.ts +176 -1
- package/Models/DatabaseModels/NetworkSite.ts +201 -2
- package/Models/DatabaseModels/NetworkSiteType.ts +102 -3
- package/Models/DatabaseModels/NetworkSnmpCredentialProfile.ts +841 -0
- package/Models/DatabaseModels/TelemetryException.ts +119 -0
- package/Models/DatabaseModels/UserNotificationEmailRollupBatch.ts +334 -0
- package/Models/DatabaseModels/UserNotificationEmailRollupItem.ts +370 -0
- package/Models/DatabaseModels/UserNotificationEmailRollupSetting.ts +282 -0
- package/Server/API/EnterpriseLicenseAPI.ts +391 -64
- package/Server/API/LlmProviderAPI.ts +137 -22
- package/Server/EnvironmentConfig.ts +14 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.ts +55 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.ts +124 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.ts +132 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.ts +79 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.ts +191 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
- package/Server/Infrastructure/QueueWorker.ts +38 -8
- package/Server/Middleware/BearerTokenAuthorization.ts +12 -0
- package/Server/Middleware/ProjectAuthorization.ts +11 -0
- package/Server/Middleware/SCIMAuthorization.ts +12 -0
- package/Server/Middleware/TelemetryIngest.ts +11 -0
- package/Server/Services/AIBillingService.ts +101 -27
- package/Server/Services/EnterpriseLicenseInstanceService.ts +197 -0
- package/Server/Services/EnterpriseLicenseService.ts +55 -0
- package/Server/Services/Index.ts +10 -0
- package/Server/Services/MonitorService.ts +143 -21
- package/Server/Services/MonitorStatusTimelineService.ts +150 -8
- package/Server/Services/MonitorTemplateService.ts +217 -1
- package/Server/Services/NetworkAlertPolicyEngineService.ts +2159 -0
- package/Server/Services/NetworkAlertPolicyService.ts +944 -0
- package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +9 -10
- package/Server/Services/NetworkDeviceAutoImportRuleService.ts +60 -15
- package/Server/Services/NetworkDeviceService.ts +1032 -73
- package/Server/Services/NetworkSiteService.ts +1502 -129
- package/Server/Services/NetworkSiteTypeService.ts +1216 -0
- package/Server/Services/NetworkSnmpCredentialProfileService.ts +238 -0
- package/Server/Services/NotificationService.ts +118 -28
- package/Server/Services/ProjectService.ts +105 -48
- package/Server/Services/StatusPagePrivateUserService.ts +103 -3
- package/Server/Services/UserNotificationEmailRollupBatchService.ts +78 -0
- package/Server/Services/UserNotificationEmailRollupItemService.ts +79 -0
- package/Server/Services/UserNotificationEmailRollupSettingService.ts +113 -0
- package/Server/Services/UserNotificationSettingService.ts +62 -25
- package/Server/Services/UserService.ts +95 -0
- package/Server/Types/Database/QueryHelper.ts +2 -2
- package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +14 -3
- package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +10 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +10 -0
- package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +62 -1
- package/Server/Utils/AI/Toolbox/AlertTools.ts +15 -1
- package/Server/Utils/Billing/BillingFailureNoticeThrottle.ts +80 -0
- package/Server/Utils/DataSource/HttpFetch.ts +9 -2
- package/Server/Utils/EmailRollup/EmailRollupConstants.ts +98 -0
- package/Server/Utils/EmailRollup/EmailRollupFlushRunner.ts +872 -0
- package/Server/Utils/EmailRollup/EmailRollupRenderer.ts +781 -0
- package/Server/Utils/EmailRollup/EmailRollupWriter.ts +368 -0
- package/Server/Utils/LLM/LLMService.ts +78 -0
- package/Server/Utils/LogRedaction.ts +8 -0
- package/Server/Utils/Logger.ts +79 -1
- package/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.ts +190 -0
- package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +9 -2
- package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +61 -1
- package/Server/Utils/Monitor/MonitorCriteriaDataExtractor.ts +14 -0
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +49 -0
- package/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.ts +255 -4
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +41 -0
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +43 -0
- package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +499 -19
- package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +66 -10
- package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +238 -44
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +146 -39
- package/Server/Utils/NetworkDevice/DeviceHealthAggregation.ts +31 -18
- package/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.ts +213 -0
- package/Server/Utils/OutboundUserAgent.ts +152 -0
- package/Server/Utils/StartServer.ts +51 -19
- package/Server/Utils/Telemetry/CaptureSpan.ts +32 -8
- package/Server/Utils/Telemetry/ErrorClassResolver.ts +120 -0
- package/Server/Utils/Telemetry/SpanUtil.ts +33 -0
- package/Server/Utils/Telemetry.ts +198 -51
- package/Server/Views/Partials/SensitiveUrlToken.ejs +140 -0
- package/Tests/App/Dashboard/AddNeighborToMonitoringModal.test.tsx +134 -33
- package/Tests/App/Dashboard/AskAiSuggestedPrompts.test.ts +279 -0
- package/Tests/App/Dashboard/DashboardEditPermissions.test.tsx +517 -0
- package/Tests/App/Dashboard/DashboardVariablesDiscard.test.tsx +26 -0
- package/Tests/App/Dashboard/DeviceStatusHero.test.tsx +588 -0
- package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +18 -9
- package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +632 -0
- package/Tests/App/Dashboard/MonitorRecommendationCreateProgress.test.tsx +682 -0
- package/Tests/App/Dashboard/MonitorTypePicker.test.tsx +4 -2
- package/Tests/App/Dashboard/NetworkDeviceCreateFormMonitorBinding.test.tsx +676 -0
- package/Tests/App/Dashboard/NetworkDeviceCreateFormPingMonitor.test.tsx +791 -0
- package/Tests/App/Dashboard/NetworkDeviceCreateFormProbeAndSnmp.test.tsx +833 -0
- package/Tests/App/Dashboard/NetworkDeviceCriteriaFilter.test.ts +161 -0
- package/Tests/App/Dashboard/NetworkDeviceSettingsMonitoringSection.test.tsx +458 -0
- package/Tests/App/Dashboard/NetworkSideMenu.test.tsx +41 -5
- package/Tests/App/Dashboard/PingMonitorProvisioning.test.ts +368 -0
- package/Tests/App/Dashboard/RecommendationCard.test.tsx +796 -0
- package/Tests/App/Dashboard/RecommendationToolbar.test.tsx +519 -0
- package/Tests/App/Dashboard/RecommendationsList.test.tsx +661 -0
- package/Tests/App/Dashboard/UseBulkCreatePingMonitors.test.tsx +899 -0
- package/Tests/App/Dashboard/UseBulkSnmpCredentialProfileActions.test.tsx +732 -0
- package/Tests/App/SensitiveUrlTokenBootstrap.test.ts +256 -0
- package/Tests/App/StatusPage/StatusPageIndexPageRobotsMeta.test.ts +11 -1
- package/Tests/App/StatusPage/StatusPageLoginCodeBootstrap.test.ts +9 -4
- package/Tests/Models/NetworkSiteHierarchy.test.ts +41 -4
- package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +951 -7
- package/Tests/Server/API/LlmProviderConnectionTest.test.ts +522 -0
- package/Tests/Server/Infrastructure/Postgres/NetworkSnmpCredentialProfilesAndAlertPoliciesMigration.test.ts +854 -0
- package/Tests/Server/Infrastructure/Postgres/SchemaMigrationsOrdering.test.ts +18 -0
- package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupTableMigration.test.ts +535 -0
- package/Tests/Server/Services/AIChatPrivacyPin.test.ts +560 -0
- package/Tests/Server/Services/BillingRechargeOwnerEmailGuards.test.ts +783 -0
- package/Tests/Server/Services/EnterpriseLicenseInstanceServiceDeletionUsage.test.ts +707 -0
- package/Tests/Server/Services/EnterpriseLicenseServiceUsageAggregationLock.test.ts +329 -0
- package/Tests/Server/Services/MonitorServiceDeleteNetworkDeviceCleanup.test.ts +294 -0
- package/Tests/Server/Services/MonitorStatusBridgeProbePath.test.ts +802 -0
- package/Tests/Server/Services/MonitorStatusTimelineService.test.ts +72 -2
- package/Tests/Server/Services/NetworkAlertPolicyEngineHooks.test.ts +752 -0
- package/Tests/Server/Services/NetworkAlertPolicyEngineService.test.ts +1849 -0
- package/Tests/Server/Services/NetworkAlertPolicyModel.test.ts +1793 -0
- package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +47 -4
- package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +97 -12
- package/Tests/Server/Services/NetworkDeviceAutoMonitorLifecycle.test.ts +148 -3
- package/Tests/Server/Services/NetworkDeviceMonitorBindingUpdateGuard.test.ts +514 -0
- package/Tests/Server/Services/NetworkDeviceMonitorStatusStamp.test.ts +447 -58
- package/Tests/Server/Services/NetworkDeviceMonitoringMethodTransition.test.ts +739 -0
- package/Tests/Server/Services/NetworkDevicePollingTenancy.test.ts +501 -0
- package/Tests/Server/Services/NetworkDeviceSiteDefaultProbe.test.ts +432 -0
- package/Tests/Server/Services/NetworkSiteMonitoringDefaults.test.ts +498 -0
- package/Tests/Server/Services/NetworkSiteRollupPolicyAndMaintenance.test.ts +337 -55
- package/Tests/Server/Services/NetworkSiteService.test.ts +1868 -131
- package/Tests/Server/Services/NetworkSiteTypeService.test.ts +1109 -0
- package/Tests/Server/Services/NetworkSnmpCredentialProfileModel.test.ts +926 -0
- package/Tests/Server/Services/NetworkSnmpCredentialProfileService.test.ts +796 -0
- package/Tests/Server/Services/ProjectServiceNetworkSiteTypeDefaults.test.ts +214 -0
- package/Tests/Server/Services/StatusPagePrivateUserEmailChangePasswordResetExpiry.test.ts +269 -0
- package/Tests/Server/Services/UserEmailChangePasswordResetExpiry.test.ts +472 -0
- package/Tests/Server/Services/UserNotificationEmailRollupModels.test.ts +569 -0
- package/Tests/Server/Services/UserNotificationEmailRollupSettingModel.test.ts +314 -0
- package/Tests/Server/Services/UserNotificationEmailRollupSettingService.test.ts +409 -0
- package/Tests/Server/Services/UserNotificationSettingRollupRouting.test.ts +856 -0
- package/Tests/Server/Services/UserNotificationSettingWorkspaceChannels.test.ts +102 -1
- package/Tests/Server/Types/Database/Permissions/DashboardAccessPermission.test.ts +321 -0
- package/Tests/Server/Types/Database/QueryHelperOperators.test.ts +17 -0
- package/Tests/Server/Utils/AI/AlertMonitorFilters.test.ts +124 -0
- package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +208 -0
- package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +235 -0
- package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +253 -0
- package/Tests/Server/Utils/Captcha.test.ts +422 -0
- package/Tests/Server/Utils/DataSource/HttpFetch.test.ts +96 -2
- package/Tests/Server/Utils/Database/MigrationFailureLog.test.ts +466 -0
- package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerBehaviour.test.ts +1096 -0
- package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerClaim.test.ts +466 -0
- package/Tests/Server/Utils/EmailRollup/EmailRollupRenderer.test.ts +1428 -0
- package/Tests/Server/Utils/EmailRollup/EmailRollupTestHarness.ts +752 -0
- package/Tests/Server/Utils/EmailRollup/EmailRollupWriter.test.ts +864 -0
- package/Tests/Server/Utils/LoggerFaultDemotion.test.ts +346 -0
- package/Tests/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.test.ts +633 -0
- package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +196 -0
- package/Tests/Server/Utils/Monitor/DatabaseMetricWrite.test.ts +367 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaObservationBuilderUnits.test.ts +100 -0
- package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +5 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +512 -31
- package/Tests/Server/Utils/Monitor/NetworkDeviceMetricUtil.test.ts +252 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +479 -42
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +351 -5
- package/Tests/Server/Utils/NetworkDevice/DeviceHealthAggregation.test.ts +136 -12
- package/Tests/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.test.ts +306 -0
- package/Tests/Server/Utils/OutboundUserAgent.test.ts +266 -0
- package/Tests/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClientUserAgent.test.ts +141 -0
- package/Tests/Server/Utils/Telemetry/ErrorClassResolver.test.ts +298 -0
- package/Tests/Server/Utils/Telemetry.test.ts +456 -66
- package/Tests/Types/Monitor/DatabaseMetricCatalog.test.ts +388 -0
- package/Tests/Types/Monitor/MonitorStepDatabaseMonitor.test.ts +243 -0
- package/Tests/Types/Monitor/MonitorStepDefaultTelemetryConfig.test.ts +1 -0
- package/Tests/Types/Monitor/MonitorType.test.ts +1 -0
- package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +16 -7
- package/Tests/Types/Monitor/NetworkDeviceAlertPack.test.ts +60 -0
- package/Tests/Types/NetworkDevice/NetworkAlertPolicyScope.test.ts +655 -0
- package/Tests/Types/NetworkDevice/NetworkDeviceMonitoringMethod.test.ts +115 -26
- package/Tests/Types/NetworkSite/DefaultNetworkSiteType.test.ts +39 -0
- package/Tests/Types/NotificationSetting/NotificationEmailRollupPolicy.test.ts +299 -0
- package/Tests/Types/Telemetry/ErrorClass.test.ts +483 -0
- package/Tests/UI/Components/BasicRadioButtons.test.tsx +336 -0
- package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +15 -0
- package/Tests/UI/Components/ProgressBar.test.tsx +38 -2
- package/Tests/UI/Components/SideMenuItem.test.tsx +226 -4
- package/Tests/UI/Components/SideMenuSection.test.tsx +310 -0
- package/Tests/UI/Components/SideOverSubmitState.test.tsx +335 -0
- package/Tests/UI/Utils/PageScrollLock.test.tsx +377 -0
- package/Tests/UI/Utils/PermissionGate.test.ts +78 -0
- package/Tests/UI/Utils/SensitiveUrlToken.test.ts +140 -0
- package/Tests/Utils/EnterpriseLicenseSeats.test.ts +69 -0
- package/Tests/Utils/EnterpriseLicenseSync.test.ts +7 -1
- package/Tests/Utils/EnterpriseLicenseUsage.test.ts +433 -2
- package/Tests/Utils/Monitor/MonitorMetricType.test.ts +280 -1
- package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +1 -0
- package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +38 -0
- package/Tests/Utils/NetworkDevice/DeviceHealthStateUtil.test.ts +284 -23
- package/Tests/Utils/NetworkDevice/DeviceReachabilityUtil.test.ts +177 -0
- package/Tests/Utils/NetworkDevice/MonitoringMethodThreadedClassifiers.test.ts +992 -0
- package/Tests/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.test.ts +427 -0
- package/Tests/Utils/NetworkDevice/ReachabilityStampConsistency.test.ts +185 -0
- package/Tests/Utils/NetworkDevice/SnmpCredentialUtil.test.ts +268 -0
- package/Tests/Utils/NetworkDiscovery/AutoImportRuleMatcher.test.ts +55 -5
- package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +98 -21
- package/Tests/Utils/NetworkDiscovery/DiscoveryImportEligibility.test.ts +98 -20
- package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +8 -7
- package/Tests/Utils/NetworkDiscovery/PingMonitorBuilderForAddress.test.ts +274 -0
- package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +230 -51
- package/Tests/Utils/NetworkSite/TypeHierarchyUtil.test.ts +209 -0
- package/Tests/Utils/Telemetry/CaptureSpanExportGating.test.ts +145 -0
- package/Types/AI/ExceptionAIClassification.ts +10 -24
- package/Types/Email/EmailTemplateType.ts +2 -0
- package/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.ts +5 -0
- package/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.ts +13 -0
- package/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.ts +6 -0
- package/Types/Exception/ApiException.ts +10 -0
- package/Types/Exception/BadDataException.ts +11 -0
- package/Types/Exception/BadRequestException.ts +11 -0
- package/Types/Exception/Exception.ts +65 -0
- package/Types/Exception/ForbiddenException.ts +10 -0
- package/Types/Exception/NotAuthenticatedException.ts +10 -0
- package/Types/Exception/NotAuthorizedException.ts +10 -0
- package/Types/Exception/NotFoundException.ts +11 -0
- package/Types/Exception/PayloadTooLargeException.ts +11 -0
- package/Types/Exception/PaymentRequiredException.ts +10 -0
- package/Types/Exception/ServiceUnavailableException.ts +10 -0
- package/Types/Exception/SsoAuthorizationException.ts +10 -0
- package/Types/Exception/TenantNotFoundException.ts +11 -0
- package/Types/Exception/TimeoutException.ts +10 -0
- package/Types/Exception/TooManyRequestsException.ts +10 -0
- package/Types/Exception/UnableToReachServer.ts +10 -0
- package/Types/Exception/WebsiteRequestException.ts +10 -0
- package/Types/Monitor/CriteriaFilter.ts +60 -2
- package/Types/Monitor/DatabaseMetricCatalog.ts +693 -0
- package/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.ts +83 -0
- package/Types/Monitor/MonitorCriteriaInstance.ts +76 -0
- package/Types/Monitor/MonitorMetricType.ts +71 -0
- package/Types/Monitor/MonitorStep.ts +76 -0
- package/Types/Monitor/MonitorStepDatabaseMonitor.ts +171 -0
- package/Types/Monitor/MonitorStepSqlMonitor.ts +2 -20
- package/Types/Monitor/MonitorType.ts +47 -1
- package/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.ts +22 -1
- package/Types/Monitor/SqlConnectionConfig.ts +31 -0
- package/Types/NetworkDevice/NetworkAlertPolicyScope.ts +343 -0
- package/Types/NetworkDevice/NetworkDeviceMonitoringMethod.ts +42 -22
- package/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.ts +30 -0
- package/Types/NotificationSetting/NotificationEmailRollupCategory.ts +255 -0
- package/Types/NotificationSetting/NotificationEmailRollupPolicy.ts +104 -0
- package/Types/Permission.ts +90 -0
- package/Types/Probe/ProbeMonitorResponse.ts +16 -0
- package/Types/Telemetry/ErrorClass.ts +274 -0
- package/Types/Telemetry/UnitOfWork.ts +59 -0
- package/UI/Components/CommandPalette/CommandPalette.tsx +2 -8
- package/UI/Components/EditionLabel/EditionLabel.tsx +4 -0
- package/UI/Components/Modal/Modal.tsx +2 -8
- package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +44 -0
- package/UI/Components/ProgressBar/ProgressBar.tsx +12 -1
- package/UI/Components/RadioButtons/BasicRadioButtons.tsx +37 -7
- package/UI/Components/SideMenu/SideMenu.tsx +123 -5
- package/UI/Components/SideMenu/SideMenuItem.tsx +76 -84
- package/UI/Components/SideMenu/SideMenuSection.tsx +55 -23
- package/UI/Components/SideOver/SideOver.tsx +21 -20
- package/UI/Utils/PageScrollLock.ts +79 -3
- package/UI/Utils/PermissionGate.ts +61 -0
- package/UI/Utils/SensitiveUrlToken.ts +112 -0
- package/UI/Utils/TestLLMProvider.ts +11 -0
- package/Utils/EnterpriseLicense/EnterpriseLicenseSeats.ts +16 -0
- package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +191 -11
- package/Utils/Monitor/MonitorMetricType.ts +153 -1
- package/Utils/Monitor/NetworkTopologyUtil.ts +23 -3
- package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +65 -14
- package/Utils/NetworkDevice/DeviceReachabilityUtil.ts +43 -14
- package/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.ts +247 -0
- package/Utils/NetworkDevice/SnmpCredentialUtil.ts +68 -0
- package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +15 -7
- package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +52 -17
- package/Utils/NetworkDiscovery/DiscoveryImportEligibility.ts +55 -23
- package/Utils/NetworkDiscovery/PingMonitorBuilder.ts +115 -13
- package/Utils/NetworkSite/SiteStatusRollupUtil.ts +66 -20
- package/Utils/NetworkSite/TypeHierarchyUtil.ts +313 -0
- package/build/dist/Models/AnalyticsModels/Span.js +14 -0
- package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
- package/build/dist/Models/DatabaseModels/EnterpriseLicense.js +59 -0
- package/build/dist/Models/DatabaseModels/EnterpriseLicense.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +10 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +75 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkAlertPolicy.js +713 -0
- package/build/dist/Models/DatabaseModels/NetworkAlertPolicy.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +180 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSite.js +200 -2
- package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSiteType.js +102 -3
- package/build/dist/Models/DatabaseModels/NetworkSiteType.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSnmpCredentialProfile.js +878 -0
- package/build/dist/Models/DatabaseModels/NetworkSnmpCredentialProfile.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js +123 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupBatch.js +363 -0
- package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupBatch.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js +402 -0
- package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupSetting.js +296 -0
- package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupSetting.js.map +1 -0
- package/build/dist/Server/API/EnterpriseLicenseAPI.js +273 -60
- package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
- package/build/dist/Server/API/LlmProviderAPI.js +108 -13
- package/build/dist/Server/API/LlmProviderAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +12 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.js +24 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.js +111 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.js +77 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.js +50 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.js +83 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/QueueWorker.js +33 -5
- package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
- package/build/dist/Server/Middleware/BearerTokenAuthorization.js +12 -0
- package/build/dist/Server/Middleware/BearerTokenAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/ProjectAuthorization.js +11 -0
- package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/SCIMAuthorization.js +12 -0
- package/build/dist/Server/Middleware/SCIMAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/TelemetryIngest.js +11 -0
- package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
- package/build/dist/Server/Services/AIBillingService.js +70 -16
- package/build/dist/Server/Services/AIBillingService.js.map +1 -1
- package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js +167 -0
- package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js.map +1 -1
- package/build/dist/Server/Services/EnterpriseLicenseService.js +39 -0
- package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +10 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +119 -21
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorStatusTimelineService.js +127 -8
- package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorTemplateService.js +162 -0
- package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
- package/build/dist/Server/Services/NetworkAlertPolicyEngineService.js +1683 -0
- package/build/dist/Server/Services/NetworkAlertPolicyEngineService.js.map +1 -0
- package/build/dist/Server/Services/NetworkAlertPolicyService.js +732 -0
- package/build/dist/Server/Services/NetworkAlertPolicyService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +10 -9
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +54 -11
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceService.js +841 -70
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
- package/build/dist/Server/Services/NetworkSiteService.js +1145 -107
- package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
- package/build/dist/Server/Services/NetworkSiteTypeService.js +863 -0
- package/build/dist/Server/Services/NetworkSiteTypeService.js.map +1 -1
- package/build/dist/Server/Services/NetworkSnmpCredentialProfileService.js +217 -0
- package/build/dist/Server/Services/NetworkSnmpCredentialProfileService.js.map +1 -0
- package/build/dist/Server/Services/NotificationService.js +80 -17
- package/build/dist/Server/Services/NotificationService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +66 -30
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/StatusPagePrivateUserService.js +92 -2
- package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationEmailRollupBatchService.js +76 -0
- package/build/dist/Server/Services/UserNotificationEmailRollupBatchService.js.map +1 -0
- package/build/dist/Server/Services/UserNotificationEmailRollupItemService.js +77 -0
- package/build/dist/Server/Services/UserNotificationEmailRollupItemService.js.map +1 -0
- package/build/dist/Server/Services/UserNotificationEmailRollupSettingService.js +111 -0
- package/build/dist/Server/Services/UserNotificationEmailRollupSettingService.js.map +1 -0
- package/build/dist/Server/Services/UserNotificationSettingService.js +46 -20
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +90 -0
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +14 -3
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +10 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +10 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +54 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js +18 -4
- package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js.map +1 -1
- package/build/dist/Server/Utils/Billing/BillingFailureNoticeThrottle.js +59 -0
- package/build/dist/Server/Utils/Billing/BillingFailureNoticeThrottle.js.map +1 -0
- package/build/dist/Server/Utils/DataSource/HttpFetch.js +2 -1
- package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
- package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js +91 -0
- package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js.map +1 -0
- package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js +691 -0
- package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js.map +1 -0
- package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js +497 -0
- package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js.map +1 -0
- package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js +257 -0
- package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js.map +1 -0
- package/build/dist/Server/Utils/LLM/LLMService.js +64 -1
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/LogRedaction.js +8 -0
- package/build/dist/Server/Utils/LogRedaction.js.map +1 -1
- package/build/dist/Server/Utils/Logger.js +63 -1
- package/build/dist/Server/Utils/Logger.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.js +141 -0
- package/build/dist/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +8 -1
- package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +51 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js +7 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +37 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +158 -6
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +33 -0
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +32 -0
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +330 -21
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +55 -10
- package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +178 -49
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +119 -29
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
- package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js +30 -17
- package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js.map +1 -1
- package/build/dist/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.js +158 -0
- package/build/dist/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.js.map +1 -0
- package/build/dist/Server/Utils/OutboundUserAgent.js +123 -0
- package/build/dist/Server/Utils/OutboundUserAgent.js.map +1 -0
- package/build/dist/Server/Utils/StartServer.js +38 -14
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/CaptureSpan.js +28 -8
- package/build/dist/Server/Utils/Telemetry/CaptureSpan.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ErrorClassResolver.js +95 -0
- package/build/dist/Server/Utils/Telemetry/ErrorClassResolver.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/SpanUtil.js +29 -0
- package/build/dist/Server/Utils/Telemetry/SpanUtil.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry.js +162 -46
- package/build/dist/Server/Utils/Telemetry.js.map +1 -1
- package/build/dist/Types/AI/ExceptionAIClassification.js +10 -24
- package/build/dist/Types/AI/ExceptionAIClassification.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.js +2 -0
- package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.js.map +1 -0
- package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.js +7 -0
- package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.js.map +1 -0
- package/build/dist/Types/Exception/ApiException.js +9 -0
- package/build/dist/Types/Exception/ApiException.js.map +1 -1
- package/build/dist/Types/Exception/BadDataException.js +10 -0
- package/build/dist/Types/Exception/BadDataException.js.map +1 -1
- package/build/dist/Types/Exception/BadRequestException.js +10 -0
- package/build/dist/Types/Exception/BadRequestException.js.map +1 -1
- package/build/dist/Types/Exception/Exception.js +56 -0
- package/build/dist/Types/Exception/Exception.js.map +1 -1
- package/build/dist/Types/Exception/ForbiddenException.js +9 -0
- package/build/dist/Types/Exception/ForbiddenException.js.map +1 -1
- package/build/dist/Types/Exception/NotAuthenticatedException.js +9 -0
- package/build/dist/Types/Exception/NotAuthenticatedException.js.map +1 -1
- package/build/dist/Types/Exception/NotAuthorizedException.js +9 -0
- package/build/dist/Types/Exception/NotAuthorizedException.js.map +1 -1
- package/build/dist/Types/Exception/NotFoundException.js +10 -0
- package/build/dist/Types/Exception/NotFoundException.js.map +1 -1
- package/build/dist/Types/Exception/PayloadTooLargeException.js +10 -0
- package/build/dist/Types/Exception/PayloadTooLargeException.js.map +1 -1
- package/build/dist/Types/Exception/PaymentRequiredException.js +9 -0
- package/build/dist/Types/Exception/PaymentRequiredException.js.map +1 -1
- package/build/dist/Types/Exception/ServiceUnavailableException.js +9 -0
- package/build/dist/Types/Exception/ServiceUnavailableException.js.map +1 -1
- package/build/dist/Types/Exception/SsoAuthorizationException.js +9 -0
- package/build/dist/Types/Exception/SsoAuthorizationException.js.map +1 -1
- package/build/dist/Types/Exception/TenantNotFoundException.js +10 -0
- package/build/dist/Types/Exception/TenantNotFoundException.js.map +1 -1
- package/build/dist/Types/Exception/TimeoutException.js +9 -0
- package/build/dist/Types/Exception/TimeoutException.js.map +1 -1
- package/build/dist/Types/Exception/TooManyRequestsException.js +9 -0
- package/build/dist/Types/Exception/TooManyRequestsException.js.map +1 -1
- package/build/dist/Types/Exception/UnableToReachServer.js +9 -0
- package/build/dist/Types/Exception/UnableToReachServer.js.map +1 -1
- package/build/dist/Types/Exception/WebsiteRequestException.js +9 -0
- package/build/dist/Types/Exception/WebsiteRequestException.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +45 -2
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/DatabaseMetricCatalog.js +594 -0
- package/build/dist/Types/Monitor/DatabaseMetricCatalog.js.map +1 -0
- package/build/dist/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.js +21 -0
- package/build/dist/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +70 -0
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorMetricType.js +61 -0
- package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +54 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepDatabaseMonitor.js +122 -0
- package/build/dist/Types/Monitor/MonitorStepDatabaseMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +45 -1
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js +21 -1
- package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js.map +1 -1
- package/build/dist/Types/Monitor/SqlConnectionConfig.js +2 -0
- package/build/dist/Types/Monitor/SqlConnectionConfig.js.map +1 -0
- package/build/dist/Types/NetworkDevice/NetworkAlertPolicyScope.js +172 -0
- package/build/dist/Types/NetworkDevice/NetworkAlertPolicyScope.js.map +1 -0
- package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js +40 -22
- package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js.map +1 -1
- package/build/dist/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.js +26 -0
- package/build/dist/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.js.map +1 -0
- package/build/dist/Types/NotificationSetting/NotificationEmailRollupCategory.js +186 -0
- package/build/dist/Types/NotificationSetting/NotificationEmailRollupCategory.js.map +1 -0
- package/build/dist/Types/NotificationSetting/NotificationEmailRollupPolicy.js +87 -0
- package/build/dist/Types/NotificationSetting/NotificationEmailRollupPolicy.js.map +1 -0
- package/build/dist/Types/Permission.js +80 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Telemetry/ErrorClass.js +216 -0
- package/build/dist/Types/Telemetry/ErrorClass.js.map +1 -0
- package/build/dist/Types/Telemetry/UnitOfWork.js +59 -0
- package/build/dist/Types/Telemetry/UnitOfWork.js.map +1 -0
- package/build/dist/UI/Components/CommandPalette/CommandPalette.js +2 -7
- package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -1
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js +3 -0
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
- package/build/dist/UI/Components/Modal/Modal.js +2 -7
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +39 -0
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
- package/build/dist/UI/Components/ProgressBar/ProgressBar.js +12 -1
- package/build/dist/UI/Components/ProgressBar/ProgressBar.js.map +1 -1
- package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js +6 -6
- package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenu.js +67 -5
- package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenuItem.js +49 -53
- package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenuSection.js +25 -7
- package/build/dist/UI/Components/SideMenu/SideMenuSection.js.map +1 -1
- package/build/dist/UI/Components/SideOver/SideOver.js +5 -20
- package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
- package/build/dist/UI/Utils/PageScrollLock.js +31 -3
- package/build/dist/UI/Utils/PageScrollLock.js.map +1 -1
- package/build/dist/UI/Utils/PermissionGate.js +42 -1
- package/build/dist/UI/Utils/PermissionGate.js.map +1 -1
- package/build/dist/UI/Utils/SensitiveUrlToken.js +97 -0
- package/build/dist/UI/Utils/SensitiveUrlToken.js.map +1 -0
- package/build/dist/UI/Utils/TestLLMProvider.js +4 -5
- package/build/dist/UI/Utils/TestLLMProvider.js.map +1 -1
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js +15 -0
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js.map +1 -1
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +111 -9
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js +109 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +8 -3
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js +27 -7
- package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js +7 -5
- package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.js +180 -0
- package/build/dist/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDevice/SnmpCredentialUtil.js +12 -0
- package/build/dist/Utils/NetworkDevice/SnmpCredentialUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js +15 -5
- package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +44 -15
- package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/DiscoveryImportEligibility.js +52 -23
- package/build/dist/Utils/NetworkDiscovery/DiscoveryImportEligibility.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js +85 -13
- package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js.map +1 -1
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +30 -15
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
- package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js +191 -0
- package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js.map +1 -0
- 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
|
-
*
|
|
14
|
-
*
|
|
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.
|
|
21
|
-
hostname: data.
|
|
22
|
-
port: data.
|
|
23
|
-
communityString: data.
|
|
24
|
-
snmpV3Auth: NetworkDeviceHydrationUtil.buildSnmpV3Auth(data.
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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(
|
|
129
|
-
if (
|
|
405
|
+
static buildSnmpV3Auth(credentials) {
|
|
406
|
+
if (credentials.snmpV3Username) {
|
|
130
407
|
return {
|
|
131
|
-
securityLevel:
|
|
408
|
+
securityLevel: credentials.snmpV3SecurityLevel ||
|
|
132
409
|
SnmpSecurityLevel.NoAuthNoPriv,
|
|
133
|
-
username:
|
|
134
|
-
authProtocol:
|
|
410
|
+
username: credentials.snmpV3Username,
|
|
411
|
+
authProtocol: credentials.snmpV3AuthProtocol ||
|
|
135
412
|
undefined,
|
|
136
|
-
authKey:
|
|
137
|
-
privProtocol:
|
|
413
|
+
authKey: credentials.snmpV3AuthKey || undefined,
|
|
414
|
+
privProtocol: credentials.snmpV3PrivProtocol ||
|
|
138
415
|
undefined,
|
|
139
|
-
privKey:
|
|
416
|
+
privKey: credentials.snmpV3PrivKey || undefined,
|
|
140
417
|
};
|
|
141
418
|
}
|
|
142
|
-
|
|
143
|
-
|
|
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
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
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: "
|
|
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
|
|
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":";;;;;;;;;AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,WAAW,MAAM,sCAAsC,CAAC;AAC/D,OAAO,UAAU,MAAM,2CAA2C,CAAC;AAGnE,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"NetworkDeviceMetricUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/NetworkDeviceMetricUtil.ts"],"names":[],"mappings":"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"}
|