@oneuptime/common 12.0.31 → 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/AlertState.ts +0 -2
- package/Models/DatabaseModels/Domain.ts +1 -1
- package/Models/DatabaseModels/EnterpriseLicense.ts +56 -0
- package/Models/DatabaseModels/Incident.ts +1 -1
- package/Models/DatabaseModels/IncidentTemplate.ts +1 -1
- package/Models/DatabaseModels/Index.ts +12 -0
- package/Models/DatabaseModels/MetricType.ts +0 -2
- package/Models/DatabaseModels/Monitor.ts +76 -0
- package/Models/DatabaseModels/MonitorStatusTimeline.ts +0 -2
- package/Models/DatabaseModels/MonitorTest.ts +0 -2
- package/Models/DatabaseModels/NetworkAlertPolicy.ts +690 -0
- package/Models/DatabaseModels/NetworkDevice.ts +297 -3
- package/Models/DatabaseModels/NetworkDeviceOidTemplate.ts +3 -1
- package/Models/DatabaseModels/NetworkDeviceRole.ts +648 -0
- package/Models/DatabaseModels/NetworkSite.ts +201 -2
- package/Models/DatabaseModels/NetworkSiteType.ts +102 -3
- package/Models/DatabaseModels/NetworkSnmpCredentialProfile.ts +841 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +1 -1
- package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +1 -1
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +0 -2
- package/Models/DatabaseModels/StatusPageAnnouncementTemplate.ts +0 -2
- package/Models/DatabaseModels/StatusPagePrivateUser.ts +0 -2
- package/Models/DatabaseModels/StatusPageResource.ts +0 -2
- package/Models/DatabaseModels/StatusPageSubscriber.ts +0 -2
- 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/1790800000000-AddNetworkDeviceRoleTable.ts +72 -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 +14 -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/DatabaseService.ts +39 -9
- package/Server/Services/EnterpriseLicenseInstanceService.ts +197 -0
- package/Server/Services/EnterpriseLicenseService.ts +55 -0
- package/Server/Services/Index.ts +12 -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/NetworkDeviceRoleService.ts +90 -0
- 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 +186 -44
- 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 -31
- 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 +158 -27
- package/Tests/App/Dashboard/AskAiSuggestedPrompts.test.ts +279 -0
- package/Tests/App/Dashboard/DashboardChartWidgetZoom.test.tsx +35 -8
- package/Tests/App/Dashboard/DashboardCommandPalette.test.tsx +107 -3
- package/Tests/App/Dashboard/DashboardEditPermissions.test.tsx +517 -0
- package/Tests/App/Dashboard/DashboardVariablesDiscard.test.tsx +26 -0
- package/Tests/App/Dashboard/DashboardWideChartZoom.test.tsx +401 -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/MonitorTemplateColumnAndFacet.test.tsx +318 -0
- package/Tests/App/Dashboard/MonitorTypePicker.test.tsx +4 -2
- package/Tests/App/Dashboard/NetworkDeviceBulkDelete.test.tsx +357 -0
- 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 +626 -0
- 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/SideMenuHarness.tsx +11 -3
- 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/DatabaseModels/ModelRegistryInvariants.test.ts +115 -41
- 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/NetworkDeviceRoleTableMigration.test.ts +476 -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/DatabaseServiceGenerateSlug.test.ts +215 -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/NetworkDeviceRoleModel.test.ts +672 -0
- package/Tests/Server/Services/NetworkDeviceRuleEngines.test.ts +1 -1
- 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/ProjectServiceCreateSubscriptionStarted.test.ts +67 -4
- package/Tests/Server/Services/ProjectServiceNetworkSiteTypeDefaults.test.ts +214 -0
- package/Tests/Server/Services/ScheduledMaintenanceSubscriberEndTime.test.ts +369 -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/UserNotificationSettingMonitorDefaults.test.ts +248 -0
- package/Tests/Server/Services/UserNotificationSettingRollupRouting.test.ts +856 -0
- package/Tests/Server/Services/UserNotificationSettingWorkspaceChannels.test.ts +145 -3
- 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/BasicCron.test.ts +283 -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/IncomingCallPhoneNumber.test.ts +174 -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/DefaultNetworkDeviceRole.test.ts +417 -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/Charts/ChartClickDoubleClickDisambiguation.test.tsx +221 -0
- package/Tests/UI/Components/Charts/ChartDoubleClickReset.test.tsx +220 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableBulkDelete.test.tsx +751 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +475 -43
- package/Tests/UI/Components/ModelTable/ColumnPreference.test.ts +89 -0
- package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +15 -0
- package/Tests/UI/Components/NavBarCommandKGating.test.tsx +103 -8
- package/Tests/UI/Components/ProgressBar.test.tsx +38 -2
- package/Tests/UI/Components/SideMenuItem.test.tsx +256 -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/UI/Utils/TableColumnsToCsv.test.ts +30 -0
- package/Tests/UI/Utils/UseDashboardTimeRangeZoom.test.tsx +187 -0
- package/Tests/Utils/Dashboard/DashboardResourceListSharedArgs.test.ts +302 -0
- package/Tests/Utils/Dashboard/DashboardTimeRangeZoom.test.ts +242 -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/NetworkDeviceRoleCatalog.test.ts +981 -0
- package/Tests/Utils/Monitor/NetworkTopologyRoleCatalog.test.ts +865 -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/DeviceRoleKeyUtil.test.ts +538 -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/Slo/SloEvaluation.test.ts +171 -0
- package/Tests/Utils/Slug.test.ts +61 -1
- package/Tests/Utils/Telemetry/CaptureSpanExportGating.test.ts +145 -0
- package/Tests/jest.setup.ts +19 -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/SnmpMonitor/NetworkTopology.ts +61 -0
- package/Types/Monitor/SqlConnectionConfig.ts +31 -0
- package/Types/NetworkDevice/DefaultNetworkDeviceRole.ts +145 -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 +135 -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/Charts/Area/AreaChart.tsx +7 -0
- package/UI/Components/Charts/Bar/BarChart.tsx +6 -0
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +9 -1
- package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +97 -35
- package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +14 -0
- package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +97 -35
- package/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.ts +13 -0
- package/UI/Components/Charts/Line/LineChart.tsx +7 -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/ModelTable/BaseModelTable.tsx +50 -15
- package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +44 -0
- package/UI/Components/Navbar/NavBar.tsx +62 -13
- package/UI/Components/Navbar/NavBarMenuModal.tsx +7 -2
- package/UI/Components/ProgressBar/ProgressBar.tsx +12 -1
- package/UI/Components/RadioButtons/BasicRadioButtons.tsx +37 -7
- package/UI/Components/SideMenu/CountModelSideMenuItem.tsx +2 -0
- package/UI/Components/SideMenu/SideMenu.tsx +135 -7
- package/UI/Components/SideMenu/SideMenuItem.tsx +80 -85
- package/UI/Components/SideMenu/SideMenuSection.tsx +69 -25
- 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/UI/Utils/UseDashboardTimeRangeZoom.ts +77 -0
- package/Utils/Dashboard/DashboardTimeRangeZoom.ts +118 -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/NetworkDeviceRoleCatalog.ts +232 -0
- package/Utils/Monitor/NetworkDeviceRoleUtil.ts +2 -1
- package/Utils/Monitor/NetworkTopologyUtil.ts +139 -36
- package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +65 -14
- package/Utils/NetworkDevice/DeviceReachabilityUtil.ts +43 -14
- package/Utils/NetworkDevice/DeviceRoleKeyUtil.ts +137 -0
- 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/Utils/Rules/RulePatternMatchUtil.ts +1 -1
- package/Utils/Slug.ts +34 -1
- package/build/dist/Models/AnalyticsModels/Span.js +14 -0
- package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertState.js +0 -2
- package/build/dist/Models/DatabaseModels/AlertState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Domain.js +1 -1
- package/build/dist/Models/DatabaseModels/Domain.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/Incident.js +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +12 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MetricType.js +0 -2
- package/build/dist/Models/DatabaseModels/MetricType.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/MonitorStatusTimeline.js +0 -2
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTest.js +0 -2
- package/build/dist/Models/DatabaseModels/MonitorTest.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 +304 -4
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOidTemplate.js +3 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOidTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceRole.js +677 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceRole.js.map +1 -0
- 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/ScheduledMaintenance.js +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageResource.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js.map +1 -1
- 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/1790800000000-AddNetworkDeviceRoleTable.js +39 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790800000000-AddNetworkDeviceRoleTable.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 +14 -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/DatabaseService.js +31 -5
- package/build/dist/Server/Services/DatabaseService.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 +12 -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/NetworkDeviceRoleService.js +70 -0
- package/build/dist/Server/Services/NetworkDeviceRoleService.js.map +1 -0
- 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 +131 -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 -21
- 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/DefaultNetworkDeviceRole.js +105 -0
- package/build/dist/Types/NetworkDevice/DefaultNetworkDeviceRole.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 +120 -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/Charts/Area/AreaChart.js +1 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +6 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +79 -31
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +7 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +79 -31
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js +14 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js.map +1 -0
- package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- 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/ModelTable/BaseModelTable.js +39 -13
- package/build/dist/UI/Components/ModelTable/BaseModelTable.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/Navbar/NavBar.js +44 -9
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +2 -2
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.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/CountModelSideMenuItem.js +1 -1
- package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenu.js +76 -11
- package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenuItem.js +50 -54
- package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenuSection.js +32 -9
- 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/UI/Utils/UseDashboardTimeRangeZoom.js +42 -0
- package/build/dist/UI/Utils/UseDashboardTimeRangeZoom.js.map +1 -0
- package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js +74 -0
- package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js.map +1 -0
- 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/NetworkDeviceRoleCatalog.js +126 -0
- package/build/dist/Utils/Monitor/NetworkDeviceRoleCatalog.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkDeviceRoleUtil.js +2 -1
- package/build/dist/Utils/Monitor/NetworkDeviceRoleUtil.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +75 -35
- 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/DeviceRoleKeyUtil.js +114 -0
- package/build/dist/Utils/NetworkDevice/DeviceRoleKeyUtil.js.map +1 -0
- 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/build/dist/Utils/Rules/RulePatternMatchUtil.js +1 -1
- package/build/dist/Utils/Slug.js +31 -1
- package/build/dist/Utils/Slug.js.map +1 -1
- package/package.json +2 -2
|
@@ -15,12 +15,12 @@ import OneUptimeDate from "../../../Types/Date";
|
|
|
15
15
|
*
|
|
16
16
|
* So the rule does not move. What moves is the DATA REDUCTION.
|
|
17
17
|
*
|
|
18
|
-
* `deviceHealthState` is a pure function of
|
|
19
|
-
* them are already booleans
|
|
20
|
-
* facts in SQL and 80,000 rows
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* count.
|
|
18
|
+
* `deviceHealthState` is a pure function of seven facts about a row, and six
|
|
19
|
+
* of them are already booleans, three-state flags or a column that only ever
|
|
20
|
+
* holds two values. Group the table by those facts in SQL and 80,000 rows
|
|
21
|
+
* collapse into at most a few per site — one bucket per distinct combination
|
|
22
|
+
* that actually occurs. Then hand each bucket back to the REAL classifier
|
|
23
|
+
* once and multiply its verdict by the bucket's count.
|
|
24
24
|
*
|
|
25
25
|
* One rule, one implementation, and the wire carries buckets instead of rows.
|
|
26
26
|
*
|
|
@@ -102,20 +102,26 @@ const DEVICE_HEALTH_DISCRIMINATOR_COLUMNS = [
|
|
|
102
102
|
* The column only ever holds a handful of distinct values, so the raw form
|
|
103
103
|
* costs nothing in bucket count.
|
|
104
104
|
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
* `
|
|
110
|
-
*
|
|
111
|
-
*
|
|
105
|
+
* Every consumer of a bucket reads it. `deviceHealthInputForGroup` and
|
|
106
|
+
* `deviceRollupStateForGroup` carry it into the classifier inputs, where
|
|
107
|
+
* the shared reachability rule uses it to decide whether the poll facts
|
|
108
|
+
* beside it mean anything. On a monitor-backed device they do not: its
|
|
109
|
+
* `isReachable` mirrors the bound monitor (NULL when nothing is bound) and
|
|
110
|
+
* its `lastSeenAt` is whatever a probe last found before it stopped asking
|
|
111
|
+
* — so an unstamped monitor-backed bucket has to classify as "unknown",
|
|
112
|
+
* not as whatever those leftovers happen to say, or the site card and the
|
|
113
|
+
* device list under it describe two different networks. The Overview's
|
|
114
|
+
* fleet tally reads it for the same reason one level up (issue #3392: a
|
|
115
|
+
* tally that dropped it reported every ping-only device as Pending
|
|
116
|
+
* forever).
|
|
112
117
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
118
|
+
* Dropping it from the group keys would therefore not be a harmless
|
|
119
|
+
* simplification: a bucket that mixed probe-polled and monitor-backed devices with
|
|
120
|
+
* the same poll facts would classify all of them by the poll rule. On a
|
|
121
|
+
* real fleet it also costs nothing, because `monitoringMethod` is almost
|
|
115
122
|
* perfectly correlated with whether the device carries a stamped monitor
|
|
116
123
|
* status — which is already a group key — so it splits no bucket that
|
|
117
|
-
* `currentMonitorStatusId` had not split anyway.
|
|
118
|
-
* set is worth more than saving that.
|
|
124
|
+
* `currentMonitorStatusId` had not split anyway.
|
|
119
125
|
*/
|
|
120
126
|
{
|
|
121
127
|
expression: column("monitoringMethod"),
|
|
@@ -291,6 +297,11 @@ export function deviceHealthInputForGroup(data) {
|
|
|
291
297
|
* the synthetic dates above are placed relative to.
|
|
292
298
|
*/
|
|
293
299
|
pollingIntervalInMinutes: undefined,
|
|
300
|
+
/*
|
|
301
|
+
* Carried verbatim — the classifier parses it, and NULL reads as Probe
|
|
302
|
+
* there. See the discriminator column for why a bucket cannot drop it.
|
|
303
|
+
*/
|
|
304
|
+
monitoringMethod: group.monitoringMethod,
|
|
294
305
|
interfacesDown: group.hasDownInterfaces ? 1 : 0,
|
|
295
306
|
};
|
|
296
307
|
}
|
|
@@ -326,6 +337,8 @@ export function deviceRollupStateForGroup(data) {
|
|
|
326
337
|
lastSeenAt: group.hasBeenSeen ? contactAt : null,
|
|
327
338
|
// See deviceHealthInputForGroup — staleness is already applied.
|
|
328
339
|
pollingIntervalInMinutes: undefined,
|
|
340
|
+
// ...and for why this rides along with the poll facts it qualifies.
|
|
341
|
+
monitoringMethod: group.monitoringMethod,
|
|
329
342
|
deviceCount: group.deviceCount,
|
|
330
343
|
};
|
|
331
344
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceHealthAggregation.js","sourceRoot":"","sources":["../../../../../Server/Utils/NetworkDevice/DeviceHealthAggregation.ts"],"names":[],"mappings":"AAKA,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAC9D,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EACL,0CAA0C,EAC1C,kCAAkC,EAClC,4BAA4B,GAC7B,MAAM,qDAAqD,CAAC;AAC7D,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;GAGG;AACH,SAAS,MAAM,CAAC,UAAkB;IAChC,OAAO,oBAAoB,UAAU,GAAG,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,2BAA2B,GAAW;;WAEjC,MAAM,CAAC,0BAA0B,CAAC;WAClC,MAAM,CAAC,0BAA0B,CAAC;WAClC,0CAA0C;oBACjC,MAAM,CAAC,0BAA0B,CAAC;oBAClC,4BAA4B;IAC5C,kCAAkC;EACpC,CAAC;AAEH;;;;GAIG;AACH,MAAM,mBAAmB,GAAW,YAAY,MAAM,CACpD,cAAc,CACf,KAAK,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC;AAE9B;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAW,iBAAiB,CAAC;AAErE,mDAAmD;AACnD,MAAM,CAAN,IAAY,sBAWX;AAXD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,6DAAmC,CAAA;IACnC,+DAAqC,CAAA;IACrC,qDAA2B,CAAA;IAC3B,yDAA+B,CAAA;IAC/B,qDAA2B,CAAA;IAC3B,6CAAmB,CAAA;IACnB,iEAAuC,CAAA;IACvC,qDAA2B,CAAA;IAC3B,qEAA2C,CAAA;AAC7C,CAAC,EAXW,sBAAsB,KAAtB,sBAAsB,QAWjC;AAED;;;;;;;;GAQG;AACH,MAAM,mCAAmC,GAA2B;IAClE;QACE,UAAU,EAAE,MAAM,CAAC,wBAAwB,CAAC;QAC5C,KAAK,EAAE,sBAAsB,CAAC,eAAe;KAC9C;IACD
|
|
1
|
+
{"version":3,"file":"DeviceHealthAggregation.js","sourceRoot":"","sources":["../../../../../Server/Utils/NetworkDevice/DeviceHealthAggregation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import Semaphore from "../../Infrastructure/Semaphore";
|
|
2
|
+
import logger from "../../Utils/Logger";
|
|
3
|
+
import BadDataException from "../../../Types/Exception/BadDataException";
|
|
4
|
+
import ServerException from "../../../Types/Exception/ServerException";
|
|
5
|
+
import ObjectID from "../../../Types/ObjectID";
|
|
6
|
+
export const NETWORK_SITE_HIERARCHY_LOCK_NAMESPACE = "NetworkSiteHierarchy";
|
|
7
|
+
export const NETWORK_SITE_HIERARCHY_LOCK_ERROR_MESSAGE = "Could not acquire the Network Site hierarchy lock. Please try again.";
|
|
8
|
+
export const NETWORK_SITE_HIERARCHY_ROOT_SCOPE_ERROR_MESSAGE = "Root Network Site hierarchy mutations must be scoped to a project or a closed set of row IDs.";
|
|
9
|
+
const LOCK_TIMEOUT_IN_MILLISECONDS = 30000;
|
|
10
|
+
const ACQUIRE_TIMEOUT_IN_MILLISECONDS = 15000;
|
|
11
|
+
const RETRY_INTERVAL_IN_MILLISECONDS = 100;
|
|
12
|
+
/*
|
|
13
|
+
* NetworkSite and NetworkSiteType jointly define one invariant: concrete
|
|
14
|
+
* parent-site edges must agree with the configured parent-type graph. Their
|
|
15
|
+
* service hooks validate that invariant before DatabaseService persists the
|
|
16
|
+
* write, so two concurrent requests must not validate the same old snapshot.
|
|
17
|
+
*
|
|
18
|
+
* This distributed, project-keyed critical section is intentionally owned by
|
|
19
|
+
* the public service methods rather than a before hook. DatabaseService can
|
|
20
|
+
* still fail after a before hook returns; a redis-semaphore mutex acquired in
|
|
21
|
+
* the hook would then never reach a success hook and would keep refreshing
|
|
22
|
+
* forever. runExclusive's finally releases every mutex on every write path.
|
|
23
|
+
*/
|
|
24
|
+
export default class NetworkSiteHierarchyLock {
|
|
25
|
+
static getExplicitProjectIds(query) {
|
|
26
|
+
for (const key of ["projectId", "project"]) {
|
|
27
|
+
const value = query[key];
|
|
28
|
+
if (this.isExactId(value)) {
|
|
29
|
+
return [value];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
/*
|
|
35
|
+
* Resolving an arbitrary root query and locking the projects it happens to
|
|
36
|
+
* match is not safe: another create can enter that query's limit/skip window
|
|
37
|
+
* before DatabaseService executes it. A permission-enforced tenant scope,
|
|
38
|
+
* a literal project scope, and explicit ID sets are closed; no new row can
|
|
39
|
+
* silently introduce an unlocked project.
|
|
40
|
+
*/
|
|
41
|
+
static assertSafeRootMutationScope(data) {
|
|
42
|
+
if (this.isSafeRootMutationScope(data)) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
throw new BadDataException(NETWORK_SITE_HIERARCHY_ROOT_SCOPE_ERROR_MESSAGE);
|
|
46
|
+
}
|
|
47
|
+
static isSafeRootMutationScope(data) {
|
|
48
|
+
if (!data.props.isRoot && !data.props.isMasterAdmin) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
/*
|
|
52
|
+
* DeletePermission retains an explicit tenantId even for a root caller,
|
|
53
|
+
* so it is a closed project scope for deletes. UpdatePermission does not:
|
|
54
|
+
* a root update keeps the caller's raw query. Callers must opt in only
|
|
55
|
+
* when their permission path actually applies the tenant predicate.
|
|
56
|
+
*/
|
|
57
|
+
if (data.tenantScopeIsClosed &&
|
|
58
|
+
data.props.tenantId &&
|
|
59
|
+
!data.props.isMultiTenantRequest) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
const hasExactProjectScope = ["projectId", "project"].some((key) => {
|
|
63
|
+
return this.isExactId(data.query[key]);
|
|
64
|
+
});
|
|
65
|
+
const hasExplicitRowIdScope = this.isExplicitIdSet(data.query["_id"]);
|
|
66
|
+
if (hasExactProjectScope || hasExplicitRowIdScope) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
/*
|
|
72
|
+
* QueryHelper predicates are TypeORM FindOperator objects. Even when one
|
|
73
|
+
* happens to be backed by a fixed value today, accepting an arbitrary raw
|
|
74
|
+
* predicate here would let a later row enter the pre-read/write window in
|
|
75
|
+
* a project for which no mutex was acquired. Only literal UUIDs are a
|
|
76
|
+
* stable project scope; literal row-ID arrays are a stable closed set.
|
|
77
|
+
*/
|
|
78
|
+
static isExactId(value) {
|
|
79
|
+
if (value instanceof ObjectID) {
|
|
80
|
+
return ObjectID.isValidUUID(value.toString());
|
|
81
|
+
}
|
|
82
|
+
return typeof value === "string" && ObjectID.isValidUUID(value.trim());
|
|
83
|
+
}
|
|
84
|
+
static isExplicitIdSet(value) {
|
|
85
|
+
if (this.isExactId(value)) {
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
return (Array.isArray(value) &&
|
|
89
|
+
value.every((candidate) => {
|
|
90
|
+
return this.isExactId(candidate);
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
static async runExclusive(data) {
|
|
94
|
+
const projectIds = [
|
|
95
|
+
...new Set(data.projectIds
|
|
96
|
+
.map((projectId) => {
|
|
97
|
+
return projectId.toString().trim().toLowerCase();
|
|
98
|
+
})
|
|
99
|
+
.filter((projectId) => {
|
|
100
|
+
return Boolean(projectId);
|
|
101
|
+
})),
|
|
102
|
+
].sort((left, right) => {
|
|
103
|
+
return left.localeCompare(right);
|
|
104
|
+
});
|
|
105
|
+
/*
|
|
106
|
+
* A mutation that matched no rows has no project whose hierarchy it can
|
|
107
|
+
* change. Let DatabaseService preserve its normal zero-row/permission
|
|
108
|
+
* semantics without taking an unrelated global lock.
|
|
109
|
+
*/
|
|
110
|
+
if (projectIds.length === 0) {
|
|
111
|
+
return await data.operation();
|
|
112
|
+
}
|
|
113
|
+
const acquiredMutexes = [];
|
|
114
|
+
try {
|
|
115
|
+
for (const projectId of projectIds) {
|
|
116
|
+
const mutex = await Semaphore.lock({
|
|
117
|
+
key: projectId,
|
|
118
|
+
namespace: NETWORK_SITE_HIERARCHY_LOCK_NAMESPACE,
|
|
119
|
+
lockTimeout: LOCK_TIMEOUT_IN_MILLISECONDS,
|
|
120
|
+
acquireTimeout: ACQUIRE_TIMEOUT_IN_MILLISECONDS,
|
|
121
|
+
retryInterval: RETRY_INTERVAL_IN_MILLISECONDS,
|
|
122
|
+
});
|
|
123
|
+
acquiredMutexes.push({ projectId, mutex });
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
await this.releaseAll(acquiredMutexes);
|
|
128
|
+
logger.error(error);
|
|
129
|
+
throw new ServerException(NETWORK_SITE_HIERARCHY_LOCK_ERROR_MESSAGE);
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
return await data.operation();
|
|
133
|
+
}
|
|
134
|
+
finally {
|
|
135
|
+
await this.releaseAll(acquiredMutexes);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/*
|
|
139
|
+
* Release in reverse acquisition order. This mirrors ordinary lock-stack
|
|
140
|
+
* discipline and, together with sorted acquisition, prevents bulk writes
|
|
141
|
+
* spanning the same projects from deadlocking each other.
|
|
142
|
+
*
|
|
143
|
+
* Semaphore.release stops the mutex refresh timer before talking to Redis.
|
|
144
|
+
* A Redis failure is therefore logged but must not replace the mutation's
|
|
145
|
+
* real result/error; the lock key will expire at lockTimeout.
|
|
146
|
+
*/
|
|
147
|
+
static async releaseAll(acquiredMutexes) {
|
|
148
|
+
for (const acquired of [...acquiredMutexes].reverse()) {
|
|
149
|
+
try {
|
|
150
|
+
await Semaphore.release(acquired.mutex);
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
logger.error(error, { projectId: acquired.projectId });
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=NetworkSiteHierarchyLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkSiteHierarchyLock.js","sourceRoot":"","sources":["../../../../../Server/Utils/NetworkSite/NetworkSiteHierarchyLock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { AppVersion } from "../EnvironmentConfig";
|
|
2
|
+
/*
|
|
3
|
+
* The User-Agent this platform presents when it calls somebody else's HTTP
|
|
4
|
+
* server on a project's behalf — TAXII threat-intel feeds and the external
|
|
5
|
+
* Data Source connectors (Prometheus, Loki, Elasticsearch, REST API).
|
|
6
|
+
*
|
|
7
|
+
* This is not cosmetic. With no User-Agent of our own, axios stamps its
|
|
8
|
+
* default `axios/<version>` on every request, and a bare HTTP-library UA is
|
|
9
|
+
* a stock rule in most WAFs, CDNs and bot-management products: the operator
|
|
10
|
+
* on the far end sees an anonymous script rather than a named product, and
|
|
11
|
+
* answers 403 before the request reaches their API at all. A product token
|
|
12
|
+
* plus a URL is what makes the traffic allowlistable, and what lets the far
|
|
13
|
+
* end's logs and abuse contact attribute it to something.
|
|
14
|
+
*
|
|
15
|
+
* Shape follows RFC 9110 §10.1.5 — a product/product-version token
|
|
16
|
+
* followed by a comment:
|
|
17
|
+
*
|
|
18
|
+
* OneUptime/8.0.1234 (+https://oneuptime.com)
|
|
19
|
+
*
|
|
20
|
+
* The version is dropped rather than printed as "unknown" when APP_VERSION
|
|
21
|
+
* is unset (development, and any deployment that does not inject it), so
|
|
22
|
+
* the UA never advertises a version that is not one.
|
|
23
|
+
*/
|
|
24
|
+
export const OUTBOUND_USER_AGENT_HEADER_NAME = "User-Agent";
|
|
25
|
+
export const OUTBOUND_USER_AGENT_PRODUCT = "OneUptime";
|
|
26
|
+
export const OUTBOUND_USER_AGENT_URL = "https://oneuptime.com";
|
|
27
|
+
/*
|
|
28
|
+
* APP_VERSION is supplied by whoever deployed the instance, and a header
|
|
29
|
+
* value carrying CR/LF is a request-smuggling primitive, so the version is
|
|
30
|
+
* filtered down to RFC 9110 token characters instead of being trusted. The
|
|
31
|
+
* length cap keeps a junk value from becoming a multi-kilobyte header.
|
|
32
|
+
*/
|
|
33
|
+
const VERSION_DISALLOWED_CHARACTERS = /[^A-Za-z0-9._+-]/g;
|
|
34
|
+
const MAX_VERSION_LENGTH = 64;
|
|
35
|
+
/*
|
|
36
|
+
* EnvironmentConfig's own placeholder when APP_VERSION is unset — a
|
|
37
|
+
* sentinel, not a version, so it never reaches the wire.
|
|
38
|
+
*/
|
|
39
|
+
const UNKNOWN_VERSION = "unknown";
|
|
40
|
+
export default class OutboundUserAgent {
|
|
41
|
+
// The User-Agent for this running instance.
|
|
42
|
+
static get() {
|
|
43
|
+
return this.build(AppVersion);
|
|
44
|
+
}
|
|
45
|
+
/*
|
|
46
|
+
* Pure builder — takes the version rather than reading it, so the format
|
|
47
|
+
* is testable without reaching into the process environment.
|
|
48
|
+
*/
|
|
49
|
+
static build(version) {
|
|
50
|
+
const sanitizedVersion = this.sanitizeVersion(version);
|
|
51
|
+
const product = sanitizedVersion
|
|
52
|
+
? `${OUTBOUND_USER_AGENT_PRODUCT}/${sanitizedVersion}`
|
|
53
|
+
: OUTBOUND_USER_AGENT_PRODUCT;
|
|
54
|
+
return `${product} (+${OUTBOUND_USER_AGENT_URL})`;
|
|
55
|
+
}
|
|
56
|
+
/*
|
|
57
|
+
* A version safe to put in a header, or "" when there is nothing worth
|
|
58
|
+
* printing (unset, the "unknown" sentinel, or nothing left after
|
|
59
|
+
* filtering).
|
|
60
|
+
*/
|
|
61
|
+
static sanitizeVersion(version) {
|
|
62
|
+
const trimmed = (version || "").trim();
|
|
63
|
+
if (trimmed === "" || trimmed.toLowerCase() === UNKNOWN_VERSION) {
|
|
64
|
+
return "";
|
|
65
|
+
}
|
|
66
|
+
return trimmed
|
|
67
|
+
.replace(VERSION_DISALLOWED_CHARACTERS, "")
|
|
68
|
+
.substring(0, MAX_VERSION_LENGTH);
|
|
69
|
+
}
|
|
70
|
+
/*
|
|
71
|
+
* Whether the caller already set a User-Agent of its own. Header names
|
|
72
|
+
* are case-insensitive on the wire, so the check is too — otherwise a
|
|
73
|
+
* caller's lowercase `user-agent` would end up alongside ours rather
|
|
74
|
+
* than replacing it. A present-but-blank value counts as absent: an
|
|
75
|
+
* empty UA is the same anonymous-client problem this whole file exists
|
|
76
|
+
* to avoid.
|
|
77
|
+
*/
|
|
78
|
+
static hasUserAgent(headers) {
|
|
79
|
+
if (!headers) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
for (const headerName of Object.keys(headers)) {
|
|
83
|
+
if (headerName.toLowerCase() !==
|
|
84
|
+
OUTBOUND_USER_AGENT_HEADER_NAME.toLowerCase()) {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
const value = headers[headerName];
|
|
88
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
/*
|
|
95
|
+
* The headers to send: the caller's, plus our User-Agent when the caller
|
|
96
|
+
* did not set one. An explicit User-Agent always wins — a REST API data
|
|
97
|
+
* source whose provider demands a particular UA configures it as a custom
|
|
98
|
+
* header, and that must reach the wire untouched.
|
|
99
|
+
*
|
|
100
|
+
* Returns a new dictionary; the caller's is never mutated.
|
|
101
|
+
*/
|
|
102
|
+
static withDefault(headers) {
|
|
103
|
+
const merged = Object.assign({}, (headers || {}));
|
|
104
|
+
if (this.hasUserAgent(merged)) {
|
|
105
|
+
return merged;
|
|
106
|
+
}
|
|
107
|
+
/*
|
|
108
|
+
* A blank `user-agent` in any casing is dropped rather than left
|
|
109
|
+
* beside ours: two keys differing only in case are one header on the
|
|
110
|
+
* wire, and which of them survives normalization is not something to
|
|
111
|
+
* leave to the HTTP client.
|
|
112
|
+
*/
|
|
113
|
+
for (const headerName of Object.keys(merged)) {
|
|
114
|
+
if (headerName.toLowerCase() ===
|
|
115
|
+
OUTBOUND_USER_AGENT_HEADER_NAME.toLowerCase()) {
|
|
116
|
+
delete merged[headerName];
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
merged[OUTBOUND_USER_AGENT_HEADER_NAME] = this.get();
|
|
120
|
+
return merged;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=OutboundUserAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutboundUserAgent.js","sourceRoot":"","sources":["../../../../Server/Utils/OutboundUserAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAW,YAAY,CAAC;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAW,WAAW,CAAC;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAW,uBAAuB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,6BAA6B,GAAW,mBAAmB,CAAC;AAClE,MAAM,kBAAkB,GAAW,EAAE,CAAC;AAEtC;;;GAGG;AACH,MAAM,eAAe,GAAW,SAAS,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,4CAA4C;IACrC,MAAM,CAAC,GAAG;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,OAA4B;QAC9C,MAAM,gBAAgB,GAAW,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAW,gBAAgB;YACtC,CAAC,CAAC,GAAG,2BAA2B,IAAI,gBAAgB,EAAE;YACtD,CAAC,CAAC,2BAA2B,CAAC;QAEhC,OAAO,GAAG,OAAO,MAAM,uBAAuB,GAAG,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAC,OAA4B;QACxD,MAAM,OAAO,GAAW,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE/C,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;YAChE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,OAAO;aACX,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC;aAC1C,SAAS,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,YAAY,CACxB,OAAwC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,IACE,UAAU,CAAC,WAAW,EAAE;gBACxB,+BAA+B,CAAC,WAAW,EAAE,EAC7C,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAuB,OAAO,CAAC,UAAU,CAAC,CAAC;YAEtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,WAAW,CACvB,OAAwC;QAExC,MAAM,MAAM,qBAA4B,CAAC,OAAO,IAAI,EAAE,CAAC,CAAE,CAAC;QAE1D,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED;;;;;WAKG;QACH,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,IACE,UAAU,CAAC,WAAW,EAAE;gBACxB,+BAA+B,CAAC,WAAW,EAAE,EAC7C,CAAC;gBACD,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,MAAM,CAAC,+BAA+B,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAErD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -12,6 +12,7 @@ import "./Process";
|
|
|
12
12
|
import Response from "./Response";
|
|
13
13
|
import SpanUtil from "./Telemetry/SpanUtil";
|
|
14
14
|
import TelemetryContext from "./Telemetry/TelemetryContext";
|
|
15
|
+
import { COMPONENT_ATTRIBUTE_KEY, TelemetryComponent, UNIT_OF_WORK_ATTRIBUTE_KEY, UnitOfWork, } from "../../Types/Telemetry/UnitOfWork";
|
|
15
16
|
import mountVendorAssets from "./VendorAssets";
|
|
16
17
|
import { api } from "@opentelemetry/sdk-node";
|
|
17
18
|
import StatusCode from "../../Types/API/StatusCode";
|
|
@@ -196,7 +197,24 @@ app.use((req, _res, next) => {
|
|
|
196
197
|
* ContextSpanProcessor and Logger read this ambient context, every span and
|
|
197
198
|
* log produced downstream inherits it automatically.
|
|
198
199
|
*/
|
|
199
|
-
TelemetryContext.runWithContext({
|
|
200
|
+
TelemetryContext.runWithContext({
|
|
201
|
+
requestId: requestId,
|
|
202
|
+
/*
|
|
203
|
+
* Seed the unit of work EXPLICITLY. ErrorClassResolver honours a
|
|
204
|
+
* user-error / expected-denial classification only inside an HTTP
|
|
205
|
+
* request — everywhere else there is no client to blame, so those
|
|
206
|
+
* classes are promoted back to code-fault. runWithContext inherits the
|
|
207
|
+
* enclosing scope, so leaving this unset would let a request's marker
|
|
208
|
+
* leak into background work started from inside the request.
|
|
209
|
+
*/
|
|
210
|
+
[UNIT_OF_WORK_ATTRIBUTE_KEY]: UnitOfWork.HttpRequest,
|
|
211
|
+
/*
|
|
212
|
+
* Which deployment role served this. service.name cannot answer it: the
|
|
213
|
+
* Helm chart runs the worker from the same image and entrypoint as the
|
|
214
|
+
* API, so worker pods also report service.name="api".
|
|
215
|
+
*/
|
|
216
|
+
[COMPONENT_ATTRIBUTE_KEY]: LocalCache.getString("app", "name") || TelemetryComponent.Api,
|
|
217
|
+
}, () => {
|
|
200
218
|
SpanUtil.addAttributesToCurrentSpan({
|
|
201
219
|
requestId: requestId,
|
|
202
220
|
});
|
|
@@ -316,19 +334,25 @@ const addDefaultRoutes = async () => {
|
|
|
316
334
|
export const expressErrorHandler = (err, _req, res, next) => {
|
|
317
335
|
var _a;
|
|
318
336
|
logger.error(err, getLogAttributesFromRequest(_req));
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
337
|
+
/*
|
|
338
|
+
* Deliberately does NOT record the exception on a span.
|
|
339
|
+
*
|
|
340
|
+
* There is no HTTP instrumentation (Telemetry.init passes an empty
|
|
341
|
+
* `instrumentations` array) and nothing creates a request-scoped span, so at
|
|
342
|
+
* this point the ambient span is either absent or an already-ENDED
|
|
343
|
+
* @CaptureSpan span — and addEvent no-ops on an ended span. On the whole
|
|
344
|
+
* BaseAPI CRUD surface this emitted exactly zero events while looking like
|
|
345
|
+
* it emitted one.
|
|
346
|
+
*
|
|
347
|
+
* Where it DID fire was the handful of @CaptureSpan-decorated middleware
|
|
348
|
+
* that swallow an error and call next(err) from inside their own still-open
|
|
349
|
+
* span. There it wrote to a span the request does not own, and — because the
|
|
350
|
+
* raw error was passed to span.recordException, and the SDK reads
|
|
351
|
+
* `exception.code` before `exception.name` — it typed the event with the
|
|
352
|
+
* HTTP status ("400", "422") instead of the class name. Those middleware now
|
|
353
|
+
* rethrow instead of swallowing, so CaptureSpan's normalized recorder does
|
|
354
|
+
* the right thing on the right span.
|
|
355
|
+
*/
|
|
332
356
|
if (res.headersSent) {
|
|
333
357
|
next(err);
|
|
334
358
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartServer.js","sourceRoot":"","sources":["../../../../Server/Utils/StartServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StartServer.js","sourceRoot":"","sources":["../../../../Server/Utils/StartServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,30 @@ import Telemetry from "../Telemetry";
|
|
|
2
2
|
import { SpanStatusCode } from "@opentelemetry/api";
|
|
3
3
|
import JSONFunctions from "../../../Types/JSONFunctions";
|
|
4
4
|
import { DisableTelemetry } from "../../EnvironmentConfig";
|
|
5
|
+
/*
|
|
6
|
+
* Mark a span OK, but never DOWNGRADE an ERROR someone else already set.
|
|
7
|
+
*
|
|
8
|
+
* The SDK's own setStatus guard only early-returns when the CURRENT status is
|
|
9
|
+
* already OK, so an OK written after an ERROR wins. That is reachable whenever
|
|
10
|
+
* a decorated method swallows an error and signals failure by another route
|
|
11
|
+
* (Express middleware calling next(err) is the classic case): the method
|
|
12
|
+
* "returns successfully" from the decorator's point of view, and the span ends
|
|
13
|
+
* up marked OK while carrying an exception event.
|
|
14
|
+
*/
|
|
15
|
+
function markSpanOk(span) {
|
|
16
|
+
try {
|
|
17
|
+
const currentStatus = span.status;
|
|
18
|
+
if (currentStatus && currentStatus.code === SpanStatusCode.ERROR) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (_a) {
|
|
23
|
+
// Span implementation without an observable status — set it normally.
|
|
24
|
+
}
|
|
25
|
+
span.setStatus({
|
|
26
|
+
code: SpanStatusCode.OK,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
5
29
|
function CaptureSpan(data) {
|
|
6
30
|
return function (target, propertyKey, descriptor) {
|
|
7
31
|
var _a;
|
|
@@ -55,9 +79,7 @@ function CaptureSpan(data) {
|
|
|
55
79
|
if (result instanceof Promise) {
|
|
56
80
|
return result
|
|
57
81
|
.then((res) => {
|
|
58
|
-
span
|
|
59
|
-
code: SpanStatusCode.OK,
|
|
60
|
-
});
|
|
82
|
+
markSpanOk(span);
|
|
61
83
|
return res;
|
|
62
84
|
})
|
|
63
85
|
.catch((err) => {
|
|
@@ -68,12 +90,10 @@ function CaptureSpan(data) {
|
|
|
68
90
|
throw err;
|
|
69
91
|
})
|
|
70
92
|
.finally(() => {
|
|
71
|
-
|
|
93
|
+
Telemetry.endSpan(span);
|
|
72
94
|
});
|
|
73
95
|
}
|
|
74
|
-
span
|
|
75
|
-
code: SpanStatusCode.OK,
|
|
76
|
-
});
|
|
96
|
+
markSpanOk(span);
|
|
77
97
|
return result;
|
|
78
98
|
}
|
|
79
99
|
catch (err) {
|
|
@@ -85,7 +105,7 @@ function CaptureSpan(data) {
|
|
|
85
105
|
}
|
|
86
106
|
finally {
|
|
87
107
|
if (!(result instanceof Promise)) {
|
|
88
|
-
|
|
108
|
+
Telemetry.endSpan(span);
|
|
89
109
|
}
|
|
90
110
|
}
|
|
91
111
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaptureSpan.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/CaptureSpan.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAQ,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,SAAS,WAAW,CAAC,IAIpB;IAKC,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAAwC;;QAExC,MAAM,cAAc,GAAQ,UAAU,CAAC,KAAK,CAAC;QAE7C,IAAI,SAAS,GAAuB,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,0CAAE,IAAI,CAAC;QAE9D,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YACjD,MAAM,eAAe,GAAuB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC;YAEzD,IAAI,eAAe,EAAE,CAAC;gBACpB,SAAS,GAAG,eAAe,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,cAAc,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,GACR,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,GAAG,SAAS,IAAI,WAAW,EAAE,CAAC;QAE9C,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;YACzC;;;;;;;eAOG;YACH,IAAI,gBAAgB,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACzD,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;YAED;;;;eAIG;YACH,IAAI,cAAc,GAAuC,SAAS,CAAC;YAEnE,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAA,EAAE,CAAC;gBAC/C,IAAI,iBAAiB,GAAe,EAAE,CAAC;gBAEvC,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,EAAE,CAAC;oBAC3B,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAC7B,CAAC,GAA2B,EAAE,GAAQ,EAAE,KAAa,EAAE,EAAE;wBACvD,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC;wBACzB,OAAO,GAAG,CAAC;oBACb,CAAC,EACD,EAAE,CACH,CAAC;gBACJ,CAAC;gBAED,cAAc,GAAG,aAAa,CAAC,aAAa,iCACvC,iBAAiB,GACjB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EACO,CAAC;YAC/B,CAAC;YAED,OAAO,SAAS,CAAC,eAAe,CAAC;gBAC/B,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC7D,EAAE,EAAE,CAAC,IAAU,EAAE,EAAE;oBACjB,IAAI,MAAM,GAAQ,IAAI,CAAC;oBACvB,IAAI,CAAC;wBACH,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC1C,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;4BAC9B,OAAO,MAAM;iCACV,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE;gCACjB,
|
|
1
|
+
{"version":3,"file":"CaptureSpan.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/CaptureSpan.ts"],"names":[],"mappings":"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"}
|