@oneuptime/common 14.0.8 → 14.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/DatabaseModels/Index.ts +2 -0
- package/Models/DatabaseModels/KubernetesAiAgent.ts +364 -0
- package/Models/DatabaseModels/KubernetesCluster.ts +3 -3
- package/Models/DatabaseModels/Project.ts +55 -5
- package/Models/DatabaseModels/ProxmoxResource.ts +49 -1
- package/Models/DatabaseModels/RunnerJob.ts +75 -0
- package/Models/DatabaseModels/TeamComplianceSetting.ts +143 -2
- package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +17 -0
- package/Server/API/AIChatAPI.ts +6 -3
- package/Server/API/AIInvestigationAPI.ts +17 -10
- package/Server/API/AutoRemediationAPI.ts +207 -25
- package/Server/API/KubernetesClusterAiAccessAPI.ts +623 -21
- package/Server/API/MicrosoftTeamsAPI.ts +93 -14
- package/Server/API/ProxmoxResourceAPI.ts +244 -14
- package/Server/Infrastructure/GlobalCache.ts +32 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1796000000000-AddTeamComplianceRuleScope.ts +99 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1796100000000-AddKubernetesAiAgentAndAiDefaults.ts +137 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1796200000000-AddProxmoxResourceNativePushColumns.ts +42 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Middleware/TelemetryIngest.ts +41 -18
- package/Server/Services/AIService.ts +70 -1
- package/Server/Services/AlertService.ts +352 -11
- package/Server/Services/AlertSeverityService.ts +65 -15
- package/Server/Services/AutoRemediationRuleService.ts +1 -1
- package/Server/Services/IncidentService.ts +280 -104
- package/Server/Services/IncidentSeverityService.ts +66 -15
- package/Server/Services/KubernetesAiAgentJobService.ts +185 -0
- package/Server/Services/KubernetesAiAgentService.ts +1634 -0
- package/Server/Services/KubernetesClusterAiAccessService.ts +1118 -451
- package/Server/Services/KubernetesClusterService.ts +129 -21
- package/Server/Services/ProjectService.ts +32 -0
- package/Server/Services/ProxmoxResourceService.ts +322 -5
- package/Server/Services/RunnerJobService.ts +241 -104
- package/Server/Services/RunnerService.ts +1 -1
- package/Server/Services/ScheduledMaintenanceService.ts +737 -1
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +414 -56
- package/Server/Services/TeamComplianceSettingService.ts +1125 -9
- package/Server/Utils/AI/ClusterAccess/ClusterAccessContext.ts +67 -9
- package/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.ts +39 -10
- package/Server/Utils/AI/ClusterAccess/KubectlJobRunner.ts +14 -3
- package/Server/Utils/AI/Remediation/RemediationCommandTools.ts +37 -15
- package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +67 -24
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +48 -5
- package/Server/Utils/AI/SRE/IncidentPostmortemRunner.ts +40 -8
- package/Server/Utils/AI/SRE/InvestigationEligibility.ts +13 -2
- package/Server/Utils/AI/SRE/InvestigationGrader.ts +1 -1
- package/Server/Utils/AutoRemediation/CommandPlanExecutor.ts +6 -1
- package/Server/Utils/Telemetry/InventoryEntityRegistry.ts +133 -7
- package/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.ts +58 -4
- package/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.ts +447 -0
- package/Server/Utils/Telemetry/ProxmoxNativePush.ts +903 -0
- package/Server/Utils/Telemetry/TelemetryEntity.ts +87 -27
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +684 -47
- package/Tests/App/AdminDashboard/RowActionPlacementOverrides.test.tsx +278 -0
- package/Tests/App/Dashboard/AIChatChartWidgetZoom.test.tsx +738 -0
- package/Tests/App/Dashboard/AIFeaturesSettingsPointers.test.tsx +147 -0
- package/Tests/App/Dashboard/AIInsightsKubernetesClusterPage.test.tsx +1523 -0
- package/Tests/App/Dashboard/AdminUserNotificationMethodsPage.test.tsx +463 -3
- package/Tests/App/Dashboard/AffectedResourcesPickerDropdownPlacement.test.tsx +958 -0
- package/Tests/App/Dashboard/AffectedResourcesPickerFocusLeave.test.tsx +595 -0
- package/Tests/App/Dashboard/AskAiAvailability.test.ts +20 -3
- package/Tests/App/Dashboard/AskAiDisabled.test.tsx +8 -3
- package/Tests/App/Dashboard/CephRateChartReload.test.tsx +1456 -0
- package/Tests/App/Dashboard/CephTimeRangeZoom.test.tsx +1229 -0
- package/Tests/App/Dashboard/ChartCardTimeRangeZoom.test.tsx +151 -0
- package/Tests/App/Dashboard/ChartCardZoomAffordances.test.tsx +257 -0
- package/Tests/App/Dashboard/ChartRefetchFrame.test.tsx +141 -0
- package/Tests/App/Dashboard/ChartZoomHarness.tsx +249 -0
- package/Tests/App/Dashboard/ChartZoomStandIn.tsx +131 -0
- package/Tests/App/Dashboard/CloudServerlessSlowLoads.test.tsx +628 -0
- package/Tests/App/Dashboard/CloudServerlessTimeRangeZoom.test.tsx +607 -0
- package/Tests/App/Dashboard/ClusterAccessNotice.test.tsx +91 -19
- package/Tests/App/Dashboard/CompanionMetricsTabZoom.test.tsx +632 -0
- package/Tests/App/Dashboard/ContainerChartZoomStandIn.tsx +195 -0
- package/Tests/App/Dashboard/ContainerHostOverviewSlowLoads.test.tsx +542 -0
- package/Tests/App/Dashboard/ContainerHostOverviewTimeRangeZoom.test.tsx +848 -0
- package/Tests/App/Dashboard/ContainerMetricsTimeRangeZoom.test.tsx +561 -0
- package/Tests/App/Dashboard/DashboardBoardWideZoomShell.test.tsx +1147 -0
- package/Tests/App/Dashboard/DashboardEditPermissions.test.tsx +3 -2
- package/Tests/App/Dashboard/DashboardHistogramWidgetDragCursor.test.tsx +399 -0
- package/Tests/App/Dashboard/DashboardHistogramWidgetZoom.test.tsx +985 -0
- package/Tests/App/Dashboard/DashboardHistogramWidgetZoomHint.test.tsx +803 -0
- package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +1 -0
- package/Tests/App/Dashboard/DashboardSettingsPreviewZoom.test.tsx +679 -0
- package/Tests/App/Dashboard/DashboardSloAndDataSourceChartZoom.test.tsx +881 -0
- package/Tests/App/Dashboard/DashboardTraceStatusWidgets.test.tsx +878 -0
- package/Tests/App/Dashboard/DatabaseMetricChartModalTimeRangeZoom.test.tsx +442 -0
- package/Tests/App/Dashboard/DatabaseOverviewTimeRangeZoom.test.tsx +831 -0
- package/Tests/App/Dashboard/DatabaseServerComponents.test.tsx +43 -0
- package/Tests/App/Dashboard/DockerSwarmInsightsTimeRangeZoom.test.tsx +524 -0
- package/Tests/App/Dashboard/DockerSwarmRateChartRefresh.test.tsx +259 -0
- package/Tests/App/Dashboard/EdgeDetailPanelHistory.test.tsx +763 -0
- package/Tests/App/Dashboard/EdgeDetailPanelTimeRangeZoom.test.tsx +547 -0
- package/Tests/App/Dashboard/EdgeHistoryBucketsCases.tsx +565 -0
- package/Tests/App/Dashboard/EdgeHistoryBucketsKathmandu.test.tsx +73 -0
- package/Tests/App/Dashboard/EdgeHistoryBucketsKolkata.test.tsx +74 -0
- package/Tests/App/Dashboard/EdgeHistoryBucketsNewYork.test.tsx +72 -0
- package/Tests/App/Dashboard/EdgeHistoryBucketsUtc.test.tsx +72 -0
- package/Tests/App/Dashboard/EmbeddedMetricCardRefresh.test.tsx +310 -0
- package/Tests/App/Dashboard/EmbeddedMetricCardTimeRangeZoom.test.tsx +536 -0
- package/Tests/App/Dashboard/EscalationRuleReadiness.test.tsx +3 -1
- package/Tests/App/Dashboard/EscalationRuleRowActions.test.tsx +660 -0
- package/Tests/App/Dashboard/EventNotes.test.tsx +2 -2
- package/Tests/App/Dashboard/EventOverviewPages.test.tsx +587 -13
- package/Tests/App/Dashboard/EventOverviewSnapshotExplorerZoom.test.tsx +1139 -0
- package/Tests/App/Dashboard/EventOverviewSnapshotZoomAcrossTabs.test.tsx +1057 -0
- package/Tests/App/Dashboard/EventOverviewTelemetrySnapshotZoom.test.tsx +757 -0
- package/Tests/App/Dashboard/ExceptionOccurrenceTrendZoom.test.tsx +675 -0
- package/Tests/App/Dashboard/ExceptionOccurrencesZoomSurvivesViewSwitch.test.tsx +405 -0
- package/Tests/App/Dashboard/ExceptionSignalPages.test.tsx +67 -3
- package/Tests/App/Dashboard/ExceptionTablesSpanStatus.test.tsx +515 -0
- package/Tests/App/Dashboard/ExplorerOwnZoomRegression.test.tsx +739 -0
- package/Tests/App/Dashboard/FlowBandwidthAxisCases.tsx +461 -0
- package/Tests/App/Dashboard/FlowBandwidthAxisKathmandu.test.tsx +25 -0
- package/Tests/App/Dashboard/FlowBandwidthAxisKolkata.test.tsx +25 -0
- package/Tests/App/Dashboard/FlowBandwidthAxisNewYork.test.tsx +25 -0
- package/Tests/App/Dashboard/FlowBandwidthAxisUtc.test.tsx +24 -0
- package/Tests/App/Dashboard/FlowTopTalkersZoomRefetch.test.tsx +722 -0
- package/Tests/App/Dashboard/FlowViewportGuard.test.tsx +2526 -0
- package/Tests/App/Dashboard/HostPagesSlowLoads.test.tsx +872 -0
- package/Tests/App/Dashboard/HostPagesTimeRangeZoom.test.tsx +1208 -0
- package/Tests/App/Dashboard/IncidentRootCauseTimeRangeZoom.test.tsx +358 -0
- package/Tests/App/Dashboard/InfrastructureGraph.test.tsx +100 -9
- package/Tests/App/Dashboard/InfrastructureMetricsTabTimeRangeZoom.test.tsx +485 -0
- package/Tests/App/Dashboard/InvestigationDrawerCompanionZoom.test.tsx +655 -0
- package/Tests/App/Dashboard/InvestigationDrawerZoom.test.tsx +830 -0
- package/Tests/App/Dashboard/InvestigationNotStarted.test.tsx +338 -2
- package/Tests/App/Dashboard/InvoicesPayInvoice.test.tsx +454 -16
- package/Tests/App/Dashboard/KubernetesClusterAiAccessSettings.test.ts +799 -819
- package/Tests/App/Dashboard/KubernetesClusterAiAgentOverviewCard.test.tsx +367 -0
- package/Tests/App/Dashboard/KubernetesClusterAiAgentStatus.test.ts +1202 -0
- package/Tests/App/Dashboard/KubernetesClusterAiDocumentationMarkdown.test.ts +106 -0
- package/Tests/App/Dashboard/KubernetesClusterAiNavigation.test.tsx +354 -0
- package/Tests/App/Dashboard/KubernetesClusterAiPage.test.tsx +1884 -2054
- package/Tests/App/Dashboard/KubernetesClusterAiPageServerParity.test.ts +478 -179
- package/Tests/App/Dashboard/KubernetesClusterMetricTooltips.test.ts +50 -0
- package/Tests/App/Dashboard/KubernetesClusterOverviewTooltips.test.tsx +2 -1
- package/Tests/App/Dashboard/KubernetesClusterOverviewZoom.test.tsx +1217 -0
- package/Tests/App/Dashboard/KubernetesClusterPagesZoom.test.tsx +731 -0
- package/Tests/App/Dashboard/KubernetesCostsLoadRecovery.test.tsx +869 -0
- package/Tests/App/Dashboard/KubernetesCostsZoom.test.tsx +1214 -0
- package/Tests/App/Dashboard/KubernetesCostsZoomExactHours.test.tsx +692 -0
- package/Tests/App/Dashboard/KubernetesNetworkThroughputReload.test.tsx +902 -0
- package/Tests/App/Dashboard/KubernetesNetworkZoomBucketEdges.test.tsx +571 -0
- package/Tests/App/Dashboard/KubernetesOverviewZoomBucketEdges.test.tsx +697 -0
- package/Tests/App/Dashboard/KubernetesResourceMetricsTabZoom.test.tsx +633 -0
- package/Tests/App/Dashboard/LogsExplorerTimeRangeZoom.test.tsx +470 -0
- package/Tests/App/Dashboard/LogsInsightsTimeRangeZoom.test.tsx +948 -0
- package/Tests/App/Dashboard/LogsViewerPinnedWindowZoom.test.tsx +486 -0
- package/Tests/App/Dashboard/MetricChartsBucketInspectorDoubleClick.test.tsx +1001 -0
- package/Tests/App/Dashboard/MetricExplorerInvestigationAutoRefresh.test.tsx +514 -0
- package/Tests/App/Dashboard/MetricExplorerSavedViewZoomRoundTrip.test.tsx +581 -0
- package/Tests/App/Dashboard/MetricExplorerTimeRangeZoom.test.tsx +1162 -0
- package/Tests/App/Dashboard/MetricMonitorPreviewZoomLabel.test.ts +72 -0
- package/Tests/App/Dashboard/MetricRowSparklineTimeRangeZoom.test.tsx +204 -0
- package/Tests/App/Dashboard/MetricViewFirstResultLands.test.tsx +408 -0
- package/Tests/App/Dashboard/MetricViewOwnZoomResetPlacement.test.tsx +952 -0
- package/Tests/App/Dashboard/MetricViewTimeRange.test.ts +139 -0
- package/Tests/App/Dashboard/MetricViewTimeRangeZoom.test.tsx +556 -0
- package/Tests/App/Dashboard/MonitorMetricsChartWrappersZoom.test.tsx +552 -0
- package/Tests/App/Dashboard/MonitorMetricsTabsTimeRangeZoom.test.tsx +740 -0
- package/Tests/App/Dashboard/MonitorOverviewChartsTimeRangeZoom.test.tsx +735 -0
- package/Tests/App/Dashboard/MonitorStepPreviewsTimeRangeZoom.test.tsx +835 -0
- package/Tests/App/Dashboard/NetworkDeviceTimeRangeZoom.test.tsx +1115 -0
- package/Tests/App/Dashboard/OnCallPreventionGuards.test.tsx +186 -17
- package/Tests/App/Dashboard/OnCallRulesDeleteGuard.test.tsx +155 -46
- package/Tests/App/Dashboard/PasskeySettings.test.tsx +87 -2
- package/Tests/App/Dashboard/ProjectAISettingsPages.test.tsx +884 -0
- package/Tests/App/Dashboard/ProxmoxNodeRemove.test.tsx +621 -0
- package/Tests/App/Dashboard/ProxmoxOverviewSlowLoads.test.tsx +584 -0
- package/Tests/App/Dashboard/ProxmoxPagesTimeRangeZoom.test.tsx +823 -0
- package/Tests/App/Dashboard/ProxmoxRateChartReload.test.tsx +1253 -0
- package/Tests/App/Dashboard/PublicDashboardBoardWideZoom.test.tsx +605 -0
- package/Tests/App/Dashboard/RealRowsLineChart.tsx +250 -0
- package/Tests/App/Dashboard/RechartsHostsPlotCursor.test.tsx +513 -0
- package/Tests/App/Dashboard/RowActionPlacementOverrides.test.tsx +865 -0
- package/Tests/App/Dashboard/RumOverviewTimeRangeZoom.test.tsx +877 -0
- package/Tests/App/Dashboard/RunnerKubernetesAgentForm.test.tsx +20 -4
- package/Tests/App/Dashboard/RunnerSupersededByAiAgentNote.test.tsx +296 -0
- package/Tests/App/Dashboard/SecurityEventConnectionsTable.test.tsx +146 -36
- package/Tests/App/Dashboard/ServiceDatabaseSlowLoads.test.tsx +1166 -0
- package/Tests/App/Dashboard/ServiceMapGraph.test.tsx +1243 -104
- package/Tests/App/Dashboard/ServiceOverviewTimeRangeZoom.test.tsx +792 -0
- package/Tests/App/Dashboard/SloBudgetBurnDownZoom.test.tsx +771 -0
- package/Tests/App/Dashboard/SloBudgetBurnDownZoomAffordances.test.tsx +380 -0
- package/Tests/App/Dashboard/SloEventMetricsBarChartZoom.test.tsx +369 -0
- package/Tests/App/Dashboard/SloHistoryChartsTimeRangeZoom.test.tsx +694 -0
- package/Tests/App/Dashboard/SloHistoryChartsZoomAffordances.test.tsx +497 -0
- package/Tests/App/Dashboard/SloMetricsTimeRangeZoom.test.tsx +541 -0
- package/Tests/App/Dashboard/SlowLoadHarness.ts +123 -0
- package/Tests/App/Dashboard/SnapshotExplorerPrimaryZoom.test.tsx +1194 -0
- package/Tests/App/Dashboard/SnapshotViewerPinnedWindow.test.tsx +620 -0
- package/Tests/App/Dashboard/TelemetrySnapshotPanelTimeRangeZoom.test.tsx +765 -0
- package/Tests/App/Dashboard/TelemetrySnapshotZoom.test.tsx +516 -0
- package/Tests/App/Dashboard/TelemetrySnapshotZoomAcrossTabs.test.tsx +827 -0
- package/Tests/App/Dashboard/TimeRangeZoomPageHarness.tsx +463 -0
- package/Tests/App/Dashboard/TraceChartEditorStatusSplit.test.tsx +543 -0
- package/Tests/App/Dashboard/TraceStatusPresentation.test.tsx +967 -0
- package/Tests/App/Dashboard/TraceTimelineMinimapZoom.test.tsx +315 -0
- package/Tests/App/Dashboard/TracesAnalyticsStatusSplit.test.tsx +778 -0
- package/Tests/App/Dashboard/TracesAnalyticsViewZoom.test.tsx +349 -0
- package/Tests/App/Dashboard/TracesExplorerTimeRangeZoom.test.tsx +551 -0
- package/Tests/App/Dashboard/TracesStatusChartAndFacet.test.tsx +687 -0
- package/Tests/App/Dashboard/TracesViewerStaleResponses.test.tsx +458 -0
- package/Tests/App/Dashboard/UptimeStripsExcludedFromZoom.test.tsx +406 -0
- package/Tests/App/Dashboard/VMwareOverviewSlowLoads.test.tsx +535 -0
- package/Tests/App/Dashboard/VMwarePagesTimeRangeZoom.test.tsx +606 -0
- package/Tests/App/Dashboard/ValueWidgetSparklineStaleHover.test.tsx +1292 -0
- package/Tests/App/Dashboard/ValueWidgetSparklineZoom.test.tsx +765 -0
- package/Tests/App/StatusPage/StatusPageResourceExplorer.test.tsx +98 -0
- package/Tests/Models/DatabaseModels/KubernetesAiAgentModel.test.ts +295 -0
- package/Tests/Models/DatabaseModels/TeamComplianceSettingModel.test.ts +347 -0
- package/Tests/Server/API/AIChatRouteAuthorization.test.ts +58 -0
- package/Tests/Server/API/AIGenerationProjectAIToggle.test.ts +1 -1
- package/Tests/Server/API/AIInvestigationAPI.test.ts +123 -45
- package/Tests/Server/API/AutoRemediationApproveClusterRound.test.ts +1329 -0
- package/Tests/Server/API/AutoRemediationApproveKubectlRecheck.test.ts +25 -2
- package/Tests/Server/API/KubernetesClusterAiAccessAPI.test.ts +2 -0
- package/Tests/Server/API/KubernetesClusterAiAccessAPIAgent.test.ts +903 -0
- package/Tests/Server/API/MicrosoftTeamsChatsRefreshRoute.test.ts +667 -0
- package/Tests/Server/API/MicrosoftTeamsManifest.test.ts +294 -6
- package/Tests/Server/API/ProxmoxResourceAPIRemoveNode.test.ts +1932 -0
- package/Tests/Server/Infrastructure/GlobalCache.test.ts +195 -0
- package/Tests/Server/Infrastructure/Postgres/AddKubernetesAiAgentAndAiDefaultsMigration.test.ts +623 -0
- package/Tests/Server/Infrastructure/Postgres/AddKubernetesClusterAiAccessMigration.test.ts +87 -10
- package/Tests/Server/Infrastructure/Postgres/AddTeamComplianceRuleScopeMigration.test.ts +622 -0
- package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +61 -4
- package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerPinnedKey.test.ts +98 -2
- package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerRateLimit.test.ts +105 -2
- package/Tests/Server/Services/AIServiceBalanceBlocker.test.ts +282 -0
- package/Tests/Server/Services/AlertMonitorClearWritesNull.test.ts +409 -0
- package/Tests/Server/Services/AlertMonitorEditFeed.test.ts +474 -0
- package/Tests/Server/Services/AlertMonitorEditGuard.test.ts +610 -0
- package/Tests/Server/Services/AutoRemediationClusterRuleEngine.test.ts +2 -0
- package/Tests/Server/Services/AutoRemediationRuleCommandRunners.test.ts +2 -1
- package/Tests/Server/Services/IncidentAffectedMonitorsEdit.test.ts +1360 -0
- package/Tests/Server/Services/IncidentAlertSloLinkSurvivesEdit.test.ts +3 -1
- package/Tests/Server/Services/IncidentSeverityDeletePausesComplianceRules.test.ts +488 -0
- package/Tests/Server/Services/KubernetesAiAgentJobService.test.ts +329 -0
- package/Tests/Server/Services/KubernetesAiAgentServiceHelpers.test.ts +618 -0
- package/Tests/Server/Services/KubernetesAiAgentServiceLifecycle.test.ts +1444 -0
- package/Tests/Server/Services/KubernetesAiAgentServiceRegister.test.ts +1666 -0
- package/Tests/Server/Services/KubernetesClusterAiAccessDeletedRunnerRemedy.test.ts +140 -111
- package/Tests/Server/Services/KubernetesClusterAiAccessGapNextSteps.test.ts +267 -105
- package/Tests/Server/Services/KubernetesClusterAiAccessLegacySuperseded.test.ts +440 -0
- package/Tests/Server/Services/KubernetesClusterAiAccessService.test.ts +567 -411
- package/Tests/Server/Services/KubernetesClusterAiAccessTarget.test.ts +1168 -0
- package/Tests/Server/Services/KubernetesClusterAiSettingsPermission.test.ts +410 -12
- package/Tests/Server/Services/KubernetesClusterServiceAiAccessFeed.test.ts +55 -0
- package/Tests/Server/Services/ProjectServiceNewProjectAiDefaults.test.ts +288 -0
- package/Tests/Server/Services/ProxmoxResourcePostgres.test.ts +5633 -0
- package/Tests/Server/Services/ProxmoxResourceService.test.ts +6458 -5
- package/Tests/Server/Services/RunnerJobEnqueueKubectl.test.ts +48 -15
- package/Tests/Server/Services/RunnerJobEnqueueKubectlAiAgent.test.ts +620 -0
- package/Tests/Server/Services/RunnerJobKubectlWriteScope.test.ts +170 -3
- package/Tests/Server/Services/RunnerJobTimeoutReason.test.ts +72 -0
- package/Tests/Server/Services/RunnerServiceAgentName.test.ts +6 -4
- package/Tests/Server/Services/ScheduledMaintenanceAttachmentEdit.test.ts +2113 -0
- package/Tests/Server/Services/ScheduledMaintenanceMonitorRelease.test.ts +972 -0
- package/Tests/Server/Services/TeamComplianceSettingPostgres.test.ts +2237 -0
- package/Tests/Server/Services/TeamComplianceSettingService.test.ts +3988 -138
- package/Tests/Server/Utils/AI/ClusterAccessContext.test.ts +107 -1
- package/Tests/Server/Utils/AI/IncidentPostmortemRunner.test.ts +351 -0
- package/Tests/Server/Utils/AI/InvestigationClusterAccessWiring.test.ts +2 -0
- package/Tests/Server/Utils/AI/InvestigationEligibility.test.ts +310 -0
- package/Tests/Server/Utils/AI/KubectlInvestigationToolkit.test.ts +70 -0
- package/Tests/Server/Utils/AI/KubectlJobRunnerFinishedJob.test.ts +58 -0
- package/Tests/Server/Utils/AI/RemediationCommandToolsKubectl.test.ts +2 -0
- package/Tests/Server/Utils/AI/RemediationCommandToolsKubectlOutcome.test.ts +2 -0
- package/Tests/Server/Utils/AI/RemediationCommandToolsLiveCluster.test.ts +2 -0
- package/Tests/Server/Utils/AI/RemediationCommandToolsRunnerScope.test.ts +125 -1
- package/Tests/Server/Utils/AI/RemediationExecutionRunner.test.ts +252 -3
- package/Tests/Server/Utils/AI/RemediationExecutionRunnerClusterMode.test.ts +2 -0
- package/Tests/Server/Utils/AI/RemediationExecutionRunnerProjectGates.test.ts +240 -0
- package/Tests/Server/Utils/AI/RemediationKubectlCopyParity.test.ts +2 -0
- package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutor.test.ts +2 -0
- package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutorUnknownRun.test.ts +2 -0
- package/Tests/Server/Utils/AutoRemediation/CommandPlanVerification.test.ts +2 -0
- package/Tests/Server/Utils/Telemetry/HostAssetAttributesFromOtlp.test.ts +68 -0
- package/Tests/Server/Utils/Telemetry/InventoryMirrorPostgres.test.ts +370 -0
- package/Tests/Server/Utils/Telemetry/NetworkDeviceInventoryAttributes.test.ts +522 -0
- package/Tests/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.test.ts +155 -0
- package/Tests/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.test.ts +8631 -0
- package/Tests/Server/Utils/Telemetry/ProxmoxNativePush.test.ts +2852 -0
- package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +367 -1
- package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.test.ts +45 -3
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChats.test.ts +25 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsGroupChatNames.test.ts +3119 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsGroupChatNamesPostgres.test.ts +1721 -0
- package/Tests/Types/Kubernetes/KubernetesAgentChartAiAccess.test.ts +581 -113
- package/Tests/Types/Kubernetes/KubernetesAiAgentAccessContract.test.ts +510 -0
- package/Tests/Types/Team/ComplianceRule.test.ts +1029 -0
- package/Tests/Types/Team/TeamComplianceStatus.test.ts +176 -0
- package/Tests/UI/Components/ActionButton/RowActions.test.tsx +641 -0
- package/Tests/UI/Components/ActionButton/RowActionsAccessibility.test.tsx +414 -0
- package/Tests/UI/Components/ActionButton/SplitActionButtons.test.ts +565 -0
- package/Tests/UI/Components/Charts/BarChartDragToSelect.test.tsx +386 -0
- package/Tests/UI/Components/Charts/ChartDoubleClickResetWithoutDblclick.test.tsx +1025 -0
- package/Tests/UI/Components/Charts/ChartGroupPageZoomHint.test.tsx +196 -0
- package/Tests/UI/Components/Charts/ChartPlaceholdersTakeDoubleClick.test.tsx +1861 -0
- package/Tests/UI/Components/Charts/ChartPlotClicksWhileResetArmed.test.tsx +382 -0
- package/Tests/UI/Components/Charts/ChartRangeSelection.test.tsx +704 -0
- package/Tests/UI/Components/Charts/ChartRangeSelectionDoubleClickReset.test.tsx +1481 -0
- package/Tests/UI/Components/Charts/ChartRangeSelectionRealRecharts.test.tsx +918 -0
- package/Tests/UI/Components/Charts/ChartRowBucketStart.test.ts +350 -0
- package/Tests/UI/Components/Charts/DoubleClickReset.test.tsx +996 -0
- package/Tests/UI/Components/Charts/HistogramDoubleClickResetRealRecharts.test.tsx +965 -0
- package/Tests/UI/Components/Charts/HistogramDriftThenRefetch.test.tsx +277 -0
- package/Tests/UI/Components/Charts/HistogramRangeSelectionDataChange.test.tsx +1757 -0
- package/Tests/UI/Components/Charts/HistogramRangeSelectionRealRecharts.test.tsx +560 -0
- package/Tests/UI/Components/Charts/TimeRangeZoom/ChartPageTimeRangeZoom.test.tsx +513 -0
- package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.test.tsx +845 -0
- package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.test.tsx +119 -0
- package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHintTailwind.test.tsx +274 -0
- package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.test.ts +433 -0
- package/Tests/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.test.tsx +863 -0
- package/Tests/UI/Components/Charts/TimeRangeZoom/ZoomDocsPromises.test.tsx +1147 -0
- package/Tests/UI/Components/DisabledButtonTooltip.test.tsx +14 -3
- package/Tests/UI/Components/EntityDropdownEscape.test.tsx +454 -0
- package/Tests/UI/Components/EntityDropdownFocusLeave.test.tsx +420 -0
- package/Tests/UI/Components/Forms/FormFieldDropdownDisabled.test.tsx +233 -0
- package/Tests/UI/Components/Input.test.tsx +80 -1
- package/Tests/UI/Components/LogsAnalyticsViewZoom.test.tsx +947 -0
- package/Tests/UI/Components/LogsHistogramDragTooltip.test.tsx +17 -5
- package/Tests/UI/Components/LogsViewerAnalyticsZoom.test.tsx +501 -0
- package/Tests/UI/Components/LogsViewerHistogramZoom.test.tsx +1 -1
- package/Tests/UI/Components/ModelTable/BaseModelTableBulkDelete.test.tsx +6 -4
- package/Tests/UI/Components/ModelTable/BaseModelTablePermissionGating.test.tsx +60 -8
- package/Tests/UI/Components/ModelTable/BaseModelTableRowActions.test.tsx +476 -0
- package/Tests/UI/Components/ModelTable/ModelTableWrapContent.test.tsx +7 -5
- package/Tests/UI/Components/MoreMenuPortal.test.tsx +623 -0
- package/Tests/UI/Components/StatusPage/ResourceGridActions.test.tsx +538 -0
- package/Tests/UI/Components/StatusPage/ResourceGridSelection.test.tsx +14 -4
- package/Tests/UI/Components/TableCellWrapping.test.tsx +3 -3
- package/Tests/UI/Components/TableRowActions.test.tsx +472 -0
- package/Tests/UI/Components/TelemetryHistogramDragTooltip.test.tsx +1 -1
- package/Tests/UI/Components/TelemetryViewer/TelemetryViewerHistogramClickZoom.test.tsx +1 -1
- package/Tests/UI/Components/TelemetryViewer/TelemetryViewerZoomScope.test.tsx +470 -0
- package/Tests/UI/Components/TelemetryViewer/UseViewerTimeRangeZoom.test.tsx +571 -0
- package/Tests/UI/Components/TelemetryViewer/ViewerDoubleClickResetUnderDataChange.test.tsx +928 -0
- package/Tests/UI/Components/TelemetryViewer/ViewerFollowsEnclosingZoom.test.tsx +1569 -0
- package/Tests/UI/Components/Toggle.test.tsx +66 -0
- package/Tests/UI/MicrosoftTeams/MicrosoftTeamsChatsCardRefreshNames.test.tsx +1023 -0
- package/Tests/UI/Rum/ChunkLoader.test.ts +201 -0
- package/Tests/UI/Rum/FidelityNotices.test.ts +54 -0
- package/Tests/UI/Rum/ReplayCorrelationPanel.test.tsx +72 -0
- package/Tests/UI/Rum/ReplayFrameCapture.test.ts +1009 -9
- package/Tests/UI/Rum/ReplayRecordedAssets.test.ts +1069 -0
- package/Tests/UI/Rum/ReplayStage.test.tsx +913 -2
- package/Tests/UI/Rum/SessionReplayTable.test.tsx +443 -8
- package/Tests/UI/Rum/SessionReplayUsersTable.test.tsx +439 -9
- package/Tests/UI/Rum/UserFlowTablesRowActions.test.tsx +501 -0
- package/Tests/Utils/AiRemediation/KubectlPolicyChartRbacParity.test.ts +47 -19
- package/Tests/Utils/AiRemediation/KubectlWriteScopeCallerParity.test.ts +2 -0
- package/Tests/Utils/AiRemediation/KubernetesAiAgentPolicyCopyParity.test.ts +396 -0
- package/Tests/Utils/Dashboard/DashboardTimeRangeZoom.test.ts +104 -1
- package/Types/AI/AIRunType.ts +9 -4
- package/Types/AI/InvestigationNotStartedReason.ts +6 -0
- package/Types/AutoRemediation/AiRemediationCommandPlan.ts +14 -16
- package/Types/AutoRemediation/AiRemediationCommandPolicyVerdict.ts +28 -0
- package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +4 -2
- package/Types/Kubernetes/KubernetesClusterAiAccess.ts +263 -32
- package/Types/Kubernetes/KubernetesClusterAiAccessPermissions.ts +20 -16
- package/Types/Kubernetes/KubernetesClusterAiInsights.ts +81 -0
- package/Types/Monitor/ProxmoxAlertTemplates.ts +4 -4
- package/Types/Team/ComplianceNotificationChannel.ts +22 -0
- package/Types/Team/ComplianceRule.ts +434 -0
- package/Types/Team/ComplianceRuleType.ts +21 -0
- package/Types/Team/TeamComplianceStatus.ts +81 -0
- package/Types/Telemetry/TelemetryIngestSurface.ts +28 -0
- package/UI/Components/ActionButton/ActionButtonSchema.ts +21 -0
- package/UI/Components/ActionButton/RowActions.tsx +238 -0
- package/UI/Components/ActionButton/SplitActionButtons.ts +173 -0
- package/UI/Components/Charts/Area/AreaChart.tsx +32 -2
- package/UI/Components/Charts/Bar/BarChart.tsx +40 -3
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +37 -11
- package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +80 -243
- package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +122 -31
- package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +95 -244
- package/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.ts +214 -0
- package/UI/Components/Charts/ChartLibrary/Utils/UseChartBucketsChange.ts +32 -0
- package/UI/Components/Charts/ChartLibrary/Utils/UseChartRangeSelection.ts +599 -0
- package/UI/Components/Charts/Line/LineChart.tsx +32 -2
- package/UI/Components/Charts/TimeRangeZoom/ResetTimeRangeZoomButton.tsx +70 -0
- package/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.tsx +226 -0
- package/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.tsx +73 -0
- package/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.ts +163 -0
- package/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.ts +215 -0
- package/UI/Components/Charts/Utils/DataPoint.ts +20 -8
- package/UI/Components/Charts/Utils/XAxis.ts +75 -0
- package/UI/Components/Charts/Utils/useHistogramRangeSelection.ts +493 -59
- package/UI/Components/EntityDropdown/EntityDropdown.tsx +107 -11
- package/UI/Components/Forms/Fields/FormField.tsx +10 -0
- package/UI/Components/Input/Input.tsx +90 -57
- package/UI/Components/List/ListRow.tsx +8 -74
- package/UI/Components/LogsViewer/LogsViewer.tsx +40 -11
- package/UI/Components/LogsViewer/components/LogTimeRangePicker.tsx +22 -6
- package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +209 -6
- package/UI/Components/LogsViewer/components/LogsHistogram.tsx +127 -84
- package/UI/Components/LogsViewer/components/LogsViewerToolbar.tsx +3 -0
- package/UI/Components/ModelTable/BaseModelTable.tsx +12 -1
- package/UI/Components/MoreMenu/MoreMenu.tsx +365 -30
- package/UI/Components/MoreMenu/MoreMenuItem.tsx +70 -17
- package/UI/Components/OrderedStatesList/Item.tsx +7 -72
- package/UI/Components/StatusPage/ResourceGrid.tsx +126 -77
- package/UI/Components/Table/TableBody.tsx +8 -2
- package/UI/Components/Table/TableRow.tsx +20 -140
- package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +41 -10
- package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +47 -9
- package/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.tsx +25 -6
- package/UI/Components/TelemetryViewer/types.ts +2 -0
- package/UI/Components/TelemetryViewer/useViewerTimeRangeZoom.ts +448 -0
- package/UI/Components/Toggle/Toggle.tsx +26 -0
- package/UI/Components/Tooltip/Tooltip.tsx +8 -1
- package/UI/Styles/Theme.css +14 -2
- package/Utils/AiRemediation/CommandPolicy.ts +1 -1
- package/Utils/AiRemediation/KubectlPolicy.ts +1 -1
- package/Utils/Dashboard/DashboardTimeRangeZoom.ts +46 -2
- package/build/dist/Models/DatabaseModels/Index.js +2 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesAiAgent.js +385 -0
- package/build/dist/Models/DatabaseModels/KubernetesAiAgent.js.map +1 -0
- package/build/dist/Models/DatabaseModels/KubernetesCluster.js +3 -3
- package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +56 -5
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProxmoxResource.js +51 -1
- package/build/dist/Models/DatabaseModels/ProxmoxResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunnerJob.js +74 -0
- package/build/dist/Models/DatabaseModels/RunnerJob.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js +134 -3
- package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
- package/build/dist/Server/API/AIChatAPI.js +6 -1
- package/build/dist/Server/API/AIChatAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +17 -10
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/AutoRemediationAPI.js +144 -24
- package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -1
- package/build/dist/Server/API/KubernetesClusterAiAccessAPI.js +436 -22
- package/build/dist/Server/API/KubernetesClusterAiAccessAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +69 -13
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/ProxmoxResourceAPI.js +187 -14
- package/build/dist/Server/API/ProxmoxResourceAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/GlobalCache.js +27 -0
- package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796000000000-AddTeamComplianceRuleScope.js +50 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796000000000-AddTeamComplianceRuleScope.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796100000000-AddKubernetesAiAgentAndAiDefaults.js +84 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796100000000-AddKubernetesAiAgentAndAiDefaults.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796200000000-AddProxmoxResourceNativePushColumns.js +31 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796200000000-AddProxmoxResourceNativePushColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/TelemetryIngest.js +34 -19
- package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +59 -1
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +248 -13
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AlertSeverityService.js +51 -15
- package/build/dist/Server/Services/AlertSeverityService.js.map +1 -1
- package/build/dist/Server/Services/AutoRemediationRuleService.js +1 -1
- package/build/dist/Server/Services/AutoRemediationRuleService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +199 -72
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentSeverityService.js +51 -15
- package/build/dist/Server/Services/IncidentSeverityService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesAiAgentJobService.js +158 -0
- package/build/dist/Server/Services/KubernetesAiAgentJobService.js.map +1 -0
- package/build/dist/Server/Services/KubernetesAiAgentService.js +1145 -0
- package/build/dist/Server/Services/KubernetesAiAgentService.js.map +1 -0
- package/build/dist/Server/Services/KubernetesClusterAiAccessService.js +842 -371
- package/build/dist/Server/Services/KubernetesClusterAiAccessService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterService.js +86 -17
- package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +22 -0
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxResourceService.js +258 -3
- package/build/dist/Server/Services/ProxmoxResourceService.js.map +1 -1
- package/build/dist/Server/Services/RunnerJobService.js +178 -92
- package/build/dist/Server/Services/RunnerJobService.js.map +1 -1
- package/build/dist/Server/Services/RunnerService.js +1 -1
- package/build/dist/Server/Services/RunnerService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +535 -3
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +316 -46
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/TeamComplianceSettingService.js +833 -7
- package/build/dist/Server/Services/TeamComplianceSettingService.js.map +1 -1
- package/build/dist/Server/Utils/AI/ClusterAccess/ClusterAccessContext.js +52 -9
- package/build/dist/Server/Utils/AI/ClusterAccess/ClusterAccessContext.js.map +1 -1
- package/build/dist/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.js +13 -9
- package/build/dist/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.js.map +1 -1
- package/build/dist/Server/Utils/AI/ClusterAccess/KubectlJobRunner.js +7 -3
- package/build/dist/Server/Utils/AI/ClusterAccess/KubectlJobRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js +29 -15
- package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +56 -20
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +39 -5
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js +30 -3
- package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationEligibility.js +13 -2
- package/build/dist/Server/Utils/AI/SRE/InvestigationEligibility.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +1 -1
- package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js +4 -2
- package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js +111 -6
- package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js +40 -4
- package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.js +296 -0
- package/build/dist/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ProxmoxNativePush.js +699 -0
- package/build/dist/Server/Utils/Telemetry/ProxmoxNativePush.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +77 -19
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +505 -42
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/AI/AIRunType.js +9 -4
- package/build/dist/Types/AI/AIRunType.js.map +1 -1
- package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js +10 -16
- package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js.map +1 -1
- package/build/dist/Types/AutoRemediation/AiRemediationCommandPolicyVerdict.js +28 -0
- package/build/dist/Types/AutoRemediation/AiRemediationCommandPolicyVerdict.js.map +1 -0
- package/build/dist/Types/Kubernetes/KubernetesClusterAiAccess.js +72 -16
- package/build/dist/Types/Kubernetes/KubernetesClusterAiAccess.js.map +1 -1
- package/build/dist/Types/Kubernetes/KubernetesClusterAiAccessPermissions.js +20 -16
- package/build/dist/Types/Kubernetes/KubernetesClusterAiAccessPermissions.js.map +1 -1
- package/build/dist/Types/Kubernetes/KubernetesClusterAiInsights.js +17 -0
- package/build/dist/Types/Kubernetes/KubernetesClusterAiInsights.js.map +1 -0
- package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js +4 -4
- package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js.map +1 -1
- package/build/dist/Types/Team/ComplianceNotificationChannel.js +23 -0
- package/build/dist/Types/Team/ComplianceNotificationChannel.js.map +1 -0
- package/build/dist/Types/Team/ComplianceRule.js +304 -0
- package/build/dist/Types/Team/ComplianceRule.js.map +1 -0
- package/build/dist/Types/Team/ComplianceRuleType.js +21 -0
- package/build/dist/Types/Team/ComplianceRuleType.js.map +1 -1
- package/build/dist/Types/Team/TeamComplianceStatus.js +2 -0
- package/build/dist/Types/Team/TeamComplianceStatus.js.map +1 -0
- package/build/dist/Types/Telemetry/TelemetryIngestSurface.js +25 -0
- package/build/dist/Types/Telemetry/TelemetryIngestSurface.js.map +1 -1
- package/build/dist/UI/Components/ActionButton/ActionButtonSchema.js +20 -1
- package/build/dist/UI/Components/ActionButton/ActionButtonSchema.js.map +1 -1
- package/build/dist/UI/Components/ActionButton/RowActions.js +113 -0
- package/build/dist/UI/Components/ActionButton/RowActions.js.map +1 -0
- package/build/dist/UI/Components/ActionButton/SplitActionButtons.js +71 -0
- package/build/dist/UI/Components/ActionButton/SplitActionButtons.js.map +1 -0
- package/build/dist/UI/Components/Charts/Area/AreaChart.js +16 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js +16 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +27 -5
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +61 -194
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +84 -26
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +75 -196
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js +133 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartBucketsChange.js +26 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartBucketsChange.js.map +1 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartRangeSelection.js +371 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartRangeSelection.js.map +1 -0
- package/build/dist/UI/Components/Charts/Line/LineChart.js +16 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/TimeRangeZoom/ResetTimeRangeZoomButton.js +35 -0
- package/build/dist/UI/Components/Charts/TimeRangeZoom/ResetTimeRangeZoomButton.js.map +1 -0
- package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.js +107 -0
- package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.js.map +1 -0
- package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.js +41 -0
- package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.js.map +1 -0
- package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.js +117 -0
- package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.js.map +1 -0
- package/build/dist/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.js +121 -0
- package/build/dist/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.js.map +1 -0
- package/build/dist/UI/Components/Charts/Utils/DataPoint.js +15 -7
- package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
- package/build/dist/UI/Components/Charts/Utils/XAxis.js +70 -0
- package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
- package/build/dist/UI/Components/Charts/Utils/useHistogramRangeSelection.js +305 -38
- package/build/dist/UI/Components/Charts/Utils/useHistogramRangeSelection.js.map +1 -1
- package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js +89 -14
- package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js +11 -2
- package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
- package/build/dist/UI/Components/Input/Input.js +69 -54
- package/build/dist/UI/Components/Input/Input.js.map +1 -1
- package/build/dist/UI/Components/List/ListRow.js +4 -39
- package/build/dist/UI/Components/List/ListRow.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +31 -8
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js +10 -1
- package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +139 -21
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js +30 -8
- package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +10 -0
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js +253 -14
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +43 -13
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
- package/build/dist/UI/Components/OrderedStatesList/Item.js +2 -38
- package/build/dist/UI/Components/OrderedStatesList/Item.js.map +1 -1
- package/build/dist/UI/Components/StatusPage/ResourceGrid.js +53 -15
- package/build/dist/UI/Components/StatusPage/ResourceGrid.js.map +1 -1
- package/build/dist/UI/Components/Table/TableBody.js +6 -2
- package/build/dist/UI/Components/Table/TableBody.js.map +1 -1
- package/build/dist/UI/Components/Table/TableRow.js +12 -75
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +32 -7
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +27 -9
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.js +11 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/useViewerTimeRangeZoom.js +272 -0
- package/build/dist/UI/Components/TelemetryViewer/useViewerTimeRangeZoom.js.map +1 -0
- package/build/dist/UI/Components/Toggle/Toggle.js +14 -1
- package/build/dist/UI/Components/Toggle/Toggle.js.map +1 -1
- package/build/dist/UI/Components/Tooltip/Tooltip.js +1 -1
- package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
- package/build/dist/Utils/AiRemediation/CommandPolicy.js +1 -1
- package/build/dist/Utils/AiRemediation/CommandPolicy.js.map +1 -1
- package/build/dist/Utils/AiRemediation/KubectlPolicy.js +1 -1
- package/build/dist/Utils/AiRemediation/KubectlPolicy.js.map +1 -1
- package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js +27 -1
- package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnerService.js","sourceRoot":"","sources":["../../../../Server/Services/RunnerService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RunnerService.js","sourceRoot":"","sources":["../../../../Server/Services/RunnerService.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,SAAS,MAAM,+BAA+B,CAAC;AACtD,OAAO,KAAK,EAAE,EACZ,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,6DAA6D,CAAC;AAC9G,OAAO,EACL,mCAAmC,EAEnC,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,iCAAiC,EACjC,oCAAoC,EACpC,4BAA4B,GAC7B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;GAGG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAClD,YAAY,CAAC,SAAS,CAAC;AAEzB,6EAA6E;AAC7E,MAAM,6BAA6B,GAAW,CAAC,CAAC;AAEhD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sCAAsC,CACpD,iBAAyB;IAEzB,MAAM,QAAQ,GAAW,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;IAEzE,IAAI,QAAQ,CAAC,MAAM,IAAI,uCAAuC,EAAE,CAAC;QAC/D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAW,MAAM;SACxB,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,oCAAoC,CAAC,iBAAiB,CAAC,CAAC;SAC/D,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC;IAE3C,MAAM,MAAM,GAAW,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACxD,MAAM,IAAI,GACR,uCAAuC;QACvC,MAAM,CAAC,MAAM;QACb,CAAC;QACD,6BAA6B,CAAC;IAEhC,IAAI,IAAI,GAAW,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEpD,yCAAyC;IACzC,MAAM,YAAY,GAAW,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,YAAY,IAAI,MAAM,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;QACrD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AACpC,CAAC;AAQD,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,qBAAqB,CAAC,IAAa;QAC/C,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;YACxB,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CACvD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,0BAA0B,CACtC,MAAuD;QAEvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CACL,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;YAC1C,8BAA8B,CAC5B,4BAA4B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC9C,CACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,gCAAgC,CAC5C,MAAuD,EACvD,iBAA0B;;QAE1B,MAAM,UAAU,GACd,OAAO,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAExE,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GACX,4BAA4B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,eAAe,GAAW,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,0CAAE,IAAI,EAAE,KAAI,EAAE,CAAC;YAEzE,OAAO,CACJ,MAAM,CAAC,IAAe,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC1C,sCAAsC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;gBAClE,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;oBAC3B,iCAAiC,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAClE,CAAC;QACJ,CAAC;QAED,OAAO,4BAA4B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAGwB,AAAN,KAAK,CAAC,cAAc,CACrC,QAAyB;QAEzB;;;;;;WAMG;QACH,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;YACtB,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EACjD,CAAC;YACD,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,YAAY,CAAC;QACvE,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IAEsB,AAAN,KAAK,CAAC,cAAc,CACrC,QAAyB;QAEzB,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,MAAM,IAAI,GAAe,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAA0B,CAAC;QACxE,MAAM,OAAO,GAAY,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,aAAa,GAAY,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC;QACzE,MAAM,mBAAmB,GAAkB,EAAE,CAAC;QAE9C,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE,CAAC;YACpC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,IAAI,EAAE,CAAC;YACxC,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,aAAa,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED;;;;WAIG;QACH,MAAM,OAAO,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;YAC9C,KAAK,kCACA,QAAQ,CAAC,KAAK,GACd,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ;gBACzB,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxC,CAAC,CAAC,EAAE,CAAC,CACR;YACD,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;YACjD,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B;;;;;eAKG;YACH,MAAM,OAAO,GACX,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAE3D,IAAI,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,gBAAgB,CACxB,WAAW,MAAM,CAAC,IAAI,8VAA8V,+BAA+B,EAAE,EAAE,CACxZ,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAAC;YACpE,CAAC;YAED,IACE,mBAAmB,CAAC,MAAM,GAAG,CAAC;gBAC9B,OAAO,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAC1C,CAAC;gBACD,MAAM,IAAI,gBAAgB,CACxB,WAAW,MAAM,CAAC,IAAI,6GAA6G,mBAAmB,CAAC,IAAI,CACzJ,OAAO,CACR,sLAAsL,CACxL,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAEO,MAAM,CAAC,2BAA2B;QACxC,OAAO,+BAA+B,mCAAmC,0IAA0I,CAAC;IACtN,CAAC;IAGY,AAAN,KAAK,CAAC,cAAc,CAAC,IAG3B;QACC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAC5B,GAAG,EAAE,IAAI,CAAC,QAAQ;aACnB;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,IAAI;gBACV,cAAc,EAAE,IAAI;gBACpB,kBAAkB,EAAE,IAAI;gBACxB,gBAAgB,EAAE,IAAI;gBACtB;;;mBAGG;gBACH,QAAQ,EAAE,IAAI;aACf;YACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IAEU,AAAN,KAAK,CAAC,mCAAmC,CAAC,IAGhD;;QACC,MAAM,OAAO,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;YAC9C,KAAK,EAAE;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,gBAAgB,EAAE,IAAI;gBACtB,SAAS,EAAE,WAAW,CAAC,WAAW,CAChC,aAAa,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAChE;gBACD,IAAI,EAAE,WAAW,CAAC,WAAW,CAC3B,GAAG,mCAAmC,IAAI,CAC3C;aACF;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;aACf;YACD,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE;YACvB,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAa,EAAE,EAAE;YACtC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CAAC,KAAc;QACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,GAAG,GAAoB,EAAE,CAAC;QAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,EAAE,GAAuB,SAAS,CAAC;YAEvC,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;gBAC7B,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,EAAE,GAAG,IAAI,CAAC;YACZ,CAAC;iBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,QAAQ,GAAoC,IAGjD,CAAC;gBACF,MAAM,UAAU,GAAY,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC;gBACxD,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,CAAC;YAED,IAAI,EAAE,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IAEU,AAAN,KAAK,CAAC,0BAA0B,CACrC,OAAgB;QAEhB,MAAM,GAAG,GAAoB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;YAC3C,KAAK,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACpC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;YACjD,KAAK,EAAE,GAAG,CAAC,MAAM;YACjB,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAa,EAAE,EAAE;YACnC,OAAO,OAAO,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IAEU,AAAN,KAAK,CAAC,8BAA8B,CAAC,IAI3C;QACC,MAAM,WAAW,GAAsB,CACrC,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CACpD,CAAC,CAAC,CAAC,CAAC;QAEL,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,gBAAgB,CACxB,WAAW,WAAW,CAAC,IAAI,0IAA0I,IAAI,CAAC,YAAY,4FAA4F,IAAI,CAAC,YAAY,oEAAoE,CACxW,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IAEU,AAAN,KAAK,CAAC,gCAAgC,CAC3C,SAAmB;QAEnB;;;;;;;;;;;;WAYG;QACH,MAAM,OAAO,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;YAC9C,KAAK,EAAE;gBACL,SAAS,EAAE,SAAS;gBACpB,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAE,WAAW,CAAC,WAAW,CAChC,aAAa,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,CAChE;gBACD,IAAI,EAAE,WAAW,CAAC,WAAW,CAC3B,GAAG,mCAAmC,IAAI,CAC3C;aACF;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;aACf;YACD,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,OAAO,CACL,OAAO,CAAC,IAAI,CAAC,CAAC,MAAa,EAAE,EAAE;YAC7B,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC,CAAC,IAAI,IAAI,CACX,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,SAAS,CAAC,IAItB;QACC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,MAAM,GAAe;YACzB,SAAS,EAAE,aAAa,CAAC,cAAc,EAAE;YACzC,gBAAgB,EAAE,sBAAsB,CAAC,SAAS;SACnD,CAAC;QAEF,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrC,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC;YACvB,EAAE,EAAE,IAAI,CAAC,OAAO;YAChB,IAAI,EAAE,MAAe;YACrB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IAEU,AAAN,KAAK,CAAC,gBAAgB,CAAC,IAA2B;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC;YACvB,EAAE,EAAE,IAAI,CAAC,OAAO;YAChB,IAAI,EAAE;gBACJ,gBAAgB,EAAE,sBAAsB,CAAC,YAAY;aAC7C;YACV,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;IACL,CAAC;CACF;AA7Z0B;IADxB,WAAW,EAAE;;;;6CA+Bb;AAsBwB;IADxB,WAAW,EAAE;;;;6CA4Eb;AAOY;IADZ,WAAW,EAAE;;;;6CA6Bb;AAmBY;IADZ,WAAW,EAAE;;;;kEA+Bb;AA8CY;IADZ,WAAW,EAAE;;;;yDAqBb;AAcY;IADZ,WAAW,EAAE;;;;6DAeb;AASY;IADZ,WAAW,EAAE;;qCAED,QAAQ;;+DA0CpB;AAGY;IADZ,WAAW,EAAE;;;;wCA4Bb;AAaY;IADZ,WAAW,EAAE;;;;+CAab;AAGH,eAAe,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -29,6 +29,7 @@ import LIMIT_MAX, { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
|
29
29
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
30
30
|
import ObjectID from "../../Types/ObjectID";
|
|
31
31
|
import StatusPageSubscriberNotificationStatus from "../../Types/StatusPage/StatusPageSubscriberNotificationStatus";
|
|
32
|
+
import Monitor from "../../Models/DatabaseModels/Monitor";
|
|
32
33
|
import Model from "../../Models/DatabaseModels/ScheduledMaintenance";
|
|
33
34
|
import MonitorStatusService from "./MonitorStatusService";
|
|
34
35
|
import ProjectScopedReferenceValidator, { resolveReferenceId, resolveReferenceIds, } from "../Utils/Database/ProjectScopedReferenceValidator";
|
|
@@ -69,6 +70,22 @@ import StatusPageResourceUtil from "../Utils/StatusPageResource";
|
|
|
69
70
|
import SafeHtml from "../../Types/SafeHtml";
|
|
70
71
|
import StatusPageSubscriberNotificationEventType from "../../Types/StatusPage/StatusPageSubscriberNotificationEventType";
|
|
71
72
|
import StatusPageSubscriberNotificationMethod from "../../Types/StatusPage/StatusPageSubscriberNotificationMethod";
|
|
73
|
+
import NetworkSite from "../../Models/DatabaseModels/NetworkSite";
|
|
74
|
+
const ATTACHMENT_COLUMNS = [
|
|
75
|
+
"monitors",
|
|
76
|
+
"networkSites",
|
|
77
|
+
];
|
|
78
|
+
/*
|
|
79
|
+
* Enough of a state to tell which kind it is. A project can add its own
|
|
80
|
+
* states between the built-in ones, and those are none of the four kinds.
|
|
81
|
+
*/
|
|
82
|
+
const STATE_KIND_SELECT = {
|
|
83
|
+
_id: true,
|
|
84
|
+
isScheduledState: true,
|
|
85
|
+
isOngoingState: true,
|
|
86
|
+
isEndedState: true,
|
|
87
|
+
isResolvedState: true,
|
|
88
|
+
};
|
|
72
89
|
export class Service extends DatabaseService {
|
|
73
90
|
constructor() {
|
|
74
91
|
super(Model);
|
|
@@ -463,6 +480,11 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
463
480
|
}
|
|
464
481
|
}
|
|
465
482
|
await this.validateProjectScopedReferences(updateBy);
|
|
483
|
+
/*
|
|
484
|
+
* Read before the write, because afterwards the detached monitors are no
|
|
485
|
+
* longer on the event and nothing else remembers them.
|
|
486
|
+
*/
|
|
487
|
+
const carryForward = await this.getAttachmentsBeforeUpdate(updateBy);
|
|
466
488
|
/*
|
|
467
489
|
* Re-apply mapped custom field values. Covers the Custom Fields modal
|
|
468
490
|
* saving the whole bag back over a mapped value, and the event's monitors
|
|
@@ -475,9 +497,123 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
|
|
|
475
497
|
});
|
|
476
498
|
return {
|
|
477
499
|
updateBy,
|
|
478
|
-
carryForward:
|
|
500
|
+
carryForward: carryForward,
|
|
479
501
|
};
|
|
480
502
|
}
|
|
503
|
+
/*
|
|
504
|
+
* The monitors and network sites each event the update matches holds just
|
|
505
|
+
* before the write, for onUpdateSuccess to compare with what it holds
|
|
506
|
+
* after. Null, with nothing read, unless the payload writes one of those
|
|
507
|
+
* lists.
|
|
508
|
+
*
|
|
509
|
+
* Read as root but held to the tenant's project, like the other update
|
|
510
|
+
* reads here; the permission checks that narrow the write run after this
|
|
511
|
+
* hook, so an event read here that the write then skips is simply never
|
|
512
|
+
* looked up again (onUpdateSuccess only visits the rows actually written).
|
|
513
|
+
*/
|
|
514
|
+
async getAttachmentsBeforeUpdate(updateBy) {
|
|
515
|
+
var _a;
|
|
516
|
+
const columns = ATTACHMENT_COLUMNS.filter((column) => {
|
|
517
|
+
/*
|
|
518
|
+
* Only a list that is left out is left alone. Null or an empty list
|
|
519
|
+
* can clear it, and whatever the write makes of any payload is read
|
|
520
|
+
* back afterwards, so every written list is remembered here.
|
|
521
|
+
*/
|
|
522
|
+
return updateBy.data[column] !== undefined;
|
|
523
|
+
});
|
|
524
|
+
if (columns.length === 0) {
|
|
525
|
+
return null;
|
|
526
|
+
}
|
|
527
|
+
const carryForward = {};
|
|
528
|
+
/*
|
|
529
|
+
* One read per list. A find that selects two many-to-many relations
|
|
530
|
+
* returns a row for every combination of their ids. See
|
|
531
|
+
* ProjectScopedReferenceValidator.getHeldRelationIds.
|
|
532
|
+
*/
|
|
533
|
+
for (const column of columns) {
|
|
534
|
+
const select = {
|
|
535
|
+
_id: true,
|
|
536
|
+
projectId: true,
|
|
537
|
+
currentScheduledMaintenanceState: STATE_KIND_SELECT,
|
|
538
|
+
};
|
|
539
|
+
if (column === "monitors") {
|
|
540
|
+
select.monitors = {
|
|
541
|
+
_id: true,
|
|
542
|
+
};
|
|
543
|
+
}
|
|
544
|
+
else {
|
|
545
|
+
select.networkSites = {
|
|
546
|
+
_id: true,
|
|
547
|
+
};
|
|
548
|
+
}
|
|
549
|
+
const scheduledMaintenanceEvents = await this.findBy({
|
|
550
|
+
query: updateBy.props.tenantId
|
|
551
|
+
? Object.assign(Object.assign({}, updateBy.query), { projectId: updateBy.props.tenantId }) : updateBy.query,
|
|
552
|
+
select: select,
|
|
553
|
+
limit: LIMIT_MAX,
|
|
554
|
+
skip: 0,
|
|
555
|
+
props: {
|
|
556
|
+
isRoot: true,
|
|
557
|
+
},
|
|
558
|
+
});
|
|
559
|
+
for (const scheduledMaintenanceEvent of scheduledMaintenanceEvents) {
|
|
560
|
+
if (!scheduledMaintenanceEvent.id) {
|
|
561
|
+
continue;
|
|
562
|
+
}
|
|
563
|
+
const eventKey = scheduledMaintenanceEvent.id.toString();
|
|
564
|
+
const attachmentsBeforeUpdate = carryForward[eventKey] || {
|
|
565
|
+
projectId: undefined,
|
|
566
|
+
wasOngoingBeforeUpdate: false,
|
|
567
|
+
wasHoldingMonitorsBeforeUpdate: false,
|
|
568
|
+
monitorIdsBeforeUpdate: undefined,
|
|
569
|
+
networkSiteIdsBeforeUpdate: undefined,
|
|
570
|
+
};
|
|
571
|
+
attachmentsBeforeUpdate.projectId = scheduledMaintenanceEvent.projectId;
|
|
572
|
+
attachmentsBeforeUpdate.wasOngoingBeforeUpdate = Boolean((_a = scheduledMaintenanceEvent.currentScheduledMaintenanceState) === null || _a === void 0 ? void 0 : _a.isOngoingState);
|
|
573
|
+
if (column === "monitors") {
|
|
574
|
+
attachmentsBeforeUpdate.monitorIdsBeforeUpdate = this.getIdsNotIn({
|
|
575
|
+
ids: resolveReferenceIds(scheduledMaintenanceEvent.monitors),
|
|
576
|
+
exclude: [],
|
|
577
|
+
});
|
|
578
|
+
// Only monitors are held; sites follow the live state.
|
|
579
|
+
attachmentsBeforeUpdate.wasHoldingMonitorsBeforeUpdate =
|
|
580
|
+
await ScheduledMaintenanceStateTimelineService.isScheduledMaintenanceHoldingMonitors({
|
|
581
|
+
scheduledMaintenanceId: scheduledMaintenanceEvent.id,
|
|
582
|
+
projectId: scheduledMaintenanceEvent.projectId,
|
|
583
|
+
currentState: scheduledMaintenanceEvent.currentScheduledMaintenanceState,
|
|
584
|
+
});
|
|
585
|
+
}
|
|
586
|
+
else {
|
|
587
|
+
attachmentsBeforeUpdate.networkSiteIdsBeforeUpdate = this.getIdsNotIn({
|
|
588
|
+
ids: resolveReferenceIds(scheduledMaintenanceEvent.networkSites),
|
|
589
|
+
exclude: [],
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
carryForward[eventKey] = attachmentsBeforeUpdate;
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
return carryForward;
|
|
596
|
+
}
|
|
597
|
+
/*
|
|
598
|
+
* The ids in `ids` that `exclude` does not hold, each once and lower-cased
|
|
599
|
+
* (with nothing to exclude, a list read the same way). Compared case-blind,
|
|
600
|
+
* so an id that reached one side in another case is never reported as
|
|
601
|
+
* both removed and added.
|
|
602
|
+
*/
|
|
603
|
+
getIdsNotIn(data) {
|
|
604
|
+
const excludedKeys = new Set(data.exclude.map((id) => {
|
|
605
|
+
return id.toString().trim().toLowerCase();
|
|
606
|
+
}));
|
|
607
|
+
const result = new Map();
|
|
608
|
+
for (const id of data.ids) {
|
|
609
|
+
const key = id.toString().trim().toLowerCase();
|
|
610
|
+
if (!key || excludedKeys.has(key) || result.has(key)) {
|
|
611
|
+
continue;
|
|
612
|
+
}
|
|
613
|
+
result.set(key, new ObjectID(key));
|
|
614
|
+
}
|
|
615
|
+
return Array.from(result.values());
|
|
616
|
+
}
|
|
481
617
|
/*
|
|
482
618
|
* An update can repoint a scheduled maintenance event at another project's
|
|
483
619
|
* state or monitor status just as easily as a create can, and the result is
|
|
@@ -1237,8 +1373,349 @@ ${scheduledMaintenance.description || "No description provided."}
|
|
|
1237
1373
|
"Changed because of scheduled maintenance event: " + item.id.toString(), undefined, props);
|
|
1238
1374
|
}
|
|
1239
1375
|
}
|
|
1376
|
+
/*
|
|
1377
|
+
* What the write actually changed on one event: its lists as read back
|
|
1378
|
+
* now, against the ones onBeforeUpdate read before the write. Comparing
|
|
1379
|
+
* with the payload instead would trust entries the write may have dropped
|
|
1380
|
+
* (see AttachmentsBeforeUpdate) - a monitor put into maintenance without
|
|
1381
|
+
* being attached could never be restored, since ending or deleting the
|
|
1382
|
+
* event only reaches the monitors it holds.
|
|
1383
|
+
*
|
|
1384
|
+
* The monitors are read back whenever they were written, because the feed
|
|
1385
|
+
* names the change on any event. The sites are only needed by an event
|
|
1386
|
+
* that was suppressing them.
|
|
1387
|
+
*/
|
|
1388
|
+
async getAttachmentChange(data) {
|
|
1389
|
+
const attachmentsBeforeUpdate = data.attachmentsBeforeUpdate;
|
|
1390
|
+
const change = {
|
|
1391
|
+
monitorsAdded: [],
|
|
1392
|
+
monitorsRemoved: [],
|
|
1393
|
+
networkSitesChanged: [],
|
|
1394
|
+
eventAfterUpdate: null,
|
|
1395
|
+
};
|
|
1396
|
+
const monitorIdsBeforeUpdate = attachmentsBeforeUpdate.monitorIdsBeforeUpdate;
|
|
1397
|
+
if (monitorIdsBeforeUpdate) {
|
|
1398
|
+
const eventAfterUpdate = await this.findOneById({
|
|
1399
|
+
id: data.scheduledMaintenanceId,
|
|
1400
|
+
select: {
|
|
1401
|
+
_id: true,
|
|
1402
|
+
changeMonitorStatusToId: true,
|
|
1403
|
+
currentScheduledMaintenanceState: STATE_KIND_SELECT,
|
|
1404
|
+
monitors: {
|
|
1405
|
+
_id: true,
|
|
1406
|
+
},
|
|
1407
|
+
},
|
|
1408
|
+
props: {
|
|
1409
|
+
isRoot: true,
|
|
1410
|
+
},
|
|
1411
|
+
});
|
|
1412
|
+
/*
|
|
1413
|
+
* An event that cannot be read back was deleted since the write, and
|
|
1414
|
+
* its delete hook deals with whatever it held.
|
|
1415
|
+
*/
|
|
1416
|
+
if (eventAfterUpdate) {
|
|
1417
|
+
const monitorIdsAfterUpdate = resolveReferenceIds(eventAfterUpdate.monitors);
|
|
1418
|
+
change.monitorsAdded = this.getIdsNotIn({
|
|
1419
|
+
ids: monitorIdsAfterUpdate,
|
|
1420
|
+
exclude: monitorIdsBeforeUpdate,
|
|
1421
|
+
});
|
|
1422
|
+
change.monitorsRemoved = this.getIdsNotIn({
|
|
1423
|
+
ids: monitorIdsBeforeUpdate,
|
|
1424
|
+
exclude: monitorIdsAfterUpdate,
|
|
1425
|
+
});
|
|
1426
|
+
change.eventAfterUpdate = eventAfterUpdate;
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1429
|
+
const networkSiteIdsBeforeUpdate = attachmentsBeforeUpdate.networkSiteIdsBeforeUpdate;
|
|
1430
|
+
if (networkSiteIdsBeforeUpdate &&
|
|
1431
|
+
attachmentsBeforeUpdate.wasOngoingBeforeUpdate) {
|
|
1432
|
+
// A read of its own, for the same reason as in onBeforeUpdate.
|
|
1433
|
+
const eventAfterUpdate = await this.findOneById({
|
|
1434
|
+
id: data.scheduledMaintenanceId,
|
|
1435
|
+
select: {
|
|
1436
|
+
_id: true,
|
|
1437
|
+
networkSites: {
|
|
1438
|
+
_id: true,
|
|
1439
|
+
},
|
|
1440
|
+
},
|
|
1441
|
+
props: {
|
|
1442
|
+
isRoot: true,
|
|
1443
|
+
},
|
|
1444
|
+
});
|
|
1445
|
+
if (eventAfterUpdate) {
|
|
1446
|
+
const networkSiteIdsAfterUpdate = resolveReferenceIds(eventAfterUpdate.networkSites);
|
|
1447
|
+
change.networkSitesChanged = [
|
|
1448
|
+
...this.getIdsNotIn({
|
|
1449
|
+
ids: networkSiteIdsAfterUpdate,
|
|
1450
|
+
exclude: networkSiteIdsBeforeUpdate,
|
|
1451
|
+
}),
|
|
1452
|
+
...this.getIdsNotIn({
|
|
1453
|
+
ids: networkSiteIdsBeforeUpdate,
|
|
1454
|
+
exclude: networkSiteIdsAfterUpdate,
|
|
1455
|
+
}),
|
|
1456
|
+
];
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
return change;
|
|
1460
|
+
}
|
|
1461
|
+
/*
|
|
1462
|
+
* Moving to ongoing puts the attached monitors into maintenance (the flag
|
|
1463
|
+
* that stops probing, and the configured status) and ending restores the
|
|
1464
|
+
* ones attached at that moment. Both read the list only at the transition,
|
|
1465
|
+
* so a monitor detached mid-window would stay disabled for good - ending
|
|
1466
|
+
* or deleting the event no longer reaches it, and the flag is not
|
|
1467
|
+
* user-editable - and one attached mid-window would keep being probed and
|
|
1468
|
+
* alerting. This does for the edited part of the list what the
|
|
1469
|
+
* transitions did for the rest.
|
|
1470
|
+
*
|
|
1471
|
+
* Monitors are acted on while the event holds them (see
|
|
1472
|
+
* ScheduledMaintenanceStateTimelineService.isScheduledMaintenanceHoldingMonitors):
|
|
1473
|
+
* a scheduled event picks up its list when it starts, and an ended one
|
|
1474
|
+
* has nothing held. Network sites are suppressed only while the event is
|
|
1475
|
+
* live in an ongoing state.
|
|
1476
|
+
*
|
|
1477
|
+
* The write has already committed, so nothing here may undo it or turn it
|
|
1478
|
+
* into an error. Each step fails on its own, and each monitor within a
|
|
1479
|
+
* step, logged; the steps after it still run.
|
|
1480
|
+
*/
|
|
1481
|
+
async applyAttachmentChangeToEvent(data) {
|
|
1482
|
+
const attachmentsBeforeUpdate = data.attachmentsBeforeUpdate;
|
|
1483
|
+
const change = data.change;
|
|
1484
|
+
const projectId = attachmentsBeforeUpdate.projectId;
|
|
1485
|
+
if (!projectId) {
|
|
1486
|
+
return;
|
|
1487
|
+
}
|
|
1488
|
+
const logAttributes = {
|
|
1489
|
+
projectId: projectId.toString(),
|
|
1490
|
+
scheduledMaintenanceId: data.scheduledMaintenanceId.toString(),
|
|
1491
|
+
};
|
|
1492
|
+
const wasHoldingMonitorsBeforeUpdate = attachmentsBeforeUpdate.wasHoldingMonitorsBeforeUpdate;
|
|
1493
|
+
/*
|
|
1494
|
+
* Whether the event holds its monitors now, as read back after the write
|
|
1495
|
+
* and after any state change the same update made. The state can also
|
|
1496
|
+
* move between onBeforeUpdate's read and the write - the
|
|
1497
|
+
* ChangeStateToOngoing job starting the event, or another request
|
|
1498
|
+
* changing its state - so the state before the write cannot decide
|
|
1499
|
+
* either list alone. Read only when it can change what happens.
|
|
1500
|
+
*
|
|
1501
|
+
* If it cannot be read, nothing new is held: a monitor probed through
|
|
1502
|
+
* the window is better than one disabled with nothing to restore it.
|
|
1503
|
+
*/
|
|
1504
|
+
let isHoldingMonitorsAfterUpdate = false;
|
|
1505
|
+
if (change.eventAfterUpdate &&
|
|
1506
|
+
(change.monitorsAdded.length > 0 ||
|
|
1507
|
+
(change.monitorsRemoved.length > 0 && !wasHoldingMonitorsBeforeUpdate))) {
|
|
1508
|
+
try {
|
|
1509
|
+
isHoldingMonitorsAfterUpdate =
|
|
1510
|
+
await ScheduledMaintenanceStateTimelineService.isScheduledMaintenanceHoldingMonitors({
|
|
1511
|
+
scheduledMaintenanceId: data.scheduledMaintenanceId,
|
|
1512
|
+
projectId: projectId,
|
|
1513
|
+
currentState: change.eventAfterUpdate.currentScheduledMaintenanceState,
|
|
1514
|
+
});
|
|
1515
|
+
}
|
|
1516
|
+
catch (err) {
|
|
1517
|
+
logger.error(`ScheduledMaintenanceService.applyAttachmentChangeToEvent: could not read whether scheduled maintenance ${data.scheduledMaintenanceId.toString()} holds its monitors after the update; holding none of the monitors it attached.`, logAttributes);
|
|
1518
|
+
logger.error(err, logAttributes);
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
/*
|
|
1522
|
+
* A detached monitor is released if the event held its monitors on
|
|
1523
|
+
* either side of the write: before it, or after it when the event
|
|
1524
|
+
* started in between and the transition flagged the list it read then,
|
|
1525
|
+
* which may still have had this monitor on it. Only the monitors
|
|
1526
|
+
* actually flagged are released (see restoreMonitorsDetachedFromEvent).
|
|
1527
|
+
*/
|
|
1528
|
+
if (change.monitorsRemoved.length > 0 &&
|
|
1529
|
+
(wasHoldingMonitorsBeforeUpdate || isHoldingMonitorsAfterUpdate)) {
|
|
1530
|
+
try {
|
|
1531
|
+
await this.restoreMonitorsDetachedFromEvent({
|
|
1532
|
+
scheduledMaintenanceId: data.scheduledMaintenanceId,
|
|
1533
|
+
projectId: projectId,
|
|
1534
|
+
monitorIds: change.monitorsRemoved,
|
|
1535
|
+
});
|
|
1536
|
+
}
|
|
1537
|
+
catch (err) {
|
|
1538
|
+
logger.error(`ScheduledMaintenanceService.applyAttachmentChangeToEvent: could not restore the monitors detached from scheduled maintenance ${data.scheduledMaintenanceId.toString()}.`, logAttributes);
|
|
1539
|
+
logger.error(err, logAttributes);
|
|
1540
|
+
}
|
|
1541
|
+
}
|
|
1542
|
+
/*
|
|
1543
|
+
* An attached monitor is held when the event holds its monitors after
|
|
1544
|
+
* the write, whatever it was doing before: the job (or another request)
|
|
1545
|
+
* can have started it between onBeforeUpdate's read and the write,
|
|
1546
|
+
* flagging the list without this monitor. A transition that ran after
|
|
1547
|
+
* the write - the same update started the event, or the job did just
|
|
1548
|
+
* after - has reached this monitor already, and holding it again
|
|
1549
|
+
* changes nothing. An event the same update ended has had its whole list
|
|
1550
|
+
* restored by the transition, and holds nothing.
|
|
1551
|
+
*/
|
|
1552
|
+
if (change.monitorsAdded.length > 0 &&
|
|
1553
|
+
isHoldingMonitorsAfterUpdate &&
|
|
1554
|
+
change.eventAfterUpdate) {
|
|
1555
|
+
await this.holdMonitorsAttachedToEvent({
|
|
1556
|
+
scheduledMaintenanceId: data.scheduledMaintenanceId,
|
|
1557
|
+
projectId: projectId,
|
|
1558
|
+
monitorIds: change.monitorsAdded,
|
|
1559
|
+
changeMonitorStatusToId: change.eventAfterUpdate.changeMonitorStatusToId,
|
|
1560
|
+
});
|
|
1561
|
+
}
|
|
1562
|
+
/*
|
|
1563
|
+
* Sites are suppressed by the live attachment, so the edit itself has
|
|
1564
|
+
* already taken effect; this only re-rolls the chains now rather than at
|
|
1565
|
+
* the next stale sweep, as the state transition does. Detached sites
|
|
1566
|
+
* need it as much as attached ones: they were suppressed until now.
|
|
1567
|
+
* recomputeNetworkSiteRollups logs its own failures.
|
|
1568
|
+
*/
|
|
1569
|
+
if (attachmentsBeforeUpdate.wasOngoingBeforeUpdate &&
|
|
1570
|
+
change.networkSitesChanged.length > 0) {
|
|
1571
|
+
const eventWithChangedSites = new Model(data.scheduledMaintenanceId);
|
|
1572
|
+
eventWithChangedSites.projectId = projectId;
|
|
1573
|
+
eventWithChangedSites.networkSites = change.networkSitesChanged.map((siteId) => {
|
|
1574
|
+
return new NetworkSite(siteId);
|
|
1575
|
+
});
|
|
1576
|
+
await ScheduledMaintenanceStateTimelineService.recomputeNetworkSiteRollups(eventWithChangedSites);
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
/*
|
|
1580
|
+
* Releases the monitors an edit detached from an event that was holding
|
|
1581
|
+
* them, exactly as ending the event releases its list:
|
|
1582
|
+
* enableActiveMonitoringForMonitors clears the flag and puts each back in
|
|
1583
|
+
* the operational status, skipping a monitor another event still holds
|
|
1584
|
+
* and carrying on past one that fails. This event no longer counts as
|
|
1585
|
+
* holding them: the write has already removed them from it.
|
|
1586
|
+
*
|
|
1587
|
+
* Only a monitor whose flag is set is released. That the event held its
|
|
1588
|
+
* monitors says it held the list it read when it started, not that it
|
|
1589
|
+
* held this monitor: an event the same update (or the job, just after the
|
|
1590
|
+
* write) started never flagged a monitor the write had already detached,
|
|
1591
|
+
* and one ended by another request just before the write has released it
|
|
1592
|
+
* already. Released anyway, that monitor would be forced into the
|
|
1593
|
+
* operational status over the one it is really in.
|
|
1594
|
+
*/
|
|
1595
|
+
async restoreMonitorsDetachedFromEvent(data) {
|
|
1596
|
+
const heldMonitors = await MonitorService.findBy({
|
|
1597
|
+
query: {
|
|
1598
|
+
_id: QueryHelper.any(data.monitorIds),
|
|
1599
|
+
projectId: data.projectId,
|
|
1600
|
+
disableActiveMonitoringBecauseOfScheduledMaintenanceEvent: true,
|
|
1601
|
+
},
|
|
1602
|
+
select: {
|
|
1603
|
+
_id: true,
|
|
1604
|
+
},
|
|
1605
|
+
limit: LIMIT_MAX,
|
|
1606
|
+
skip: 0,
|
|
1607
|
+
props: {
|
|
1608
|
+
isRoot: true,
|
|
1609
|
+
},
|
|
1610
|
+
});
|
|
1611
|
+
if (heldMonitors.length === 0) {
|
|
1612
|
+
return;
|
|
1613
|
+
}
|
|
1614
|
+
const eventWithRemovedMonitors = new Model(data.scheduledMaintenanceId);
|
|
1615
|
+
eventWithRemovedMonitors.projectId = data.projectId;
|
|
1616
|
+
eventWithRemovedMonitors.monitors = this.getIdsNotIn({
|
|
1617
|
+
ids: resolveReferenceIds(heldMonitors),
|
|
1618
|
+
exclude: [],
|
|
1619
|
+
}).map((monitorId) => {
|
|
1620
|
+
return new Monitor(monitorId);
|
|
1621
|
+
});
|
|
1622
|
+
await ScheduledMaintenanceStateTimelineService.enableActiveMonitoringForMonitors(eventWithRemovedMonitors);
|
|
1623
|
+
}
|
|
1624
|
+
/*
|
|
1625
|
+
* Puts the monitors an edit attached into maintenance, as entering ongoing
|
|
1626
|
+
* does for the list (ScheduledMaintenanceStateTimelineService): the flag
|
|
1627
|
+
* that stops probing, then the status the event applies, if any. Both are
|
|
1628
|
+
* idempotent, so a monitor the transition has reached as well - the event
|
|
1629
|
+
* started just after the write - is left as it is.
|
|
1630
|
+
*
|
|
1631
|
+
* One monitor at a time, as the release is: one that fails must not leave
|
|
1632
|
+
* the rest of what the edit attached probed and alerting through the
|
|
1633
|
+
* window.
|
|
1634
|
+
*/
|
|
1635
|
+
async holdMonitorsAttachedToEvent(data) {
|
|
1636
|
+
for (const monitorId of data.monitorIds) {
|
|
1637
|
+
try {
|
|
1638
|
+
await MonitorService.updateOneById({
|
|
1639
|
+
id: monitorId,
|
|
1640
|
+
data: {
|
|
1641
|
+
disableActiveMonitoringBecauseOfScheduledMaintenanceEvent: true, /// This will stop active monitoring.
|
|
1642
|
+
},
|
|
1643
|
+
props: {
|
|
1644
|
+
isRoot: true,
|
|
1645
|
+
},
|
|
1646
|
+
});
|
|
1647
|
+
const eventWithAddedMonitor = new Model(data.scheduledMaintenanceId);
|
|
1648
|
+
eventWithAddedMonitor.projectId = data.projectId;
|
|
1649
|
+
eventWithAddedMonitor.monitors = [new Monitor(monitorId)];
|
|
1650
|
+
if (data.changeMonitorStatusToId) {
|
|
1651
|
+
eventWithAddedMonitor.changeMonitorStatusToId =
|
|
1652
|
+
data.changeMonitorStatusToId;
|
|
1653
|
+
}
|
|
1654
|
+
// A no-op when the event does not change monitor status.
|
|
1655
|
+
await this.changeAttachedMonitorStates(eventWithAddedMonitor, {
|
|
1656
|
+
isRoot: true,
|
|
1657
|
+
});
|
|
1658
|
+
}
|
|
1659
|
+
catch (err) {
|
|
1660
|
+
const logAttributes = {
|
|
1661
|
+
projectId: data.projectId.toString(),
|
|
1662
|
+
scheduledMaintenanceId: data.scheduledMaintenanceId.toString(),
|
|
1663
|
+
monitorId: monitorId.toString(),
|
|
1664
|
+
};
|
|
1665
|
+
logger.error(`ScheduledMaintenanceService.holdMonitorsAttachedToEvent: could not put monitor ${monitorId.toString()} into maintenance; continuing with the remaining monitors.`, logAttributes);
|
|
1666
|
+
logger.error(err, logAttributes);
|
|
1667
|
+
continue;
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1670
|
+
}
|
|
1671
|
+
/*
|
|
1672
|
+
* "Monitors Removed" / "Monitors Added" for the updated feed item, worded
|
|
1673
|
+
* as the incident feed words them. The names are read back held to the
|
|
1674
|
+
* project, so an id that is not this project's monitor is never named.
|
|
1675
|
+
*/
|
|
1676
|
+
async getMonitorChangesFeedMarkdown(data) {
|
|
1677
|
+
const sections = [
|
|
1678
|
+
{
|
|
1679
|
+
title: "🗑️ Monitors Removed",
|
|
1680
|
+
monitorIds: data.change.monitorsRemoved,
|
|
1681
|
+
},
|
|
1682
|
+
{
|
|
1683
|
+
title: "🌎 Monitors Added",
|
|
1684
|
+
monitorIds: data.change.monitorsAdded,
|
|
1685
|
+
},
|
|
1686
|
+
];
|
|
1687
|
+
let markdown = "";
|
|
1688
|
+
for (const section of sections) {
|
|
1689
|
+
if (section.monitorIds.length === 0) {
|
|
1690
|
+
continue;
|
|
1691
|
+
}
|
|
1692
|
+
const monitors = await MonitorService.findBy({
|
|
1693
|
+
query: {
|
|
1694
|
+
_id: QueryHelper.any(section.monitorIds),
|
|
1695
|
+
projectId: data.projectId,
|
|
1696
|
+
},
|
|
1697
|
+
select: {
|
|
1698
|
+
_id: true,
|
|
1699
|
+
name: true,
|
|
1700
|
+
},
|
|
1701
|
+
limit: LIMIT_PER_PROJECT,
|
|
1702
|
+
skip: 0,
|
|
1703
|
+
props: {
|
|
1704
|
+
isRoot: true,
|
|
1705
|
+
},
|
|
1706
|
+
});
|
|
1707
|
+
if (monitors.length === 0) {
|
|
1708
|
+
continue;
|
|
1709
|
+
}
|
|
1710
|
+
markdown += `\n\n**${section.title}**:\n`;
|
|
1711
|
+
for (const monitor of monitors) {
|
|
1712
|
+
markdown += `- [${monitor.name}](${(await MonitorService.getMonitorLinkInDashboard(data.projectId, monitor.id)).toString()})\n`;
|
|
1713
|
+
}
|
|
1714
|
+
}
|
|
1715
|
+
return markdown;
|
|
1716
|
+
}
|
|
1240
1717
|
async onUpdateSuccess(onUpdate, updatedItemIds) {
|
|
1241
|
-
var _a;
|
|
1718
|
+
var _a, _b, _c, _d;
|
|
1242
1719
|
CustomFieldMappingService.restampAfterMultiRowUpdate({
|
|
1243
1720
|
definitionModelType: ScheduledMaintenanceCustomField,
|
|
1244
1721
|
updateBy: onUpdate.updateBy,
|
|
@@ -1284,6 +1761,35 @@ ${scheduledMaintenance.description || "No description provided."}
|
|
|
1284
1761
|
let shouldAddScheduledMaintenanceFeed = false;
|
|
1285
1762
|
let feedInfoInMarkdown = "**Scheduled Maintenance was updated.**";
|
|
1286
1763
|
const createdByUserId = onUpdate.updateBy.props.userId;
|
|
1764
|
+
const attachmentsBeforeUpdate = (_a = onUpdate.carryForward) === null || _a === void 0 ? void 0 : _a[scheduledMaintenanceId.toString()];
|
|
1765
|
+
let attachmentChange = null;
|
|
1766
|
+
if (attachmentsBeforeUpdate) {
|
|
1767
|
+
/*
|
|
1768
|
+
* The update is saved by now. Whatever fails here is logged, and
|
|
1769
|
+
* the feed item and the other events of a bulk update still
|
|
1770
|
+
* follow - with the change named in the feed, when it was read
|
|
1771
|
+
* back before the failure.
|
|
1772
|
+
*/
|
|
1773
|
+
try {
|
|
1774
|
+
attachmentChange = await this.getAttachmentChange({
|
|
1775
|
+
scheduledMaintenanceId: scheduledMaintenanceId,
|
|
1776
|
+
attachmentsBeforeUpdate: attachmentsBeforeUpdate,
|
|
1777
|
+
});
|
|
1778
|
+
await this.applyAttachmentChangeToEvent({
|
|
1779
|
+
scheduledMaintenanceId: scheduledMaintenanceId,
|
|
1780
|
+
attachmentsBeforeUpdate: attachmentsBeforeUpdate,
|
|
1781
|
+
change: attachmentChange,
|
|
1782
|
+
});
|
|
1783
|
+
}
|
|
1784
|
+
catch (err) {
|
|
1785
|
+
const logAttributes = {
|
|
1786
|
+
projectId: (_b = attachmentsBeforeUpdate.projectId) === null || _b === void 0 ? void 0 : _b.toString(),
|
|
1787
|
+
scheduledMaintenanceId: scheduledMaintenanceId.toString(),
|
|
1788
|
+
};
|
|
1789
|
+
logger.error(`ScheduledMaintenanceService.onUpdateSuccess: could not apply the edit of the monitors or network sites of scheduled maintenance ${scheduledMaintenanceId.toString()}; the update itself is saved.`, logAttributes);
|
|
1790
|
+
logger.error(err, logAttributes);
|
|
1791
|
+
}
|
|
1792
|
+
}
|
|
1287
1793
|
if (onUpdate.updateBy.data.title) {
|
|
1288
1794
|
// add scheduledMaintenance feed.
|
|
1289
1795
|
feedInfoInMarkdown += `\n\n**Title**:
|
|
@@ -1356,6 +1862,32 @@ ${LinkedAffectedResources.getMarkdownLines({
|
|
|
1356
1862
|
shouldAddScheduledMaintenanceFeed = true;
|
|
1357
1863
|
}
|
|
1358
1864
|
}
|
|
1865
|
+
/*
|
|
1866
|
+
* The list above is what the event affects now; these say what the
|
|
1867
|
+
* edit changed. Removing every monitor leaves no list to show, and
|
|
1868
|
+
* without this the feed would not record the edit at all.
|
|
1869
|
+
*/
|
|
1870
|
+
if (attachmentChange && onUpdate.updateBy.props.tenantId) {
|
|
1871
|
+
// A line the names could not be read for is left out, not the item.
|
|
1872
|
+
try {
|
|
1873
|
+
const monitorChangesMarkdown = await this.getMonitorChangesFeedMarkdown({
|
|
1874
|
+
projectId: onUpdate.updateBy.props.tenantId,
|
|
1875
|
+
change: attachmentChange,
|
|
1876
|
+
});
|
|
1877
|
+
if (monitorChangesMarkdown) {
|
|
1878
|
+
feedInfoInMarkdown += monitorChangesMarkdown;
|
|
1879
|
+
shouldAddScheduledMaintenanceFeed = true;
|
|
1880
|
+
}
|
|
1881
|
+
}
|
|
1882
|
+
catch (err) {
|
|
1883
|
+
const logAttributes = {
|
|
1884
|
+
projectId: (_c = onUpdate.updateBy.props.tenantId) === null || _c === void 0 ? void 0 : _c.toString(),
|
|
1885
|
+
scheduledMaintenanceId: scheduledMaintenanceId.toString(),
|
|
1886
|
+
};
|
|
1887
|
+
logger.error(`ScheduledMaintenanceService.onUpdateSuccess: could not name the monitors added to or removed from scheduled maintenance ${scheduledMaintenanceId.toString()} in its feed.`, logAttributes);
|
|
1888
|
+
logger.error(err, logAttributes);
|
|
1889
|
+
}
|
|
1890
|
+
}
|
|
1359
1891
|
if (onUpdate.updateBy.data.statusPages &&
|
|
1360
1892
|
onUpdate.updateBy.data.statusPages.length > 0 &&
|
|
1361
1893
|
Array.isArray(onUpdate.updateBy.data.statusPages)) {
|
|
@@ -1459,7 +1991,7 @@ ${labels
|
|
|
1459
1991
|
}
|
|
1460
1992
|
catch (reminderError) {
|
|
1461
1993
|
logger.error(`Reminder rescheduling failed in ScheduledMaintenanceService.onUpdateSuccess: ${reminderError}`, {
|
|
1462
|
-
projectId: (
|
|
1994
|
+
projectId: (_d = onUpdate.updateBy.props.tenantId) === null || _d === void 0 ? void 0 : _d.toString(),
|
|
1463
1995
|
scheduledMaintenanceId: scheduledMaintenanceId === null || scheduledMaintenanceId === void 0 ? void 0 : scheduledMaintenanceId.toString(),
|
|
1464
1996
|
});
|
|
1465
1997
|
}
|