@oneuptime/common 11.7.4 → 12.0.0
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/ExceptionInstance.ts +67 -0
- package/Models/AnalyticsModels/Index.ts +10 -0
- package/Models/AnalyticsModels/Log.ts +60 -0
- package/Models/AnalyticsModels/RumSession.ts +1401 -0
- package/Models/AnalyticsModels/RumSessionChunk.ts +798 -0
- package/Models/AnalyticsModels/Span.ts +60 -0
- package/Models/DatabaseModels/AIAgentTaskPullRequest.ts +52 -0
- package/Models/DatabaseModels/AIRun.ts +31 -0
- package/Models/DatabaseModels/Alert.ts +29 -0
- package/Models/DatabaseModels/AlertCustomField.ts +1 -1
- package/Models/DatabaseModels/AlertFeed.ts +1 -0
- package/Models/DatabaseModels/AutoRemediationRule.ts +989 -0
- package/Models/DatabaseModels/AutoRemediationSuggestion.ts +874 -0
- package/Models/DatabaseModels/CodeRepository.ts +129 -0
- package/Models/DatabaseModels/GlobalConfig.ts +312 -0
- package/Models/DatabaseModels/Incident.ts +29 -0
- package/Models/DatabaseModels/IncidentCustomField.ts +1 -1
- package/Models/DatabaseModels/IncidentFeed.ts +1 -0
- package/Models/DatabaseModels/Index.ts +21 -8
- package/Models/DatabaseModels/InstanceHealthLog.ts +8 -0
- package/Models/DatabaseModels/MonitorCustomField.ts +1 -1
- package/Models/DatabaseModels/MonitorStatus.ts +1 -1
- package/Models/DatabaseModels/NetworkDeviceLabelRule.ts +2 -2
- package/Models/DatabaseModels/NetworkDeviceOwnerRule.ts +2 -2
- package/Models/DatabaseModels/NetworkSiteAssignmentRule.ts +1 -1
- package/Models/DatabaseModels/OnCallDutyPolicyCustomField.ts +1 -1
- package/Models/DatabaseModels/Project.ts +231 -0
- package/Models/DatabaseModels/RumApplication.ts +906 -0
- package/Models/DatabaseModels/RumSessionErasureRequest.ts +561 -0
- package/Models/DatabaseModels/RumSessionPin.ts +457 -0
- package/Models/DatabaseModels/RumSessionReplayView.ts +406 -0
- package/Models/DatabaseModels/RunbookCredential.ts +673 -0
- package/Models/DatabaseModels/RunbookSecret.ts +7 -7
- package/Models/DatabaseModels/{RunbookAgent.ts → Runner.ts} +206 -46
- package/Models/DatabaseModels/{RunbookAgentJob.ts → RunnerJob.ts} +151 -18
- package/Models/DatabaseModels/{RunbookAgentOwnerTeam.ts → RunnerOwnerTeam.ts} +41 -43
- package/Models/DatabaseModels/{RunbookAgentOwnerUser.ts → RunnerOwnerUser.ts} +41 -43
- package/Models/DatabaseModels/ScheduledMaintenanceCustomField.ts +1 -1
- package/Models/DatabaseModels/StatusPageCustomField.ts +1 -1
- package/Models/DatabaseModels/TeamCustomField.ts +1 -1
- package/Models/DatabaseModels/TeamMemberCustomField.ts +1 -1
- package/Server/API/AIAgentDataAPI.ts +179 -48
- package/Server/API/AIAgentTaskAPI.ts +36 -37
- package/Server/API/AIAgentTaskLogAPI.ts +19 -33
- package/Server/API/AutoRemediationAPI.ts +557 -0
- package/Server/API/BaseAnalyticsAPI.ts +4 -1
- package/Server/API/CommonAPI.ts +35 -0
- package/Server/API/DashboardAPI.ts +340 -15
- package/Server/API/TelemetryAPI.ts +1622 -3
- package/Server/API/UserIncomingCallNumberAPI.ts +31 -0
- package/Server/DatabaseConfig.ts +26 -1
- package/Server/EnvironmentConfig.ts +13 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785417351021-AddSessionReplay.ts +293 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785491583874-EnableSessionReplayByDefault.ts +67 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785496223183-AddMonitorSummaryToIncidentAndAlert.ts +33 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785516996695-AddSessionReplayReliabilityColumns.ts +40 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785533806494-AddSessionReplayCorrelationColumns.ts +54 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785749674203-AddRedisAndPostgresHealthNotificationColumns.ts +104 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785763818197-AddAutoRemediation.ts +349 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785768089408-AddRemediationVerification.ts +67 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785776960660-AddRunnerCapabilities.ts +23 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785790000000-AddIncidentInvestigationGating.ts +42 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785800000000-AddRunbookCredential.ts +84 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785810000000-RenameRunbookAgentToRunner.ts +152 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785860000000-SessionReplayDefaultToSensitiveInputMasking.ts +81 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785870000000-AddAiCommandRemediation.ts +151 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785880000000-AlignRunnerSchemaWithEntities.ts +597 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785890000000-AddFixVerificationAndAutomaticCodeFixes.ts +71 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +32 -0
- package/Server/Services/AIRunService.ts +10 -0
- package/Server/Services/AIService.ts +30 -0
- package/Server/Services/AlertService.ts +41 -4
- package/Server/Services/AlertSeverityService.ts +25 -11
- package/Server/Services/AlertStateService.ts +25 -11
- package/Server/Services/AutoRemediationRuleEngineService.ts +1101 -0
- package/Server/Services/{RunbookAgentOwnerTeamService.ts → AutoRemediationRuleService.ts} +1 -1
- package/Server/Services/AutoRemediationSuggestionService.ts +183 -0
- package/Server/Services/BillingService.ts +50 -1
- package/Server/Services/DatabaseService.ts +92 -4
- package/Server/Services/IncidentService.ts +56 -4
- package/Server/Services/IncidentSeverityService.ts +25 -11
- package/Server/Services/IncidentStateService.ts +25 -11
- package/Server/Services/Index.ts +19 -0
- package/Server/Services/MonitorService.ts +24 -0
- package/Server/Services/MonitorStatusService.ts +25 -11
- package/Server/Services/NetworkDeviceLabelRuleEngineService.ts +18 -19
- package/Server/Services/NetworkDeviceLabelRuleService.ts +39 -0
- package/Server/Services/NetworkDeviceOwnerRuleEngineService.ts +18 -19
- package/Server/Services/NetworkDeviceOwnerRuleService.ts +37 -0
- package/Server/Services/NetworkDeviceService.ts +172 -21
- package/Server/Services/NetworkSiteAssignmentRuleService.ts +92 -12
- package/Server/Services/NetworkSiteService.ts +27 -10
- package/Server/Services/ProjectService.ts +47 -0
- package/Server/Services/RumApplicationService.ts +240 -1
- package/Server/Services/RumSessionChunkService.ts +11 -0
- package/Server/Services/RumSessionErasureRequestService.ts +197 -0
- package/Server/Services/RumSessionPinService.ts +213 -0
- package/Server/Services/RumSessionReplayViewService.ts +201 -0
- package/Server/Services/RumSessionService.ts +123 -0
- package/Server/Services/RunbookCredentialService.ts +76 -0
- package/Server/Services/{RunbookAgentJobService.ts → RunnerJobService.ts} +202 -51
- package/Server/Services/{RunbookAgentOwnerUserService.ts → RunnerOwnerTeamService.ts} +1 -1
- package/Server/Services/RunnerOwnerUserService.ts +10 -0
- package/Server/Services/RunnerService.ts +172 -0
- package/Server/Services/ScheduledMaintenanceStateService.ts +25 -11
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +15 -1
- package/Server/Services/ServiceService.ts +8 -2
- package/Server/Services/StatusPageService.ts +240 -36
- package/Server/Services/StatusPageSubscriberNotificationTemplateService.ts +20 -1
- package/Server/Services/TelemetryExceptionService.ts +3 -16
- package/Server/Services/TelemetryUsageBillingService.ts +33 -2
- package/Server/Services/TraceAggregationService.ts +196 -32
- package/Server/Types/Billing/MeteredPlan/AllMeteredPlans.ts +17 -0
- package/Server/Types/Billing/MeteredPlan/ServerMeteredPlan.ts +10 -0
- package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +63 -7
- package/Server/Utils/AI/CodeFix/CodeFixAgentAuth.ts +128 -0
- package/Server/Utils/AI/CodeFix/CodeFixAgentAvailability.ts +54 -0
- package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +17 -10
- package/Server/Utils/AI/CodeFix/CodeFixRunQueue.ts +8 -6
- package/Server/Utils/AI/Remediation/RemediationCommandTools.ts +943 -0
- package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +866 -0
- package/Server/Utils/AI/Remediation/RemediationPlanRunner.ts +823 -0
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +103 -12
- package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +75 -17
- package/Server/Utils/AI/SRE/ConfidenceSignal.ts +28 -6
- package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +202 -12
- package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +264 -14
- package/Server/Utils/AI/SRE/Insights/Triage.ts +2 -7
- package/Server/Utils/AI/SRE/InvestigationGrader.ts +5 -24
- package/Server/Utils/AI/SRE/InvestigationQueue.ts +259 -20
- package/Server/Utils/AI/SRE/PostedRootCause.ts +82 -0
- package/Server/Utils/AI/SRE/README.md +3 -2
- package/Server/Utils/AI/SRE/RemediationHandoff.ts +82 -0
- package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +6 -19
- package/Server/Utils/AI/Toolbox/CodeWriteTools.ts +2 -2
- package/Server/Utils/Alert/AlertPrivacyFilter.ts +58 -0
- package/Server/Utils/AutoRemediation/CommandPlanExecutor.ts +604 -0
- package/Server/Utils/AutoRemediation/RemediationVerifier.ts +619 -0
- package/Server/Utils/CorsOptions.ts +52 -0
- package/Server/Utils/Database/RelationIdUtil.ts +68 -0
- package/Server/Utils/Incident/IncidentPrivacyFilter.ts +60 -0
- package/Server/Utils/InstanceHealth/PostgresHealth.ts +286 -0
- package/Server/Utils/InstanceHealth/RedisHealth.ts +434 -0
- package/Server/Utils/Monitor/MonitorAlert.ts +20 -0
- package/Server/Utils/Monitor/MonitorIncident.ts +20 -0
- package/Server/Utils/Monitor/MonitorResource.ts +19 -0
- package/Server/Utils/Monitor/MonitorSummaryCapture.ts +104 -0
- package/Server/Utils/NetworkDevice/RulePatternValidator.ts +44 -0
- package/Server/Utils/OpenAPI.ts +2 -1
- package/Server/Utils/Runbook/RunbookExecutePermission.ts +94 -0
- package/Server/Utils/SessionReplay/SessionReplayErasureTombstone.ts +128 -0
- package/Server/Utils/SessionReplay/SessionReplayGateCache.ts +586 -0
- package/Server/Utils/SessionReplay/SessionReplayGateCacheStore.ts +188 -0
- package/Server/Utils/SessionReplay/SessionReplayReadService.ts +1449 -0
- package/Server/Utils/SessionReplay/SessionReplayRetention.ts +114 -0
- package/Server/Utils/SessionReplay/SessionReplayTargeting.ts +144 -0
- package/Server/Utils/SessionReplay/SessionReplayUsage.ts +92 -0
- package/Server/Utils/StartServer.ts +47 -3
- package/Server/Utils/Telemetry/TelemetryFanInWriter.ts +44 -10
- package/Tests/App/Dashboard/AddWidgetModal.test.tsx +557 -0
- package/Tests/App/Dashboard/WidgetCatalog.test.ts +479 -0
- package/Tests/App/StatusPage/BulkAddStatusPageMonitors.test.ts +343 -0
- package/Tests/App/StatusPage/BulkAddStatusPageMonitorsModal.test.tsx +320 -0
- package/Tests/Models/AnalyticsModels/RumSessionSchema.test.ts +455 -0
- package/Tests/Models/AnalyticsModels/SessionIdCorrelation.test.ts +158 -0
- package/Tests/Models/DatabaseModels/SessionReplayModels.test.ts +447 -0
- package/Tests/Models/RunnerVersionLabel.test.ts +223 -0
- package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +1287 -0
- package/Tests/Server/API/LegacyRunbookAgentRoutes.test.ts +117 -0
- package/Tests/Server/API/SessionReplayAPI.test.ts +2093 -0
- package/Tests/Server/API/UserIncomingCallNumberApi.test.ts +429 -0
- package/Tests/Server/API/UserSmsApi.test.ts +68 -2
- package/Tests/Server/DatabaseConfig.test.ts +150 -0
- package/Tests/Server/Infrastructure/ContainerBootConfiguration.test.ts +2 -2
- package/Tests/Server/Infrastructure/ProcessSignalDelivery.test.ts +2 -3
- package/Tests/Server/Services/AIRunCodeFixClaimScoping.test.ts +100 -0
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +8 -0
- package/Tests/Server/Services/AutoRemediationCommandRuleEngine.test.ts +334 -0
- package/Tests/Server/Services/AutoRemediationRuleEngineService.test.ts +517 -0
- package/Tests/Server/Services/BillingService.test.ts +158 -1
- package/Tests/Server/Services/DatabaseServiceEmptyUpdate.test.ts +24 -2
- package/Tests/Server/Services/DatabaseServiceSanitizeUpdateData.test.ts +17 -10
- package/Tests/Server/Services/DatabaseServiceUpdateColumnsWithoutHooks.test.ts +128 -0
- package/Tests/Server/Services/DatabaseServiceUpdateWriteRouting.test.ts +178 -0
- package/Tests/Server/Services/DatabaseServiceUpdateWriteRoutingMonitor.test.ts +206 -0
- package/Tests/Server/Services/MonitorServiceOperationalStatusSelection.test.ts +145 -0
- package/Tests/Server/Services/NetworkDeviceRuleEngines.test.ts +726 -0
- package/Tests/Server/Services/NetworkDeviceSiteAssignment.test.ts +570 -9
- package/Tests/Server/Services/NetworkSiteAssignmentRuleService.test.ts +94 -1
- package/Tests/Server/Services/NetworkSiteService.test.ts +85 -0
- package/Tests/Server/Services/RumApplicationReplayHealth.test.ts +114 -0
- package/Tests/Server/Services/RunbookCredentialService.test.ts +657 -0
- package/Tests/Server/Services/SessionReplayCreatePath.test.ts +376 -0
- package/Tests/Server/Services/SessionReplayGateCacheInvalidation.test.ts +211 -0
- package/Tests/Server/Services/SessionReplayMetering.test.ts +174 -0
- package/Tests/Server/Services/StatusPageSubscriberReport.test.ts +555 -0
- package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +25 -4
- package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +17 -2
- package/Tests/Server/Services/TraceAggregationService.test.ts +48 -0
- package/Tests/Server/Services/TraceAnalyticsResourceDisplayNames.test.ts +855 -0
- package/Tests/Server/Services/UpdateOneByIdKeepsRowId.test.ts +38 -27
- package/Tests/Server/Utils/AI/AIConfidenceSignal.test.ts +44 -0
- package/Tests/Server/Utils/AI/AIIncidentGating.test.ts +475 -0
- package/Tests/Server/Utils/AI/CodeFix/CodeFixAgentAuth.test.ts +257 -0
- package/Tests/Server/Utils/AI/CodeFix/CodeFixAgentAvailability.test.ts +236 -0
- package/Tests/Server/Utils/AI/CodeFixReadiness.test.ts +44 -6
- package/Tests/Server/Utils/AI/CodeFixRunQueue.test.ts +47 -1
- package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +2 -2
- package/Tests/Server/Utils/AI/FixFromIncidentAutoTrigger.test.ts +294 -0
- package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +2 -2
- package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +47 -3
- package/Tests/Server/Utils/AI/InvestigationQueueRemediationExecution.test.ts +233 -0
- package/Tests/Server/Utils/AI/InvestigationSettlement.test.ts +463 -0
- package/Tests/Server/Utils/AI/PostedRootCause.test.ts +254 -0
- package/Tests/Server/Utils/AI/RemediationAllowlistNormalization.test.ts +248 -0
- package/Tests/Server/Utils/AI/RemediationCommandTools.test.ts +1008 -0
- package/Tests/Server/Utils/AI/RemediationExecutionRunner.test.ts +887 -0
- package/Tests/Server/Utils/AI/RemediationHandoff.test.ts +306 -0
- package/Tests/Server/Utils/AI/RemediationPlanRunner.test.ts +745 -0
- package/Tests/Server/Utils/AI/SubjectCodeFixRunDedupe.test.ts +291 -0
- package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutor.test.ts +1050 -0
- package/Tests/Server/Utils/AutoRemediation/CommandPlanVerification.test.ts +350 -0
- package/Tests/Server/Utils/AutoRemediation/RemediationVerifier.test.ts +341 -0
- package/Tests/Server/Utils/CorsOptions.test.ts +119 -0
- package/Tests/Server/Utils/Database/RelationIdUtil.test.ts +120 -0
- package/Tests/Server/Utils/Database/ResolveReferenceId.test.ts +60 -0
- package/Tests/Server/Utils/InstanceHealth/PostgresHealth.test.ts +337 -0
- package/Tests/Server/Utils/InstanceHealth/RedisHealth.test.ts +671 -0
- package/Tests/Server/Utils/Monitor/MonitorSummaryCapture.test.ts +205 -0
- package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +313 -0
- package/Tests/Server/Utils/PushNotificationUtil.test.ts +228 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayGateCachePolicy.test.ts +177 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayOriginAllowlist.test.ts +108 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayRetention.test.ts +229 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayTargeting.test.ts +246 -0
- package/Tests/Server/Utils/Telemetry/TelemetryFanInWriter.test.ts +110 -0
- package/Tests/Types/AI/AIRunStatus.test.ts +25 -0
- package/Tests/Types/AutoRemediation/AiRemediationCommandPlan.test.ts +1063 -0
- package/Tests/Types/BaseDatabase/AggregationType.test.ts +56 -0
- package/Tests/Types/CustomField/CustomFieldDropdownOption.test.ts +227 -0
- package/Tests/Types/Dashboard/DashboardTemplateInvariants.test.ts +811 -0
- package/Tests/Types/Dashboard/RumDashboardTemplate.test.ts +1238 -0
- package/Tests/Types/Day/DayOfWeek.test.ts +46 -0
- package/Tests/Types/Docker/DockerInventoryExtractor.test.ts +249 -0
- package/Tests/Types/Kubernetes/KubernetesInventoryExtractor.test.ts +231 -0
- package/Tests/Types/Kubernetes/KubernetesRightSizing.test.ts +323 -0
- package/Tests/Types/Metrics/MetricDownsamplingRetentionDays.test.ts +77 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +42 -14
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +2 -2
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +3 -2
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.test.ts +1 -1
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +6 -3
- package/Tests/Types/Monitor/RumAlertTemplates.test.ts +285 -0
- package/Tests/Types/Podman/PodmanInventoryExtractor.test.ts +159 -0
- package/Tests/Types/Runbook/RunbookExecutionDeadline.test.ts +268 -0
- package/Tests/Types/Runbook/RunbookStepType.test.ts +242 -0
- package/Tests/Types/Telemetry/TelemetryRetentionConfig.test.ts +225 -0
- package/Tests/Types/Text.test.ts +60 -0
- package/Tests/UI/Components/AutocompleteTextInputMenu.test.tsx +555 -0
- package/Tests/UI/Components/BulkLabelActions.test.tsx +1502 -0
- package/Tests/UI/Components/BulkOwnerActions.test.tsx +1255 -0
- package/Tests/UI/Components/CustomFields/DropdownOptionsInput.test.tsx +228 -0
- package/Tests/UI/Components/Detail/DropdownColors.test.tsx +128 -0
- package/Tests/UI/Components/Dropdown/DropdownValueBadge.test.tsx +60 -0
- package/Tests/UI/Components/FilterModalOperatorMenu.test.tsx +674 -0
- package/Tests/UI/Components/Forms/ColorPicker.test.tsx +48 -0
- package/Tests/UI/Components/Forms/ColorPickerPopup.test.tsx +222 -0
- package/Tests/UI/Components/Forms/IconPickerPopup.test.tsx +270 -0
- package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +125 -6
- package/Tests/UI/Components/OperatorSelectorFilterTypes.test.tsx +1595 -0
- package/Tests/UI/Components/OperatorSelectorKeyboard.test.tsx +851 -0
- package/Tests/UI/Components/OperatorSelectorMenu.test.tsx +1229 -0
- package/Tests/UI/Components/Pagination.test.tsx +85 -0
- package/Tests/UI/Monitor/MonitorSummarySnapshotRender.test.tsx +248 -0
- package/Tests/UI/Rum/ChunkLoader.test.ts +790 -0
- package/Tests/UI/Rum/ReplayScrubber.test.tsx +236 -0
- package/Tests/UI/Rum/ReplayStage.test.tsx +606 -0
- package/Tests/UI/Utils/Timezone.test.ts +86 -0
- package/Tests/UI/Utils/UseClockTick.test.tsx +276 -0
- package/Tests/Utils/AiRemediation/CommandPolicy.test.ts +1063 -0
- package/Tests/Utils/Dashboard/ClockWidgetFormat.test.ts +1374 -0
- package/Tests/Utils/Dashboard/DashboardClockComponent.test.ts +362 -0
- package/Tests/Utils/Dashboard/DashboardHtmlComponent.test.ts +217 -0
- package/Tests/Utils/Dashboard/HtmlWidgetDocument.test.ts +656 -0
- package/Tests/Utils/Dashboard/ValueWidgetLayout.test.ts +1007 -0
- package/Tests/Utils/Metrics/MetricSeriesScope.test.ts +1197 -0
- package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +839 -0
- package/Tests/Utils/NetworkSite/CidrMatchUtil.test.ts +69 -0
- package/Tests/Utils/Rules/RulePatternMatchUtil.test.ts +274 -0
- package/Tests/Utils/Rum/ChunkMath.test.ts +286 -0
- package/Tests/Utils/Rum/Masking.test.ts +186 -0
- package/Tests/Utils/Rum/SessionIdentity.test.ts +272 -0
- package/Tests/Utils/Rum/SessionSampling.test.ts +164 -0
- package/Tests/Utils/Rum/UrlScrubber.test.ts +175 -0
- package/Tests/Utils/StatusPage/Report.test.ts +708 -0
- package/Tests/Utils/ValueFormatter.test.ts +299 -1
- package/Types/AI/AIRunStatus.ts +18 -7
- package/Types/AI/AIRunType.ts +18 -0
- package/Types/AI/FixVerificationStatus.ts +21 -0
- package/Types/AnalyticsDatabase/AnalyticsTableName.ts +16 -0
- package/Types/AutoRemediation/AiRemediationCommandPlan.ts +304 -0
- package/Types/AutoRemediation/AutoRemediationExecutionMode.ts +17 -0
- package/Types/AutoRemediation/AutoRemediationSuggestionStatus.ts +35 -0
- package/Types/AutoRemediation/AutoRemediationSuggestionType.ts +17 -0
- package/Types/AutoRemediation/AutoRemediationTriggerEntity.ts +11 -0
- package/Types/AutoRemediation/AutoRemediationVerificationStatus.ts +21 -0
- package/Types/CustomField/CustomFieldDropdownOption.ts +190 -0
- package/Types/Dashboard/DashboardComponentType.ts +2 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +4 -0
- package/Types/Dashboard/DashboardComponents/DashboardClockComponent.ts +45 -0
- package/Types/Dashboard/DashboardComponents/DashboardHtmlComponent.ts +27 -0
- package/Types/Dashboard/DashboardComponents/DashboardValueComponent.ts +8 -0
- package/Types/Dashboard/DashboardTemplates.ts +516 -0
- package/Types/Date.ts +6 -0
- package/Types/Email/EmailTemplateType.ts +2 -0
- package/Types/Kubernetes/KubernetesRightSizing.ts +353 -0
- package/Types/MeteredPlan/ProductType.ts +1 -0
- package/Types/Monitor/MonitorStepMetricMonitor.ts +27 -1
- package/Types/Monitor/MonitorSteps.ts +5 -0
- package/Types/Monitor/MonitorSummarySnapshot.ts +88 -0
- package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +52 -10
- package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +7 -5
- package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +101 -20
- package/Types/Monitor/RumAlertTemplates.ts +386 -0
- package/Types/Permission.ts +204 -24
- package/Types/Rum/SessionReplay.ts +452 -0
- package/Types/Rum/SessionReplayCaptureTrigger.ts +26 -0
- package/Types/Rum/SessionReplayConsentMode.ts +27 -0
- package/Types/Rum/SessionReplayMaskingMode.ts +86 -0
- package/Types/Rum/SessionReplayTriggerReason.ts +31 -0
- package/Types/Runbook/RunbookCredentialType.ts +6 -0
- package/Types/Runbook/RunbookStep.ts +66 -1
- package/Types/Runbook/RunbookStepType.ts +26 -0
- package/Types/Runbook/RunnerJobOrigin.ts +20 -0
- package/Types/Runbook/{RunbookAgentJobStatus.ts → RunnerJobStatus.ts} +2 -2
- package/Types/StatusPage/StatusPageReport.ts +99 -0
- package/Types/Telemetry/TelemetryRetentionConfig.ts +18 -1
- package/Types/Text.ts +33 -0
- package/UI/Components/AutocompleteTextInput/AutocompleteTextInput.tsx +260 -75
- package/UI/Components/BulkUpdate/BulkLabelActions.tsx +99 -9
- package/UI/Components/BulkUpdate/BulkOwnerActions.tsx +11 -0
- package/UI/Components/CustomFields/CustomFieldsDetail.tsx +19 -14
- package/UI/Components/CustomFields/DropdownOptionsInput.tsx +144 -54
- package/UI/Components/Detail/Detail.tsx +9 -22
- package/UI/Components/Dropdown/Dropdown.tsx +2 -5
- package/UI/Components/Dropdown/DropdownMenuZIndex.ts +7 -0
- package/UI/Components/Dropdown/DropdownValueBadge.tsx +61 -0
- package/UI/Components/Filters/OperatorSelector.tsx +350 -39
- package/UI/Components/Forms/Fields/ColorPicker.tsx +60 -27
- package/UI/Components/Forms/Fields/IconPicker.tsx +89 -60
- package/UI/Components/Forms/Validation.ts +9 -4
- package/UI/Components/List/List.tsx +1 -0
- package/UI/Components/ModelTable/CustomFieldColumns.tsx +41 -32
- package/UI/Components/Pagination/Pagination.tsx +33 -10
- package/UI/Components/Table/Table.tsx +1 -0
- package/UI/Types/UseAnchoredFieldPopup.ts +321 -0
- package/UI/Utils/Dropdown.ts +26 -0
- package/UI/Utils/Timezone.ts +18 -2
- package/UI/Utils/UseClockTick.ts +78 -0
- package/Utils/AiRemediation/CommandPolicy.ts +398 -0
- package/Utils/Dashboard/ClockWidgetFormat.ts +604 -0
- package/Utils/Dashboard/Components/DashboardClockComponent.ts +181 -0
- package/Utils/Dashboard/Components/DashboardHtmlComponent.ts +162 -0
- package/Utils/Dashboard/Components/DashboardValueComponent.ts +12 -1
- package/Utils/Dashboard/Components/Index.ts +14 -0
- package/Utils/Dashboard/HtmlWidgetDocument.ts +309 -0
- package/Utils/Dashboard/ValueWidgetLayout.ts +471 -0
- package/Utils/Metrics/MetricSeriesScope.ts +301 -0
- package/Utils/Monitor/MonitorSummarySnapshotUtil.ts +593 -0
- package/Utils/NetworkSite/CidrMatchUtil.ts +30 -17
- package/Utils/Rules/RulePatternMatchUtil.ts +103 -0
- package/Utils/Rum/ChunkMath.ts +211 -0
- package/Utils/Rum/Masking.ts +168 -0
- package/Utils/Rum/SessionIdentity.ts +230 -0
- package/Utils/Rum/SessionSampling.ts +108 -0
- package/Utils/Rum/UrlScrubber.ts +185 -0
- package/Utils/Schema/ModelSchema.ts +27 -3
- package/Utils/StatusPage/Report.ts +304 -0
- package/Utils/ValueFormatter.ts +300 -54
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +63 -0
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Index.js +10 -0
- package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Log.js +56 -0
- package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/RumSession.js +1159 -0
- package/build/dist/Models/AnalyticsModels/RumSession.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/RumSessionChunk.js +670 -0
- package/build/dist/Models/AnalyticsModels/RumSessionChunk.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/Span.js +56 -0
- package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +54 -0
- package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIRun.js +32 -0
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Alert.js +30 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertCustomField.js +1 -1
- package/build/dist/Models/DatabaseModels/AlertCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertFeed.js +1 -0
- package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AutoRemediationRule.js +998 -0
- package/build/dist/Models/DatabaseModels/AutoRemediationRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js +917 -0
- package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CodeRepository.js +132 -0
- package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +327 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +30 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentCustomField.js +1 -1
- package/build/dist/Models/DatabaseModels/IncidentCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentFeed.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +20 -8
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/InstanceHealthLog.js +8 -0
- package/build/dist/Models/DatabaseModels/InstanceHealthLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorCustomField.js +1 -1
- package/build/dist/Models/DatabaseModels/MonitorCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatus.js +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatus.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceLabelRule.js +2 -2
- package/build/dist/Models/DatabaseModels/NetworkDeviceLabelRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerRule.js +2 -2
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +235 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RumApplication.js +930 -0
- package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RumSessionErasureRequest.js +591 -0
- package/build/dist/Models/DatabaseModels/RumSessionErasureRequest.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RumSessionPin.js +483 -0
- package/build/dist/Models/DatabaseModels/RumSessionPin.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RumSessionReplayView.js +433 -0
- package/build/dist/Models/DatabaseModels/RumSessionReplayView.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RunbookCredential.js +693 -0
- package/build/dist/Models/DatabaseModels/RunbookCredential.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RunbookSecret.js +8 -8
- package/build/dist/Models/DatabaseModels/RunbookSecret.js.map +1 -1
- package/build/dist/Models/DatabaseModels/{RunbookAgent.js → Runner.js} +235 -70
- package/build/dist/Models/DatabaseModels/Runner.js.map +1 -0
- package/build/dist/Models/DatabaseModels/{RunbookAgentJob.js → RunnerJob.js} +173 -40
- package/build/dist/Models/DatabaseModels/RunnerJob.js.map +1 -0
- package/build/dist/Models/DatabaseModels/{RunbookAgentOwnerTeam.js → RunnerOwnerTeam.js} +57 -57
- package/build/dist/Models/DatabaseModels/RunnerOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/{RunbookAgentOwnerUser.js → RunnerOwnerUser.js} +57 -57
- package/build/dist/Models/DatabaseModels/RunnerOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageCustomField.js +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamCustomField.js +1 -1
- package/build/dist/Models/DatabaseModels/TeamCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js +1 -1
- package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +130 -45
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskAPI.js +26 -36
- package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskLogAPI.js +11 -28
- package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
- package/build/dist/Server/API/AutoRemediationAPI.js +416 -0
- package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -0
- package/build/dist/Server/API/BaseAnalyticsAPI.js +4 -1
- package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
- package/build/dist/Server/API/CommonAPI.js +24 -0
- package/build/dist/Server/API/CommonAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +265 -6
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +940 -3
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/API/UserIncomingCallNumberAPI.js +18 -0
- package/build/dist/Server/API/UserIncomingCallNumberAPI.js.map +1 -1
- package/build/dist/Server/DatabaseConfig.js +23 -4
- package/build/dist/Server/DatabaseConfig.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +8 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785417351021-AddSessionReplay.js +106 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785417351021-AddSessionReplay.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785491583874-EnableSessionReplayByDefault.js +37 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785491583874-EnableSessionReplayByDefault.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785496223183-AddMonitorSummaryToIncidentAndAlert.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785496223183-AddMonitorSummaryToIncidentAndAlert.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785516996695-AddSessionReplayReliabilityColumns.js +29 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785516996695-AddSessionReplayReliabilityColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785533806494-AddSessionReplayCorrelationColumns.js +35 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785533806494-AddSessionReplayCorrelationColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785749674203-AddRedisAndPostgresHealthNotificationColumns.js +40 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785749674203-AddRedisAndPostgresHealthNotificationColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785763818197-AddAutoRemediation.js +128 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785763818197-AddAutoRemediation.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785768089408-AddRemediationVerification.js +28 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785768089408-AddRemediationVerification.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785776960660-AddRunnerCapabilities.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785776960660-AddRunnerCapabilities.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785790000000-AddIncidentInvestigationGating.js +27 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785790000000-AddIncidentInvestigationGating.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785800000000-AddRunbookCredential.js +44 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785800000000-AddRunbookCredential.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785810000000-RenameRunbookAgentToRunner.js +88 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785810000000-RenameRunbookAgentToRunner.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785860000000-SessionReplayDefaultToSensitiveInputMasking.js +59 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785860000000-SessionReplayDefaultToSensitiveInputMasking.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785870000000-AddAiCommandRemediation.js +76 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785870000000-AddAiCommandRemediation.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785880000000-AlignRunnerSchemaWithEntities.js +214 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785880000000-AlignRunnerSchemaWithEntities.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785890000000-AddFixVerificationAndAutomaticCodeFixes.js +44 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785890000000-AddFixVerificationAndAutomaticCodeFixes.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIRunService.js +1 -4
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +26 -0
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +37 -4
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AlertSeverityService.js +24 -11
- package/build/dist/Server/Services/AlertSeverityService.js.map +1 -1
- package/build/dist/Server/Services/AlertStateService.js +24 -11
- package/build/dist/Server/Services/AlertStateService.js.map +1 -1
- package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +917 -0
- package/build/dist/Server/Services/AutoRemediationRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/{RunbookAgentOwnerTeamService.js → AutoRemediationRuleService.js} +2 -2
- package/build/dist/Server/Services/AutoRemediationRuleService.js.map +1 -0
- package/build/dist/Server/Services/AutoRemediationSuggestionService.js +127 -0
- package/build/dist/Server/Services/AutoRemediationSuggestionService.js.map +1 -0
- package/build/dist/Server/Services/BillingService.js +45 -1
- package/build/dist/Server/Services/BillingService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +72 -4
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +52 -4
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentSeverityService.js +24 -11
- package/build/dist/Server/Services/IncidentSeverityService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateService.js +24 -11
- package/build/dist/Server/Services/IncidentStateService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +18 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +24 -0
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorStatusService.js +25 -11
- package/build/dist/Server/Services/MonitorStatusService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js +12 -11
- package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceLabelRuleService.js +43 -0
- package/build/dist/Server/Services/NetworkDeviceLabelRuleService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js +12 -11
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleService.js +41 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceService.js +129 -20
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
- package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js +67 -10
- package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js.map +1 -1
- package/build/dist/Server/Services/NetworkSiteService.js +19 -8
- package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +43 -0
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationService.js +202 -0
- package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
- package/build/dist/Server/Services/RumSessionChunkService.js +9 -0
- package/build/dist/Server/Services/RumSessionChunkService.js.map +1 -0
- package/build/dist/Server/Services/RumSessionErasureRequestService.js +190 -0
- package/build/dist/Server/Services/RumSessionErasureRequestService.js.map +1 -0
- package/build/dist/Server/Services/RumSessionPinService.js +208 -0
- package/build/dist/Server/Services/RumSessionPinService.js.map +1 -0
- package/build/dist/Server/Services/RumSessionReplayViewService.js +180 -0
- package/build/dist/Server/Services/RumSessionReplayViewService.js.map +1 -0
- package/build/dist/Server/Services/RumSessionService.js +102 -0
- package/build/dist/Server/Services/RumSessionService.js.map +1 -0
- package/build/dist/Server/Services/RunbookCredentialService.js +67 -0
- package/build/dist/Server/Services/RunbookCredentialService.js.map +1 -0
- package/build/dist/Server/Services/{RunbookAgentJobService.js → RunnerJobService.js} +158 -46
- package/build/dist/Server/Services/RunnerJobService.js.map +1 -0
- package/build/dist/Server/Services/{RunbookAgentOwnerUserService.js → RunnerOwnerTeamService.js} +2 -2
- package/build/dist/Server/Services/RunnerOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/RunnerOwnerUserService.js +9 -0
- package/build/dist/Server/Services/RunnerOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/RunnerService.js +168 -0
- package/build/dist/Server/Services/RunnerService.js.map +1 -0
- package/build/dist/Server/Services/ScheduledMaintenanceStateService.js +24 -11
- package/build/dist/Server/Services/ScheduledMaintenanceStateService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +15 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceService.js +8 -2
- package/build/dist/Server/Services/ServiceService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +173 -16
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageSubscriberNotificationTemplateService.js +17 -1
- package/build/dist/Server/Services/StatusPageSubscriberNotificationTemplateService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryExceptionService.js +3 -16
- package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryUsageBillingService.js +31 -3
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +106 -2
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js +16 -0
- package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js.map +1 -1
- package/build/dist/Server/Types/Billing/MeteredPlan/ServerMeteredPlan.js +9 -0
- package/build/dist/Server/Types/Billing/MeteredPlan/ServerMeteredPlan.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +38 -6
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentAuth.js +104 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentAuth.js.map +1 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentAvailability.js +54 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentAvailability.js.map +1 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +11 -7
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js +3 -4
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js +724 -0
- package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +668 -0
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js +657 -0
- package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +52 -7
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +53 -5
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js +25 -6
- package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js +131 -17
- package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +200 -5
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js +2 -7
- package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +4 -17
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js +203 -19
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/PostedRootCause.js +89 -0
- package/build/dist/Server/Utils/AI/SRE/PostedRootCause.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/RemediationHandoff.js +82 -0
- package/build/dist/Server/Utils/AI/SRE/RemediationHandoff.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +4 -19
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js +2 -2
- package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js +36 -0
- package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js.map +1 -1
- package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js +498 -0
- package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js.map +1 -0
- package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js +492 -0
- package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js.map +1 -0
- package/build/dist/Server/Utils/CorsOptions.js +47 -0
- package/build/dist/Server/Utils/CorsOptions.js.map +1 -0
- package/build/dist/Server/Utils/Database/RelationIdUtil.js +51 -0
- package/build/dist/Server/Utils/Database/RelationIdUtil.js.map +1 -0
- package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js +38 -0
- package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js.map +1 -1
- package/build/dist/Server/Utils/InstanceHealth/PostgresHealth.js +194 -0
- package/build/dist/Server/Utils/InstanceHealth/PostgresHealth.js.map +1 -0
- package/build/dist/Server/Utils/InstanceHealth/RedisHealth.js +292 -0
- package/build/dist/Server/Utils/InstanceHealth/RedisHealth.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +9 -0
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +9 -0
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +16 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorSummaryCapture.js +92 -0
- package/build/dist/Server/Utils/Monitor/MonitorSummaryCapture.js.map +1 -0
- package/build/dist/Server/Utils/NetworkDevice/RulePatternValidator.js +27 -0
- package/build/dist/Server/Utils/NetworkDevice/RulePatternValidator.js.map +1 -0
- package/build/dist/Server/Utils/OpenAPI.js +2 -1
- package/build/dist/Server/Utils/OpenAPI.js.map +1 -1
- package/build/dist/Server/Utils/Runbook/RunbookExecutePermission.js +67 -0
- package/build/dist/Server/Utils/Runbook/RunbookExecutePermission.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayErasureTombstone.js +98 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayErasureTombstone.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCache.js +378 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCache.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCacheStore.js +137 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCacheStore.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js +998 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayRetention.js +59 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayRetention.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayTargeting.js +98 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayTargeting.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js +69 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js.map +1 -0
- package/build/dist/Server/Utils/StartServer.js +40 -3
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryFanInWriter.js +27 -6
- package/build/dist/Server/Utils/Telemetry/TelemetryFanInWriter.js.map +1 -1
- package/build/dist/Types/AI/AIRunStatus.js +17 -5
- package/build/dist/Types/AI/AIRunStatus.js.map +1 -1
- package/build/dist/Types/AI/AIRunType.js +18 -0
- package/build/dist/Types/AI/AIRunType.js.map +1 -1
- package/build/dist/Types/AI/FixVerificationStatus.js +22 -0
- package/build/dist/Types/AI/FixVerificationStatus.js.map +1 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +16 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
- package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js +192 -0
- package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js.map +1 -0
- package/build/dist/Types/AutoRemediation/AutoRemediationExecutionMode.js +18 -0
- package/build/dist/Types/AutoRemediation/AutoRemediationExecutionMode.js.map +1 -0
- package/build/dist/Types/AutoRemediation/AutoRemediationSuggestionStatus.js +31 -0
- package/build/dist/Types/AutoRemediation/AutoRemediationSuggestionStatus.js.map +1 -0
- package/build/dist/Types/AutoRemediation/AutoRemediationSuggestionType.js +18 -0
- package/build/dist/Types/AutoRemediation/AutoRemediationSuggestionType.js.map +1 -0
- package/build/dist/Types/AutoRemediation/AutoRemediationTriggerEntity.js +12 -0
- package/build/dist/Types/AutoRemediation/AutoRemediationTriggerEntity.js.map +1 -0
- package/build/dist/Types/AutoRemediation/AutoRemediationVerificationStatus.js +22 -0
- package/build/dist/Types/AutoRemediation/AutoRemediationVerificationStatus.js.map +1 -0
- package/build/dist/Types/CustomField/CustomFieldDropdownOption.js +110 -0
- package/build/dist/Types/CustomField/CustomFieldDropdownOption.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +4 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardClockComponent.js +19 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardClockComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardHtmlComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardHtmlComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js +487 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Date.js +6 -0
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +2 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/Kubernetes/KubernetesRightSizing.js +229 -0
- package/build/dist/Types/Kubernetes/KubernetesRightSizing.js.map +1 -0
- package/build/dist/Types/MeteredPlan/ProductType.js +1 -0
- package/build/dist/Types/MeteredPlan/ProductType.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js +12 -2
- package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorSteps.js +5 -0
- package/build/dist/Types/Monitor/MonitorSteps.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorSummarySnapshot.js +13 -0
- package/build/dist/Types/Monitor/MonitorSummarySnapshot.js.map +1 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +40 -8
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +4 -3
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +50 -10
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
- package/build/dist/Types/Monitor/RumAlertTemplates.js +297 -0
- package/build/dist/Types/Monitor/RumAlertTemplates.js.map +1 -0
- package/build/dist/Types/Permission.js +184 -24
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Rum/SessionReplay.js +155 -0
- package/build/dist/Types/Rum/SessionReplay.js.map +1 -0
- package/build/dist/Types/Rum/SessionReplayCaptureTrigger.js +26 -0
- package/build/dist/Types/Rum/SessionReplayCaptureTrigger.js.map +1 -0
- package/build/dist/Types/Rum/SessionReplayConsentMode.js +27 -0
- package/build/dist/Types/Rum/SessionReplayConsentMode.js.map +1 -0
- package/build/dist/Types/Rum/SessionReplayMaskingMode.js +79 -0
- package/build/dist/Types/Rum/SessionReplayMaskingMode.js.map +1 -0
- package/build/dist/Types/Rum/SessionReplayTriggerReason.js +28 -0
- package/build/dist/Types/Rum/SessionReplayTriggerReason.js.map +1 -0
- package/build/dist/Types/Runbook/RunbookCredentialType.js +7 -0
- package/build/dist/Types/Runbook/RunbookCredentialType.js.map +1 -0
- package/build/dist/Types/Runbook/RunbookStep.js +20 -1
- package/build/dist/Types/Runbook/RunbookStep.js.map +1 -1
- package/build/dist/Types/Runbook/RunbookStepType.js +24 -0
- package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
- package/build/dist/Types/Runbook/RunnerJobOrigin.js +21 -0
- package/build/dist/Types/Runbook/RunnerJobOrigin.js.map +1 -0
- package/build/dist/Types/Runbook/RunnerJobStatus.js +22 -0
- package/build/dist/Types/Runbook/RunnerJobStatus.js.map +1 -0
- package/build/dist/Types/StatusPage/StatusPageReport.js +22 -0
- package/build/dist/Types/StatusPage/StatusPageReport.js.map +1 -0
- package/build/dist/Types/Telemetry/TelemetryRetentionConfig.js.map +1 -1
- package/build/dist/Types/Text.js +29 -0
- package/build/dist/Types/Text.js.map +1 -1
- package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js +143 -28
- package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js +82 -9
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkOwnerActions.js +11 -0
- package/build/dist/UI/Components/BulkUpdate/BulkOwnerActions.js.map +1 -1
- package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +11 -13
- package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
- package/build/dist/UI/Components/CustomFields/DropdownOptionsInput.js +76 -45
- package/build/dist/UI/Components/CustomFields/DropdownOptionsInput.js.map +1 -1
- package/build/dist/UI/Components/Detail/Detail.js +3 -8
- package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
- package/build/dist/UI/Components/Dropdown/Dropdown.js +2 -5
- package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
- package/build/dist/UI/Components/Dropdown/DropdownMenuZIndex.js +7 -0
- package/build/dist/UI/Components/Dropdown/DropdownMenuZIndex.js.map +1 -0
- package/build/dist/UI/Components/Dropdown/DropdownValueBadge.js +32 -0
- package/build/dist/UI/Components/Dropdown/DropdownValueBadge.js.map +1 -0
- package/build/dist/UI/Components/Filters/OperatorSelector.js +210 -20
- package/build/dist/UI/Components/Filters/OperatorSelector.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/ColorPicker.js +26 -10
- package/build/dist/UI/Components/Forms/Fields/ColorPicker.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/IconPicker.js +28 -13
- package/build/dist/UI/Components/Forms/Fields/IconPicker.js.map +1 -1
- package/build/dist/UI/Components/Forms/Validation.js +9 -5
- package/build/dist/UI/Components/Forms/Validation.js.map +1 -1
- package/build/dist/UI/Components/List/List.js +1 -1
- package/build/dist/UI/Components/List/List.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js +21 -19
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -1
- package/build/dist/UI/Components/Pagination/Pagination.js +14 -3
- package/build/dist/UI/Components/Pagination/Pagination.js.map +1 -1
- package/build/dist/UI/Components/Table/Table.js +1 -1
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Types/UseAnchoredFieldPopup.js +197 -0
- package/build/dist/UI/Types/UseAnchoredFieldPopup.js.map +1 -0
- package/build/dist/UI/Utils/Dropdown.js +18 -0
- package/build/dist/UI/Utils/Dropdown.js.map +1 -1
- package/build/dist/UI/Utils/Timezone.js +13 -2
- package/build/dist/UI/Utils/Timezone.js.map +1 -1
- package/build/dist/UI/Utils/UseClockTick.js +41 -0
- package/build/dist/UI/Utils/UseClockTick.js.map +1 -0
- package/build/dist/Utils/AiRemediation/CommandPolicy.js +303 -0
- package/build/dist/Utils/AiRemediation/CommandPolicy.js.map +1 -0
- package/build/dist/Utils/Dashboard/ClockWidgetFormat.js +232 -0
- package/build/dist/Utils/Dashboard/ClockWidgetFormat.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardClockComponent.js +146 -0
- package/build/dist/Utils/Dashboard/Components/DashboardClockComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardHtmlComponent.js +133 -0
- package/build/dist/Utils/Dashboard/Components/DashboardHtmlComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardValueComponent.js +10 -1
- package/build/dist/Utils/Dashboard/Components/DashboardValueComponent.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/Index.js +8 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/Dashboard/HtmlWidgetDocument.js +198 -0
- package/build/dist/Utils/Dashboard/HtmlWidgetDocument.js.map +1 -0
- package/build/dist/Utils/Dashboard/ValueWidgetLayout.js +276 -0
- package/build/dist/Utils/Dashboard/ValueWidgetLayout.js.map +1 -0
- package/build/dist/Utils/Metrics/MetricSeriesScope.js +203 -0
- package/build/dist/Utils/Metrics/MetricSeriesScope.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitorSummarySnapshotUtil.js +382 -0
- package/build/dist/Utils/Monitor/MonitorSummarySnapshotUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/CidrMatchUtil.js +13 -7
- package/build/dist/Utils/NetworkSite/CidrMatchUtil.js.map +1 -1
- package/build/dist/Utils/Rules/RulePatternMatchUtil.js +87 -0
- package/build/dist/Utils/Rules/RulePatternMatchUtil.js.map +1 -0
- package/build/dist/Utils/Rum/ChunkMath.js +147 -0
- package/build/dist/Utils/Rum/ChunkMath.js.map +1 -0
- package/build/dist/Utils/Rum/Masking.js +143 -0
- package/build/dist/Utils/Rum/Masking.js.map +1 -0
- package/build/dist/Utils/Rum/SessionIdentity.js +161 -0
- package/build/dist/Utils/Rum/SessionIdentity.js.map +1 -0
- package/build/dist/Utils/Rum/SessionSampling.js +91 -0
- package/build/dist/Utils/Rum/SessionSampling.js.map +1 -0
- package/build/dist/Utils/Rum/UrlScrubber.js +144 -0
- package/build/dist/Utils/Rum/UrlScrubber.js.map +1 -0
- package/build/dist/Utils/Schema/ModelSchema.js +28 -3
- package/build/dist/Utils/Schema/ModelSchema.js.map +1 -1
- package/build/dist/Utils/StatusPage/Report.js +194 -0
- package/build/dist/Utils/StatusPage/Report.js.map +1 -0
- package/build/dist/Utils/ValueFormatter.js +239 -46
- package/build/dist/Utils/ValueFormatter.js.map +1 -1
- package/jest.config.json +3 -0
- package/package.json +1 -1
- package/tsconfig.json +19 -1
- package/Server/Services/RunbookAgentService.ts +0 -93
- package/build/dist/Models/DatabaseModels/RunbookAgent.js.map +0 -1
- package/build/dist/Models/DatabaseModels/RunbookAgentJob.js.map +0 -1
- package/build/dist/Models/DatabaseModels/RunbookAgentOwnerTeam.js.map +0 -1
- package/build/dist/Models/DatabaseModels/RunbookAgentOwnerUser.js.map +0 -1
- package/build/dist/Server/Services/RunbookAgentJobService.js.map +0 -1
- package/build/dist/Server/Services/RunbookAgentOwnerTeamService.js.map +0 -1
- package/build/dist/Server/Services/RunbookAgentOwnerUserService.js.map +0 -1
- package/build/dist/Server/Services/RunbookAgentService.js +0 -91
- package/build/dist/Server/Services/RunbookAgentService.js.map +0 -1
- package/build/dist/Types/Runbook/RunbookAgentJobStatus.js +0 -22
- package/build/dist/Types/Runbook/RunbookAgentJobStatus.js.map +0 -1
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Everything the dashboard Value widget needs in order to decide how big to
|
|
3
|
+
* draw itself, derived by arithmetic from the tile size the canvas reports.
|
|
4
|
+
*
|
|
5
|
+
* It lives here rather than in the renderer for the same reason
|
|
6
|
+
* ClockWidgetFormat.ts does: none of it needs a DOM, so it is unit-testable,
|
|
7
|
+
* and the renderer stays a straight translation of these numbers into inline
|
|
8
|
+
* styles. Measuring the rendered text instead would cost a second render on
|
|
9
|
+
* every resize frame — the exact re-measure flicker DashboardBaseComponent's
|
|
10
|
+
* constant edit-mode padding exists to avoid.
|
|
11
|
+
*
|
|
12
|
+
* The contract with the renderer is that EVERY optional row is drawn at the
|
|
13
|
+
* pixel height returned here, with `shrink-0`, so the stack sums to the
|
|
14
|
+
* content box by construction. Before this existed the value row was the only
|
|
15
|
+
* shrinkable flex item (Tailwind's `truncate` sets overflow:hidden, which
|
|
16
|
+
* zeroes a flex item's automatic minimum size), so the whole vertical deficit
|
|
17
|
+
* landed on the big number and its glyphs were sliced in half — or, in edit
|
|
18
|
+
* mode at the default 3x1 tile, clipped away entirely.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Padding the widget chrome puts between the tile edge and the widget's own
|
|
22
|
+
* content box. DashboardBaseComponent draws every widget in a card with a 1px
|
|
23
|
+
* `border` and wraps the child in `padding: 12px`, widened to
|
|
24
|
+
* `28px 12px 12px 12px` in edit mode for the drag handle it overlays.
|
|
25
|
+
*
|
|
26
|
+
* The canvas hands each widget its OUTER tile size, so a sizer that skips this
|
|
27
|
+
* overstates the box by 26px (42px while editing). On the shipped 3x1 default
|
|
28
|
+
* that is around a third of the usable height, which is most of the reason the
|
|
29
|
+
* big number ended up sliced.
|
|
30
|
+
*
|
|
31
|
+
* ClockWidgetFormat.ts uses 24/24/40 for the same three constants — it is
|
|
32
|
+
* missing the card's 1px border. That is a separate (much smaller) bug; the
|
|
33
|
+
* clock keeps 4px of its own vertical breathing room which absorbs it, and
|
|
34
|
+
* correcting it there would churn 300 lines of unrelated tests.
|
|
35
|
+
*/
|
|
36
|
+
const VALUE_CHROME_HORIZONTAL_IN_PX = 26;
|
|
37
|
+
const VALUE_CHROME_VERTICAL_IN_PX = 26;
|
|
38
|
+
const VALUE_CHROME_VERTICAL_EDIT_MODE_IN_PX = 42;
|
|
39
|
+
/** Breathing room kept inside the content box so text never sits flush. */
|
|
40
|
+
const VALUE_HORIZONTAL_PADDING_IN_PX = 8;
|
|
41
|
+
/**
|
|
42
|
+
* line-height on the value row. Inter's content area is 1.21em (typo ascender
|
|
43
|
+
* 0.96875 + descender 0.24121), so the previous 1.15 let glyphs paint outside
|
|
44
|
+
* their own line box and the row's clip shaved them. 1.25 keeps the ink inside
|
|
45
|
+
* the box the budget reserved for it.
|
|
46
|
+
*/
|
|
47
|
+
export const VALUE_LINE_HEIGHT_RATIO = 1.25;
|
|
48
|
+
/** The unit suffix is drawn at this fraction of the value font size. */
|
|
49
|
+
export const VALUE_UNIT_FONT_SCALE = 0.36;
|
|
50
|
+
/**
|
|
51
|
+
* Advance width of one character, as a fraction of the font size. The value
|
|
52
|
+
* row is `tabular-nums`, so every digit has the same advance; `.` `,` `-` are
|
|
53
|
+
* narrower than 0.62em and the row also carries `letter-spacing: -0.03em`, so
|
|
54
|
+
* this over-estimates. That is the safe direction: the failure mode is a
|
|
55
|
+
* slightly smaller number rather than a clipped one.
|
|
56
|
+
*/
|
|
57
|
+
const VALUE_CHAR_WIDTH_RATIO = 0.62;
|
|
58
|
+
const UNIT_CHAR_WIDTH_RATIO = 0.58;
|
|
59
|
+
/** Title row: font clamped to this range, at line-height 1.5 plus `mb-0.5`. */
|
|
60
|
+
const TITLE_FONT_HEIGHT_FRACTION = 0.11;
|
|
61
|
+
const MIN_TITLE_FONT_SIZE_IN_PX = 11;
|
|
62
|
+
const MAX_TITLE_FONT_SIZE_IN_PX = 14;
|
|
63
|
+
const TITLE_LINE_HEIGHT_RATIO = 1.5;
|
|
64
|
+
const TITLE_ROW_MARGIN_IN_PX = 2;
|
|
65
|
+
/** Status row: the trend arrow, or the hovered point's timestamp. */
|
|
66
|
+
const MIN_STATUS_FONT_SIZE_IN_PX = 10;
|
|
67
|
+
const MAX_STATUS_FONT_SIZE_IN_PX = 12;
|
|
68
|
+
const STATUS_LINE_HEIGHT_RATIO = 1.5;
|
|
69
|
+
const STATUS_ROW_MARGIN_IN_PX = 2;
|
|
70
|
+
/** Sparkline row: the chart plus the `mt-1` above it. */
|
|
71
|
+
const SPARKLINE_HEIGHT_FRACTION = 0.18;
|
|
72
|
+
const MIN_SPARKLINE_HEIGHT_IN_PX = 16;
|
|
73
|
+
const MAX_SPARKLINE_HEIGHT_IN_PX = 28;
|
|
74
|
+
const SPARKLINE_ROW_MARGIN_IN_PX = 4;
|
|
75
|
+
const SPARKLINE_WIDTH_FRACTION = 0.6;
|
|
76
|
+
const MIN_SPARKLINE_WIDTH_IN_PX = 32;
|
|
77
|
+
const MAX_SPARKLINE_WIDTH_IN_PX = 120;
|
|
78
|
+
export const MIN_VALUE_FONT_SIZE_IN_PX = 14;
|
|
79
|
+
export const MAX_VALUE_FONT_SIZE_IN_PX = 96;
|
|
80
|
+
/**
|
|
81
|
+
* Value-row heights we refuse to drop below in order to show an optional row.
|
|
82
|
+
* A Value widget exists to show one number; a title that shrinks the digits to
|
|
83
|
+
* the legibility floor has taken more than it is worth.
|
|
84
|
+
*
|
|
85
|
+
* Crossing either of these steps the font size — a row that appears has to
|
|
86
|
+
* take its height from somewhere. That step is deliberate and bounded (the
|
|
87
|
+
* number never goes below MIN_VALUE_FONT_SIZE_IN_PX and is never clipped);
|
|
88
|
+
* making it continuous would mean never showing a title on a short tile.
|
|
89
|
+
*/
|
|
90
|
+
const TITLE_GATE_VALUE_ROW_IN_PX = 26;
|
|
91
|
+
const STATUS_GATE_VALUE_ROW_IN_PX = 40;
|
|
92
|
+
/**
|
|
93
|
+
* Below this content width the title and the trend cannot share a line without
|
|
94
|
+
* both truncating to nothing, so the compact header is not offered.
|
|
95
|
+
*/
|
|
96
|
+
const COMPACT_HEADER_MIN_CONTENT_WIDTH_IN_PX = 180;
|
|
97
|
+
/** The value row height at which the value font reaches its ceiling. */
|
|
98
|
+
const MAX_VALUE_ROW_HEIGHT_IN_PX = MAX_VALUE_FONT_SIZE_IN_PX * VALUE_LINE_HEIGHT_RATIO;
|
|
99
|
+
export var ValueWidgetStackMode;
|
|
100
|
+
(function (ValueWidgetStackMode) {
|
|
101
|
+
/** Title, value, status and sparkline each on their own row. */
|
|
102
|
+
ValueWidgetStackMode["Column"] = "Column";
|
|
103
|
+
/** Title and status share one line above the value. */
|
|
104
|
+
ValueWidgetStackMode["Compact"] = "Compact";
|
|
105
|
+
})(ValueWidgetStackMode || (ValueWidgetStackMode = {}));
|
|
106
|
+
const clamp = (value, min, max) => {
|
|
107
|
+
return Math.max(Math.min(value, max), min);
|
|
108
|
+
};
|
|
109
|
+
export const getValueContentBox = (data) => {
|
|
110
|
+
const verticalChrome = data.isEditMode
|
|
111
|
+
? VALUE_CHROME_VERTICAL_EDIT_MODE_IN_PX
|
|
112
|
+
: VALUE_CHROME_VERTICAL_IN_PX;
|
|
113
|
+
return {
|
|
114
|
+
widthInPx: Math.max(data.widthInPx - VALUE_CHROME_HORIZONTAL_IN_PX, 0),
|
|
115
|
+
heightInPx: Math.max(data.heightInPx - verticalChrome, 0),
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
export const getValueWidthInFontUnits = (data) => {
|
|
119
|
+
// The unit is preceded by a space, drawn at the unit size.
|
|
120
|
+
const unitChars = data.unitText.length > 0 ? data.unitText.length + 1 : 0;
|
|
121
|
+
return (data.valueText.length * VALUE_CHAR_WIDTH_RATIO +
|
|
122
|
+
unitChars * UNIT_CHAR_WIDTH_RATIO * VALUE_UNIT_FONT_SCALE);
|
|
123
|
+
};
|
|
124
|
+
const getWidthLimitedFontSizeInPx = (data) => {
|
|
125
|
+
const widthInFontUnits = getValueWidthInFontUnits({
|
|
126
|
+
valueText: data.valueText,
|
|
127
|
+
unitText: data.unitText,
|
|
128
|
+
});
|
|
129
|
+
if (widthInFontUnits <= 0) {
|
|
130
|
+
return MAX_VALUE_FONT_SIZE_IN_PX;
|
|
131
|
+
}
|
|
132
|
+
return data.widthBudgetInPx / widthInFontUnits;
|
|
133
|
+
};
|
|
134
|
+
export const getValueWidgetLayout = (data) => {
|
|
135
|
+
const contentBox = getValueContentBox(data);
|
|
136
|
+
const contentHeightInPx = contentBox.heightInPx;
|
|
137
|
+
const contentWidthInPx = contentBox.widthInPx;
|
|
138
|
+
const titleFontSizeInPx = clamp(contentHeightInPx * TITLE_FONT_HEIGHT_FRACTION, MIN_TITLE_FONT_SIZE_IN_PX, MAX_TITLE_FONT_SIZE_IN_PX);
|
|
139
|
+
const titleRowHeightInPx = titleFontSizeInPx * TITLE_LINE_HEIGHT_RATIO + TITLE_ROW_MARGIN_IN_PX;
|
|
140
|
+
const statusFontSizeInPx = clamp(contentHeightInPx * TITLE_FONT_HEIGHT_FRACTION, MIN_STATUS_FONT_SIZE_IN_PX, MAX_STATUS_FONT_SIZE_IN_PX);
|
|
141
|
+
const statusRowHeightInPx = statusFontSizeInPx * STATUS_LINE_HEIGHT_RATIO + STATUS_ROW_MARGIN_IN_PX;
|
|
142
|
+
const sparklineHeightInPx = clamp(contentHeightInPx * SPARKLINE_HEIGHT_FRACTION, MIN_SPARKLINE_HEIGHT_IN_PX, MAX_SPARKLINE_HEIGHT_IN_PX);
|
|
143
|
+
const sparklineRowHeightInPx = sparklineHeightInPx + SPARKLINE_ROW_MARGIN_IN_PX;
|
|
144
|
+
/*
|
|
145
|
+
* The trend arrow and the hovered point's timestamp share one slot, so a
|
|
146
|
+
* tile that could show either has to reserve it up front. Neither term
|
|
147
|
+
* depends on whether the cursor is on the chart — that is what makes the
|
|
148
|
+
* hover swap provably unable to move anything. The old layout claimed this
|
|
149
|
+
* and did not deliver it: the timestamp was unconstrained and wrapped.
|
|
150
|
+
*/
|
|
151
|
+
const hasStatus = data.hasTrend || data.hasSparklineData;
|
|
152
|
+
/*
|
|
153
|
+
* A short tile stacks title / value / trend and runs out of height; putting
|
|
154
|
+
* the title and the trend on one line hands that height back to the number.
|
|
155
|
+
* The switch sits exactly where the stacked layout stops being able to keep
|
|
156
|
+
* the value at its ceiling, so crossing it cannot change the rendered font
|
|
157
|
+
* size: below it the compact value row is still at least MAX_VALUE_ROW, and
|
|
158
|
+
* above it the stacked value row is at least MAX_VALUE_ROW too.
|
|
159
|
+
*/
|
|
160
|
+
const stackedValueRowInPx = contentHeightInPx -
|
|
161
|
+
(data.hasTitle ? titleRowHeightInPx : 0) -
|
|
162
|
+
(hasStatus ? statusRowHeightInPx : 0);
|
|
163
|
+
const stackMode = data.hasTitle &&
|
|
164
|
+
hasStatus &&
|
|
165
|
+
contentWidthInPx >= COMPACT_HEADER_MIN_CONTENT_WIDTH_IN_PX &&
|
|
166
|
+
stackedValueRowInPx < MAX_VALUE_ROW_HEIGHT_IN_PX
|
|
167
|
+
? ValueWidgetStackMode.Compact
|
|
168
|
+
: ValueWidgetStackMode.Column;
|
|
169
|
+
let showTitle = false;
|
|
170
|
+
let showStatusRow = false;
|
|
171
|
+
let showSparkline = false;
|
|
172
|
+
if (stackMode === ValueWidgetStackMode.Compact) {
|
|
173
|
+
const headerCandidateInPx = Math.max(titleRowHeightInPx, statusRowHeightInPx);
|
|
174
|
+
if (contentHeightInPx - headerCandidateInPx >= TITLE_GATE_VALUE_ROW_IN_PX) {
|
|
175
|
+
showTitle = true;
|
|
176
|
+
showStatusRow = true;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
/*
|
|
181
|
+
* Hand the height out in priority order, never spending a pixel we do not
|
|
182
|
+
* have and never letting an optional row take the number below a size
|
|
183
|
+
* worth reading.
|
|
184
|
+
*/
|
|
185
|
+
let spentInPx = 0;
|
|
186
|
+
if (data.hasTitle &&
|
|
187
|
+
contentHeightInPx - spentInPx - titleRowHeightInPx >=
|
|
188
|
+
TITLE_GATE_VALUE_ROW_IN_PX) {
|
|
189
|
+
showTitle = true;
|
|
190
|
+
spentInPx = spentInPx + titleRowHeightInPx;
|
|
191
|
+
}
|
|
192
|
+
if (hasStatus &&
|
|
193
|
+
contentHeightInPx - spentInPx - statusRowHeightInPx >=
|
|
194
|
+
STATUS_GATE_VALUE_ROW_IN_PX) {
|
|
195
|
+
showStatusRow = true;
|
|
196
|
+
spentInPx = spentInPx + statusRowHeightInPx;
|
|
197
|
+
}
|
|
198
|
+
/*
|
|
199
|
+
* The sparkline is admitted only once the value font is ALREADY at its
|
|
200
|
+
* ceiling, so switching it on cannot make the number smaller. This
|
|
201
|
+
* replaces a `dashboardComponentHeightInPx > 100` test, which compared the
|
|
202
|
+
* OUTER tile height and then added a row to a box 26-42px smaller than the
|
|
203
|
+
* number it had tested — a 40px change in browser width took the value box
|
|
204
|
+
* from 34.9px to 9.2px, i.e. from a readable number to a dark sliver.
|
|
205
|
+
*/
|
|
206
|
+
if (data.hasSparklineData &&
|
|
207
|
+
contentHeightInPx - spentInPx - sparklineRowHeightInPx >=
|
|
208
|
+
MAX_VALUE_ROW_HEIGHT_IN_PX) {
|
|
209
|
+
showSparkline = true;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/*
|
|
213
|
+
* Give the status slot back when neither occupant can appear: no trend, and
|
|
214
|
+
* no sparkline left to hover. Recomputing the reservation from the final
|
|
215
|
+
* flags (rather than decrementing as we go) keeps one source of truth, and
|
|
216
|
+
* because this only ever SHRINKS the reservation it cannot invalidate the
|
|
217
|
+
* sparkline decision, which was taken with the row still reserved. Moving
|
|
218
|
+
* this above the sparkline gate would reintroduce that oscillation.
|
|
219
|
+
*/
|
|
220
|
+
if (showStatusRow && !data.hasTrend && !showSparkline) {
|
|
221
|
+
showStatusRow = false;
|
|
222
|
+
}
|
|
223
|
+
const headerRowHeightInPx = stackMode === ValueWidgetStackMode.Compact
|
|
224
|
+
? Math.max(showTitle ? titleRowHeightInPx : 0, showStatusRow ? statusRowHeightInPx : 0)
|
|
225
|
+
: 0;
|
|
226
|
+
const reservedInPx = stackMode === ValueWidgetStackMode.Compact
|
|
227
|
+
? headerRowHeightInPx
|
|
228
|
+
: (showTitle ? titleRowHeightInPx : 0) +
|
|
229
|
+
(showStatusRow ? statusRowHeightInPx : 0) +
|
|
230
|
+
(showSparkline ? sparklineRowHeightInPx : 0);
|
|
231
|
+
const valueRowHeightInPx = Math.max(contentHeightInPx - reservedInPx, 0);
|
|
232
|
+
const heightLimitedFontInPx = valueRowHeightInPx / VALUE_LINE_HEIGHT_RATIO;
|
|
233
|
+
const widthBudgetInPx = Math.max(contentWidthInPx - VALUE_HORIZONTAL_PADDING_IN_PX, 0);
|
|
234
|
+
/*
|
|
235
|
+
* Try the number with its unit, and drop the unit only when carrying it
|
|
236
|
+
* would force the digits below the legibility floor on WIDTH. Gating on
|
|
237
|
+
* width alone matters: when height is the binding constraint, dropping the
|
|
238
|
+
* unit recovers nothing, so there is no reason to lose the information. The
|
|
239
|
+
* renderer keeps the full string on the element's `title` either way.
|
|
240
|
+
*/
|
|
241
|
+
const fontWithUnitInPx = getWidthLimitedFontSizeInPx({
|
|
242
|
+
widthBudgetInPx: widthBudgetInPx,
|
|
243
|
+
valueText: data.valueText,
|
|
244
|
+
unitText: data.unitText,
|
|
245
|
+
});
|
|
246
|
+
const showUnit = data.unitText.length > 0 && fontWithUnitInPx >= MIN_VALUE_FONT_SIZE_IN_PX;
|
|
247
|
+
const widthLimitedFontInPx = showUnit
|
|
248
|
+
? fontWithUnitInPx
|
|
249
|
+
: getWidthLimitedFontSizeInPx({
|
|
250
|
+
widthBudgetInPx: widthBudgetInPx,
|
|
251
|
+
valueText: data.valueText,
|
|
252
|
+
unitText: "",
|
|
253
|
+
});
|
|
254
|
+
const valueFontSizeInPx = clamp(Math.min(heightLimitedFontInPx, widthLimitedFontInPx), MIN_VALUE_FONT_SIZE_IN_PX, MAX_VALUE_FONT_SIZE_IN_PX);
|
|
255
|
+
return {
|
|
256
|
+
stackMode: stackMode,
|
|
257
|
+
contentWidthInPx: contentWidthInPx,
|
|
258
|
+
contentHeightInPx: contentHeightInPx,
|
|
259
|
+
showTitle: showTitle,
|
|
260
|
+
showStatusRow: showStatusRow,
|
|
261
|
+
showSparkline: showSparkline,
|
|
262
|
+
showUnit: showUnit,
|
|
263
|
+
titleFontSizeInPx: titleFontSizeInPx,
|
|
264
|
+
statusFontSizeInPx: statusFontSizeInPx,
|
|
265
|
+
valueFontSizeInPx: valueFontSizeInPx,
|
|
266
|
+
unitFontSizeInPx: valueFontSizeInPx * VALUE_UNIT_FONT_SCALE,
|
|
267
|
+
headerRowHeightInPx: headerRowHeightInPx,
|
|
268
|
+
titleRowHeightInPx: titleRowHeightInPx,
|
|
269
|
+
statusRowHeightInPx: statusRowHeightInPx,
|
|
270
|
+
sparklineRowHeightInPx: sparklineRowHeightInPx,
|
|
271
|
+
valueRowHeightInPx: valueRowHeightInPx,
|
|
272
|
+
sparklineWidthInPx: Math.min(Math.max(contentWidthInPx * SPARKLINE_WIDTH_FRACTION, MIN_SPARKLINE_WIDTH_IN_PX), contentWidthInPx, MAX_SPARKLINE_WIDTH_IN_PX),
|
|
273
|
+
sparklineHeightInPx: sparklineHeightInPx,
|
|
274
|
+
};
|
|
275
|
+
};
|
|
276
|
+
//# sourceMappingURL=ValueWidgetLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValueWidgetLayout.js","sourceRoot":"","sources":["../../../../Utils/Dashboard/ValueWidgetLayout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import IsNull from "../../Types/BaseDatabase/IsNull";
|
|
2
|
+
/**
|
|
3
|
+
* A metric monitor grouped by, say, `host.name` evaluates one series per
|
|
4
|
+
* host and opens ONE incident per breaching host — the affected series is
|
|
5
|
+
* recorded on the incident as `seriesLabels` (e.g. `{host.name: prod-01}`).
|
|
6
|
+
* The monitor's stored query configs, however, are shared by every series
|
|
7
|
+
* it produced: replaying them verbatim on the incident page charts EVERY
|
|
8
|
+
* host, so an incident about one host renders a wall of unrelated lines
|
|
9
|
+
* and (worse) the breaching host can be dropped entirely by the Top-N cap.
|
|
10
|
+
*
|
|
11
|
+
* This narrows those query configs back down to the one series the
|
|
12
|
+
* incident/alert is actually about, by pushing the series labels into the
|
|
13
|
+
* query's attribute filter. Grouping is deliberately left in place: with
|
|
14
|
+
* the filter applied it yields exactly one series, and the legend still
|
|
15
|
+
* names it ("host.name=prod-01") instead of collapsing to a bare metric
|
|
16
|
+
* name.
|
|
17
|
+
*
|
|
18
|
+
* Everything here is pure and identity-preserving — when there is nothing
|
|
19
|
+
* to narrow, the very same objects come back out, so React hosts can call
|
|
20
|
+
* it without churning state.
|
|
21
|
+
*/
|
|
22
|
+
class MetricSeriesScope {
|
|
23
|
+
static hasSeriesLabels(seriesLabels) {
|
|
24
|
+
return Boolean(seriesLabels && Object.keys(seriesLabels).length > 0);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Turn one series-label value into something the metric attribute
|
|
28
|
+
* filter can express. Returns null when the value cannot be filtered
|
|
29
|
+
* on at all — the caller then leaves that key alone rather than
|
|
30
|
+
* emitting a predicate that would silently match nothing.
|
|
31
|
+
*/
|
|
32
|
+
static toFilterValue(value) {
|
|
33
|
+
if (value === undefined || value === null) {
|
|
34
|
+
return new IsNull();
|
|
35
|
+
}
|
|
36
|
+
if (typeof value === "string") {
|
|
37
|
+
/*
|
|
38
|
+
* "" is what the series builder writes when the attribute is
|
|
39
|
+
* missing on the sample, so the series really is "rows with no
|
|
40
|
+
* value for this key" — that is the IsEmpty operator, not an
|
|
41
|
+
* equality against the empty string (which the UI's filter
|
|
42
|
+
* sanitizer would drop on the floor anyway).
|
|
43
|
+
*/
|
|
44
|
+
if (value === "") {
|
|
45
|
+
return new IsNull();
|
|
46
|
+
}
|
|
47
|
+
/*
|
|
48
|
+
* Whitespace-only is neither: an equality filter on it is dropped
|
|
49
|
+
* by the sanitizer, and treating it as "unset" would be a lie. Skip
|
|
50
|
+
* the key instead.
|
|
51
|
+
*/
|
|
52
|
+
if (value.trim() === "") {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
return value;
|
|
56
|
+
}
|
|
57
|
+
if (typeof value === "number") {
|
|
58
|
+
return Number.isFinite(value) ? String(value) : null;
|
|
59
|
+
}
|
|
60
|
+
if (typeof value === "boolean") {
|
|
61
|
+
return String(value);
|
|
62
|
+
}
|
|
63
|
+
/*
|
|
64
|
+
* Arrays, nested objects and Dates have no faithful representation as
|
|
65
|
+
* a metric attribute equality filter (attributes are a
|
|
66
|
+
* Map(String, String) in the analytics store), so they are skipped.
|
|
67
|
+
*/
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The attribute filters that scope ONE query config to the given
|
|
72
|
+
* series.
|
|
73
|
+
*
|
|
74
|
+
* Only the keys this query actually groups by are considered. The
|
|
75
|
+
* monitor worker groups every query by the UNION of the group-by keys
|
|
76
|
+
* across all query configs (so per-series formulas line up), which
|
|
77
|
+
* means `seriesLabels` routinely carries keys a given query never asked
|
|
78
|
+
* for — filtering a query on a dimension it does not group by would
|
|
79
|
+
* narrow the chart to something the monitor never evaluated.
|
|
80
|
+
*/
|
|
81
|
+
static getSeriesFilterAttributesForQuery(input) {
|
|
82
|
+
var _a;
|
|
83
|
+
const filters = {};
|
|
84
|
+
const seriesLabels = input.seriesLabels;
|
|
85
|
+
if (!input.queryConfig ||
|
|
86
|
+
!MetricSeriesScope.hasSeriesLabels(seriesLabels)) {
|
|
87
|
+
return filters;
|
|
88
|
+
}
|
|
89
|
+
const groupByAttributeKeys = ((_a = input.queryConfig.metricQueryData) === null || _a === void 0 ? void 0 : _a.groupByAttributeKeys) || [];
|
|
90
|
+
for (const key of groupByAttributeKeys) {
|
|
91
|
+
if (!key) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
// Key not on the incident's series — we know nothing, so filter nothing.
|
|
95
|
+
if (!Object.prototype.hasOwnProperty.call(seriesLabels, key)) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const filterValue = MetricSeriesScope.toFilterValue(seriesLabels[key]);
|
|
99
|
+
if (filterValue === null) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
filters[key] = filterValue;
|
|
103
|
+
}
|
|
104
|
+
return filters;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Narrow every query config to the incident's/alert's own series.
|
|
108
|
+
* Returns the input array unchanged (same reference) when there is
|
|
109
|
+
* nothing to narrow.
|
|
110
|
+
*/
|
|
111
|
+
static scopeQueryConfigsToSeries(input) {
|
|
112
|
+
const queryConfigs = input.queryConfigs || [];
|
|
113
|
+
if (!MetricSeriesScope.hasSeriesLabels(input.seriesLabels)) {
|
|
114
|
+
return queryConfigs;
|
|
115
|
+
}
|
|
116
|
+
let didNarrowAny = false;
|
|
117
|
+
const scopedQueryConfigs = queryConfigs.map((queryConfig) => {
|
|
118
|
+
var _a;
|
|
119
|
+
const filters = MetricSeriesScope.getSeriesFilterAttributesForQuery({
|
|
120
|
+
queryConfig: queryConfig,
|
|
121
|
+
seriesLabels: input.seriesLabels,
|
|
122
|
+
});
|
|
123
|
+
if (Object.keys(filters).length === 0) {
|
|
124
|
+
return queryConfig;
|
|
125
|
+
}
|
|
126
|
+
didNarrowAny = true;
|
|
127
|
+
const metricQueryData = queryConfig.metricQueryData;
|
|
128
|
+
const existingAttributes = ((_a = metricQueryData === null || metricQueryData === void 0 ? void 0 : metricQueryData.filterData) === null || _a === void 0 ? void 0 : _a["attributes"]) || {};
|
|
129
|
+
return Object.assign(Object.assign({}, queryConfig), { metricQueryData: Object.assign(Object.assign({}, metricQueryData), { filterData: Object.assign(Object.assign({}, ((metricQueryData === null || metricQueryData === void 0 ? void 0 : metricQueryData.filterData) || {})), {
|
|
130
|
+
/*
|
|
131
|
+
* Series labels win over any filter the monitor already
|
|
132
|
+
* carried for the same key — they are strictly narrower,
|
|
133
|
+
* and they describe the series this incident is about.
|
|
134
|
+
*/
|
|
135
|
+
attributes: Object.assign(Object.assign({}, existingAttributes), filters) }) }) });
|
|
136
|
+
});
|
|
137
|
+
return didNarrowAny ? scopedQueryConfigs : queryConfigs;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Convenience wrapper for the places that hold a whole MetricViewData
|
|
141
|
+
* (the incident/alert "Metrics" cards read one straight off the stored
|
|
142
|
+
* telemetryQuery). Identity-preserving like the array form.
|
|
143
|
+
*/
|
|
144
|
+
static scopeMetricViewDataToSeries(input) {
|
|
145
|
+
const metricViewData = input.metricViewData;
|
|
146
|
+
if (!metricViewData || !metricViewData.queryConfigs) {
|
|
147
|
+
/*
|
|
148
|
+
* `queryConfigs` is non-optional on the type, but this data comes
|
|
149
|
+
* from stored JSON. Returning early keeps the identity contract and
|
|
150
|
+
* avoids quietly rewriting a missing list into an empty one.
|
|
151
|
+
*/
|
|
152
|
+
return metricViewData;
|
|
153
|
+
}
|
|
154
|
+
const scopedQueryConfigs = MetricSeriesScope.scopeQueryConfigsToSeries({
|
|
155
|
+
queryConfigs: metricViewData.queryConfigs,
|
|
156
|
+
seriesLabels: input.seriesLabels,
|
|
157
|
+
});
|
|
158
|
+
if (scopedQueryConfigs === metricViewData.queryConfigs) {
|
|
159
|
+
return metricViewData;
|
|
160
|
+
}
|
|
161
|
+
return Object.assign(Object.assign({}, metricViewData), { queryConfigs: scopedQueryConfigs });
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* "host.name = prod-01, service.name = api" — a one-line description of
|
|
165
|
+
* the narrowing that was ACTUALLY applied to these query configs, for
|
|
166
|
+
* card subtitles.
|
|
167
|
+
*
|
|
168
|
+
* Deliberately derived from the filters rather than from the raw labels:
|
|
169
|
+
* a label the queries never grouped by, or one whose value has no
|
|
170
|
+
* faithful filter form (an array, a whitespace-only string), does not
|
|
171
|
+
* narrow anything. Summarising it anyway would have the card claim
|
|
172
|
+
* "scoped to the affected series" over a chart that still shows every
|
|
173
|
+
* series — a worse failure than the bug this class fixes.
|
|
174
|
+
*
|
|
175
|
+
* Returns "" when nothing was narrowed, which is exactly the condition
|
|
176
|
+
* for the card to say nothing.
|
|
177
|
+
*/
|
|
178
|
+
static getAppliedSeriesLabelSummary(input) {
|
|
179
|
+
const parts = [];
|
|
180
|
+
const seen = new Set();
|
|
181
|
+
for (const queryConfig of input.queryConfigs || []) {
|
|
182
|
+
const filters = MetricSeriesScope.getSeriesFilterAttributesForQuery({
|
|
183
|
+
queryConfig: queryConfig,
|
|
184
|
+
seriesLabels: input.seriesLabels,
|
|
185
|
+
});
|
|
186
|
+
for (const key of Object.keys(filters)) {
|
|
187
|
+
if (seen.has(key)) {
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
seen.add(key);
|
|
191
|
+
const filterValue = filters[key];
|
|
192
|
+
parts.push(`${key} = ${typeof filterValue === "string"
|
|
193
|
+
? filterValue
|
|
194
|
+
: MetricSeriesScope.UnsetLabelDisplayValue}`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return parts.join(", ");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// How an empty (unset) label value is rendered in human-facing summaries.
|
|
201
|
+
MetricSeriesScope.UnsetLabelDisplayValue = "(unset)";
|
|
202
|
+
export default MetricSeriesScope;
|
|
203
|
+
//# sourceMappingURL=MetricSeriesScope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetricSeriesScope.js","sourceRoot":"","sources":["../../../../Utils/Metrics/MetricSeriesScope.ts"],"names":[],"mappings":"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"}
|