@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,452 @@
|
|
|
1
|
+
import SessionReplayConsentMode from "./SessionReplayConsentMode";
|
|
2
|
+
import SessionReplayMaskingMode from "./SessionReplayMaskingMode";
|
|
3
|
+
import SessionReplayTriggerReason from "./SessionReplayTriggerReason";
|
|
4
|
+
|
|
5
|
+
/*
|
|
6
|
+
* Wire contract between the browser (and later mobile) recorder and the
|
|
7
|
+
* session-replay ingest endpoint.
|
|
8
|
+
*
|
|
9
|
+
* Both sides of this file are load-bearing: the recorder is bundled and
|
|
10
|
+
* served to third-party origins, so a customer's browser may be running
|
|
11
|
+
* an older recorder than the server it posts to for as long as the
|
|
12
|
+
* pinned-artifact cache lives. Every field here is therefore additive-only,
|
|
13
|
+
* and SESSION_REPLAY_WIRE_VERSION is bumped for anything else.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/* Bumped only on a breaking change to the envelope or the frame layout. */
|
|
17
|
+
export const SESSION_REPLAY_WIRE_VERSION: number = 1;
|
|
18
|
+
|
|
19
|
+
/*
|
|
20
|
+
* Bumped when the *payload* (the rrweb event array) changes shape in a
|
|
21
|
+
* way playback must branch on. Stored per chunk so a player can refuse
|
|
22
|
+
* gracefully instead of rendering a plausible-but-wrong DOM.
|
|
23
|
+
*/
|
|
24
|
+
export const SESSION_REPLAY_SCHEMA_VERSION: number = 1;
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
* Cap on a single POST body, post-compression. Enforced by the ingest
|
|
28
|
+
* middleware's running byte counter and mirrored by nginx's
|
|
29
|
+
* client_max_body_size on the /session-replay location. This is per
|
|
30
|
+
* REQUEST, not per frame — a catch-up post carrying several frames is
|
|
31
|
+
* bounded by this same number.
|
|
32
|
+
*/
|
|
33
|
+
export const MAX_SESSION_REPLAY_CHUNK_BYTES: number = 2 * 1024 * 1024;
|
|
34
|
+
|
|
35
|
+
/* Frames a single catch-up request may concatenate. */
|
|
36
|
+
export const MAX_SESSION_REPLAY_CHUNKS_PER_REQUEST: number = 8;
|
|
37
|
+
|
|
38
|
+
/*
|
|
39
|
+
* Hard stop per session. At the 15s flush cadence this is ~2 hours of
|
|
40
|
+
* continuous recording, comfortably past the 4-hour session cap once
|
|
41
|
+
* idle gaps are accounted for. Prevents one pathological tab from
|
|
42
|
+
* writing unbounded rows under a single sort-key prefix.
|
|
43
|
+
*/
|
|
44
|
+
export const MAX_SESSION_REPLAY_CHUNKS_PER_SESSION: number = 480;
|
|
45
|
+
|
|
46
|
+
/* Chunks a single playback request may ask for, and their total size. */
|
|
47
|
+
export const MAX_SESSION_REPLAY_CHUNKS_PER_READ: number = 8;
|
|
48
|
+
export const MAX_SESSION_REPLAY_READ_BYTES: number = 8 * 1024 * 1024;
|
|
49
|
+
|
|
50
|
+
/*
|
|
51
|
+
* Default for the instance-wide per-project daily byte budget. The live
|
|
52
|
+
* value is the SESSION_REPLAY_MAX_BYTES_PER_PROJECT_PER_DAY env var; this
|
|
53
|
+
* default is shared between the ingest gate (App Telemetry Config) and the
|
|
54
|
+
* Dashboard-facing ingest-status endpoint so the number the gate enforces
|
|
55
|
+
* and the number the customer is shown cannot drift.
|
|
56
|
+
*/
|
|
57
|
+
export const DEFAULT_SESSION_REPLAY_MAX_BYTES_PER_PROJECT_PER_DAY: number =
|
|
58
|
+
1024 * 1024 * 1024;
|
|
59
|
+
|
|
60
|
+
/*
|
|
61
|
+
* Recorder flush triggers. A chunk closes on whichever comes first.
|
|
62
|
+
* SESSION_REPLAY_CHECKOUT_INTERVAL_MS is also the worst-case seek
|
|
63
|
+
* granularity, since seeking rewinds to the nearest full snapshot.
|
|
64
|
+
*/
|
|
65
|
+
export const SESSION_REPLAY_FLUSH_INTERVAL_MS: number = 15 * 1000;
|
|
66
|
+
export const SESSION_REPLAY_FLUSH_BYTES: number = 256 * 1024;
|
|
67
|
+
export const SESSION_REPLAY_CHECKOUT_INTERVAL_MS: number = 60 * 1000;
|
|
68
|
+
|
|
69
|
+
/*
|
|
70
|
+
* Rolling pre-roll buffer held in memory before a trigger fires, and the
|
|
71
|
+
* hard byte ceiling on it. The ceiling matters more than the duration:
|
|
72
|
+
* a heavily dynamic page can blow through 2MB in well under 60s, and a
|
|
73
|
+
* recorder that OOMs the host page is worse than no recorder.
|
|
74
|
+
*/
|
|
75
|
+
export const SESSION_REPLAY_ROLLING_BUFFER_MS: number = 60 * 1000;
|
|
76
|
+
export const SESSION_REPLAY_ROLLING_BUFFER_BYTES: number = 2 * 1024 * 1024;
|
|
77
|
+
|
|
78
|
+
/* Session identity lifetimes. */
|
|
79
|
+
export const SESSION_REPLAY_IDLE_ROLLOVER_MS: number = 30 * 60 * 1000;
|
|
80
|
+
export const SESSION_REPLAY_MAX_SESSION_MS: number = 4 * 60 * 60 * 1000;
|
|
81
|
+
|
|
82
|
+
/*
|
|
83
|
+
* fetch(keepalive) quota is 64KB combined per origin across all in-flight
|
|
84
|
+
* keepalive requests, so the terminal flush gets one request under this
|
|
85
|
+
* cap rather than several that would silently fail against the quota.
|
|
86
|
+
*/
|
|
87
|
+
export const SESSION_REPLAY_KEEPALIVE_MAX_BYTES: number = 56 * 1024;
|
|
88
|
+
|
|
89
|
+
/*
|
|
90
|
+
* Consecutive transport failures before the recorder permanently
|
|
91
|
+
* self-disables and releases its buffer. A recorder that retries forever
|
|
92
|
+
* against a misconfigured origin is a battery and bandwidth bug on the
|
|
93
|
+
* customer's site.
|
|
94
|
+
*/
|
|
95
|
+
export const SESSION_REPLAY_MAX_FLUSH_FAILURES: number = 3;
|
|
96
|
+
|
|
97
|
+
/* Content type carried on every chunk POST. */
|
|
98
|
+
export const SESSION_REPLAY_CONTENT_TYPE: string =
|
|
99
|
+
"application/vnd.oneuptime.session-replay.v1";
|
|
100
|
+
|
|
101
|
+
/* Header carrying the RUM application identifier, needed pre-decode. */
|
|
102
|
+
export const SESSION_REPLAY_APP_IDENTIFIER_HEADER: string =
|
|
103
|
+
"x-oneuptime-app-identifier";
|
|
104
|
+
|
|
105
|
+
/*
|
|
106
|
+
* Header carrying the host page's end-user reference on the CONFIG fetch,
|
|
107
|
+
* URI-component-encoded so a non-ASCII reference cannot make fetch() throw
|
|
108
|
+
* and take the whole recorder down with it. Only sent when the page
|
|
109
|
+
* provided a userRef, and only used server-side to answer one question:
|
|
110
|
+
* "is there a pending record-next-session target for this user?". A header
|
|
111
|
+
* rather than a query parameter so it can never land in access logs.
|
|
112
|
+
*/
|
|
113
|
+
export const SESSION_REPLAY_USER_REF_HEADER: string = "x-oneuptime-user-ref";
|
|
114
|
+
|
|
115
|
+
/*
|
|
116
|
+
* How long a "record the next session for this user" target waits for
|
|
117
|
+
* that user to show up before expiring, and the cap on the reference
|
|
118
|
+
* length accepted from either side (dashboard or config fetch).
|
|
119
|
+
*/
|
|
120
|
+
export const SESSION_REPLAY_TARGET_TTL_SECONDS: number = 24 * 60 * 60;
|
|
121
|
+
export const SESSION_REPLAY_MAX_USER_REF_LENGTH: number = 512;
|
|
122
|
+
|
|
123
|
+
/*
|
|
124
|
+
* Retention values a session may be clamped to. Under expiry-based
|
|
125
|
+
* partitioning each distinct value creates its own partition per ingest
|
|
126
|
+
* day, so this is deliberately a short closed set rather than a free
|
|
127
|
+
* integer.
|
|
128
|
+
*/
|
|
129
|
+
export const SESSION_REPLAY_ALLOWED_RETENTION_DAYS: Array<number> = [
|
|
130
|
+
1, 7, 14, 30, 90,
|
|
131
|
+
];
|
|
132
|
+
|
|
133
|
+
/*
|
|
134
|
+
* 7 days, not the 15 the other telemetry pillars default to. Replay is
|
|
135
|
+
* the highest-sensitivity and highest-byte pillar, and a short retention
|
|
136
|
+
* is itself a privacy control.
|
|
137
|
+
*/
|
|
138
|
+
export const DEFAULT_SESSION_REPLAY_RETENTION_IN_DAYS: number = 7;
|
|
139
|
+
|
|
140
|
+
/* How the payload bytes were compressed by the recorder. */
|
|
141
|
+
export type SessionReplayPayloadEncoding = "gzip" | "identity";
|
|
142
|
+
|
|
143
|
+
/* Which recorder produced the frame — web DOM, or a mobile view tree. */
|
|
144
|
+
export type SessionReplayRecorderKind = "dom" | "rn-view-tree";
|
|
145
|
+
|
|
146
|
+
/* State of the consent handshake at the moment the chunk was cut. */
|
|
147
|
+
export type SessionReplayConsentState = "Granted" | "NotRequired" | "Unknown";
|
|
148
|
+
|
|
149
|
+
/*
|
|
150
|
+
* Instruction handed back to a live recorder on every chunk response, so
|
|
151
|
+
* a project or application that is switched off stops *recording* within
|
|
152
|
+
* one flush window instead of waiting out the config cache.
|
|
153
|
+
*/
|
|
154
|
+
export type SessionReplayDirective = "continue" | "stop" | "throttle";
|
|
155
|
+
|
|
156
|
+
/*
|
|
157
|
+
* Machine-readable disclosures of what the recorder could not capture.
|
|
158
|
+
* Surfaced on the player so a viewer sees "this region was not recorded"
|
|
159
|
+
* rather than a silent blank rectangle — in a tool that presents evidence,
|
|
160
|
+
* an unexplained gap is worse than an acknowledged one.
|
|
161
|
+
*/
|
|
162
|
+
export enum SessionReplayFidelityNotice {
|
|
163
|
+
CanvasNotRecorded = "canvas-not-recorded",
|
|
164
|
+
CrossOriginIframe = "cross-origin-iframe",
|
|
165
|
+
ClosedShadowRoot = "closed-shadow-root",
|
|
166
|
+
StylesheetInaccessible = "stylesheet-inaccessible",
|
|
167
|
+
AdoptedStylesheet = "adopted-stylesheet",
|
|
168
|
+
FontsOmitted = "fonts-omitted",
|
|
169
|
+
MediaNotReplayable = "media-not-replayable",
|
|
170
|
+
SnapshotTooLarge = "snapshot-too-large",
|
|
171
|
+
BufferOverflow = "buffer-overflow",
|
|
172
|
+
BfcacheRestore = "bfcache-restore",
|
|
173
|
+
/*
|
|
174
|
+
* One or more configured ignoreErrorPatterns could not be applied
|
|
175
|
+
* (invalid regex, or over the count/length caps), so error triggering
|
|
176
|
+
* may be noisier than the application's settings intend.
|
|
177
|
+
*/
|
|
178
|
+
IgnorePatternsDiscarded = "ignore-patterns-discarded",
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/* Why a session stopped accumulating chunks. */
|
|
182
|
+
export enum SessionReplaySealedReason {
|
|
183
|
+
FinalChunk = "final-chunk",
|
|
184
|
+
IdleTimeout = "idle-timeout",
|
|
185
|
+
DurationCap = "duration-cap",
|
|
186
|
+
Budget = "budget",
|
|
187
|
+
Truncated = "truncated",
|
|
188
|
+
/*
|
|
189
|
+
* Sealed by the never-finalized sweep for a session whose chunks never
|
|
190
|
+
* landed or expired before finalization could run: the header survives
|
|
191
|
+
* as an honest "a recording existed but was lost" record instead of
|
|
192
|
+
* sitting provisional (and re-swept) forever.
|
|
193
|
+
*/
|
|
194
|
+
RecordingLost = "recording-lost",
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/*
|
|
198
|
+
* Per-chunk frustration and volume counters. Carried on the envelope so
|
|
199
|
+
* the ingest worker can populate the header columns WITHOUT decompressing
|
|
200
|
+
* the payload, which is what keeps the hot path cheap.
|
|
201
|
+
*/
|
|
202
|
+
export interface SessionReplaySignalCounts {
|
|
203
|
+
errorCount: number;
|
|
204
|
+
rageClickCount: number;
|
|
205
|
+
deadClickCount: number;
|
|
206
|
+
errorClickCount: number;
|
|
207
|
+
refreshRageCount: number;
|
|
208
|
+
routeCount: number;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/*
|
|
212
|
+
* Device and entry metadata. Sent only on chunk 0 and on the final chunk
|
|
213
|
+
* — repeating it on every frame would be pure waste, and the finalizer
|
|
214
|
+
* reads whichever copy arrived.
|
|
215
|
+
*/
|
|
216
|
+
export interface SessionReplayChunkMeta {
|
|
217
|
+
entryUrl: string;
|
|
218
|
+
browserName: string;
|
|
219
|
+
browserVersion: string;
|
|
220
|
+
osName: string;
|
|
221
|
+
deviceType: string;
|
|
222
|
+
viewportWidth: number;
|
|
223
|
+
viewportHeight: number;
|
|
224
|
+
/*
|
|
225
|
+
* Opaque reference for the identified end user, supplied by the host
|
|
226
|
+
* page. Hashed to identifiedUserKey server-side with a per-project
|
|
227
|
+
* salt; the raw value is only ever stored when the application has
|
|
228
|
+
* explicitly enabled user-identity capture.
|
|
229
|
+
*/
|
|
230
|
+
identifiedUserRef?: string;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/*
|
|
234
|
+
* The JSON envelope prefixed to every chunk body, separated from the
|
|
235
|
+
* compressed payload by a single newline. Kept in the body rather than
|
|
236
|
+
* spread across custom headers: extra request headers widen the CORS
|
|
237
|
+
* preflight surface, and splitting on the first 0x0A byte plus parsing a
|
|
238
|
+
* ~200 byte JSON object costs microseconds.
|
|
239
|
+
*/
|
|
240
|
+
export interface SessionReplayChunkEnvelope {
|
|
241
|
+
/* Wire version. Rejected outright if it exceeds what the server knows. */
|
|
242
|
+
v: number;
|
|
243
|
+
|
|
244
|
+
appIdentifier: string;
|
|
245
|
+
sessionId: string;
|
|
246
|
+
|
|
247
|
+
/*
|
|
248
|
+
* Distinguishes concurrent tabs. sessionStorage is COPIED on tab
|
|
249
|
+
* duplication, so two live tabs can share one sessionId and both mint
|
|
250
|
+
* chunkIndex from 0 — without tabId in the sort key one tab's entire
|
|
251
|
+
* stream is silently discarded by read-time dedup.
|
|
252
|
+
*/
|
|
253
|
+
tabId: string;
|
|
254
|
+
|
|
255
|
+
chunkIndex: number;
|
|
256
|
+
|
|
257
|
+
/* Client clocks. Both retained; the server clamps and records the skew. */
|
|
258
|
+
sessionStartUnixMs: number;
|
|
259
|
+
clientSendUnixMs: number;
|
|
260
|
+
|
|
261
|
+
chunkStartOffsetMs: number;
|
|
262
|
+
chunkEndOffsetMs: number;
|
|
263
|
+
|
|
264
|
+
eventCount: number;
|
|
265
|
+
|
|
266
|
+
/*
|
|
267
|
+
* True when this chunk opens on a full DOM snapshot, making it a valid
|
|
268
|
+
* seek anchor. Driven by rrweb's isCheckout flag rather than inferred.
|
|
269
|
+
*/
|
|
270
|
+
hasFullSnapshot: boolean;
|
|
271
|
+
|
|
272
|
+
isFinal: boolean;
|
|
273
|
+
|
|
274
|
+
/*
|
|
275
|
+
* A full snapshot is one indivisible rrweb event and can exceed the
|
|
276
|
+
* flush threshold on a large DOM. When split, hasFullSnapshot is set
|
|
277
|
+
* only on the final part, so seek anchors never point mid-snapshot.
|
|
278
|
+
*/
|
|
279
|
+
snapshotPart?: {
|
|
280
|
+
index: number;
|
|
281
|
+
total: number;
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
recorderKind: SessionReplayRecorderKind;
|
|
285
|
+
schemaVersion: number;
|
|
286
|
+
rrwebVersion: string;
|
|
287
|
+
recorderVersion: string;
|
|
288
|
+
|
|
289
|
+
maskingMode: SessionReplayMaskingMode;
|
|
290
|
+
consentState: SessionReplayConsentState;
|
|
291
|
+
triggerReason: SessionReplayTriggerReason;
|
|
292
|
+
|
|
293
|
+
payloadEncoding: SessionReplayPayloadEncoding;
|
|
294
|
+
payloadBytes: number;
|
|
295
|
+
|
|
296
|
+
/* Already scrubbed client-side: origin + path, no query, no fragment. */
|
|
297
|
+
url: string;
|
|
298
|
+
|
|
299
|
+
signals: SessionReplaySignalCounts;
|
|
300
|
+
|
|
301
|
+
fidelityNotices: Array<string>;
|
|
302
|
+
|
|
303
|
+
/*
|
|
304
|
+
* Recorder self-reporting. A recorder that silently drops events is
|
|
305
|
+
* indistinguishable from a quiet user, so it tells on itself.
|
|
306
|
+
*/
|
|
307
|
+
droppedEvents: number;
|
|
308
|
+
flushFailures: number;
|
|
309
|
+
|
|
310
|
+
meta?: SessionReplayChunkMeta;
|
|
311
|
+
|
|
312
|
+
/* Trace ids observed in this chunk's network events, for correlation. */
|
|
313
|
+
traceIds?: Array<string>;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/*
|
|
317
|
+
* Policy snapshot handed to the recorder at startup. This endpoint is
|
|
318
|
+
* what makes every server-side privacy control reachable by a live
|
|
319
|
+
* recorder — without it, flipping a masking setting would never take
|
|
320
|
+
* effect in a browser that already loaded.
|
|
321
|
+
*/
|
|
322
|
+
export interface SessionReplayConfigResponse {
|
|
323
|
+
enabled: boolean;
|
|
324
|
+
|
|
325
|
+
/* Pinned immutable artifact the loader stub should import. */
|
|
326
|
+
recorderVersion: string;
|
|
327
|
+
|
|
328
|
+
maskingMode: SessionReplayMaskingMode;
|
|
329
|
+
captureTrigger: string;
|
|
330
|
+
consentMode: SessionReplayConsentMode;
|
|
331
|
+
|
|
332
|
+
samplePercentage: number;
|
|
333
|
+
|
|
334
|
+
maskSelectors: Array<string>;
|
|
335
|
+
blockSelectors: Array<string>;
|
|
336
|
+
|
|
337
|
+
/* Query parameters that survive URL scrubbing. */
|
|
338
|
+
urlAllowlist: Array<string>;
|
|
339
|
+
|
|
340
|
+
recordCanvas: boolean;
|
|
341
|
+
captureUserIdentity: boolean;
|
|
342
|
+
|
|
343
|
+
/*
|
|
344
|
+
* Regex strings matched (case-insensitively) against an uncaught
|
|
345
|
+
* error's message and source URL. A matching error is still RECORDED in
|
|
346
|
+
* the session, but it no longer fires the error capture trigger — the
|
|
347
|
+
* dashboard-side remedy for a chronically-throwing third-party tag that
|
|
348
|
+
* would otherwise convert error-triggered capture into always-on
|
|
349
|
+
* upload, without waiting on a recorder release.
|
|
350
|
+
*/
|
|
351
|
+
ignoreErrorPatterns: Array<string>;
|
|
352
|
+
|
|
353
|
+
/*
|
|
354
|
+
* ---- Fields below are OPTIONAL on the wire, deliberately. ----
|
|
355
|
+
*
|
|
356
|
+
* The loader stub validates this response field-by-field and lives
|
|
357
|
+
* under a hard byte budget; fields only the full recorder artifact acts
|
|
358
|
+
* on are not worth loader bytes to validate. The stub passes the raw
|
|
359
|
+
* body through (LoaderConfig.raw) and the artifact normalises these
|
|
360
|
+
* itself, treating absence as "feature off". The server always sends
|
|
361
|
+
* them (pinned by tests); older cached stubs simply don't validate
|
|
362
|
+
* them, which is the additive-only contract working as intended.
|
|
363
|
+
*/
|
|
364
|
+
|
|
365
|
+
/*
|
|
366
|
+
* Origins the recorder may inject a W3C traceparent header into, so a
|
|
367
|
+
* recording links to the backend trace of the request that failed —
|
|
368
|
+
* with NO OTel browser instrumentation on the customer's page.
|
|
369
|
+
*
|
|
370
|
+
* Empty means never inject, and that default is the safety mechanism:
|
|
371
|
+
* adding a request header turns a simple cross-origin request into a
|
|
372
|
+
* preflighted one, and an API that does not allow traceparent in
|
|
373
|
+
* Access-Control-Allow-Headers would start failing because a RUM
|
|
374
|
+
* script was installed. Each listed origin is an explicit statement
|
|
375
|
+
* that its API accepts the header.
|
|
376
|
+
*/
|
|
377
|
+
tracePropagationOrigins?: Array<string>;
|
|
378
|
+
|
|
379
|
+
/*
|
|
380
|
+
* Performance capture budgets, milliseconds; 0 disables that trigger.
|
|
381
|
+
* Exceeding a budget fires the Performance capture trigger, so slow
|
|
382
|
+
* sessions get recordings the same way broken ones do.
|
|
383
|
+
*/
|
|
384
|
+
lcpBudgetMs?: number;
|
|
385
|
+
longTaskBudgetMs?: number;
|
|
386
|
+
slowRequestBudgetMs?: number;
|
|
387
|
+
|
|
388
|
+
/*
|
|
389
|
+
* True when this recorder boot matched a "record the next session for
|
|
390
|
+
* this user" target set from the Dashboard. The recorder records from
|
|
391
|
+
* the first event, trigger reason "manual". Consent gates still apply.
|
|
392
|
+
*/
|
|
393
|
+
isTargeted?: boolean;
|
|
394
|
+
|
|
395
|
+
respectDoNotTrack: boolean;
|
|
396
|
+
|
|
397
|
+
/*
|
|
398
|
+
* Bumped whenever the policy changes, so a recorder can notice its
|
|
399
|
+
* config is stale without diffing the whole object.
|
|
400
|
+
*/
|
|
401
|
+
configEpoch: number;
|
|
402
|
+
|
|
403
|
+
directive: SessionReplayDirective;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/* Response to a chunk POST. Deliberately tiny. */
|
|
407
|
+
export interface SessionReplayChunkResponse {
|
|
408
|
+
directive: SessionReplayDirective;
|
|
409
|
+
configEpoch: number;
|
|
410
|
+
retryAfterSeconds?: number;
|
|
411
|
+
/*
|
|
412
|
+
* WHY the directive says what it says ("budget-exhausted",
|
|
413
|
+
* "not-sampled", "rate-limited", ...). A recorder told to stop without a
|
|
414
|
+
* reason leaves the customer diagnosing silence; the reason string is a
|
|
415
|
+
* closed vocabulary, carries no user data, and lets the recorder log
|
|
416
|
+
* something a support ticket can quote.
|
|
417
|
+
*/
|
|
418
|
+
reason?: string;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
/*
|
|
422
|
+
* One row of the playback manifest — everything the player needs to draw
|
|
423
|
+
* a complete timeline WITHOUT fetching a single payload byte.
|
|
424
|
+
*/
|
|
425
|
+
export interface SessionReplayChunkManifestEntry {
|
|
426
|
+
chunkIndex: number;
|
|
427
|
+
tabId: string;
|
|
428
|
+
chunkStartOffsetMs: number;
|
|
429
|
+
chunkEndOffsetMs: number;
|
|
430
|
+
eventCount: number;
|
|
431
|
+
hasFullSnapshot: boolean;
|
|
432
|
+
payloadBytes: number;
|
|
433
|
+
|
|
434
|
+
/*
|
|
435
|
+
* Per-chunk signal counters. These feed the player's error, frustration
|
|
436
|
+
* and route timeline lanes and the "next error" jump — a lane drawn from
|
|
437
|
+
* counters the chunk row already carries, never inferred from payloads.
|
|
438
|
+
*/
|
|
439
|
+
errorCount: number;
|
|
440
|
+
rageClickCount: number;
|
|
441
|
+
deadClickCount: number;
|
|
442
|
+
errorClickCount: number;
|
|
443
|
+
refreshRageCount: number;
|
|
444
|
+
routeCount: number;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
/* A hole in the chunk sequence. Never crossed silently during playback. */
|
|
448
|
+
export interface SessionReplayGap {
|
|
449
|
+
fromIndex: number;
|
|
450
|
+
toIndex: number;
|
|
451
|
+
missingMs: number;
|
|
452
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* What causes a session to be uploaded — the single decision that drives
|
|
3
|
+
* the cost, storage and privacy-exposure profile of the whole feature.
|
|
4
|
+
*
|
|
5
|
+
* OnErrorOrFrustration is the observability-native default: the recorder
|
|
6
|
+
* holds a rolling buffer and only uploads when something actually went
|
|
7
|
+
* wrong, so a recording exists for very nearly every failed session
|
|
8
|
+
* while costing roughly 15x less than recording everyone.
|
|
9
|
+
*/
|
|
10
|
+
enum SessionReplayCaptureTrigger {
|
|
11
|
+
/*
|
|
12
|
+
* Default. Upload only on error / unhandled rejection / 5xx response /
|
|
13
|
+
* frustration signal, plus whatever the sample percentage picks up.
|
|
14
|
+
*/
|
|
15
|
+
OnErrorOrFrustration = "OnErrorOrFrustration",
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* Upload every sampled session from its first event, whether or not
|
|
19
|
+
* anything goes wrong. What users migrating from a marketing-analytics
|
|
20
|
+
* tool expect to find. Materially more expensive and materially more
|
|
21
|
+
* end-user data at rest.
|
|
22
|
+
*/
|
|
23
|
+
Always = "Always",
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default SessionReplayCaptureTrigger;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Whether the recorder needs an explicit consent grant from the host
|
|
3
|
+
* page before it may upload anything.
|
|
4
|
+
*
|
|
5
|
+
* In RequireExplicit the recorder still *records* into its in-memory
|
|
6
|
+
* ring buffer (so the pre-roll leading up to an error is not lost while
|
|
7
|
+
* a cookie banner is on screen) but uploads nothing until the host page
|
|
8
|
+
* calls grantConsent(). revokeConsent() drops the buffer outright.
|
|
9
|
+
*/
|
|
10
|
+
enum SessionReplayConsentMode {
|
|
11
|
+
/*
|
|
12
|
+
* Default. Nothing is uploaded until the host page grants consent.
|
|
13
|
+
* Chunks carry their consentState and the ingest worker drops any
|
|
14
|
+
* chunk marked Unknown when the application requires explicit consent,
|
|
15
|
+
* so a recorder that skips the handshake fails closed server-side too.
|
|
16
|
+
*/
|
|
17
|
+
RequireExplicit = "RequireExplicit",
|
|
18
|
+
|
|
19
|
+
/*
|
|
20
|
+
* The customer asserts they have a lawful basis that does not require
|
|
21
|
+
* a per-session grant (for example an internal admin tool covered by
|
|
22
|
+
* an employment agreement). Uploads begin immediately.
|
|
23
|
+
*/
|
|
24
|
+
NotRequired = "NotRequired",
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default SessionReplayConsentMode;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* How aggressively the browser recorder masks page content before an
|
|
3
|
+
* event ever leaves the end user's device.
|
|
4
|
+
*
|
|
5
|
+
* Masking is applied at capture, in the browser, BEFORE compression and
|
|
6
|
+
* BEFORE the chunk is posted. The server never sees unmasked content, so
|
|
7
|
+
* a leak cannot be repaired retroactively — tightening the mode does not
|
|
8
|
+
* scrub recordings that were already taken under a looser one.
|
|
9
|
+
*
|
|
10
|
+
* The three modes are ordered here from most useful to most private,
|
|
11
|
+
* which is also the order they appear in the settings dropdown.
|
|
12
|
+
*/
|
|
13
|
+
enum SessionReplayMaskingMode {
|
|
14
|
+
/*
|
|
15
|
+
* Default. Only fields that are sensitive by their own markup are
|
|
16
|
+
* masked: password inputs, and inputs whose autocomplete token marks
|
|
17
|
+
* them as a card number, CVC, expiry or one-time code. Everything else
|
|
18
|
+
* — static page text and ordinary input values alike — is recorded
|
|
19
|
+
* verbatim, which is what makes a recording readable enough to debug
|
|
20
|
+
* from.
|
|
21
|
+
*
|
|
22
|
+
* "Sensitive" is decided per node and is STICKY: once a field has ever
|
|
23
|
+
* looked sensitive it stays masked for the life of the page, so a
|
|
24
|
+
* "show password" toggle cannot unmask it. Anything the markup does not
|
|
25
|
+
* declare (an account number rendered into a plain text input, an
|
|
26
|
+
* order id in a heading) is NOT covered — use the mask and block
|
|
27
|
+
* selectors on the application's policy for those.
|
|
28
|
+
*/
|
|
29
|
+
MaskSensitiveInputsOnly = "MaskSensitiveInputsOnly",
|
|
30
|
+
|
|
31
|
+
/*
|
|
32
|
+
* Every input value is masked, whether or not the field looks
|
|
33
|
+
* sensitive; static page text is still recorded verbatim. Choose this
|
|
34
|
+
* when users type data into your app that the markup does not declare
|
|
35
|
+
* as sensitive.
|
|
36
|
+
*/
|
|
37
|
+
MaskInputsOnly = "MaskInputsOnly",
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* The strictest mode. Every text node and every input value is replaced
|
|
41
|
+
* with a placeholder at capture time. Playback shows layout,
|
|
42
|
+
* interaction and shape — a wireframe — but no readable copy.
|
|
43
|
+
*/
|
|
44
|
+
MaskAllText = "MaskAllText",
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/*
|
|
48
|
+
* Narrow an untrusted value onto the enum.
|
|
49
|
+
*
|
|
50
|
+
* Used by the recorder on a config response, by the gate cache on a stored
|
|
51
|
+
* column, and by the ingest envelope parser on recorder-supplied metadata.
|
|
52
|
+
* All three fail CLOSED: anything unrecognised - a value from a newer
|
|
53
|
+
* server than this build, a tampered response, a corrupted row - becomes
|
|
54
|
+
* MaskAllText rather than the configured default, because the strictest
|
|
55
|
+
* mode is the only one that is never wrong to apply.
|
|
56
|
+
*
|
|
57
|
+
* Must stay dependency-free: this module is bundled into the browser
|
|
58
|
+
* recorder.
|
|
59
|
+
*/
|
|
60
|
+
export function parseSessionReplayMaskingMode(
|
|
61
|
+
value: unknown,
|
|
62
|
+
): SessionReplayMaskingMode {
|
|
63
|
+
switch (value) {
|
|
64
|
+
case SessionReplayMaskingMode.MaskSensitiveInputsOnly:
|
|
65
|
+
return SessionReplayMaskingMode.MaskSensitiveInputsOnly;
|
|
66
|
+
case SessionReplayMaskingMode.MaskInputsOnly:
|
|
67
|
+
return SessionReplayMaskingMode.MaskInputsOnly;
|
|
68
|
+
default:
|
|
69
|
+
return SessionReplayMaskingMode.MaskAllText;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/*
|
|
74
|
+
* Does this mode record readable page content? True for everything except
|
|
75
|
+
* the wireframe mode. Drives the "this recording may contain readable
|
|
76
|
+
* content" notice on the player, which must fire for BOTH relaxed modes -
|
|
77
|
+
* keying that notice on a single enum member is how a new mode silently
|
|
78
|
+
* stops warning anyone.
|
|
79
|
+
*/
|
|
80
|
+
export function doesMaskingModeRecordReadableContent(
|
|
81
|
+
mode: SessionReplayMaskingMode,
|
|
82
|
+
): boolean {
|
|
83
|
+
return mode !== SessionReplayMaskingMode.MaskAllText;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export default SessionReplayMaskingMode;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Why a session was uploaded at all.
|
|
3
|
+
*
|
|
4
|
+
* The recorder keeps a rolling in-memory buffer and, in the default
|
|
5
|
+
* capture mode, uploads nothing until one of these fires. Storing the
|
|
6
|
+
* reason lets the read side explain *why* a recording exists, and lets
|
|
7
|
+
* analytics un-bias counts against the sample percentage in force at
|
|
8
|
+
* capture time.
|
|
9
|
+
*/
|
|
10
|
+
enum SessionReplayTriggerReason {
|
|
11
|
+
/* An uncaught error or unhandled promise rejection was observed. */
|
|
12
|
+
Error = "error",
|
|
13
|
+
|
|
14
|
+
/* A rage click, dead click, error click or refresh-rage was observed. */
|
|
15
|
+
Frustration = "frustration",
|
|
16
|
+
|
|
17
|
+
/* Picked up by the deterministic sample percentage, nothing went wrong. */
|
|
18
|
+
Sampled = "sampled",
|
|
19
|
+
|
|
20
|
+
/* The host page called OneUptimeReplay.captureSession() explicitly. */
|
|
21
|
+
Manual = "manual",
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
* A performance budget was blown: LCP, a main-thread long task, or an
|
|
25
|
+
* instrumented request over the application's configured budget. Slow
|
|
26
|
+
* sessions get recordings the same way broken ones do.
|
|
27
|
+
*/
|
|
28
|
+
Performance = "performance",
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export default SessionReplayTriggerReason;
|