@oneuptime/common 13.0.6 → 13.0.7
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/DatabaseModels/AIAgentOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/AIAgentOwnerUser.ts +6 -0
- package/Models/DatabaseModels/Alert.ts +12 -0
- package/Models/DatabaseModels/AlertEpisodeOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/AlertEpisodeOwnerUser.ts +6 -1
- package/Models/DatabaseModels/AlertOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/AlertOwnerUser.ts +6 -1
- package/Models/DatabaseModels/CephClusterOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/CephClusterOwnerUser.ts +6 -0
- package/Models/DatabaseModels/CloudResourceOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/CloudResourceOwnerUser.ts +6 -0
- package/Models/DatabaseModels/DashboardOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/DashboardOwnerUser.ts +6 -1
- package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +8 -0
- package/Models/DatabaseModels/DockerHostOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/DockerHostOwnerUser.ts +6 -0
- package/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/DockerSwarmClusterOwnerUser.ts +6 -0
- package/Models/DatabaseModels/HostOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/HostOwnerUser.ts +6 -0
- package/Models/DatabaseModels/Incident.ts +12 -0
- package/Models/DatabaseModels/IncidentEpisodeOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/IncidentEpisodeOwnerUser.ts +6 -1
- package/Models/DatabaseModels/IncidentOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/IncidentOwnerUser.ts +6 -1
- package/Models/DatabaseModels/IncidentTemplateOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/IncidentTemplateOwnerUser.ts +6 -0
- package/Models/DatabaseModels/IncomingCallPolicyOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/IncomingCallPolicyOwnerUser.ts +6 -1
- package/Models/DatabaseModels/IoTFleetOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/IoTFleetOwnerUser.ts +6 -0
- package/Models/DatabaseModels/KubernetesClusterOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/KubernetesClusterOwnerUser.ts +6 -0
- package/Models/DatabaseModels/Monitor.ts +2 -3
- package/Models/DatabaseModels/MonitorGroupOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/MonitorGroupOwnerUser.ts +6 -0
- package/Models/DatabaseModels/MonitorOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/MonitorOwnerUser.ts +6 -1
- package/Models/DatabaseModels/MonitorTemplate.ts +2 -3
- package/Models/DatabaseModels/NetworkDeviceOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/NetworkDeviceOwnerUser.ts +6 -0
- package/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.ts +6 -1
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerUser.ts +6 -1
- package/Models/DatabaseModels/PodmanHostOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/PodmanHostOwnerUser.ts +6 -0
- package/Models/DatabaseModels/ProbeOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/ProbeOwnerUser.ts +6 -0
- package/Models/DatabaseModels/ProxmoxClusterOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/ProxmoxClusterOwnerUser.ts +6 -0
- package/Models/DatabaseModels/RumApplicationOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/RumApplicationOwnerUser.ts +6 -0
- package/Models/DatabaseModels/RunbookOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/RunbookOwnerUser.ts +6 -1
- package/Models/DatabaseModels/RunnerOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/RunnerOwnerUser.ts +6 -1
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.ts +6 -1
- package/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.ts +8 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.ts +8 -0
- package/Models/DatabaseModels/ServerlessFunctionOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/ServerlessFunctionOwnerUser.ts +6 -0
- package/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.ts +6 -1
- package/Models/DatabaseModels/ServiceOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/ServiceOwnerUser.ts +6 -0
- package/Models/DatabaseModels/StatusPageOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/StatusPageOwnerUser.ts +6 -1
- package/Models/DatabaseModels/VMwareVCenterOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/VMwareVCenterOwnerUser.ts +6 -0
- package/Models/DatabaseModels/WorkflowOwnerTeam.ts +6 -1
- package/Models/DatabaseModels/WorkflowOwnerUser.ts +6 -1
- package/Scripts/benchmark-fanin-capacity.js +2 -2
- package/Server/API/AIAgentDataAPI.ts +1 -1
- package/Server/API/AIChatAPI.ts +6 -4
- package/Server/API/AIInvestigationAPI.ts +7 -0
- package/Server/API/StatusPageAPI.ts +13 -0
- package/Server/Infrastructure/Postgres/LocalMigrationGenerationDataSource.ts +1 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1793500000000-MakeOwnerRowsUnique.ts +1057 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1793700000000-AddAIInvestigationDecision.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1793800000000-RemoveMonitorDescriptionLengthLimit.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Readme.md +6 -4
- package/Server/Middleware/IdentityRateLimit.ts +34 -1
- package/Server/Middleware/PublicDashboardRateLimit.ts +169 -39
- package/Server/Services/AlertEpisodeService.ts +13 -34
- package/Server/Services/AlertGroupingEngineService.ts +7 -4
- package/Server/Services/AlertService.ts +13 -32
- package/Server/Services/CephClusterOwnerRuleEngineService.ts +18 -10
- package/Server/Services/CloudResourceOwnerRuleEngineService.ts +18 -10
- package/Server/Services/DashboardOwnerRuleEngineService.ts +18 -10
- package/Server/Services/DatabaseService.ts +101 -1
- package/Server/Services/DockerHostOwnerRuleEngineService.ts +18 -10
- package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +18 -10
- package/Server/Services/HostOwnerRuleEngineService.ts +18 -10
- package/Server/Services/IncidentEpisodeOwnerRuleEngineService.ts +6 -4
- package/Server/Services/IncidentEpisodeService.ts +15 -75
- package/Server/Services/IncidentGroupingEngineService.ts +7 -4
- package/Server/Services/IncidentService.ts +13 -32
- package/Server/Services/IncidentTemplateService.ts +13 -36
- package/Server/Services/IncomingCallPolicyOwnerRuleEngineService.ts +18 -10
- package/Server/Services/IoTFleetOwnerRuleEngineService.ts +18 -10
- package/Server/Services/KubernetesClusterOwnerRuleEngineService.ts +18 -10
- package/Server/Services/MonitorService.ts +13 -32
- package/Server/Services/NetworkDeviceOwnerRuleEngineService.ts +18 -10
- package/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.ts +18 -10
- package/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.ts +18 -10
- package/Server/Services/PodmanHostOwnerRuleEngineService.ts +18 -10
- package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +18 -10
- package/Server/Services/RumApplicationOwnerRuleEngineService.ts +18 -10
- package/Server/Services/RunbookOwnerRuleEngineService.ts +18 -10
- package/Server/Services/ScheduledMaintenanceService.ts +13 -34
- package/Server/Services/ScheduledMaintenanceTemplateService.ts +12 -34
- package/Server/Services/ServerlessFunctionOwnerRuleEngineService.ts +18 -10
- package/Server/Services/ServiceOwnerRuleEngineService.ts +18 -10
- package/Server/Services/StatusPagePrivateUserService.ts +38 -29
- package/Server/Services/StatusPagePrivateUserSessionService.ts +49 -1
- package/Server/Services/StatusPageService.ts +59 -36
- package/Server/Services/UserSessionService.ts +6 -0
- package/Server/Services/VMwareVCenterOwnerRuleEngineService.ts +18 -10
- package/Server/Services/WorkflowOwnerRuleEngineService.ts +18 -10
- package/Server/Static/Brand/README.md +7 -7
- package/Server/Static/Vendor/README.md +7 -7
- package/Server/Types/Database/Permissions/OwnedScopePermission.ts +18 -9
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +82 -0
- package/Server/Utils/AI/Chat/ChatAgentRunner.ts +21 -8
- package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +41 -4
- package/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts +1 -1
- package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +1 -1
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +13 -5
- package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +53 -13
- package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +51 -14
- package/Server/Utils/AI/SRE/InvestigationEligibility.ts +292 -0
- package/Server/Utils/AI/SRE/InvestigationQueue.ts +25 -0
- package/Server/Utils/AI/Toolbox/Index.ts +43 -13
- package/Server/Utils/AI/Toolbox/ResourceTools.ts +952 -0
- package/Server/Utils/AI/Toolbox/RumTools.ts +424 -0
- package/Server/Utils/AI/Toolbox/ToolTypes.ts +10 -0
- package/Server/Utils/AI/Toolbox/TraceTools.ts +2 -1
- package/Server/Utils/Database/PostgresErrorTranslator.ts +14 -0
- package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +137 -126
- package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +4 -1
- package/Server/Utils/Rules/OwnerRuleAssignment.ts +157 -6
- package/Server/Utils/Telemetry/TelemetryEntity.ts +205 -6
- package/SslCertificates/GlobalSign.crt +26 -0
- package/SslCertificates/Readme.md +3 -0
- package/Tests/App/AdminDashboard/EnterpriseLicenseInstanceActivity.test.tsx +451 -0
- package/Tests/App/Dashboard/AIInsightsChatPanel.test.tsx +881 -0
- package/Tests/App/Dashboard/AIInsightsPageContext.test.ts +458 -0
- package/Tests/App/Dashboard/AIInsightsResourceCitations.test.ts +124 -0
- package/Tests/App/Dashboard/AIInsightsResourcePageContext.test.ts +798 -0
- package/Tests/App/Dashboard/AskAiSuggestedPrompts.test.ts +7 -0
- package/Tests/App/Dashboard/DashboardChartWidgetZoom.test.tsx +104 -0
- package/Tests/App/Dashboard/DashboardCommandPalette.test.tsx +156 -64
- package/Tests/App/Dashboard/DiscoveryScanStatusMessage.test.tsx +970 -0
- package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +406 -12
- package/Tests/App/Dashboard/EmbeddedMetricEventScope.test.tsx +358 -0
- package/Tests/App/Dashboard/ErrorPatternEventScope.test.tsx +148 -0
- package/Tests/App/Dashboard/EventOverlayAdditionalResourceScope.test.ts +255 -0
- package/Tests/App/Dashboard/EventOverlayScope.test.ts +845 -0
- package/Tests/App/Dashboard/EventOverlayScopeHook.test.tsx +903 -0
- package/Tests/App/Dashboard/ExternalStatusPageCriteriaFilter.test.ts +3 -3
- package/Tests/App/Dashboard/InvestigationDrawer.test.tsx +21 -0
- package/Tests/App/Dashboard/InvestigationNotStarted.test.tsx +761 -0
- package/Tests/App/Dashboard/InvestigationPanel.test.tsx +7 -4
- package/Tests/App/Dashboard/InvestigationPanelStatus.test.tsx +15 -7
- package/Tests/App/Dashboard/MetricsViewerEventScopeNavigation.test.tsx +264 -0
- package/Tests/App/Dashboard/MonitorSummaryTestMonitorButton.test.tsx +342 -0
- package/Tests/App/Dashboard/MonitorTestForm.test.tsx +612 -0
- package/Tests/App/Dashboard/NavigationSearchKeywords.test.tsx +301 -0
- package/Tests/App/Dashboard/ServiceMapGraph.test.tsx +74 -2
- package/Tests/App/Dashboard/TextClampLayoutHarness.ts +224 -0
- package/Tests/Models/InventoryItemNaming.test.ts +54 -0
- package/Tests/Server/API/AIChatRouteAuthorization.test.ts +161 -0
- package/Tests/Server/API/AIInvestigationAPI.test.ts +14 -0
- package/Tests/Server/API/AIInvestigationAvailabilityAuthorization.test.ts +260 -0
- package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +133 -0
- package/Tests/Server/API/StatusPageMasterPasswordRateLimit.test.ts +482 -0
- package/Tests/Server/EnvironmentConfigOnCallCalendarFeed.test.ts +1 -1
- package/Tests/Server/Infrastructure/ClickhouseKeepAliveOptions.test.ts +1 -1
- package/Tests/Server/Infrastructure/ContainerBootConfiguration.test.ts +38 -16
- package/Tests/Server/Infrastructure/E2EClickHouseFixtureAccess.test.ts +106 -31
- package/Tests/Server/Infrastructure/ExampleDockerfiles.test.ts +46 -12
- package/Tests/Server/Infrastructure/Postgres/MonitorDescriptionMigration.test.ts +422 -0
- package/Tests/Server/Infrastructure/TelemetryExporterDeploymentConfig.test.ts +1 -1
- package/Tests/Server/Infrastructure/ValkeyDeploymentConfig.test.ts +25 -4
- package/Tests/Server/Middleware/IdentityRateLimit.test.ts +72 -0
- package/Tests/Server/Middleware/PublicDashboardRateLimit.test.ts +12 -12
- package/Tests/Server/Middleware/PublicDashboardRateLimitStatusPage.test.ts +800 -0
- package/Tests/Server/Services/AIInvestigationDecisionPostgres.test.ts +346 -0
- package/Tests/Server/Services/AddOwnersIdempotency.test.ts +471 -0
- package/Tests/Server/Services/DatabaseServiceAutoOwnerOnCreate.test.ts +250 -0
- package/Tests/Server/Services/DatabaseServiceUniqueColumnsTogether.test.ts +622 -0
- package/Tests/Server/Services/MonitorDescriptionValidation.test.ts +211 -0
- package/Tests/Server/Services/MonitorTemplateDescriptionPropagation.test.ts +269 -0
- package/Tests/Server/Services/OwnerRowUniqueness.test.ts +504 -0
- package/Tests/Server/Services/RuleRun/OwnerRuleEnginesGroupARun.test.ts +43 -0
- package/Tests/Server/Services/SessionRetention.test.ts +334 -0
- package/Tests/Server/Services/StatusPagePrivateUserInvitationPolicy.test.ts +172 -0
- package/Tests/Server/Services/StatusPagePrivateUserReadAccess.test.ts +178 -0
- package/Tests/Server/Services/StatusPagePrivateUserReadAccessPostgres.test.ts +311 -0
- package/Tests/Server/Services/StatusPagePrivateUserSessionService.test.ts +216 -1
- package/Tests/Server/Services/TeamComplianceServiceBehaviour.test.ts +1 -1
- package/Tests/Server/Services/UserOnCallLogNoNotificationRules.test.ts +1 -1
- package/Tests/Server/Types/Database/EventOverlayScopePostgres.test.ts +626 -0
- package/Tests/Server/Types/Database/Permissions/InfrastructureOwnershipScope.test.ts +668 -0
- package/Tests/Server/Types/Database/Permissions/SelectRejectionMessageContract.test.ts +1 -0
- package/Tests/Server/Types/Database/Permissions/UserNotificationRuleScoping.test.ts +1 -1
- package/Tests/Server/Utils/AI/AIIncidentGating.test.ts +16 -9
- package/Tests/Server/Utils/AI/ChatAgentRunner.test.ts +137 -1
- package/Tests/Server/Utils/AI/InvestigationEligibility.test.ts +697 -0
- package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +105 -0
- package/Tests/Server/Utils/AI/RemediationHandoff.test.ts +16 -5
- package/Tests/Server/Utils/AI/ResourceTools.test.ts +1304 -0
- package/Tests/Server/Utils/AI/RumTools.test.ts +769 -0
- package/Tests/Server/Utils/Database/PostgresErrorTranslator.test.ts +63 -0
- package/Tests/Server/Utils/Monitor/Criteria/APIRequestCriteriaEvaluateOverTime.test.ts +11 -9
- package/Tests/Server/Utils/Monitor/Criteria/CompareCriteria.test.ts +62 -45
- package/Tests/Server/Utils/Monitor/Criteria/CompareCriteriaAggregation.test.ts +25 -24
- package/Tests/Server/Utils/Monitor/Criteria/CompareCriteriaHumanMessages.test.ts +513 -0
- package/Tests/Server/Utils/Monitor/Criteria/CustomCodeMonitorCriteria.test.ts +2 -2
- package/Tests/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.test.ts +1 -1
- package/Tests/Server/Utils/Monitor/Criteria/ExternalStatusPageMonitorCriteria.test.ts +9 -9
- package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.ts +7 -5
- package/Tests/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.test.ts +2 -2
- package/Tests/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.test.ts +4 -3
- package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +2 -2
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorMetricUnits.test.ts +3 -2
- package/Tests/Server/Utils/Monitor/MonitorCriteriaHumanMessages.test.ts +529 -0
- package/Tests/Server/Utils/Rules/OwnerRuleAssignment.test.ts +412 -4
- package/Tests/Server/Utils/SecurityEvent/Connectors/GoogleSecOps/GoogleSecOpsPollingClickhouseIntegration.test.ts +1 -1
- package/Tests/Server/Utils/TailwindBuildCopy.test.ts +14 -2
- package/Tests/Server/Utils/Telemetry/HostAssetAttributesFromOtlp.test.ts +235 -0
- package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +385 -2
- package/Tests/Server/Utils/VendorAssets.test.ts +17 -3
- package/Tests/Types/AI/AIChatPageContext.test.ts +0 -0
- package/Tests/Types/AI/AIResourceContext.test.ts +312 -0
- package/Tests/Types/Database/UniqueColumnsTogether.test.ts +100 -0
- package/Tests/Types/Monitor/MetricAndProfileDefaultCriteria.test.ts +4 -4
- package/Tests/Types/Monitor/MonitorStepRetryPersistence.test.ts +125 -0
- package/Tests/Types/WebsiteRequest.test.ts +44 -0
- package/Tests/UI/Components/Forms/MonitorDescriptionForm.test.tsx +410 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableReadPermissions.test.tsx +439 -0
- package/Tests/UI/Components/NavBarMenuSearch.test.tsx +372 -0
- package/Tests/UI/EsbuildConfig.test.ts +1 -1
- package/Tests/UI/Monitor/MonitorStepRetrySettings.test.tsx +616 -0
- package/Tests/UI/ReactRouterSingletonBuild.test.ts +4 -2
- package/Tests/UI/Rum/ReplayEngine.test.ts +179 -0
- package/Tests/UI/Rum/ReplayHeader.test.tsx +23 -0
- package/Tests/UI/Rum/ReplayScrubber.test.tsx +88 -0
- package/Tests/UI/Rum/ReplayStageOverlays.test.tsx +83 -0
- package/Tests/UI/Rum/ReplayTabSwitcher.test.tsx +33 -0
- package/Tests/Utils/API.test.ts +96 -0
- package/Tests/Utils/HTTPResponseBodyReader.test.ts +188 -1
- package/Tests/Utils/Metrics/MetricEventScopeUrl.test.ts +101 -0
- package/Tests/Utils/Monitor/MonitorTestAvailabilityUtil.test.ts +256 -0
- package/Tests/Utils/Telemetry/HostIpAddresses.test.ts +105 -0
- package/Types/AI/AIChatPageContext.ts +87 -2
- package/Types/AI/AIChatTypes.ts +4 -0
- package/Types/AI/AIResourceContext.ts +198 -0
- package/Types/AI/InvestigationNotStartedReason.ts +30 -0
- package/Types/Database/UniqueColumnsTogether.ts +55 -0
- package/Types/Metrics/MetricQueryConfigData.ts +8 -0
- package/Types/Rum/WebVitals.ts +71 -0
- package/Types/WebsiteRequest.ts +2 -0
- package/UI/Components/EditionLabel/EditionLabel.tsx +7 -5
- package/UI/Components/KeyboardShortcut/Screenshots/README.md +1 -1
- package/UI/Components/ModelTable/BaseModelTable.tsx +8 -0
- package/UI/Components/Navbar/NavBar.tsx +2 -0
- package/UI/Components/Navbar/NavBarMenuModal.tsx +6 -2
- package/UI/esbuild-config.js +4 -4
- package/Utils/API.ts +10 -1
- package/Utils/Dashboard/HtmlWidgetDocument.ts +1 -1
- package/Utils/HTTPResponseBodyReader.ts +64 -8
- package/Utils/Metrics/MetricExplorerUrl.ts +19 -0
- package/Utils/Monitor/MonitorTestAvailabilityUtil.ts +92 -0
- package/Utils/Telemetry/HostIpAddresses.ts +46 -2
- package/build/dist/Models/DatabaseModels/AIAgentOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/AIAgentOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIAgentOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/AIAgentOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Alert.js +12 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CephClusterOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/CephClusterOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CephClusterOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/CephClusterOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DashboardOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/DashboardOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DashboardOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/DashboardOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +3 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/HostOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/HostOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/HostOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/HostOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +12 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IoTFleetOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/IoTFleetOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IoTFleetOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/IoTFleetOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +2 -3
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTemplate.js +2 -3
- package/build/dist/Models/DatabaseModels/MonitorTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/RumApplicationOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunbookOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/RunbookOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunbookOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/RunbookOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunnerOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/RunnerOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunnerOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/RunnerOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.js +6 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.js +6 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/ServiceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/ServiceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerTeam.js +4 -1
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerUser.js +4 -1
- package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowOwnerTeam.js +3 -1
- package/build/dist/Models/DatabaseModels/WorkflowOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowOwnerUser.js +3 -1
- package/build/dist/Models/DatabaseModels/WorkflowOwnerUser.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +1 -1
- package/build/dist/Server/API/AIChatAPI.js +3 -1
- package/build/dist/Server/API/AIChatAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +3 -0
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +9 -1
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/LocalMigrationGenerationDataSource.js +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793500000000-MakeOwnerRowsUnique.js +602 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793500000000-MakeOwnerRowsUnique.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793700000000-AddAIInvestigationDecision.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793700000000-AddAIInvestigationDecision.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793800000000-RemoveMonitorDescriptionLengthLimit.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793800000000-RemoveMonitorDescriptionLengthLimit.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/IdentityRateLimit.js +22 -1
- package/build/dist/Server/Middleware/IdentityRateLimit.js.map +1 -1
- package/build/dist/Server/Middleware/PublicDashboardRateLimit.js +117 -36
- package/build/dist/Server/Middleware/PublicDashboardRateLimit.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeService.js +13 -31
- package/build/dist/Server/Services/AlertEpisodeService.js.map +1 -1
- package/build/dist/Server/Services/AlertGroupingEngineService.js +7 -4
- package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +13 -31
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DashboardOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/DashboardOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +71 -1
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeOwnerRuleEngineService.js +6 -4
- package/build/dist/Server/Services/IncidentEpisodeOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeService.js +15 -68
- package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
- package/build/dist/Server/Services/IncidentGroupingEngineService.js +7 -4
- package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +13 -31
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentTemplateService.js +13 -31
- package/build/dist/Server/Services/IncidentTemplateService.js.map +1 -1
- package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IoTFleetOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/IoTFleetOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +13 -31
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RunbookOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/RunbookOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +13 -31
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceTemplateService.js +12 -29
- package/build/dist/Server/Services/ScheduledMaintenanceTemplateService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/StatusPagePrivateUserService.js +33 -25
- package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
- package/build/dist/Server/Services/StatusPagePrivateUserSessionService.js +36 -1
- package/build/dist/Server/Services/StatusPagePrivateUserSessionService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +50 -35
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/UserSessionService.js +5 -0
- package/build/dist/Server/Services/UserSessionService.js.map +1 -1
- package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/WorkflowOwnerRuleEngineService.js +12 -8
- package/build/dist/Server/Services/WorkflowOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js +15 -10
- package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +82 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +12 -3
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +32 -4
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +1 -1
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +8 -5
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +33 -13
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +31 -10
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationEligibility.js +205 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationEligibility.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js +13 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +30 -6
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js +721 -0
- package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/RumTools.js +330 -0
- package/build/dist/Server/Utils/AI/Toolbox/RumTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/ToolTypes.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/TraceTools.js +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/TraceTools.js.map +1 -1
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js +11 -0
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +106 -101
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +4 -2
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Rules/OwnerRuleAssignment.js +94 -0
- package/build/dist/Server/Utils/Rules/OwnerRuleAssignment.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +171 -6
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
- package/build/dist/Types/AI/AIChatPageContext.js +68 -2
- package/build/dist/Types/AI/AIChatPageContext.js.map +1 -1
- package/build/dist/Types/AI/AIChatTypes.js +4 -0
- package/build/dist/Types/AI/AIChatTypes.js.map +1 -1
- package/build/dist/Types/AI/AIResourceContext.js +162 -0
- package/build/dist/Types/AI/AIResourceContext.js.map +1 -0
- package/build/dist/Types/AI/InvestigationNotStartedReason.js +2 -0
- package/build/dist/Types/AI/InvestigationNotStartedReason.js.map +1 -0
- package/build/dist/Types/Database/UniqueColumnsTogether.js +19 -0
- package/build/dist/Types/Database/UniqueColumnsTogether.js.map +1 -0
- package/build/dist/Types/Metrics/MetricQueryConfigData.js.map +1 -1
- package/build/dist/Types/Rum/WebVitals.js +64 -0
- package/build/dist/Types/Rum/WebVitals.js.map +1 -0
- package/build/dist/Types/WebsiteRequest.js +2 -0
- package/build/dist/Types/WebsiteRequest.js.map +1 -1
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js +7 -5
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +7 -0
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +4 -2
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
- package/build/dist/Utils/API.js +8 -4
- package/build/dist/Utils/API.js.map +1 -1
- package/build/dist/Utils/HTTPResponseBodyReader.js +50 -6
- package/build/dist/Utils/HTTPResponseBodyReader.js.map +1 -1
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js +14 -3
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorTestAvailabilityUtil.js +68 -0
- package/build/dist/Utils/Monitor/MonitorTestAvailabilityUtil.js.map +1 -0
- package/build/dist/Utils/Telemetry/HostIpAddresses.js +42 -3
- package/build/dist/Utils/Telemetry/HostIpAddresses.js.map +1 -1
- package/package.json +5 -5
- package/test-setup.sh +2 -2
|
@@ -307,6 +307,69 @@ describe("PostgresErrorTranslator", () => {
|
|
|
307
307
|
});
|
|
308
308
|
});
|
|
309
309
|
|
|
310
|
+
describe("createUniqueViolationException (issue #3394)", () => {
|
|
311
|
+
/*
|
|
312
|
+
* @UniqueColumnsTogether refuses a duplicate owner row before the insert.
|
|
313
|
+
* The callers that add owners in bulk must treat that refusal exactly like
|
|
314
|
+
* the unique index rejecting a racing insert, through one predicate.
|
|
315
|
+
*/
|
|
316
|
+
it("is a BadDataException carrying the given message", () => {
|
|
317
|
+
const exception: BadDataException =
|
|
318
|
+
PostgresErrorTranslator.createUniqueViolationException(
|
|
319
|
+
"This team is already an owner of this incident.",
|
|
320
|
+
);
|
|
321
|
+
|
|
322
|
+
expect(exception).toBeInstanceOf(BadDataException);
|
|
323
|
+
expect(exception.message).toBe(
|
|
324
|
+
"This team is already an owner of this incident.",
|
|
325
|
+
);
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
it("is recognised by isUniqueViolation", () => {
|
|
329
|
+
expect(
|
|
330
|
+
PostgresErrorTranslator.isUniqueViolation(
|
|
331
|
+
PostgresErrorTranslator.createUniqueViolationException("Duplicate."),
|
|
332
|
+
),
|
|
333
|
+
).toBe(true);
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
it("is tagged with the unique-violation SQLSTATE, like a translated one", () => {
|
|
337
|
+
const exception: TranslatedPostgresException =
|
|
338
|
+
PostgresErrorTranslator.createUniqueViolationException(
|
|
339
|
+
"Duplicate.",
|
|
340
|
+
) as TranslatedPostgresException;
|
|
341
|
+
const translated: TranslatedPostgresException =
|
|
342
|
+
PostgresErrorTranslator.translate(
|
|
343
|
+
twilioAccountSidCollision(),
|
|
344
|
+
) as TranslatedPostgresException;
|
|
345
|
+
|
|
346
|
+
expect(exception.postgresErrorCode).toBe("23505");
|
|
347
|
+
expect(exception.postgresErrorCode).toBe(translated.postgresErrorCode);
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
it("keeps the same HTTP-facing code as any other BadDataException", () => {
|
|
351
|
+
expect(
|
|
352
|
+
PostgresErrorTranslator.createUniqueViolationException("Duplicate.")
|
|
353
|
+
.code,
|
|
354
|
+
).toBe(new BadDataException("Duplicate.").code);
|
|
355
|
+
});
|
|
356
|
+
|
|
357
|
+
it("passes through translate() unchanged", () => {
|
|
358
|
+
const exception: BadDataException =
|
|
359
|
+
PostgresErrorTranslator.createUniqueViolationException("Duplicate.");
|
|
360
|
+
|
|
361
|
+
expect(PostgresErrorTranslator.translate(exception)).toBe(exception);
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
it("returns a new exception on every call", () => {
|
|
365
|
+
expect(
|
|
366
|
+
PostgresErrorTranslator.createUniqueViolationException("Duplicate."),
|
|
367
|
+
).not.toBe(
|
|
368
|
+
PostgresErrorTranslator.createUniqueViolationException("Duplicate."),
|
|
369
|
+
);
|
|
370
|
+
});
|
|
371
|
+
});
|
|
372
|
+
|
|
310
373
|
describe("errors it should not touch", () => {
|
|
311
374
|
it("passes through an unrecognised Postgres error unchanged", () => {
|
|
312
375
|
const notNullViolation: FakeQueryFailedError = {
|
|
@@ -171,10 +171,9 @@ describe("APIRequestCriteria evaluate over time", () => {
|
|
|
171
171
|
dataToProcess: buildResponse({ responseCode: 404 }),
|
|
172
172
|
});
|
|
173
173
|
|
|
174
|
-
expect(result).
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
expect(result).toContain("not equal to 200");
|
|
174
|
+
expect(result).toBe(
|
|
175
|
+
`${CheckOn.ResponseStatusCode} over the last 5 minutes was 404 in all 5 readings, different from the 200 threshold.`,
|
|
176
|
+
);
|
|
178
177
|
});
|
|
179
178
|
|
|
180
179
|
/*
|
|
@@ -229,8 +228,9 @@ describe("APIRequestCriteria evaluate over time", () => {
|
|
|
229
228
|
dataToProcess: buildResponse({ responseTimeInMs: 8800 }),
|
|
230
229
|
});
|
|
231
230
|
|
|
232
|
-
expect(result).
|
|
233
|
-
|
|
231
|
+
expect(result).toBe(
|
|
232
|
+
`${CheckOn.ResponseTime} over the last 2 minutes ranged from 8800 to 9171 across all 3 readings, above the 8000 threshold.`,
|
|
233
|
+
);
|
|
234
234
|
});
|
|
235
235
|
|
|
236
236
|
/*
|
|
@@ -251,7 +251,9 @@ describe("APIRequestCriteria evaluate over time", () => {
|
|
|
251
251
|
dataToProcess: buildResponse({ responseTimeInMs: 9171 }),
|
|
252
252
|
});
|
|
253
253
|
|
|
254
|
-
expect(result).
|
|
254
|
+
expect(result).toBe(
|
|
255
|
+
`${CheckOn.ResponseTime} over the last 2 minutes was 9171 in 1 of 3 readings, above the 8000 threshold.`,
|
|
256
|
+
);
|
|
255
257
|
});
|
|
256
258
|
|
|
257
259
|
test("Any Value fires off the very first sample", async () => {
|
|
@@ -371,7 +373,7 @@ describe("APIRequestCriteria evaluate over time", () => {
|
|
|
371
373
|
});
|
|
372
374
|
|
|
373
375
|
// 0 is not equal to 200, so the filter is met.
|
|
374
|
-
expect(result).toContain("
|
|
376
|
+
expect(result).toContain("different from the 200 threshold");
|
|
375
377
|
});
|
|
376
378
|
});
|
|
377
379
|
|
|
@@ -456,7 +458,7 @@ describe("APIRequestCriteria evaluate over time", () => {
|
|
|
456
458
|
dataToProcess: buildResponse({ responseCode: 404 }),
|
|
457
459
|
});
|
|
458
460
|
|
|
459
|
-
expect(result).toContain("
|
|
461
|
+
expect(result).toContain("different from the 200 threshold");
|
|
460
462
|
});
|
|
461
463
|
|
|
462
464
|
test("the metric store is never read for them", async () => {
|
|
@@ -580,7 +580,7 @@ describe("CompareCriteria", () => {
|
|
|
580
580
|
threshold: 50,
|
|
581
581
|
criteriaFilter: filter,
|
|
582
582
|
}),
|
|
583
|
-
).toBe("Response Time (in ms)
|
|
583
|
+
).toBe("Response Time (in ms) was 100, above the 50 threshold.");
|
|
584
584
|
});
|
|
585
585
|
|
|
586
586
|
test("does not fire when the threshold is not breached", () => {
|
|
@@ -677,7 +677,7 @@ describe("CompareCriteria", () => {
|
|
|
677
677
|
});
|
|
678
678
|
|
|
679
679
|
describe("getCompareMessage formatting", () => {
|
|
680
|
-
test("
|
|
680
|
+
test("summarizes the readings when AnyValue and AllValues both match the whole window", () => {
|
|
681
681
|
const anyFilter: CriteriaFilter = makeFilter({
|
|
682
682
|
checkOn: CheckOn.ResponseTime,
|
|
683
683
|
filterType: FilterType.GreaterThan,
|
|
@@ -693,7 +693,7 @@ describe("CompareCriteria", () => {
|
|
|
693
693
|
criteriaFilter: anyFilter,
|
|
694
694
|
}),
|
|
695
695
|
).toBe(
|
|
696
|
-
"
|
|
696
|
+
"Response Time (in ms) ranged from 10 to 20 across all 2 readings, above the 5 threshold.",
|
|
697
697
|
);
|
|
698
698
|
|
|
699
699
|
const allFilter: CriteriaFilter = makeFilter({
|
|
@@ -711,7 +711,7 @@ describe("CompareCriteria", () => {
|
|
|
711
711
|
criteriaFilter: allFilter,
|
|
712
712
|
}),
|
|
713
713
|
).toBe(
|
|
714
|
-
"
|
|
714
|
+
"Response Time (in ms) ranged from 10 to 20 across all 2 readings, above the 5 threshold.",
|
|
715
715
|
);
|
|
716
716
|
});
|
|
717
717
|
|
|
@@ -727,7 +727,7 @@ describe("CompareCriteria", () => {
|
|
|
727
727
|
criteriaFilter: filter,
|
|
728
728
|
}),
|
|
729
729
|
).toBe(
|
|
730
|
-
"Response Time (in ms)
|
|
730
|
+
"Response Time (in ms) ranged from 1 to 6 across all 6 readings, above the 0 threshold.",
|
|
731
731
|
);
|
|
732
732
|
});
|
|
733
733
|
|
|
@@ -756,7 +756,7 @@ describe("CompareCriteria", () => {
|
|
|
756
756
|
threshold: 1.9999,
|
|
757
757
|
criteriaFilter: filter,
|
|
758
758
|
}),
|
|
759
|
-
).toBe("Response Time (in ms)
|
|
759
|
+
).toBe("Response Time (in ms) was 12.35, above the 2 threshold.");
|
|
760
760
|
});
|
|
761
761
|
|
|
762
762
|
test("appends a unit suffix to both the value and the threshold", () => {
|
|
@@ -771,7 +771,7 @@ describe("CompareCriteria", () => {
|
|
|
771
771
|
criteriaFilter: filter,
|
|
772
772
|
unit: "ms",
|
|
773
773
|
}),
|
|
774
|
-
).toBe("Metric Value
|
|
774
|
+
).toBe("Metric Value was 100 ms, above the 50 ms threshold.");
|
|
775
775
|
});
|
|
776
776
|
|
|
777
777
|
/*
|
|
@@ -798,7 +798,7 @@ describe("CompareCriteria", () => {
|
|
|
798
798
|
criteriaFilter: filter,
|
|
799
799
|
unit: "By",
|
|
800
800
|
}),
|
|
801
|
-
).toBe("Metric Value
|
|
801
|
+
).toBe("Metric Value was 1.07 GB, above the 1 GB threshold.");
|
|
802
802
|
});
|
|
803
803
|
|
|
804
804
|
test("rescales a duration", () => {
|
|
@@ -813,10 +813,10 @@ describe("CompareCriteria", () => {
|
|
|
813
813
|
criteriaFilter: filter,
|
|
814
814
|
unit: "ms",
|
|
815
815
|
}),
|
|
816
|
-
).toBe("Metric Value
|
|
816
|
+
).toBe("Metric Value was 1.5 sec, above the 1 sec threshold.");
|
|
817
817
|
});
|
|
818
818
|
|
|
819
|
-
test("gives
|
|
819
|
+
test("gives each end of a range its own scale", () => {
|
|
820
820
|
const filter: CriteriaFilter = makeFilter({
|
|
821
821
|
checkOn: CheckOn.MetricValue,
|
|
822
822
|
filterType: FilterType.GreaterThan,
|
|
@@ -834,11 +834,11 @@ describe("CompareCriteria", () => {
|
|
|
834
834
|
unit: "By",
|
|
835
835
|
}),
|
|
836
836
|
).toBe(
|
|
837
|
-
"
|
|
837
|
+
"Metric Value over the last 5 minutes ranged from 922 KB to 1.26 MB across all 2 readings, above the 900 KB threshold.",
|
|
838
838
|
);
|
|
839
839
|
});
|
|
840
840
|
|
|
841
|
-
test("units ride both ends of
|
|
841
|
+
test("units ride both ends of a range summary", () => {
|
|
842
842
|
const filter: CriteriaFilter = makeFilter({
|
|
843
843
|
checkOn: CheckOn.MetricValue,
|
|
844
844
|
filterType: FilterType.GreaterThan,
|
|
@@ -854,8 +854,10 @@ describe("CompareCriteria", () => {
|
|
|
854
854
|
unit: "By",
|
|
855
855
|
});
|
|
856
856
|
|
|
857
|
-
expect(message).toContain(
|
|
858
|
-
|
|
857
|
+
expect(message).toContain(
|
|
858
|
+
"ranged from 1 GB to 6 GB across all 6 readings",
|
|
859
|
+
);
|
|
860
|
+
expect(message).toContain("above the 500 MB threshold");
|
|
859
861
|
});
|
|
860
862
|
|
|
861
863
|
/*
|
|
@@ -877,7 +879,7 @@ describe("CompareCriteria", () => {
|
|
|
877
879
|
});
|
|
878
880
|
|
|
879
881
|
expect(message).toBe(
|
|
880
|
-
"browser.cumulative_layout_shift
|
|
882
|
+
"browser.cumulative_layout_shift was 0.31, at or above the 0.25 threshold.",
|
|
881
883
|
);
|
|
882
884
|
expect(message).not.toContain("0.31 1");
|
|
883
885
|
});
|
|
@@ -897,7 +899,7 @@ describe("CompareCriteria", () => {
|
|
|
897
899
|
});
|
|
898
900
|
|
|
899
901
|
expect(message).toBe(
|
|
900
|
-
"system.cpu.utilization
|
|
902
|
+
"system.cpu.utilization was 5.85%, above the 5.00% threshold.",
|
|
901
903
|
);
|
|
902
904
|
});
|
|
903
905
|
|
|
@@ -913,7 +915,7 @@ describe("CompareCriteria", () => {
|
|
|
913
915
|
unit: "{thread}",
|
|
914
916
|
});
|
|
915
917
|
|
|
916
|
-
expect(message).toBe("Metric Value
|
|
918
|
+
expect(message).toBe("Metric Value was 512, above the 500 threshold.");
|
|
917
919
|
expect(message).not.toContain("{thread}");
|
|
918
920
|
});
|
|
919
921
|
|
|
@@ -938,7 +940,7 @@ describe("CompareCriteria", () => {
|
|
|
938
940
|
unit: "1",
|
|
939
941
|
});
|
|
940
942
|
|
|
941
|
-
expect(message).toBe("a / b_ratio
|
|
943
|
+
expect(message).toBe("a / b_ratio was 0.42, above the 0.4 threshold.");
|
|
942
944
|
expect(message).not.toContain("42.00%");
|
|
943
945
|
});
|
|
944
946
|
|
|
@@ -946,16 +948,16 @@ describe("CompareCriteria", () => {
|
|
|
946
948
|
* BACKWARD COMPATIBILITY. Only MetricMonitorCriteria and
|
|
947
949
|
* DatabaseMonitorCriteria pass a unit; every other monitor type
|
|
948
950
|
* carries its unit inside the CheckOn label ("Response Time (in ms)")
|
|
949
|
-
* and must keep
|
|
951
|
+
* and must keep its numbers unabbreviated.
|
|
950
952
|
*/
|
|
951
|
-
test("a message with no unit
|
|
953
|
+
test("a message with no unit preserves its original numeric scale", () => {
|
|
952
954
|
const filter: CriteriaFilter = makeFilter({
|
|
953
955
|
checkOn: CheckOn.ResponseTime,
|
|
954
956
|
filterType: FilterType.GreaterThan,
|
|
955
957
|
});
|
|
956
958
|
|
|
957
959
|
const expected: string =
|
|
958
|
-
"Response Time (in ms)
|
|
960
|
+
"Response Time (in ms) was 5000, above the 4900 threshold.";
|
|
959
961
|
|
|
960
962
|
expect(
|
|
961
963
|
CompareCriteria.getCompareMessage({
|
|
@@ -1028,7 +1030,7 @@ describe("CompareCriteria", () => {
|
|
|
1028
1030
|
threshold: 80,
|
|
1029
1031
|
criteriaFilter: withPath,
|
|
1030
1032
|
}),
|
|
1031
|
-
).toBe("Disk Usage (in %) on disk /var
|
|
1033
|
+
).toBe("Disk Usage (in %) on disk /var was 95, above the 80 threshold.");
|
|
1032
1034
|
|
|
1033
1035
|
const withoutPath: CriteriaFilter = makeFilter({
|
|
1034
1036
|
checkOn: CheckOn.DiskUsagePercent,
|
|
@@ -1074,7 +1076,7 @@ describe("CompareCriteria", () => {
|
|
|
1074
1076
|
criteriaFilter: metricFilter,
|
|
1075
1077
|
metricDisplayName: "http.server.duration",
|
|
1076
1078
|
}),
|
|
1077
|
-
).toBe("http.server.duration
|
|
1079
|
+
).toBe("http.server.duration was 100, above the 50 threshold.");
|
|
1078
1080
|
|
|
1079
1081
|
// For a non-MetricValue check the display name is ignored.
|
|
1080
1082
|
const responseFilter: CriteriaFilter = makeFilter({
|
|
@@ -1088,7 +1090,7 @@ describe("CompareCriteria", () => {
|
|
|
1088
1090
|
criteriaFilter: responseFilter,
|
|
1089
1091
|
metricDisplayName: "http.server.duration",
|
|
1090
1092
|
}),
|
|
1091
|
-
).toBe("Response Time (in ms)
|
|
1093
|
+
).toBe("Response Time (in ms) was 100, above the 50 threshold.");
|
|
1092
1094
|
});
|
|
1093
1095
|
|
|
1094
1096
|
test("True/False messages omit the 'which is' clause", () => {
|
|
@@ -1105,35 +1107,50 @@ describe("CompareCriteria", () => {
|
|
|
1105
1107
|
).toBe("Is Online is true.");
|
|
1106
1108
|
});
|
|
1107
1109
|
|
|
1108
|
-
test
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1110
|
+
test.each([
|
|
1111
|
+
{ filterType: FilterType.GreaterThan, value: 100, relation: "above" },
|
|
1112
|
+
{
|
|
1113
|
+
filterType: FilterType.GreaterThanOrEqualTo,
|
|
1114
|
+
value: 50,
|
|
1115
|
+
relation: "at or above",
|
|
1116
|
+
},
|
|
1117
|
+
{ filterType: FilterType.LessThan, value: 25, relation: "below" },
|
|
1118
|
+
{
|
|
1119
|
+
filterType: FilterType.LessThanOrEqualTo,
|
|
1120
|
+
value: 50,
|
|
1121
|
+
relation: "at or below",
|
|
1122
|
+
},
|
|
1123
|
+
{ filterType: FilterType.EqualTo, value: 50, relation: "equal to" },
|
|
1124
|
+
{
|
|
1125
|
+
filterType: FilterType.NotEqualTo,
|
|
1126
|
+
value: 100,
|
|
1127
|
+
relation: "different from",
|
|
1128
|
+
},
|
|
1129
|
+
])(
|
|
1130
|
+
"renders $filterType as $relation",
|
|
1131
|
+
({
|
|
1132
|
+
filterType,
|
|
1133
|
+
value,
|
|
1134
|
+
relation,
|
|
1135
|
+
}: {
|
|
1136
|
+
filterType: FilterType;
|
|
1137
|
+
value: number;
|
|
1138
|
+
relation: string;
|
|
1139
|
+
}) => {
|
|
1125
1140
|
const filter: CriteriaFilter = makeFilter({
|
|
1126
1141
|
checkOn: CheckOn.ResponseTime,
|
|
1127
1142
|
filterType,
|
|
1128
1143
|
});
|
|
1129
1144
|
expect(
|
|
1130
1145
|
CompareCriteria.getCompareMessage({
|
|
1131
|
-
values:
|
|
1146
|
+
values: value,
|
|
1132
1147
|
threshold: 50,
|
|
1133
1148
|
criteriaFilter: filter,
|
|
1134
1149
|
}),
|
|
1135
|
-
).
|
|
1136
|
-
|
|
1137
|
-
|
|
1150
|
+
).toBe(
|
|
1151
|
+
`Response Time (in ms) was ${value}, ${relation} the 50 threshold.`,
|
|
1152
|
+
);
|
|
1153
|
+
},
|
|
1154
|
+
);
|
|
1138
1155
|
});
|
|
1139
1156
|
});
|
|
@@ -295,7 +295,7 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
295
295
|
*/
|
|
296
296
|
expect(message).toContain("91.53");
|
|
297
297
|
expect(message).toContain(
|
|
298
|
-
"1 of 5
|
|
298
|
+
"in 1 of 5 readings, above the 90.00% threshold.",
|
|
299
299
|
);
|
|
300
300
|
});
|
|
301
301
|
|
|
@@ -312,7 +312,7 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
312
312
|
});
|
|
313
313
|
|
|
314
314
|
expect(message).toBe(
|
|
315
|
-
"
|
|
315
|
+
"CPU ranged from 95.00% to 97.00% across all 3 readings, above the 90.00% threshold.",
|
|
316
316
|
);
|
|
317
317
|
});
|
|
318
318
|
|
|
@@ -328,11 +328,13 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
328
328
|
unit: "%",
|
|
329
329
|
});
|
|
330
330
|
|
|
331
|
-
expect(message).toContain(
|
|
331
|
+
expect(message).toContain(
|
|
332
|
+
"ranged from 70.00% to 80.00% across 2 of 3 readings",
|
|
333
|
+
);
|
|
332
334
|
expect(message).not.toContain("95");
|
|
333
335
|
});
|
|
334
336
|
|
|
335
|
-
test("AllValues
|
|
337
|
+
test("AllValues describes the range and the full reading count", () => {
|
|
336
338
|
const message: string = CompareCriteria.getCompareMessage({
|
|
337
339
|
values: [95, 96],
|
|
338
340
|
threshold: 90,
|
|
@@ -345,7 +347,7 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
345
347
|
});
|
|
346
348
|
|
|
347
349
|
expect(message).toBe(
|
|
348
|
-
"
|
|
350
|
+
"CPU ranged from 95.00% to 96.00% across all 2 readings, above the 90.00% threshold.",
|
|
349
351
|
);
|
|
350
352
|
});
|
|
351
353
|
|
|
@@ -361,7 +363,7 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
361
363
|
unit: "%",
|
|
362
364
|
});
|
|
363
365
|
|
|
364
|
-
expect(message).toContain("The average of CPU
|
|
366
|
+
expect(message).toContain("The average of CPU was 20");
|
|
365
367
|
expect(message).not.toContain("10, 20, 30");
|
|
366
368
|
});
|
|
367
369
|
|
|
@@ -370,8 +372,8 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
370
372
|
[EvaluateOverTimeType.Sum, "The sum of"],
|
|
371
373
|
[EvaluateOverTimeType.MaximumValue, "The maximum of"],
|
|
372
374
|
[EvaluateOverTimeType.MunimumValue, "The minimum of"],
|
|
373
|
-
[EvaluateOverTimeType.AnyValue, "
|
|
374
|
-
[EvaluateOverTimeType.AllValues, "
|
|
375
|
+
[EvaluateOverTimeType.AnyValue, "CPU was"],
|
|
376
|
+
[EvaluateOverTimeType.AllValues, "CPU was"],
|
|
375
377
|
])(
|
|
376
378
|
"%s is named in the sentence as %s",
|
|
377
379
|
(evaluationType: EvaluateOverTimeType, expectedPrefix: string) => {
|
|
@@ -389,8 +391,8 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
389
391
|
|
|
390
392
|
test("a message rendered for a filter that did not match degrades gracefully", () => {
|
|
391
393
|
/*
|
|
392
|
-
* Nothing in the window is above 200
|
|
393
|
-
*
|
|
394
|
+
* Nothing in the window is above 200. Report what was observed,
|
|
395
|
+
* then describe the unmet requirement without claiming a breach.
|
|
394
396
|
*/
|
|
395
397
|
const message: string = CompareCriteria.getCompareMessage({
|
|
396
398
|
values: WINDOW,
|
|
@@ -405,6 +407,9 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
405
407
|
|
|
406
408
|
expect(message).toContain("72.35");
|
|
407
409
|
expect(message).not.toContain("samples in the evaluation window");
|
|
410
|
+
expect(message).toContain(
|
|
411
|
+
"The condition requires at least one reading to be above the 200.00% threshold.",
|
|
412
|
+
);
|
|
408
413
|
});
|
|
409
414
|
|
|
410
415
|
test("a non-numeric window is left alone", () => {
|
|
@@ -470,9 +475,7 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
470
475
|
test("the dimensionless '1' is dropped from the value AND the threshold", () => {
|
|
471
476
|
const message: string = unitMessage("1");
|
|
472
477
|
|
|
473
|
-
expect(message).toBe(
|
|
474
|
-
"Any value of Metric Value is 0.85 which is greater than 0.8.",
|
|
475
|
-
);
|
|
478
|
+
expect(message).toBe("Metric Value was 0.85, above the 0.8 threshold.");
|
|
476
479
|
// The two halves of the defect, pinned separately.
|
|
477
480
|
expect(message).not.toContain("0.85 1");
|
|
478
481
|
expect(message).not.toContain("0.8 1");
|
|
@@ -492,7 +495,7 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
492
495
|
unit: "1",
|
|
493
496
|
});
|
|
494
497
|
|
|
495
|
-
expect(message).toContain("0.31
|
|
498
|
+
expect(message).toContain("0.31, at or above the 0.25 threshold");
|
|
496
499
|
expect(message).not.toMatch(/\d\s1\b/);
|
|
497
500
|
});
|
|
498
501
|
|
|
@@ -501,9 +504,7 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
501
504
|
|
|
502
505
|
expect(message).not.toContain("{cpu}");
|
|
503
506
|
expect(message).not.toContain("{");
|
|
504
|
-
expect(message).toBe(
|
|
505
|
-
"Any value of Metric Value is 0.85 which is greater than 0.8.",
|
|
506
|
-
);
|
|
507
|
+
expect(message).toBe("Metric Value was 0.85, above the 0.8 threshold.");
|
|
507
508
|
|
|
508
509
|
expect(unitMessage("{packets}")).not.toContain("{packets}");
|
|
509
510
|
expect(unitMessage("{errors}")).not.toContain("{errors}");
|
|
@@ -521,13 +522,13 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
521
522
|
* value and the threshold can never be quoted in different units.
|
|
522
523
|
*/
|
|
523
524
|
expect(unitMessage("By")).toBe(
|
|
524
|
-
"
|
|
525
|
+
"Metric Value was 0.85 B, above the 0.8 B threshold.",
|
|
525
526
|
);
|
|
526
527
|
expect(unitMessage("%")).toBe(
|
|
527
|
-
"
|
|
528
|
+
"Metric Value was 0.85%, above the 0.80% threshold.",
|
|
528
529
|
);
|
|
529
530
|
expect(unitMessage("ms")).toBe(
|
|
530
|
-
"
|
|
531
|
+
"Metric Value was 850 µs, above the 800 µs threshold.",
|
|
531
532
|
);
|
|
532
533
|
// "1" is suppressed; a unit that merely CONTAINS a 1 is not.
|
|
533
534
|
expect(unitMessage("m/s2")).toContain("0.85 m/s2");
|
|
@@ -538,17 +539,17 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
538
539
|
const message: string = unitMessage(" ms ");
|
|
539
540
|
|
|
540
541
|
expect(message).toBe(
|
|
541
|
-
"
|
|
542
|
+
"Metric Value was 850 µs, above the 800 µs threshold.",
|
|
542
543
|
);
|
|
543
544
|
expect(message).not.toContain(" ");
|
|
544
545
|
});
|
|
545
546
|
|
|
546
547
|
test("a whitespace-only unit is treated as no unit at all", () => {
|
|
547
548
|
expect(unitMessage(" ")).toBe(
|
|
548
|
-
"
|
|
549
|
+
"Metric Value was 0.85, above the 0.8 threshold.",
|
|
549
550
|
);
|
|
550
551
|
expect(unitMessage(undefined)).toBe(
|
|
551
|
-
"
|
|
552
|
+
"Metric Value was 0.85, above the 0.8 threshold.",
|
|
552
553
|
);
|
|
553
554
|
// A padded "1" is still the dimensionless marker.
|
|
554
555
|
expect(unitMessage(" 1 ")).not.toMatch(/\d\s1\b/);
|
|
@@ -583,7 +584,7 @@ describe("CompareCriteria aggregation semantics", () => {
|
|
|
583
584
|
|
|
584
585
|
expect(message).not.toMatch(/\d\s1\b/);
|
|
585
586
|
expect(message).toContain("0.85");
|
|
586
|
-
expect(message).
|
|
587
|
+
expect(message).toMatch(/0\.8(?: threshold)?\./);
|
|
587
588
|
}
|
|
588
589
|
});
|
|
589
590
|
});
|