@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
|
@@ -0,0 +1,713 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import MonitorTemplate from "./MonitorTemplate";
|
|
11
|
+
import Project from "./Project";
|
|
12
|
+
import User from "./User";
|
|
13
|
+
import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
14
|
+
import Route from "../../Types/API/Route";
|
|
15
|
+
import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
|
|
16
|
+
import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
|
|
17
|
+
import ColumnLength from "../../Types/Database/ColumnLength";
|
|
18
|
+
import ColumnType from "../../Types/Database/ColumnType";
|
|
19
|
+
import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
|
|
20
|
+
import EnableDocumentation from "../../Types/Database/EnableDocumentation";
|
|
21
|
+
import TableColumn from "../../Types/Database/TableColumn";
|
|
22
|
+
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
23
|
+
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
24
|
+
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
25
|
+
import UniqueColumnBy from "../../Types/Database/UniqueColumnBy";
|
|
26
|
+
import IconProp from "../../Types/Icon/IconProp";
|
|
27
|
+
import ObjectID from "../../Types/ObjectID";
|
|
28
|
+
import Permission from "../../Types/Permission";
|
|
29
|
+
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
30
|
+
/*
|
|
31
|
+
* "Alert on a SET of devices."
|
|
32
|
+
*
|
|
33
|
+
* Every Network Device monitor watches exactly one device, so before this
|
|
34
|
+
* table an operator with two hundred warehouse switches who wanted
|
|
35
|
+
* "unreachable -> incident" on all of them created two hundred monitors by
|
|
36
|
+
* hand — and a two-hundred-and-first when the next switch was discovered.
|
|
37
|
+
* A policy says it once: WHICH devices (the scope: sites, roles, labels) and
|
|
38
|
+
* WHAT to alert on (a Network Device monitor template), and the engine keeps
|
|
39
|
+
* one monitor per matching device provisioned from that template as devices
|
|
40
|
+
* are added, re-sited, re-labelled and removed.
|
|
41
|
+
*
|
|
42
|
+
* The row is the intent; the monitors are the consequence. Nothing about a
|
|
43
|
+
* monitor is stored here — the engine (NetworkAlertPolicyEngineService)
|
|
44
|
+
* finds a policy's monitors by their provenance and owns their lifecycle.
|
|
45
|
+
*
|
|
46
|
+
* WHO MAY WRITE ONE. Creating a policy provisions monitors, and monitors are
|
|
47
|
+
* what the plan is billed on: an unscoped policy in a large estate is
|
|
48
|
+
* thousands of monitors from a single form submit. Create, update and delete
|
|
49
|
+
* are therefore held to ProjectOwner / ProjectAdmin and the policy's own
|
|
50
|
+
* granular permissions — no ProjectMember, no Viewer, and none of the
|
|
51
|
+
* Settings* roles that can edit a device role or a site type, because those
|
|
52
|
+
* are labels and this is spend. A member who needs to run policies is
|
|
53
|
+
* handed CreateNetworkAlertPolicy explicitly. Reading stays open to every
|
|
54
|
+
* project role: the policy list is how anybody finds out why a monitor
|
|
55
|
+
* exists.
|
|
56
|
+
*
|
|
57
|
+
* ONE POLICY PER TEMPLATE PER PROJECT, enforced by the partial unique index
|
|
58
|
+
* below. A provisioned monitor's provenance is (device, template) — the
|
|
59
|
+
* unique index Monitor itself carries — so that pair is the only key the
|
|
60
|
+
* engine has for "is this monitor mine?". A template used by two policies
|
|
61
|
+
* would make ownership of every (device, template) monitor ambiguous: both
|
|
62
|
+
* would claim it, the second to provision would fail on Monitor's index
|
|
63
|
+
* forever, and neither could safely tear it down when a device left its
|
|
64
|
+
* scope. Partial, so soft-deleted policies release their template and a
|
|
65
|
+
* template-less policy (after SET NULL) never collides with another.
|
|
66
|
+
*/
|
|
67
|
+
let NetworkAlertPolicy = class NetworkAlertPolicy extends BaseModel {
|
|
68
|
+
constructor() {
|
|
69
|
+
super(...arguments);
|
|
70
|
+
this.project = undefined;
|
|
71
|
+
this.projectId = undefined;
|
|
72
|
+
this.name = undefined;
|
|
73
|
+
this.description = undefined;
|
|
74
|
+
this.isEnabled = undefined;
|
|
75
|
+
this.monitorTemplate = undefined;
|
|
76
|
+
this.monitorTemplateId = undefined;
|
|
77
|
+
this.scope = undefined;
|
|
78
|
+
/*
|
|
79
|
+
* THE ENGINE'S FOUR COLUMNS. Written only by NetworkAlertPolicyEngineService,
|
|
80
|
+
* as root, after each reconciliation pass; the API can read them and can
|
|
81
|
+
* never set them (create and update are empty, the
|
|
82
|
+
* Monitor.autoProvisionedNetworkDeviceId pairing). They are what the
|
|
83
|
+
* settings table shows against a policy so an operator can tell a policy
|
|
84
|
+
* that is quietly working from one that has been failing since Tuesday,
|
|
85
|
+
* without opening the monitor list to count.
|
|
86
|
+
*/
|
|
87
|
+
this.lastSyncAt = undefined;
|
|
88
|
+
this.lastSyncError = undefined;
|
|
89
|
+
this.coveredDeviceCount = undefined;
|
|
90
|
+
this.templateSyncedAt = undefined;
|
|
91
|
+
this.createdByUser = undefined;
|
|
92
|
+
this.createdByUserId = undefined;
|
|
93
|
+
this.deletedByUser = undefined;
|
|
94
|
+
this.deletedByUserId = undefined;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
__decorate([
|
|
98
|
+
ColumnAccessControl({
|
|
99
|
+
create: [
|
|
100
|
+
Permission.ProjectOwner,
|
|
101
|
+
Permission.ProjectAdmin,
|
|
102
|
+
Permission.CreateNetworkAlertPolicy,
|
|
103
|
+
],
|
|
104
|
+
read: [
|
|
105
|
+
Permission.ProjectOwner,
|
|
106
|
+
Permission.ProjectAdmin,
|
|
107
|
+
Permission.ProjectMember,
|
|
108
|
+
Permission.Viewer,
|
|
109
|
+
Permission.ReadNetworkAlertPolicy,
|
|
110
|
+
],
|
|
111
|
+
update: [],
|
|
112
|
+
}),
|
|
113
|
+
TableColumn({
|
|
114
|
+
manyToOneRelationColumn: "projectId",
|
|
115
|
+
type: TableColumnType.Entity,
|
|
116
|
+
modelType: Project,
|
|
117
|
+
title: "Project",
|
|
118
|
+
description: "Relation to Project Resource in which this object belongs",
|
|
119
|
+
}),
|
|
120
|
+
ManyToOne(() => {
|
|
121
|
+
return Project;
|
|
122
|
+
}, {
|
|
123
|
+
eager: false,
|
|
124
|
+
nullable: true,
|
|
125
|
+
onDelete: "CASCADE",
|
|
126
|
+
orphanedRowAction: "nullify",
|
|
127
|
+
}),
|
|
128
|
+
JoinColumn({ name: "projectId" }),
|
|
129
|
+
__metadata("design:type", Project)
|
|
130
|
+
], NetworkAlertPolicy.prototype, "project", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
ColumnAccessControl({
|
|
133
|
+
create: [
|
|
134
|
+
Permission.ProjectOwner,
|
|
135
|
+
Permission.ProjectAdmin,
|
|
136
|
+
Permission.CreateNetworkAlertPolicy,
|
|
137
|
+
],
|
|
138
|
+
read: [
|
|
139
|
+
Permission.ProjectOwner,
|
|
140
|
+
Permission.ProjectAdmin,
|
|
141
|
+
Permission.ProjectMember,
|
|
142
|
+
Permission.Viewer,
|
|
143
|
+
Permission.ReadNetworkAlertPolicy,
|
|
144
|
+
],
|
|
145
|
+
update: [],
|
|
146
|
+
}),
|
|
147
|
+
Index(),
|
|
148
|
+
TableColumn({
|
|
149
|
+
type: TableColumnType.ObjectID,
|
|
150
|
+
required: true,
|
|
151
|
+
canReadOnRelationQuery: true,
|
|
152
|
+
title: "Project ID",
|
|
153
|
+
description: "ID of your OneUptime Project in which this object belongs",
|
|
154
|
+
}),
|
|
155
|
+
Column({
|
|
156
|
+
type: ColumnType.ObjectID,
|
|
157
|
+
nullable: false,
|
|
158
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
159
|
+
}),
|
|
160
|
+
__metadata("design:type", ObjectID)
|
|
161
|
+
], NetworkAlertPolicy.prototype, "projectId", void 0);
|
|
162
|
+
__decorate([
|
|
163
|
+
ColumnAccessControl({
|
|
164
|
+
create: [
|
|
165
|
+
Permission.ProjectOwner,
|
|
166
|
+
Permission.ProjectAdmin,
|
|
167
|
+
Permission.CreateNetworkAlertPolicy,
|
|
168
|
+
],
|
|
169
|
+
read: [
|
|
170
|
+
Permission.ProjectOwner,
|
|
171
|
+
Permission.ProjectAdmin,
|
|
172
|
+
Permission.ProjectMember,
|
|
173
|
+
Permission.Viewer,
|
|
174
|
+
Permission.ReadNetworkAlertPolicy,
|
|
175
|
+
],
|
|
176
|
+
update: [
|
|
177
|
+
Permission.ProjectOwner,
|
|
178
|
+
Permission.ProjectAdmin,
|
|
179
|
+
Permission.EditNetworkAlertPolicy,
|
|
180
|
+
],
|
|
181
|
+
}),
|
|
182
|
+
TableColumn({
|
|
183
|
+
required: true,
|
|
184
|
+
type: TableColumnType.ShortText,
|
|
185
|
+
canReadOnRelationQuery: true,
|
|
186
|
+
title: "Name",
|
|
187
|
+
description: "Any friendly name of this object",
|
|
188
|
+
example: "Warehouse switches - reachability",
|
|
189
|
+
}),
|
|
190
|
+
Column({
|
|
191
|
+
nullable: false,
|
|
192
|
+
type: ColumnType.ShortText,
|
|
193
|
+
length: ColumnLength.ShortText,
|
|
194
|
+
}),
|
|
195
|
+
UniqueColumnBy("projectId"),
|
|
196
|
+
__metadata("design:type", String)
|
|
197
|
+
], NetworkAlertPolicy.prototype, "name", void 0);
|
|
198
|
+
__decorate([
|
|
199
|
+
ColumnAccessControl({
|
|
200
|
+
create: [
|
|
201
|
+
Permission.ProjectOwner,
|
|
202
|
+
Permission.ProjectAdmin,
|
|
203
|
+
Permission.CreateNetworkAlertPolicy,
|
|
204
|
+
],
|
|
205
|
+
read: [
|
|
206
|
+
Permission.ProjectOwner,
|
|
207
|
+
Permission.ProjectAdmin,
|
|
208
|
+
Permission.ProjectMember,
|
|
209
|
+
Permission.Viewer,
|
|
210
|
+
Permission.ReadNetworkAlertPolicy,
|
|
211
|
+
],
|
|
212
|
+
update: [
|
|
213
|
+
Permission.ProjectOwner,
|
|
214
|
+
Permission.ProjectAdmin,
|
|
215
|
+
Permission.EditNetworkAlertPolicy,
|
|
216
|
+
],
|
|
217
|
+
}),
|
|
218
|
+
TableColumn({
|
|
219
|
+
required: false,
|
|
220
|
+
type: TableColumnType.LongText,
|
|
221
|
+
title: "Description",
|
|
222
|
+
description: "Friendly description that will help you remember",
|
|
223
|
+
example: "Every switch in a warehouse site raises an incident when unreachable.",
|
|
224
|
+
}),
|
|
225
|
+
Column({
|
|
226
|
+
nullable: true,
|
|
227
|
+
type: ColumnType.LongText,
|
|
228
|
+
length: ColumnLength.LongText,
|
|
229
|
+
}),
|
|
230
|
+
__metadata("design:type", String)
|
|
231
|
+
], NetworkAlertPolicy.prototype, "description", void 0);
|
|
232
|
+
__decorate([
|
|
233
|
+
ColumnAccessControl({
|
|
234
|
+
create: [
|
|
235
|
+
Permission.ProjectOwner,
|
|
236
|
+
Permission.ProjectAdmin,
|
|
237
|
+
Permission.CreateNetworkAlertPolicy,
|
|
238
|
+
],
|
|
239
|
+
read: [
|
|
240
|
+
Permission.ProjectOwner,
|
|
241
|
+
Permission.ProjectAdmin,
|
|
242
|
+
Permission.ProjectMember,
|
|
243
|
+
Permission.Viewer,
|
|
244
|
+
Permission.ReadNetworkAlertPolicy,
|
|
245
|
+
],
|
|
246
|
+
update: [
|
|
247
|
+
Permission.ProjectOwner,
|
|
248
|
+
Permission.ProjectAdmin,
|
|
249
|
+
Permission.EditNetworkAlertPolicy,
|
|
250
|
+
],
|
|
251
|
+
})
|
|
252
|
+
/*
|
|
253
|
+
* The pause switch. Off means the engine stops provisioning for this
|
|
254
|
+
* policy and stands down what it provisioned; the row, its scope and its
|
|
255
|
+
* template survive, so switching it back on restores the same set. This
|
|
256
|
+
* is the operator's way to take a policy out of service — clearing the
|
|
257
|
+
* template is not offered for that (see monitorTemplate).
|
|
258
|
+
*/
|
|
259
|
+
,
|
|
260
|
+
TableColumn({
|
|
261
|
+
isDefaultValueColumn: true,
|
|
262
|
+
required: true,
|
|
263
|
+
type: TableColumnType.Boolean,
|
|
264
|
+
canReadOnRelationQuery: true,
|
|
265
|
+
title: "Is Enabled",
|
|
266
|
+
description: "Whether this policy is active. Disable it to stop provisioning monitors for matching devices without deleting the policy.",
|
|
267
|
+
defaultValue: true,
|
|
268
|
+
}),
|
|
269
|
+
Column({
|
|
270
|
+
type: ColumnType.Boolean,
|
|
271
|
+
nullable: false,
|
|
272
|
+
default: true,
|
|
273
|
+
}),
|
|
274
|
+
__metadata("design:type", Boolean)
|
|
275
|
+
], NetworkAlertPolicy.prototype, "isEnabled", void 0);
|
|
276
|
+
__decorate([
|
|
277
|
+
ColumnAccessControl({
|
|
278
|
+
create: [
|
|
279
|
+
Permission.ProjectOwner,
|
|
280
|
+
Permission.ProjectAdmin,
|
|
281
|
+
Permission.CreateNetworkAlertPolicy,
|
|
282
|
+
],
|
|
283
|
+
read: [
|
|
284
|
+
Permission.ProjectOwner,
|
|
285
|
+
Permission.ProjectAdmin,
|
|
286
|
+
Permission.ProjectMember,
|
|
287
|
+
Permission.Viewer,
|
|
288
|
+
Permission.MonitorAdmin,
|
|
289
|
+
Permission.MonitorMember,
|
|
290
|
+
Permission.MonitorViewer,
|
|
291
|
+
Permission.ReadMonitorTemplate,
|
|
292
|
+
],
|
|
293
|
+
update: [
|
|
294
|
+
Permission.ProjectOwner,
|
|
295
|
+
Permission.ProjectAdmin,
|
|
296
|
+
Permission.EditNetworkAlertPolicy,
|
|
297
|
+
],
|
|
298
|
+
})
|
|
299
|
+
/*
|
|
300
|
+
* WHAT every matching device is alerted on: a Network Device monitor
|
|
301
|
+
* template, cloned once per device by the engine.
|
|
302
|
+
*
|
|
303
|
+
* Required to the operator, nullable to the database — and the gap is
|
|
304
|
+
* deliberate. The FK is SET NULL rather than CASCADE because a template is
|
|
305
|
+
* configuration and a policy is intent: deleting "Reachability v1" must
|
|
306
|
+
* not silently delete the six policies that used it, taking their scopes
|
|
307
|
+
* and names with them. Instead those policies lose their template, the
|
|
308
|
+
* engine treats a policy with no template exactly as it treats a disabled
|
|
309
|
+
* one (nothing to provision from, so nothing is provisioned), and the
|
|
310
|
+
* settings table can show "template deleted — pick another" against a row
|
|
311
|
+
* the operator can still recognise and repair. The service refuses to
|
|
312
|
+
* write the null itself; only the cascade produces it.
|
|
313
|
+
*
|
|
314
|
+
* Read permissions are the MonitorTemplate's own (the
|
|
315
|
+
* NetworkDeviceAutoImportRule precedent): selecting this relation reads a
|
|
316
|
+
* template's name and type, so it takes the permission that reading the
|
|
317
|
+
* template takes.
|
|
318
|
+
*/
|
|
319
|
+
,
|
|
320
|
+
TableColumn({
|
|
321
|
+
manyToOneRelationColumn: "monitorTemplateId",
|
|
322
|
+
type: TableColumnType.Entity,
|
|
323
|
+
modelType: MonitorTemplate,
|
|
324
|
+
required: true,
|
|
325
|
+
title: "Monitor Template",
|
|
326
|
+
description: "The Network Device monitor template every matching device gets a monitor cloned from. Deleting the template disables the policy rather than deleting it.",
|
|
327
|
+
}),
|
|
328
|
+
ManyToOne(() => {
|
|
329
|
+
return MonitorTemplate;
|
|
330
|
+
}, {
|
|
331
|
+
eager: false,
|
|
332
|
+
nullable: true,
|
|
333
|
+
onDelete: "SET NULL",
|
|
334
|
+
orphanedRowAction: "nullify",
|
|
335
|
+
}),
|
|
336
|
+
JoinColumn({ name: "monitorTemplateId" }),
|
|
337
|
+
__metadata("design:type", MonitorTemplate)
|
|
338
|
+
], NetworkAlertPolicy.prototype, "monitorTemplate", void 0);
|
|
339
|
+
__decorate([
|
|
340
|
+
ColumnAccessControl({
|
|
341
|
+
create: [
|
|
342
|
+
Permission.ProjectOwner,
|
|
343
|
+
Permission.ProjectAdmin,
|
|
344
|
+
Permission.CreateNetworkAlertPolicy,
|
|
345
|
+
],
|
|
346
|
+
read: [
|
|
347
|
+
Permission.ProjectOwner,
|
|
348
|
+
Permission.ProjectAdmin,
|
|
349
|
+
Permission.ProjectMember,
|
|
350
|
+
Permission.Viewer,
|
|
351
|
+
Permission.MonitorAdmin,
|
|
352
|
+
Permission.MonitorMember,
|
|
353
|
+
Permission.MonitorViewer,
|
|
354
|
+
Permission.ReadMonitorTemplate,
|
|
355
|
+
],
|
|
356
|
+
update: [
|
|
357
|
+
Permission.ProjectOwner,
|
|
358
|
+
Permission.ProjectAdmin,
|
|
359
|
+
Permission.EditNetworkAlertPolicy,
|
|
360
|
+
],
|
|
361
|
+
}),
|
|
362
|
+
Index(),
|
|
363
|
+
TableColumn({
|
|
364
|
+
type: TableColumnType.ObjectID,
|
|
365
|
+
required: true,
|
|
366
|
+
canReadOnRelationQuery: true,
|
|
367
|
+
title: "Monitor Template ID",
|
|
368
|
+
description: "ID of the Network Device monitor template every matching device gets a monitor cloned from. Null only after the template was deleted, which disables the policy.",
|
|
369
|
+
}),
|
|
370
|
+
Column({
|
|
371
|
+
type: ColumnType.ObjectID,
|
|
372
|
+
nullable: true,
|
|
373
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
374
|
+
}),
|
|
375
|
+
__metadata("design:type", ObjectID)
|
|
376
|
+
], NetworkAlertPolicy.prototype, "monitorTemplateId", void 0);
|
|
377
|
+
__decorate([
|
|
378
|
+
ColumnAccessControl({
|
|
379
|
+
create: [
|
|
380
|
+
Permission.ProjectOwner,
|
|
381
|
+
Permission.ProjectAdmin,
|
|
382
|
+
Permission.CreateNetworkAlertPolicy,
|
|
383
|
+
],
|
|
384
|
+
read: [
|
|
385
|
+
Permission.ProjectOwner,
|
|
386
|
+
Permission.ProjectAdmin,
|
|
387
|
+
Permission.ProjectMember,
|
|
388
|
+
Permission.Viewer,
|
|
389
|
+
Permission.ReadNetworkAlertPolicy,
|
|
390
|
+
],
|
|
391
|
+
update: [
|
|
392
|
+
Permission.ProjectOwner,
|
|
393
|
+
Permission.ProjectAdmin,
|
|
394
|
+
Permission.EditNetworkAlertPolicy,
|
|
395
|
+
],
|
|
396
|
+
})
|
|
397
|
+
/*
|
|
398
|
+
* WHICH devices: a NetworkAlertPolicyScope — site ids, device-role ids and
|
|
399
|
+
* label ids, ANDed across kinds and ORed within one, an empty kind
|
|
400
|
+
* matching everything. See Common/Types/NetworkDevice/
|
|
401
|
+
* NetworkAlertPolicyScope.ts for the rule and for why this is one jsonb
|
|
402
|
+
* column rather than three join tables.
|
|
403
|
+
*
|
|
404
|
+
* NOT NULL with a `{}` default: `{}` is "all devices", which is a real
|
|
405
|
+
* policy and the widest one, so the column must always hold a readable
|
|
406
|
+
* scope for the engine to evaluate. The service normalizes every write, so
|
|
407
|
+
* what is stored is always the canonical deduplicated form.
|
|
408
|
+
*/
|
|
409
|
+
,
|
|
410
|
+
TableColumn({
|
|
411
|
+
isDefaultValueColumn: true,
|
|
412
|
+
required: true,
|
|
413
|
+
type: TableColumnType.JSON,
|
|
414
|
+
title: "Scope",
|
|
415
|
+
description: "Which devices this policy covers: site ids, device role ids and label ids. A device must match every kind that is listed (AND) and any id within a kind (OR); a kind left empty matches every device. Empty altogether means every device in the project.",
|
|
416
|
+
defaultValue: {},
|
|
417
|
+
}),
|
|
418
|
+
Column({
|
|
419
|
+
type: ColumnType.JSON,
|
|
420
|
+
nullable: false,
|
|
421
|
+
default: () => {
|
|
422
|
+
return "'{}'";
|
|
423
|
+
},
|
|
424
|
+
}),
|
|
425
|
+
__metadata("design:type", Object)
|
|
426
|
+
], NetworkAlertPolicy.prototype, "scope", void 0);
|
|
427
|
+
__decorate([
|
|
428
|
+
ColumnAccessControl({
|
|
429
|
+
create: [],
|
|
430
|
+
read: [
|
|
431
|
+
Permission.ProjectOwner,
|
|
432
|
+
Permission.ProjectAdmin,
|
|
433
|
+
Permission.ProjectMember,
|
|
434
|
+
Permission.Viewer,
|
|
435
|
+
Permission.ReadNetworkAlertPolicy,
|
|
436
|
+
],
|
|
437
|
+
update: [],
|
|
438
|
+
}),
|
|
439
|
+
TableColumn({
|
|
440
|
+
type: TableColumnType.Date,
|
|
441
|
+
required: false,
|
|
442
|
+
canReadOnRelationQuery: true,
|
|
443
|
+
title: "Last Sync At",
|
|
444
|
+
description: "When the engine last reconciled this policy's monitors against its matching devices. Managed by the engine.",
|
|
445
|
+
}),
|
|
446
|
+
Column({
|
|
447
|
+
type: ColumnType.Date,
|
|
448
|
+
nullable: true,
|
|
449
|
+
}),
|
|
450
|
+
__metadata("design:type", Date)
|
|
451
|
+
], NetworkAlertPolicy.prototype, "lastSyncAt", void 0);
|
|
452
|
+
__decorate([
|
|
453
|
+
ColumnAccessControl({
|
|
454
|
+
create: [],
|
|
455
|
+
read: [
|
|
456
|
+
Permission.ProjectOwner,
|
|
457
|
+
Permission.ProjectAdmin,
|
|
458
|
+
Permission.ProjectMember,
|
|
459
|
+
Permission.Viewer,
|
|
460
|
+
Permission.ReadNetworkAlertPolicy,
|
|
461
|
+
],
|
|
462
|
+
update: [],
|
|
463
|
+
})
|
|
464
|
+
/*
|
|
465
|
+
* The last pass's failure, verbatim, or null after a clean one. Kept on
|
|
466
|
+
* the row rather than only in the logs because the operator reading the
|
|
467
|
+
* settings table is the one who can fix it — a deleted template, a
|
|
468
|
+
* monitor limit reached — and the log line is not where they are.
|
|
469
|
+
*/
|
|
470
|
+
,
|
|
471
|
+
TableColumn({
|
|
472
|
+
type: TableColumnType.LongText,
|
|
473
|
+
required: false,
|
|
474
|
+
title: "Last Sync Error",
|
|
475
|
+
description: "Why the engine's last reconciliation of this policy failed, if it did. Cleared by the next successful pass. Managed by the engine.",
|
|
476
|
+
}),
|
|
477
|
+
Column({
|
|
478
|
+
type: ColumnType.LongText,
|
|
479
|
+
nullable: true,
|
|
480
|
+
length: ColumnLength.LongText,
|
|
481
|
+
}),
|
|
482
|
+
__metadata("design:type", String)
|
|
483
|
+
], NetworkAlertPolicy.prototype, "lastSyncError", void 0);
|
|
484
|
+
__decorate([
|
|
485
|
+
ColumnAccessControl({
|
|
486
|
+
create: [],
|
|
487
|
+
read: [
|
|
488
|
+
Permission.ProjectOwner,
|
|
489
|
+
Permission.ProjectAdmin,
|
|
490
|
+
Permission.ProjectMember,
|
|
491
|
+
Permission.Viewer,
|
|
492
|
+
Permission.ReadNetworkAlertPolicy,
|
|
493
|
+
],
|
|
494
|
+
update: [],
|
|
495
|
+
})
|
|
496
|
+
/*
|
|
497
|
+
* How many devices the policy covered at its last pass — the number the
|
|
498
|
+
* settings table puts beside the scope sentence, so "Devices in 2 sites"
|
|
499
|
+
* reads "Devices in 2 sites (37)". A count, stamped, rather than a live
|
|
500
|
+
* query: the list page renders every policy at once and must not walk
|
|
501
|
+
* the device table per row to do it.
|
|
502
|
+
*/
|
|
503
|
+
,
|
|
504
|
+
TableColumn({
|
|
505
|
+
type: TableColumnType.Number,
|
|
506
|
+
required: false,
|
|
507
|
+
isDefaultValueColumn: true,
|
|
508
|
+
canReadOnRelationQuery: true,
|
|
509
|
+
title: "Covered Device Count",
|
|
510
|
+
description: "How many devices matched this policy's scope at the engine's last reconciliation. Managed by the engine.",
|
|
511
|
+
defaultValue: 0,
|
|
512
|
+
}),
|
|
513
|
+
Column({
|
|
514
|
+
type: ColumnType.Number,
|
|
515
|
+
nullable: true,
|
|
516
|
+
default: 0,
|
|
517
|
+
}),
|
|
518
|
+
__metadata("design:type", Number)
|
|
519
|
+
], NetworkAlertPolicy.prototype, "coveredDeviceCount", void 0);
|
|
520
|
+
__decorate([
|
|
521
|
+
ColumnAccessControl({
|
|
522
|
+
create: [],
|
|
523
|
+
read: [
|
|
524
|
+
Permission.ProjectOwner,
|
|
525
|
+
Permission.ProjectAdmin,
|
|
526
|
+
Permission.ProjectMember,
|
|
527
|
+
Permission.Viewer,
|
|
528
|
+
Permission.ReadNetworkAlertPolicy,
|
|
529
|
+
],
|
|
530
|
+
update: [],
|
|
531
|
+
})
|
|
532
|
+
/*
|
|
533
|
+
* When the policy's monitors were last brought in line with the TEMPLATE
|
|
534
|
+
* (as opposed to with the device set, which is lastSyncAt). A template
|
|
535
|
+
* edit changes what every provisioned monitor should look like; this is
|
|
536
|
+
* how the engine knows whether the fleet has caught up with it.
|
|
537
|
+
*/
|
|
538
|
+
,
|
|
539
|
+
TableColumn({
|
|
540
|
+
type: TableColumnType.Date,
|
|
541
|
+
required: false,
|
|
542
|
+
canReadOnRelationQuery: true,
|
|
543
|
+
title: "Template Synced At",
|
|
544
|
+
description: "When this policy's provisioned monitors were last re-synced from the monitor template. Managed by the engine.",
|
|
545
|
+
}),
|
|
546
|
+
Column({
|
|
547
|
+
type: ColumnType.Date,
|
|
548
|
+
nullable: true,
|
|
549
|
+
}),
|
|
550
|
+
__metadata("design:type", Date)
|
|
551
|
+
], NetworkAlertPolicy.prototype, "templateSyncedAt", void 0);
|
|
552
|
+
__decorate([
|
|
553
|
+
ColumnAccessControl({
|
|
554
|
+
create: [
|
|
555
|
+
Permission.ProjectOwner,
|
|
556
|
+
Permission.ProjectAdmin,
|
|
557
|
+
Permission.CreateNetworkAlertPolicy,
|
|
558
|
+
],
|
|
559
|
+
read: [
|
|
560
|
+
Permission.ProjectOwner,
|
|
561
|
+
Permission.ProjectAdmin,
|
|
562
|
+
Permission.ProjectMember,
|
|
563
|
+
Permission.Viewer,
|
|
564
|
+
Permission.ReadNetworkAlertPolicy,
|
|
565
|
+
],
|
|
566
|
+
update: [],
|
|
567
|
+
}),
|
|
568
|
+
TableColumn({
|
|
569
|
+
manyToOneRelationColumn: "createdByUserId",
|
|
570
|
+
type: TableColumnType.Entity,
|
|
571
|
+
modelType: User,
|
|
572
|
+
title: "Created by User",
|
|
573
|
+
description: "Relation to User who created this object (if this object was created by a User)",
|
|
574
|
+
}),
|
|
575
|
+
ManyToOne(() => {
|
|
576
|
+
return User;
|
|
577
|
+
}, {
|
|
578
|
+
eager: false,
|
|
579
|
+
nullable: true,
|
|
580
|
+
onDelete: "SET NULL",
|
|
581
|
+
orphanedRowAction: "nullify",
|
|
582
|
+
}),
|
|
583
|
+
JoinColumn({ name: "createdByUserId" }),
|
|
584
|
+
__metadata("design:type", User)
|
|
585
|
+
], NetworkAlertPolicy.prototype, "createdByUser", void 0);
|
|
586
|
+
__decorate([
|
|
587
|
+
ColumnAccessControl({
|
|
588
|
+
create: [
|
|
589
|
+
Permission.ProjectOwner,
|
|
590
|
+
Permission.ProjectAdmin,
|
|
591
|
+
Permission.CreateNetworkAlertPolicy,
|
|
592
|
+
],
|
|
593
|
+
read: [
|
|
594
|
+
Permission.ProjectOwner,
|
|
595
|
+
Permission.ProjectAdmin,
|
|
596
|
+
Permission.ProjectMember,
|
|
597
|
+
Permission.Viewer,
|
|
598
|
+
Permission.ReadNetworkAlertPolicy,
|
|
599
|
+
],
|
|
600
|
+
update: [],
|
|
601
|
+
}),
|
|
602
|
+
TableColumn({
|
|
603
|
+
type: TableColumnType.ObjectID,
|
|
604
|
+
title: "Created by User ID",
|
|
605
|
+
description: "User ID who created this object (if this object was created by a User)",
|
|
606
|
+
}),
|
|
607
|
+
Column({
|
|
608
|
+
type: ColumnType.ObjectID,
|
|
609
|
+
nullable: true,
|
|
610
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
611
|
+
}),
|
|
612
|
+
__metadata("design:type", ObjectID)
|
|
613
|
+
], NetworkAlertPolicy.prototype, "createdByUserId", void 0);
|
|
614
|
+
__decorate([
|
|
615
|
+
ColumnAccessControl({
|
|
616
|
+
create: [],
|
|
617
|
+
read: [
|
|
618
|
+
Permission.ProjectOwner,
|
|
619
|
+
Permission.ProjectAdmin,
|
|
620
|
+
Permission.ProjectMember,
|
|
621
|
+
Permission.Viewer,
|
|
622
|
+
Permission.ReadNetworkAlertPolicy,
|
|
623
|
+
],
|
|
624
|
+
update: [],
|
|
625
|
+
}),
|
|
626
|
+
TableColumn({
|
|
627
|
+
manyToOneRelationColumn: "deletedByUserId",
|
|
628
|
+
type: TableColumnType.Entity,
|
|
629
|
+
title: "Deleted by User",
|
|
630
|
+
modelType: User,
|
|
631
|
+
description: "Relation to User who deleted this object (if this object was deleted by a User)",
|
|
632
|
+
}),
|
|
633
|
+
ManyToOne(() => {
|
|
634
|
+
return User;
|
|
635
|
+
}, {
|
|
636
|
+
cascade: false,
|
|
637
|
+
eager: false,
|
|
638
|
+
nullable: true,
|
|
639
|
+
onDelete: "SET NULL",
|
|
640
|
+
orphanedRowAction: "nullify",
|
|
641
|
+
}),
|
|
642
|
+
JoinColumn({ name: "deletedByUserId" }),
|
|
643
|
+
__metadata("design:type", User)
|
|
644
|
+
], NetworkAlertPolicy.prototype, "deletedByUser", void 0);
|
|
645
|
+
__decorate([
|
|
646
|
+
ColumnAccessControl({
|
|
647
|
+
create: [],
|
|
648
|
+
read: [
|
|
649
|
+
Permission.ProjectOwner,
|
|
650
|
+
Permission.ProjectAdmin,
|
|
651
|
+
Permission.ProjectMember,
|
|
652
|
+
Permission.Viewer,
|
|
653
|
+
Permission.ReadNetworkAlertPolicy,
|
|
654
|
+
],
|
|
655
|
+
update: [],
|
|
656
|
+
}),
|
|
657
|
+
TableColumn({
|
|
658
|
+
type: TableColumnType.ObjectID,
|
|
659
|
+
title: "Deleted by User ID",
|
|
660
|
+
description: "User ID who deleted this object (if this object was deleted by a User)",
|
|
661
|
+
}),
|
|
662
|
+
Column({
|
|
663
|
+
type: ColumnType.ObjectID,
|
|
664
|
+
nullable: true,
|
|
665
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
666
|
+
}),
|
|
667
|
+
__metadata("design:type", ObjectID)
|
|
668
|
+
], NetworkAlertPolicy.prototype, "deletedByUserId", void 0);
|
|
669
|
+
NetworkAlertPolicy = __decorate([
|
|
670
|
+
EnableDocumentation(),
|
|
671
|
+
TenantColumn("projectId"),
|
|
672
|
+
TableAccessControl({
|
|
673
|
+
create: [
|
|
674
|
+
Permission.ProjectOwner,
|
|
675
|
+
Permission.ProjectAdmin,
|
|
676
|
+
Permission.CreateNetworkAlertPolicy,
|
|
677
|
+
],
|
|
678
|
+
read: [
|
|
679
|
+
Permission.ProjectOwner,
|
|
680
|
+
Permission.ProjectAdmin,
|
|
681
|
+
Permission.ProjectMember,
|
|
682
|
+
Permission.Viewer,
|
|
683
|
+
Permission.ReadNetworkAlertPolicy,
|
|
684
|
+
],
|
|
685
|
+
delete: [
|
|
686
|
+
Permission.ProjectOwner,
|
|
687
|
+
Permission.ProjectAdmin,
|
|
688
|
+
Permission.DeleteNetworkAlertPolicy,
|
|
689
|
+
],
|
|
690
|
+
update: [
|
|
691
|
+
Permission.ProjectOwner,
|
|
692
|
+
Permission.ProjectAdmin,
|
|
693
|
+
Permission.EditNetworkAlertPolicy,
|
|
694
|
+
],
|
|
695
|
+
}),
|
|
696
|
+
CrudApiEndpoint(new Route("/network-alert-policy")),
|
|
697
|
+
Index("IDX_network_alert_policy_project_template_unique", ["projectId", "monitorTemplateId"], {
|
|
698
|
+
unique: true,
|
|
699
|
+
where: '"deletedAt" IS NULL AND "monitorTemplateId" IS NOT NULL',
|
|
700
|
+
}),
|
|
701
|
+
TableMetadata({
|
|
702
|
+
tableName: "NetworkAlertPolicy",
|
|
703
|
+
singularName: "Network Alert Policy",
|
|
704
|
+
pluralName: "Network Alert Policies",
|
|
705
|
+
icon: IconProp.Alert,
|
|
706
|
+
tableDescription: "Alert on a set of network devices at once: every device matching the policy's sites, roles and labels gets a Network Device monitor provisioned from the policy's monitor template, and kept as devices come and go.",
|
|
707
|
+
}),
|
|
708
|
+
Entity({
|
|
709
|
+
name: "NetworkAlertPolicy",
|
|
710
|
+
})
|
|
711
|
+
], NetworkAlertPolicy);
|
|
712
|
+
export default NetworkAlertPolicy;
|
|
713
|
+
//# sourceMappingURL=NetworkAlertPolicy.js.map
|