@oneuptime/common 14.0.8 → 14.0.10
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/AutoRemediationSuggestion.ts +60 -0
- package/Models/DatabaseModels/CephCluster.ts +213 -0
- package/Models/DatabaseModels/DatabaseServer.ts +213 -0
- package/Models/DatabaseModels/DockerHost.ts +213 -0
- package/Models/DatabaseModels/DockerSwarmCluster.ts +213 -0
- package/Models/DatabaseModels/GlobalConfig.ts +1 -1
- package/Models/DatabaseModels/Host.ts +213 -0
- package/Models/DatabaseModels/Index.ts +4 -0
- package/Models/DatabaseModels/KubernetesAiAgent.ts +364 -0
- package/Models/DatabaseModels/KubernetesCluster.ts +3 -3
- package/Models/DatabaseModels/PodmanHost.ts +213 -0
- package/Models/DatabaseModels/Project.ts +55 -5
- package/Models/DatabaseModels/ProxmoxCluster.ts +213 -0
- package/Models/DatabaseModels/ProxmoxResource.ts +49 -1
- package/Models/DatabaseModels/ResourceAiAgent.ts +419 -0
- package/Models/DatabaseModels/RunnerJob.ts +219 -0
- package/Models/DatabaseModels/TeamComplianceSetting.ts +143 -2
- package/Models/DatabaseModels/VMwareVCenter.ts +213 -0
- 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 +598 -25
- package/Server/API/KubernetesClusterAiAccessAPI.ts +623 -21
- package/Server/API/MicrosoftTeamsAPI.ts +93 -14
- package/Server/API/ProxmoxResourceAPI.ts +244 -14
- package/Server/API/ResourceAiAccessAPI.ts +1669 -0
- 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/1796300000000-AddResourceAiAgents.ts +423 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
- package/Server/Infrastructure/Semaphore.ts +22 -0
- package/Server/Middleware/TelemetryIngest.ts +51 -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/AnalyticsDatabaseService.ts +45 -1
- package/Server/Services/AutoRemediationRuleEngineService.ts +940 -112
- package/Server/Services/AutoRemediationRuleService.ts +1 -1
- package/Server/Services/CephClusterService.ts +109 -1
- package/Server/Services/DatabaseServerService.ts +116 -1
- package/Server/Services/DockerHostService.ts +109 -1
- package/Server/Services/DockerSwarmClusterService.ts +113 -1
- package/Server/Services/HostService.ts +126 -4
- 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/MetricRecordingRuleService.ts +47 -0
- package/Server/Services/PodmanHostService.ts +109 -1
- package/Server/Services/ProjectService.ts +32 -0
- package/Server/Services/ProxmoxClusterService.ts +110 -1
- package/Server/Services/ProxmoxResourceService.ts +322 -5
- package/Server/Services/ResourceAiAccessService.ts +1439 -0
- package/Server/Services/ResourceAiAgentJobService.ts +202 -0
- package/Server/Services/ResourceAiAgentService.ts +2432 -0
- package/Server/Services/RunnerJobService.ts +852 -108
- 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/Services/TelemetryUsageBillingService.ts +28 -0
- package/Server/Services/TraceRecordingRuleService.ts +33 -0
- package/Server/Services/VMwareVCenterService.ts +110 -1
- 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 +1475 -51
- package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +1000 -43
- package/Server/Utils/AI/Remediation/RemediationPlanRunner.ts +25 -1
- package/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.ts +577 -0
- package/Server/Utils/AI/ResourceAccess/ResourceAccessContext.ts +271 -0
- package/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.ts +45 -0
- package/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.ts +964 -0
- package/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.ts +333 -0
- package/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.ts +873 -0
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +120 -7
- package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +72 -5
- package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +72 -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 +402 -14
- package/Server/Utils/AutoRemediation/RemediationVerifier.ts +35 -2
- package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +9 -1
- package/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.ts +920 -0
- package/Server/Utils/SessionReplay/SessionReplayUsage.ts +84 -6
- 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/Actions/Alert.ts +35 -15
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +33 -15
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +21 -1
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +298 -224
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.ts +35 -15
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.ts +389 -175
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +1073 -213
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.ts +163 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.ts +396 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.ts +418 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.ts +152 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.ts +251 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.ts +214 -0
- 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 +184 -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/DatabaseDocumentationMarkdown.test.ts +18 -6
- 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/InvestigationInfrastructureTools.test.tsx +506 -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/RemediationSuggestionCardDescription.test.tsx +209 -0
- package/Tests/App/Dashboard/RemediationSuggestionCardResource.test.tsx +317 -0
- package/Tests/App/Dashboard/ResourceAiAccessSettingsUtil.test.ts +921 -0
- package/Tests/App/Dashboard/ResourceAiAgentInstall.test.ts +860 -0
- package/Tests/App/Dashboard/ResourceAiAgentPage.test.tsx +1721 -0
- package/Tests/App/Dashboard/ResourceAiAgentStatus.test.ts +1002 -0
- package/Tests/App/Dashboard/ResourceAiInsightsPage.test.tsx +931 -0
- package/Tests/App/Dashboard/ResourceAiNavigation.test.tsx +575 -0
- package/Tests/App/Dashboard/RowActionPlacementOverrides.test.tsx +865 -0
- package/Tests/App/Dashboard/RumOverviewTimeRangeZoom.test.tsx +877 -0
- package/Tests/App/Dashboard/RunbookStepTypeMaps.test.ts +38 -7
- 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/DatabaseServerModels.test.ts +33 -1
- package/Tests/Models/DatabaseModels/KubernetesAiAgentModel.test.ts +295 -0
- package/Tests/Models/DatabaseModels/ResourceAiAccessColumns.test.ts +738 -0
- package/Tests/Models/DatabaseModels/ResourceAiAgentModel.test.ts +842 -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/AutoRemediationApproveResourceRound.test.ts +835 -0
- 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/API/ResourceAiAccessAPI.test.ts +2730 -0
- package/Tests/Server/Infrastructure/GlobalCache.test.ts +195 -0
- package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +60 -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/AddResourceAiAgentsMigration.test.ts +659 -0
- package/Tests/Server/Infrastructure/Postgres/AddTeamComplianceRuleScopeMigration.test.ts +622 -0
- package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +31 -0
- package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +119 -4
- package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerPinnedKey.test.ts +196 -2
- package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerRateLimit.test.ts +123 -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/AutoRemediationResourceRuleEngine.test.ts +1279 -0
- package/Tests/Server/Services/AutoRemediationRuleCommandRunners.test.ts +2 -1
- package/Tests/Server/Services/DatabaseServerService.test.ts +55 -0
- package/Tests/Server/Services/GroupTelemetryUsageExcludeNames.test.ts +299 -0
- package/Tests/Server/Services/HostServiceFindOrCreateMemo.test.ts +44 -0
- 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/MonitorProbeServiceIntervalScheduling.test.ts +45 -6
- 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/RecordingRuleReservedMetricName.test.ts +171 -0
- package/Tests/Server/Services/ResourceAiAccessChangeAuthorization.test.ts +256 -0
- package/Tests/Server/Services/ResourceAiAccessService.test.ts +1373 -0
- package/Tests/Server/Services/ResourceAiAgentJobService.test.ts +375 -0
- package/Tests/Server/Services/ResourceAiAgentServiceHelpers.test.ts +1114 -0
- package/Tests/Server/Services/ResourceAiAgentServiceLifecycle.test.ts +1050 -0
- package/Tests/Server/Services/ResourceAiAgentServiceRegister.test.ts +2251 -0
- package/Tests/Server/Services/ResourceAiSettingsCreate.test.ts +373 -0
- package/Tests/Server/Services/ResourceAiSettingsPermission.test.ts +1042 -0
- package/Tests/Server/Services/ResourceServiceDeleteCleansUpAi.test.ts +319 -0
- package/Tests/Server/Services/RunnerJobEnqueueKubectl.test.ts +153 -15
- package/Tests/Server/Services/RunnerJobEnqueueKubectlAiAgent.test.ts +620 -0
- package/Tests/Server/Services/RunnerJobEnqueueResourceCommand.test.ts +986 -0
- package/Tests/Server/Services/RunnerJobKubectlWriteScope.test.ts +170 -3
- package/Tests/Server/Services/RunnerJobResourceCommandLane.test.ts +211 -0
- package/Tests/Server/Services/RunnerJobResourceCommandTimeoutAndRedaction.test.ts +352 -0
- 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/Services/TelemetryUsageBillingSloExclusion.test.ts +218 -0
- package/Tests/Server/TestingUtils/Services/FakeRunnerJobCount.ts +145 -0
- 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/InvestigationInfrastructureAccessWiring.test.ts +453 -0
- package/Tests/Server/Utils/AI/InvestigationInfrastructureReport.test.ts +721 -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/RemediationCommandTools.test.ts +94 -1
- 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/RemediationCommandToolsResource.test.ts +1530 -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/RemediationExecutionRunnerResourceMode.test.ts +1249 -0
- package/Tests/Server/Utils/AI/RemediationKubectlCopyParity.test.ts +2 -0
- package/Tests/Server/Utils/AI/RemediationPlanRunner.test.ts +117 -0
- package/Tests/Server/Utils/AI/RemediationResourceCopyParity.test.ts +463 -0
- package/Tests/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.test.ts +722 -0
- package/Tests/Server/Utils/AI/ResourceAccess/ResourceAccessContext.test.ts +266 -0
- package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.test.ts +1220 -0
- package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.test.ts +569 -0
- package/Tests/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.test.ts +830 -0
- package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutor.test.ts +2 -0
- package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutorResource.test.ts +717 -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/AutoRemediation/RemediationVerifierResourceFollowUp.test.ts +338 -0
- package/Tests/Server/Utils/Monitor/Criteria/SessionReplayBudgetTemplateCriteria.test.ts +422 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.test.ts +1647 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayUsage.test.ts +143 -1
- 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 +75 -3
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsAccountNotLinked.test.ts +1093 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.test.ts +1049 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.test.ts +1676 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCards.test.ts +2884 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.test.ts +2490 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmit.test.ts +2293 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmitServerTimezone.test.ts +386 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.test.ts +1477 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.test.ts +1967 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsStripHtmlTags.test.ts +92 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsSubmittedFormRemoval.test.ts +1819 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.test.ts +1033 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezoneServerZone.test.ts +610 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsBotMessageHandling.test.ts +2610 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChats.test.ts +25 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsCreateCommandsEndToEnd.test.ts +4672 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsGroupChatNames.test.ts +3119 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsGroupChatNamesPostgres.test.ts +1721 -0
- package/Tests/Server/Utils/Workspace/WorkspaceCreateProjectReferences.test.ts +190 -65
- package/Tests/Types/AutoRemediation/AiRemediationCommandPlan.test.ts +10 -4
- package/Tests/Types/AutoRemediation/AiRemediationCommandPlanResourceCommand.test.ts +305 -0
- package/Tests/Types/Kubernetes/KubernetesAgentChartAiAccess.test.ts +581 -113
- package/Tests/Types/Kubernetes/KubernetesAiAgentAccessContract.test.ts +510 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +277 -13
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +113 -0
- package/Tests/Types/Monitor/RumAlertTemplates.test.ts +773 -2
- package/Tests/Types/ResourceAiAgent/AiResourceType.test.ts +419 -0
- package/Tests/Types/ResourceAiAgent/ResourceAiAccess.test.ts +517 -0
- package/Tests/Types/Runbook/RunbookStepType.test.ts +147 -8
- 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/RecordingHealthDashboard.test.tsx +769 -1
- 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/AiRemediation/Resource/CephCommandPolicy.test.ts +1653 -0
- package/Tests/Utils/AiRemediation/Resource/CephOutputRedaction.test.ts +204 -0
- package/Tests/Utils/AiRemediation/Resource/DatabaseCommandPolicy.test.ts +1077 -0
- package/Tests/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.test.ts +558 -0
- package/Tests/Utils/AiRemediation/Resource/DatabaseQueryRedactor.test.ts +834 -0
- package/Tests/Utils/AiRemediation/Resource/DockerCliGrammar.test.ts +747 -0
- package/Tests/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.test.ts +1259 -0
- package/Tests/Utils/AiRemediation/Resource/DockerOutputRedaction.test.ts +386 -0
- package/Tests/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.test.ts +782 -0
- package/Tests/Utils/AiRemediation/Resource/GovcCommandPolicy.test.ts +2259 -0
- package/Tests/Utils/AiRemediation/Resource/HostCommandPolicy.test.ts +2019 -0
- package/Tests/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.test.ts +2497 -0
- package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicy.test.ts +1305 -0
- package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.test.ts +585 -0
- package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactor.test.ts +334 -0
- package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactorCopyParity.test.ts +98 -0
- package/Tests/Utils/AiRemediation/Resource/ResourcePolicyImportClosure.test.ts +391 -0
- package/Tests/Utils/AiRemediation/ResourceAiAgentPolicyCopyParity.test.ts +497 -0
- package/Tests/Utils/Dashboard/DashboardTimeRangeZoom.test.ts +104 -1
- package/Tests/Utils/SessionReplay/SessionReplayBudgetMetricType.test.ts +383 -0
- package/Types/AI/AIRunType.ts +9 -4
- package/Types/AI/InvestigationNotStartedReason.ts +6 -0
- package/Types/AI/ResourceAiAccessApi.ts +140 -0
- package/Types/AI/ResourceAiAccessPermissions.ts +126 -0
- package/Types/AutoRemediation/AiRemediationCommandPlan.ts +197 -18
- 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/Monitor/Recommendation/MonitorRecommendationCatalog.ts +55 -22
- package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +35 -3
- package/Types/Monitor/RumAlertTemplates.ts +351 -4
- package/Types/ResourceAiAgent/AiResourceType.ts +310 -0
- package/Types/ResourceAiAgent/ResourceAiAccess.ts +574 -0
- package/Types/Rum/SessionReplayBudgetMetricType.ts +47 -0
- package/Types/Runbook/RunbookStepType.ts +29 -0
- 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 +40 -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/AI/InvestigationReport.ts +121 -15
- package/Utils/AiRemediation/CommandPolicy.ts +1 -1
- package/Utils/AiRemediation/KubectlPolicy.ts +1 -1
- package/Utils/AiRemediation/Resource/CephCommandPolicy.ts +1936 -0
- package/Utils/AiRemediation/Resource/DatabaseCommandPolicy.ts +166 -0
- package/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.ts +1532 -0
- package/Utils/AiRemediation/Resource/DatabaseQueryRedactor.ts +1394 -0
- package/Utils/AiRemediation/Resource/DockerCliGrammar.ts +1839 -0
- package/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.ts +490 -0
- package/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.ts +687 -0
- package/Utils/AiRemediation/Resource/GovcCommandPolicy.ts +2096 -0
- package/Utils/AiRemediation/Resource/HostCommandPolicy.ts +2982 -0
- package/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.ts +1679 -0
- package/Utils/AiRemediation/Resource/ResourceCommandPolicy.ts +851 -0
- package/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.ts +593 -0
- package/Utils/AiRemediation/Resource/ResourceOutputRedactor.ts +2812 -0
- package/Utils/Dashboard/DashboardTimeRangeZoom.ts +46 -2
- package/Utils/SessionReplay/SessionReplayBudgetMetricType.ts +184 -0
- package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js +62 -0
- package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CephCluster.js +219 -0
- package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DatabaseServer.js +219 -0
- package/build/dist/Models/DatabaseModels/DatabaseServer.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHost.js +219 -0
- package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js +219 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Host.js +219 -0
- package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +4 -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/PodmanHost.js +219 -0
- package/build/dist/Models/DatabaseModels/PodmanHost.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/ProxmoxCluster.js +219 -0
- package/build/dist/Models/DatabaseModels/ProxmoxCluster.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/ResourceAiAgent.js +439 -0
- package/build/dist/Models/DatabaseModels/ResourceAiAgent.js.map +1 -0
- package/build/dist/Models/DatabaseModels/RunnerJob.js +219 -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/VMwareVCenter.js +219 -0
- package/build/dist/Models/DatabaseModels/VMwareVCenter.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 +374 -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/API/ResourceAiAccessAPI.js +1119 -0
- package/build/dist/Server/API/ResourceAiAccessAPI.js.map +1 -0
- 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/1796300000000-AddResourceAiAgents.js +168 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/Semaphore.js +6 -0
- package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
- package/build/dist/Server/Middleware/TelemetryIngest.js +41 -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/AnalyticsDatabaseService.js +26 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +601 -3
- package/build/dist/Server/Services/AutoRemediationRuleEngineService.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/CephClusterService.js +104 -0
- package/build/dist/Server/Services/CephClusterService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseServerService.js +99 -0
- package/build/dist/Server/Services/DatabaseServerService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostService.js +104 -0
- package/build/dist/Server/Services/DockerHostService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterService.js +104 -0
- package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +114 -2
- package/build/dist/Server/Services/HostService.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/MetricRecordingRuleService.js +46 -0
- package/build/dist/Server/Services/MetricRecordingRuleService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostService.js +104 -0
- package/build/dist/Server/Services/PodmanHostService.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/ProxmoxClusterService.js +104 -0
- package/build/dist/Server/Services/ProxmoxClusterService.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/ResourceAiAccessService.js +1028 -0
- package/build/dist/Server/Services/ResourceAiAccessService.js.map +1 -0
- package/build/dist/Server/Services/ResourceAiAgentJobService.js +173 -0
- package/build/dist/Server/Services/ResourceAiAgentJobService.js.map +1 -0
- package/build/dist/Server/Services/ResourceAiAgentService.js +1687 -0
- package/build/dist/Server/Services/ResourceAiAgentService.js.map +1 -0
- package/build/dist/Server/Services/RunnerJobService.js +522 -97
- 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/Services/TelemetryUsageBillingService.js +26 -0
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Services/TraceRecordingRuleService.js +37 -0
- package/build/dist/Server/Services/TraceRecordingRuleService.js.map +1 -1
- package/build/dist/Server/Services/VMwareVCenterService.js +104 -0
- package/build/dist/Server/Services/VMwareVCenterService.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 +1056 -43
- package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +683 -42
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js +21 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js +330 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js.map +1 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js +160 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js.map +1 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js +33 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js.map +1 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js +640 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js.map +1 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js +226 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js.map +1 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js +600 -0
- package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +89 -9
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +55 -4
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +55 -4
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.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 +294 -15
- package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js.map +1 -1
- package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js +29 -1
- package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js.map +1 -1
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +9 -1
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
- package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js +627 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js +60 -5
- package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.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/Actions/Alert.js +19 -15
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +19 -15
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +17 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +183 -209
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js +19 -15
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js +233 -167
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +768 -152
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js +129 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js +266 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js +258 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js +104 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js +183 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js +123 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js.map +1 -0
- package/build/dist/Types/AI/AIRunType.js +9 -4
- package/build/dist/Types/AI/AIRunType.js.map +1 -1
- package/build/dist/Types/AI/ResourceAiAccessApi.js +30 -0
- package/build/dist/Types/AI/ResourceAiAccessApi.js.map +1 -0
- package/build/dist/Types/AI/ResourceAiAccessPermissions.js +98 -0
- package/build/dist/Types/AI/ResourceAiAccessPermissions.js.map +1 -0
- package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js +126 -45
- 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/Monitor/Recommendation/MonitorRecommendationCatalog.js +47 -21
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +5 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
- package/build/dist/Types/Monitor/RumAlertTemplates.js +199 -3
- package/build/dist/Types/Monitor/RumAlertTemplates.js.map +1 -1
- package/build/dist/Types/ResourceAiAgent/AiResourceType.js +242 -0
- package/build/dist/Types/ResourceAiAgent/AiResourceType.js.map +1 -0
- package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js +275 -0
- package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js.map +1 -0
- package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js +45 -0
- package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js.map +1 -0
- package/build/dist/Types/Runbook/RunbookStepType.js +27 -0
- package/build/dist/Types/Runbook/RunbookStepType.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 +36 -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/AI/InvestigationReport.js +71 -11
- package/build/dist/Utils/AI/InvestigationReport.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/AiRemediation/Resource/CephCommandPolicy.js +1462 -0
- package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js +122 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js +1139 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js +1060 -0
- package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js +1301 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js +370 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js +498 -0
- package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js +1565 -0
- package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js +2206 -0
- package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js +1129 -0
- package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js +565 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js +408 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js.map +1 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js +1910 -0
- package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js.map +1 -0
- package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js +27 -1
- package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js.map +1 -1
- package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js +160 -0
- package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MicrosoftTeamsCreateCommands.js","sourceRoot":"","sources":["../../../../../../Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { truncateToLength } from "../../Database/TruncateColumnValue";
|
|
2
|
+
/*
|
|
3
|
+
* How big a message Microsoft Teams takes from a bot.
|
|
4
|
+
*
|
|
5
|
+
* Teams measures a bot message as UTF-16 and refuses one over its limit with
|
|
6
|
+
* HTTP 413 MessageSizeTooBig ("Message size too large."), which the Bot
|
|
7
|
+
* Framework SDK does not retry. The documented limit has moved over the years
|
|
8
|
+
* (28 KB, then 40 KB, now "about 100 KB, keep it within 80 KB"), and Teams
|
|
9
|
+
* checks it against its own internal form of the message rather than the JSON
|
|
10
|
+
* we send, so 413s are reported well under the documented number. Anything we
|
|
11
|
+
* build that grows with the size of a project is therefore kept to a budget
|
|
12
|
+
* with a wide margin, and a card Teams still refuses is sent again, smaller.
|
|
13
|
+
*
|
|
14
|
+
* Issue #4111: the "create incident" and "create maintenance" forms listed
|
|
15
|
+
* every monitor, label and on-call policy of the project, so a few hundred
|
|
16
|
+
* monitors were enough for Teams to refuse the form.
|
|
17
|
+
*/
|
|
18
|
+
/*
|
|
19
|
+
* Budgets for an adaptive card, in the order they are tried. The next one is
|
|
20
|
+
* only tried after Teams refused the card built for the previous one. A budget
|
|
21
|
+
* of 0 leaves every optional list off the card.
|
|
22
|
+
*/
|
|
23
|
+
export const MICROSOFT_TEAMS_CARD_SIZE_BUDGETS_IN_BYTES = [40 * 1024, 20 * 1024, 0];
|
|
24
|
+
// Budget for a plain text reply, such as "show active incidents".
|
|
25
|
+
export const MICROSOFT_TEAMS_TEXT_MESSAGE_BUDGET_IN_BYTES = 40 * 1024;
|
|
26
|
+
const DEFAULT_TRUNCATION_NOTE = "…\n\n_This reply was shortened to fit in Microsoft Teams. Open OneUptime to see everything._";
|
|
27
|
+
export default class MicrosoftTeamsMessageSize {
|
|
28
|
+
// Size as Teams counts it: JavaScript strings are UTF-16, two bytes a unit.
|
|
29
|
+
static getSizeInBytes(value) {
|
|
30
|
+
const text = typeof value === "string" ? value : JSON.stringify(value);
|
|
31
|
+
return text.length * 2;
|
|
32
|
+
}
|
|
33
|
+
/*
|
|
34
|
+
* Whether Teams refused a message as too large.
|
|
35
|
+
*
|
|
36
|
+
* The Bot Framework connector throws a RestError that carries statusCode
|
|
37
|
+
* 413 and code "MessageSizeTooBig". It is matched on those fields and not
|
|
38
|
+
* on its class: @azure/* is not a dependency of Common (botbuilder brings
|
|
39
|
+
* it), and the error can come from another JavaScript realm, where
|
|
40
|
+
* instanceof is false. The status code alone is enough when a proxy in
|
|
41
|
+
* front of the connector answered 413 with a body that is not JSON.
|
|
42
|
+
*/
|
|
43
|
+
static isMessageTooLargeError(error) {
|
|
44
|
+
return (this.getErrorStatusCode(error) === 413 ||
|
|
45
|
+
this.getErrorCode(error) === "MessageSizeTooBig");
|
|
46
|
+
}
|
|
47
|
+
// The HTTP status of a failed Bot Framework call, when the error has one.
|
|
48
|
+
static getErrorStatusCode(error) {
|
|
49
|
+
var _a;
|
|
50
|
+
if (!error || typeof error !== "object") {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
const candidate = error;
|
|
54
|
+
if (typeof candidate.statusCode === "number") {
|
|
55
|
+
return candidate.statusCode;
|
|
56
|
+
}
|
|
57
|
+
if (typeof ((_a = candidate.response) === null || _a === void 0 ? void 0 : _a.status) === "number") {
|
|
58
|
+
return candidate.response.status;
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
// The error code of a failed Bot Framework call, e.g. "MessageSizeTooBig".
|
|
63
|
+
static getErrorCode(error) {
|
|
64
|
+
var _a, _b;
|
|
65
|
+
if (!error || typeof error !== "object") {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
const candidate = error;
|
|
69
|
+
if (typeof candidate.code === "string" && candidate.code) {
|
|
70
|
+
return candidate.code;
|
|
71
|
+
}
|
|
72
|
+
if (typeof ((_b = (_a = candidate.details) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.code) === "string" &&
|
|
73
|
+
candidate.details.error.code) {
|
|
74
|
+
return candidate.details.error.code;
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
/*
|
|
79
|
+
* A text reply cut down to the budget, with a note that it was shortened
|
|
80
|
+
* when the note fits as well. The cut is made at the last line break that
|
|
81
|
+
* fits, so no markdown line is split, or mid-line (never inside an emoji)
|
|
82
|
+
* when the first line alone is over the budget. The result is never over
|
|
83
|
+
* the budget; text within it is returned as it is.
|
|
84
|
+
*/
|
|
85
|
+
static fitTextToBudget(data) {
|
|
86
|
+
var _a, _b;
|
|
87
|
+
const budgetInBytes = (_a = data.budgetInBytes) !== null && _a !== void 0 ? _a : MICROSOFT_TEAMS_TEXT_MESSAGE_BUDGET_IN_BYTES;
|
|
88
|
+
if (this.getSizeInBytes(data.text) <= budgetInBytes) {
|
|
89
|
+
return data.text;
|
|
90
|
+
}
|
|
91
|
+
const maxUnits = Math.max(0, Math.floor(budgetInBytes / 2));
|
|
92
|
+
const requestedNote = (_b = data.truncationNote) !== null && _b !== void 0 ? _b : DEFAULT_TRUNCATION_NOTE;
|
|
93
|
+
// A note that does not fit leaves the whole budget to the text.
|
|
94
|
+
const truncationNote = requestedNote.length <= maxUnits ? requestedNote : "";
|
|
95
|
+
const maxLength = maxUnits - truncationNote.length;
|
|
96
|
+
// A line that ends exactly at the cut still fits, so the search includes it.
|
|
97
|
+
const lastLineBreak = data.text.lastIndexOf("\n", maxLength);
|
|
98
|
+
const kept = lastLineBreak > 0
|
|
99
|
+
? data.text.substring(0, lastLineBreak)
|
|
100
|
+
: truncateToLength(data.text, maxLength);
|
|
101
|
+
return kept.trimEnd() + truncationNote;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=MicrosoftTeamsMessageSize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MicrosoftTeamsMessageSize.js","sourceRoot":"","sources":["../../../../../../Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,0CAA0C,GACrD,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AAE5B,kEAAkE;AAClE,MAAM,CAAC,MAAM,4CAA4C,GAAW,EAAE,GAAG,IAAI,CAAC;AAE9E,MAAM,uBAAuB,GAC3B,8FAA8F,CAAC;AAEjG,MAAM,CAAC,OAAO,OAAO,yBAAyB;IAC5C,4EAA4E;IACrE,MAAM,CAAC,cAAc,CAAC,KAA0B;QACrD,MAAM,IAAI,GACR,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,sBAAsB,CAAC,KAAc;QACjD,OAAO,CACL,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,GAAG;YACtC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,mBAAmB,CACjD,CAAC;IACJ,CAAC;IAED,0EAA0E;IACnE,MAAM,CAAC,kBAAkB,CAAC,KAAc;;QAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAGX,KAGH,CAAC;QAEF,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAC,UAAU,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,CAAA,MAAA,SAAS,CAAC,QAAQ,0CAAE,MAAM,CAAA,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,2EAA2E;IACpE,MAAM,CAAC,YAAY,CAAC,KAAc;;QACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAGX,KAGH,CAAC;QAEF,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACzD,OAAO,SAAS,CAAC,IAAI,CAAC;QACxB,CAAC;QAED,IACE,OAAO,CAAA,MAAA,MAAA,SAAS,CAAC,OAAO,0CAAE,KAAK,0CAAE,IAAI,CAAA,KAAK,QAAQ;YAClD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAC5B,CAAC;YACD,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACtC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,eAAe,CAAC,IAI7B;;QACC,MAAM,aAAa,GACjB,MAAA,IAAI,CAAC,aAAa,mCAAI,4CAA4C,CAAC;QAErE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,MAAM,QAAQ,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,aAAa,GACjB,MAAA,IAAI,CAAC,cAAc,mCAAI,uBAAuB,CAAC;QAEjD,gEAAgE;QAChE,MAAM,cAAc,GAClB,aAAa,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,SAAS,GAAW,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC;QAE3D,6EAA6E;QAC7E,MAAM,aAAa,GAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAErE,MAAM,IAAI,GACR,aAAa,GAAG,CAAC;YACf,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC;YACvC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import URL from "../../../../Types/API/URL";
|
|
2
|
+
import BadDataException from "../../../../Types/Exception/BadDataException";
|
|
3
|
+
import NotAuthorizedException from "../../../../Types/Exception/NotAuthorizedException";
|
|
4
|
+
import DatabaseConfig from "../../../DatabaseConfig";
|
|
5
|
+
import { ProjectScopedReferenceException } from "../../Database/ProjectScopedReferenceValidator";
|
|
6
|
+
import logger from "../../Logger";
|
|
7
|
+
import MicrosoftTeamsMessageSize, { MICROSOFT_TEAMS_CARD_SIZE_BUDGETS_IN_BYTES, } from "./MicrosoftTeamsMessageSize";
|
|
8
|
+
/*
|
|
9
|
+
* Replies the Microsoft Teams bot sends, and the rule they follow: an inbound
|
|
10
|
+
* message gets one answer, and an answer that cannot be sent never turns into
|
|
11
|
+
* a second one.
|
|
12
|
+
*
|
|
13
|
+
* Issue #4111: a failed command replied "Sorry, I encountered an error..."
|
|
14
|
+
* and then rethrew, the adapter answered Teams with HTTP 500, and Teams
|
|
15
|
+
* delivered the message again, so every error showed up twice. Replies that
|
|
16
|
+
* are not the point of the turn (an error text, removing a submitted form) are
|
|
17
|
+
* therefore sent best-effort: a failure is logged, never thrown.
|
|
18
|
+
*/
|
|
19
|
+
export const MICROSOFT_TEAMS_ADAPTIVE_CARD_CONTENT_TYPE = "application/vnd.microsoft.card.adaptive";
|
|
20
|
+
/*
|
|
21
|
+
* The reply for a submit that references a record the project does not have
|
|
22
|
+
* (deleted since the form was sent, or another project's id in a tampered
|
|
23
|
+
* submit). Fixed text: the validator's own message names the other project's
|
|
24
|
+
* record, which is not for this chat.
|
|
25
|
+
*/
|
|
26
|
+
export const MICROSOFT_TEAMS_UNAVAILABLE_REFERENCE_MESSAGE = "One of the values you picked (a monitor, label, on-call policy, severity or status) is not available in this project any more. Please pick it again.";
|
|
27
|
+
export default class MicrosoftTeamsReplies {
|
|
28
|
+
// Sends a reply; logs instead of throwing. Returns whether Teams took it.
|
|
29
|
+
static async sendBestEffort(turnContext, reply) {
|
|
30
|
+
try {
|
|
31
|
+
await turnContext.sendActivity(reply);
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
logger.error(`Could not send a Microsoft Teams reply: ${this.describeError(error)}`);
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/*
|
|
40
|
+
* Removes a message the bot posted, such as the form a user just submitted;
|
|
41
|
+
* logs instead of throwing. It runs after the record the form created
|
|
42
|
+
* exists, so a failure here must never be reported as a failed create.
|
|
43
|
+
*/
|
|
44
|
+
static async deleteBestEffort(turnContext, activityId) {
|
|
45
|
+
if (!activityId) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
await turnContext.deleteActivity(activityId);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
logger.debug(`Could not remove a submitted Microsoft Teams card: ${this.describeError(error)}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/*
|
|
56
|
+
* Sends an adaptive card built for each size budget in turn, until Teams
|
|
57
|
+
* accepts one. Only a "too large" refusal moves on to the next, smaller
|
|
58
|
+
* budget; any other error is thrown at once, and so is the last "too
|
|
59
|
+
* large". A budget whose card is no different from the one just refused
|
|
60
|
+
* is skipped.
|
|
61
|
+
*/
|
|
62
|
+
static async sendCardWithinSizeLimit(data) {
|
|
63
|
+
const budgetsInBytes = data.budgetsInBytes || MICROSOFT_TEAMS_CARD_SIZE_BUDGETS_IN_BYTES;
|
|
64
|
+
let lastError = undefined;
|
|
65
|
+
let lastRefusedCard = null;
|
|
66
|
+
for (const budgetInBytes of budgetsInBytes) {
|
|
67
|
+
const card = data.buildCard(budgetInBytes);
|
|
68
|
+
const serializedCard = JSON.stringify(card);
|
|
69
|
+
if (serializedCard === lastRefusedCard) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
await data.turnContext.sendActivity({
|
|
74
|
+
attachments: [
|
|
75
|
+
{
|
|
76
|
+
contentType: MICROSOFT_TEAMS_ADAPTIVE_CARD_CONTENT_TYPE,
|
|
77
|
+
content: card,
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
});
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (!MicrosoftTeamsMessageSize.isMessageTooLargeError(error)) {
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
logger.warn(`Microsoft Teams refused a ${MicrosoftTeamsMessageSize.getSizeInBytes(serializedCard)} byte card as too large (budget ${budgetInBytes} bytes); trying a smaller one.`);
|
|
88
|
+
lastError = error;
|
|
89
|
+
lastRefusedCard = serializedCard;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
throw lastError;
|
|
93
|
+
}
|
|
94
|
+
/*
|
|
95
|
+
* One line that says what went wrong, for the log. Bot Framework errors
|
|
96
|
+
* carry the HTTP status and Teams' error code, e.g.
|
|
97
|
+
* "RestError 413 MessageSizeTooBig: Message size too large.".
|
|
98
|
+
*/
|
|
99
|
+
static describeError(error) {
|
|
100
|
+
var _a, _b;
|
|
101
|
+
if (!error || typeof error !== "object") {
|
|
102
|
+
return String(error);
|
|
103
|
+
}
|
|
104
|
+
/*
|
|
105
|
+
* OneUptime's exceptions keep Error's name, so the class they were thrown
|
|
106
|
+
* as comes from the constructor instead.
|
|
107
|
+
*/
|
|
108
|
+
const errorName = error.name || "";
|
|
109
|
+
const constructorName = ((_a = error.constructor) === null || _a === void 0 ? void 0 : _a.name) || "";
|
|
110
|
+
const name = errorName && errorName !== "Error"
|
|
111
|
+
? errorName
|
|
112
|
+
: constructorName && constructorName !== "Object"
|
|
113
|
+
? constructorName
|
|
114
|
+
: errorName || "Error";
|
|
115
|
+
const message = String((_b = error.message) !== null && _b !== void 0 ? _b : "");
|
|
116
|
+
const statusCode = MicrosoftTeamsMessageSize.getErrorStatusCode(error);
|
|
117
|
+
const code = MicrosoftTeamsMessageSize.getErrorCode(error);
|
|
118
|
+
return [name, statusCode, code]
|
|
119
|
+
.filter((part) => {
|
|
120
|
+
return part !== undefined && part !== "";
|
|
121
|
+
})
|
|
122
|
+
.join(" ")
|
|
123
|
+
.concat(`: ${message}`);
|
|
124
|
+
}
|
|
125
|
+
/*
|
|
126
|
+
* Logs a failure: one line that says what failed and why, then the error
|
|
127
|
+
* itself, which keeps its stack and lets the log tell a refusal from a
|
|
128
|
+
* fault. A Bot Framework HTTP error is left at the one line: its status and
|
|
129
|
+
* code say it all, and the object carries the whole request and response.
|
|
130
|
+
*/
|
|
131
|
+
static logFailure(summary, error, attributes) {
|
|
132
|
+
logger.error(`${summary}: ${this.describeError(error)}`, attributes);
|
|
133
|
+
if (MicrosoftTeamsMessageSize.getErrorStatusCode(error) === undefined) {
|
|
134
|
+
logger.error(error, attributes);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/*
|
|
138
|
+
* The message of an error OneUptime writes for the person who caused it: a
|
|
139
|
+
* validation or a permission refusal. Null for anything else, whose text is
|
|
140
|
+
* meant for operators.
|
|
141
|
+
*/
|
|
142
|
+
static getUserFacingErrorMessage(error) {
|
|
143
|
+
if (error instanceof ProjectScopedReferenceException) {
|
|
144
|
+
return MICROSOFT_TEAMS_UNAVAILABLE_REFERENCE_MESSAGE;
|
|
145
|
+
}
|
|
146
|
+
if ((error instanceof BadDataException ||
|
|
147
|
+
error instanceof NotAuthorizedException) &&
|
|
148
|
+
error.message) {
|
|
149
|
+
return error.message;
|
|
150
|
+
}
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
// A link into the project in the OneUptime dashboard, or null if unknown.
|
|
154
|
+
static async getDashboardLink(data) {
|
|
155
|
+
try {
|
|
156
|
+
const dashboardUrl = await DatabaseConfig.getDashboardUrl();
|
|
157
|
+
return URL.fromString(dashboardUrl.toString())
|
|
158
|
+
.addRoute(`/${data.projectId.toString()}${data.route}`)
|
|
159
|
+
.toString();
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
logger.debug("Could not build a OneUptime dashboard link");
|
|
163
|
+
logger.debug(error);
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/*
|
|
168
|
+
* What to tell a Teams user who has not connected their Microsoft Teams
|
|
169
|
+
* account to OneUptime yet: where to do it. `purpose` completes "To ...",
|
|
170
|
+
* e.g. "create incidents from Microsoft Teams".
|
|
171
|
+
*/
|
|
172
|
+
static async getAccountNotLinkedMessage(data) {
|
|
173
|
+
const settingsLink = await this.getDashboardLink({
|
|
174
|
+
projectId: data.projectId,
|
|
175
|
+
route: "/user-settings/microsoft-teams-integration",
|
|
176
|
+
});
|
|
177
|
+
const where = settingsLink
|
|
178
|
+
? `in [OneUptime → User Settings → Microsoft Teams](${settingsLink})`
|
|
179
|
+
: "in OneUptime under User Settings → Microsoft Teams";
|
|
180
|
+
return `To ${data.purpose}, first connect your Microsoft Teams account to OneUptime ${where}, then try again.`;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=MicrosoftTeamsReplies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MicrosoftTeamsReplies.js","sourceRoot":"","sources":["../../../../../../Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import moment from "moment-timezone";
|
|
2
|
+
const DATE_TIME_FORMATS = [
|
|
3
|
+
"YYYY-MM-DD HH:mm",
|
|
4
|
+
"YYYY-MM-DD HH:mm:ss",
|
|
5
|
+
];
|
|
6
|
+
const UTC_OFFSET_SUFFIX = /(?:[+-]\d{2}:?\d{2}|Z)$/i;
|
|
7
|
+
class MicrosoftTeamsTimezone {
|
|
8
|
+
// The name, when it is an IANA time zone moment-timezone knows.
|
|
9
|
+
static getKnownTimezone(value) {
|
|
10
|
+
if (typeof value !== "string") {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const name = value.trim();
|
|
14
|
+
if (!name || !moment.tz.zone(name)) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return name;
|
|
18
|
+
}
|
|
19
|
+
// The IANA zone an activity says its sender is in.
|
|
20
|
+
static getTimezoneFromActivity(activity) {
|
|
21
|
+
const fromLocalTimezone = this.getKnownTimezone(activity["localTimezone"]);
|
|
22
|
+
if (fromLocalTimezone) {
|
|
23
|
+
return fromLocalTimezone;
|
|
24
|
+
}
|
|
25
|
+
const entities = activity["entities"] || [];
|
|
26
|
+
for (const entity of entities) {
|
|
27
|
+
if (entity && entity["type"] === "clientInfo") {
|
|
28
|
+
const fromClientInfo = this.getKnownTimezone(entity["timezone"]);
|
|
29
|
+
if (fromClientInfo) {
|
|
30
|
+
return fromClientInfo;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
/*
|
|
37
|
+
* The UTC offset of the activity's local timestamp, in minutes. botbuilder
|
|
38
|
+
* turns localTimestamp into a Date, which drops the offset, and keeps the
|
|
39
|
+
* original string as rawLocalTimestamp.
|
|
40
|
+
*/
|
|
41
|
+
static getUtcOffsetFromActivity(activity) {
|
|
42
|
+
for (const field of ["rawLocalTimestamp", "localTimestamp"]) {
|
|
43
|
+
const value = activity[field];
|
|
44
|
+
if (typeof value !== "string" || !UTC_OFFSET_SUFFIX.test(value.trim())) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const parsed = moment.parseZone(value.trim(), moment.ISO_8601, true);
|
|
48
|
+
if (parsed.isValid()) {
|
|
49
|
+
return parsed.utcOffset();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
/*
|
|
55
|
+
* The zone to read a submitted date and time in: the zone the form named,
|
|
56
|
+
* which is what its reader was told, then the submitting activity's own
|
|
57
|
+
* zone, then its UTC offset, then UTC.
|
|
58
|
+
*/
|
|
59
|
+
static resolve(data) {
|
|
60
|
+
const timezone = this.getKnownTimezone(data.timezoneFromCard) ||
|
|
61
|
+
this.getTimezoneFromActivity(data.activity);
|
|
62
|
+
if (timezone) {
|
|
63
|
+
return { timezone: timezone, label: timezone };
|
|
64
|
+
}
|
|
65
|
+
const utcOffsetInMinutes = this.getUtcOffsetFromActivity(data.activity);
|
|
66
|
+
if (utcOffsetInMinutes !== undefined) {
|
|
67
|
+
return {
|
|
68
|
+
utcOffsetInMinutes: utcOffsetInMinutes,
|
|
69
|
+
label: this.formatUtcOffset(utcOffsetInMinutes),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return this.UTC;
|
|
73
|
+
}
|
|
74
|
+
/*
|
|
75
|
+
* Whether only a UTC offset is known. The offset is today's, so a date past
|
|
76
|
+
* a daylight saving change can be an hour out, and the reply says so.
|
|
77
|
+
*/
|
|
78
|
+
static isUtcOffsetOnly(timezone) {
|
|
79
|
+
return !timezone.timezone && timezone.utcOffsetInMinutes !== undefined;
|
|
80
|
+
}
|
|
81
|
+
// "UTC", "UTC+05:30", "UTC-04:00".
|
|
82
|
+
static formatUtcOffset(utcOffsetInMinutes) {
|
|
83
|
+
if (utcOffsetInMinutes === 0) {
|
|
84
|
+
return "UTC";
|
|
85
|
+
}
|
|
86
|
+
const sign = utcOffsetInMinutes > 0 ? "+" : "-";
|
|
87
|
+
const absolute = Math.abs(utcOffsetInMinutes);
|
|
88
|
+
const hours = String(Math.floor(absolute / 60)).padStart(2, "0");
|
|
89
|
+
const minutes = String(absolute % 60).padStart(2, "0");
|
|
90
|
+
return `UTC${sign}${hours}:${minutes}`;
|
|
91
|
+
}
|
|
92
|
+
/*
|
|
93
|
+
* The instant a date ("YYYY-MM-DD") and a time ("HH:mm") mean in the zone,
|
|
94
|
+
* or null when either is not in that form.
|
|
95
|
+
*/
|
|
96
|
+
static toDate(data) {
|
|
97
|
+
const text = `${data.date.trim()} ${data.time.trim()}`;
|
|
98
|
+
if (data.timezone.timezone) {
|
|
99
|
+
const zoned = moment.tz(text, DATE_TIME_FORMATS, true, data.timezone.timezone);
|
|
100
|
+
return zoned.isValid() ? zoned.toDate() : null;
|
|
101
|
+
}
|
|
102
|
+
const wallClock = moment.utc(text, DATE_TIME_FORMATS, true);
|
|
103
|
+
if (!wallClock.isValid()) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
return wallClock
|
|
107
|
+
.subtract(data.timezone.utcOffsetInMinutes || 0, "minutes")
|
|
108
|
+
.toDate();
|
|
109
|
+
}
|
|
110
|
+
// A date as the user reads it back, e.g. "Oct 1, 2026, 14:00 (America/New_York)".
|
|
111
|
+
static format(date, timezone) {
|
|
112
|
+
const zoned = timezone.timezone
|
|
113
|
+
? moment(date).tz(timezone.timezone)
|
|
114
|
+
: moment(date).utcOffset(timezone.utcOffsetInMinutes || 0);
|
|
115
|
+
return `${zoned.format("MMM D, YYYY, HH:mm")} (${timezone.label})`;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
MicrosoftTeamsTimezone.UTC = {
|
|
119
|
+
timezone: "UTC",
|
|
120
|
+
label: "UTC",
|
|
121
|
+
};
|
|
122
|
+
export default MicrosoftTeamsTimezone;
|
|
123
|
+
//# sourceMappingURL=MicrosoftTeamsTimezone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MicrosoftTeamsTimezone.js","sourceRoot":"","sources":["../../../../../../Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,12 +18,17 @@ var AIRunType;
|
|
|
18
18
|
AIRunType["RemediationPlan"] = "RemediationPlan";
|
|
19
19
|
/*
|
|
20
20
|
* An auto-remediation run that COMPOSES commands instead of picking a
|
|
21
|
-
* runbook
|
|
21
|
+
* runbook: rules with aiComposesCommands, and cluster rounds a
|
|
22
|
+
* Kubernetes cluster's AI agent page asks for. In Suggest mode it
|
|
22
23
|
* investigates read-only and proposes a command plan for one-click
|
|
23
24
|
* approval; in FullAuto mode it may also execute commands inline, but
|
|
24
|
-
* only ones that
|
|
25
|
-
* the
|
|
26
|
-
*
|
|
25
|
+
* only ones that pass the structural policy guard and match the rule's
|
|
26
|
+
* operator-authored allowlist (or the cluster's Fixes mode). Rule runs
|
|
27
|
+
* require Project.enableAiCommandExecution (Bash/SSH on Runners, and any
|
|
28
|
+
* kubectl a rule composes) and a target Runner with canRunAiCommands. A
|
|
29
|
+
* cluster round's consent is the cluster's Fixes mode plus the Kubernetes
|
|
30
|
+
* agent chart's write access; it needs the project opt-in only when the
|
|
31
|
+
* cluster is reached through a Runner with a Kubernetes credential.
|
|
27
32
|
*/
|
|
28
33
|
AIRunType["RemediationExecution"] = "RemediationExecution";
|
|
29
34
|
})(AIRunType || (AIRunType = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIRunType.js","sourceRoot":"","sources":["../../../../Types/AI/AIRunType.ts"],"names":[],"mappings":"AAAA,IAAK,
|
|
1
|
+
{"version":3,"file":"AIRunType.js","sourceRoot":"","sources":["../../../../Types/AI/AIRunType.ts"],"names":[],"mappings":"AAAA,IAAK,SAgCJ;AAhCD,WAAK,SAAS;IACZ,0BAAa,CAAA;IACb,4CAA+B,CAAA;IAC/B;;;;OAIG;IACH,gCAAmB,CAAA;IACnB;;;;;;OAMG;IACH,gDAAmC,CAAA;IACnC;;;;;;;;;;;;;OAaG;IACH,0DAA6C,CAAA;AAC/C,CAAC,EAhCI,SAAS,KAAT,SAAS,QAgCb;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The dashboard-facing calls behind an infrastructure resource's AI pages
|
|
3
|
+
* (AI → Insights and AI → AI agent) for every resource a resource AI agent
|
|
4
|
+
* serves — Common/Server/API/ResourceAiAccessAPI.ts. Everything else on
|
|
5
|
+
* those pages is ordinary CRUD on the resource model (the investigation
|
|
6
|
+
* switch, the remediation mode, the command allowlist).
|
|
7
|
+
*
|
|
8
|
+
* Every route is POST under /api and takes a ResourceAiAccessRequest body.
|
|
9
|
+
*/
|
|
10
|
+
export const RESOURCE_AI_ACCESS_STATUS_PATH = "/resource-ai-access/status";
|
|
11
|
+
export const RESOURCE_AI_ACCESS_TEST_PATH = "/resource-ai-access/test";
|
|
12
|
+
export const RESOURCE_AI_ACCESS_RESET_AGENT_PATH = "/resource-ai-access/reset-agent";
|
|
13
|
+
export const RESOURCE_AI_ACCESS_INSIGHTS_PATH = "/resource-ai-access/insights";
|
|
14
|
+
/*
|
|
15
|
+
* POST /resource-ai-access/insights: what OneUptime AI investigated and
|
|
16
|
+
* changed on one resource, as summaries. Nothing here carries command
|
|
17
|
+
* output, a prompt or a command plan: the route is readable by everyone who
|
|
18
|
+
* may read the resource, a wider audience than the AI runs, suggestions and
|
|
19
|
+
* jobs it summarises. So an investigation whose incident or alert the
|
|
20
|
+
* caller cannot read is left out, a TL;DR is there only with a readable
|
|
21
|
+
* subject (or, for a run with none, for a caller who may read AIRun), and a
|
|
22
|
+
* fix's rationale only for a caller who may read that suggestion.
|
|
23
|
+
*/
|
|
24
|
+
// How many investigations, and how many fixes, the route returns (newest).
|
|
25
|
+
export const RESOURCE_AI_INSIGHTS_LIMIT = 25;
|
|
26
|
+
// The window commandCounts covers.
|
|
27
|
+
export const RESOURCE_AI_INSIGHTS_COMMAND_WINDOW_IN_DAYS = 30;
|
|
28
|
+
// How much of a fix's rationale the route returns.
|
|
29
|
+
export const RESOURCE_AI_INSIGHTS_RATIONALE_MAX_LENGTH = 300;
|
|
30
|
+
//# sourceMappingURL=ResourceAiAccessApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceAiAccessApi.js","sourceRoot":"","sources":["../../../../Types/AI/ResourceAiAccessApi.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,8BAA8B,GACzC,4BAA4B,CAAC;AAC/B,MAAM,CAAC,MAAM,4BAA4B,GAAW,0BAA0B,CAAC;AAC/E,MAAM,CAAC,MAAM,mCAAmC,GAC9C,iCAAiC,CAAC;AACpC,MAAM,CAAC,MAAM,gCAAgC,GAC3C,8BAA8B,CAAC;AAsCjC;;;;;;;;;GASG;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAW,EAAE,CAAC;AAErD,mCAAmC;AACnC,MAAM,CAAC,MAAM,2CAA2C,GAAW,EAAE,CAAC;AAEtE,mDAAmD;AACnD,MAAM,CAAC,MAAM,yCAAyC,GAAW,GAAG,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import Permission, { PermissionHelper } from "../Permission";
|
|
2
|
+
import AiResourceType, { AI_RESOURCE_TYPE_INFO, } from "../ResourceAiAgent/AiResourceType";
|
|
3
|
+
import { ResourceAiRemediationMode } from "../ResourceAiAgent/ResourceAiAccess";
|
|
4
|
+
/*
|
|
5
|
+
* Who may change what OneUptime AI is allowed to do on an infrastructure
|
|
6
|
+
* resource reached through a resource AI agent (a Docker, Podman or Docker
|
|
7
|
+
* Swarm host, a Proxmox cluster, a VMware vCenter, a Ceph cluster, a
|
|
8
|
+
* database server or a host), and the words the server and the dashboard
|
|
9
|
+
* use for it.
|
|
10
|
+
*
|
|
11
|
+
* Kept apart from Types/ResourceAiAgent, which the resource AI agent carries
|
|
12
|
+
* a byte-identical copy of and which therefore stays free of the permission
|
|
13
|
+
* catalog.
|
|
14
|
+
*/
|
|
15
|
+
/*
|
|
16
|
+
* Who may LOOSEN a resource's AI access: turn AI fixes on (any move up from
|
|
17
|
+
* Off, Ask for approval included) or give them more autonomy (Automatic,
|
|
18
|
+
* Bypass approval), add a command allowlist pattern, and reset the
|
|
19
|
+
* resource's AI agent. A resource's AI mode does the job of a FullAuto
|
|
20
|
+
* AutoRemediationRule without a rule row, so it takes the same set a
|
|
21
|
+
* Kubernetes cluster's AI access takes (KUBERNETES_AI_ACCESS_ADMIN_
|
|
22
|
+
* PERMISSIONS — a Common test pins the two together).
|
|
23
|
+
*
|
|
24
|
+
* Tightening (Off, moving down, removing allowlist patterns or clearing the
|
|
25
|
+
* list) and the investigation switch stay open to anyone who may edit the
|
|
26
|
+
* resource: making AI do less never needs more privilege than the resource
|
|
27
|
+
* itself.
|
|
28
|
+
*/
|
|
29
|
+
export const RESOURCE_AI_ACCESS_ADMIN_PERMISSIONS = [
|
|
30
|
+
Permission.ProjectOwner,
|
|
31
|
+
Permission.ProjectAdmin,
|
|
32
|
+
Permission.EditAutoRemediationRule,
|
|
33
|
+
];
|
|
34
|
+
/*
|
|
35
|
+
* How each resource type is named inside a sentence ("on this Docker host",
|
|
36
|
+
* "on this database server"). AI_RESOURCE_TYPE_INFO's displayName starts
|
|
37
|
+
* every name with a capital, which reads wrong mid-sentence for the two
|
|
38
|
+
* types whose name is a common noun.
|
|
39
|
+
*/
|
|
40
|
+
const RESOURCE_SENTENCE_NAMES = {
|
|
41
|
+
[AiResourceType.DockerHost]: "Docker host",
|
|
42
|
+
[AiResourceType.PodmanHost]: "Podman host",
|
|
43
|
+
[AiResourceType.DockerSwarmCluster]: "Docker Swarm cluster",
|
|
44
|
+
[AiResourceType.ProxmoxCluster]: "Proxmox cluster",
|
|
45
|
+
[AiResourceType.VMwareVCenter]: "VMware vCenter",
|
|
46
|
+
[AiResourceType.CephCluster]: "Ceph cluster",
|
|
47
|
+
[AiResourceType.DatabaseServer]: "database server",
|
|
48
|
+
[AiResourceType.Host]: "host",
|
|
49
|
+
};
|
|
50
|
+
export function getResourceSentenceName(resourceType) {
|
|
51
|
+
return RESOURCE_SENTENCE_NAMES[resourceType] || "resource";
|
|
52
|
+
}
|
|
53
|
+
// The name of the resource type's AI agent, for sentences ("the Docker AI agent").
|
|
54
|
+
export function getResourceAgentName(resourceType) {
|
|
55
|
+
var _a;
|
|
56
|
+
return ((_a = AI_RESOURCE_TYPE_INFO[resourceType]) === null || _a === void 0 ? void 0 : _a.agentDisplayName) || "AI agent";
|
|
57
|
+
}
|
|
58
|
+
/*
|
|
59
|
+
* The AI agent page's short name for each remediation mode, used on the
|
|
60
|
+
* resource feed and in messages — the same words a Kubernetes cluster's
|
|
61
|
+
* page uses.
|
|
62
|
+
*/
|
|
63
|
+
export const RESOURCE_AI_REMEDIATION_MODE_LABELS = {
|
|
64
|
+
[ResourceAiRemediationMode.Disabled]: "Off",
|
|
65
|
+
[ResourceAiRemediationMode.RequireApproval]: "Ask for approval",
|
|
66
|
+
[ResourceAiRemediationMode.Automatic]: "Automatic",
|
|
67
|
+
[ResourceAiRemediationMode.BypassApproval]: "Bypass approval",
|
|
68
|
+
};
|
|
69
|
+
/*
|
|
70
|
+
* One valid allowlist entry per resource type — a change that needs
|
|
71
|
+
* approval unless allowlisted — shown as the example in the refusal of a
|
|
72
|
+
* malformed allowlist and usable as the dashboard field's placeholder. A
|
|
73
|
+
* Common test checks each one against the resource command policy.
|
|
74
|
+
*/
|
|
75
|
+
export const RESOURCE_AI_ALLOWLIST_EXAMPLES = {
|
|
76
|
+
[AiResourceType.DockerHost]: "docker stop web",
|
|
77
|
+
[AiResourceType.PodmanHost]: "docker stop web",
|
|
78
|
+
[AiResourceType.DockerSwarmCluster]: "docker service update --image nginx:1.27 web",
|
|
79
|
+
[AiResourceType.ProxmoxCluster]: "pvesh create /nodes/pve1/qemu/100/status/shutdown",
|
|
80
|
+
[AiResourceType.VMwareVCenter]: "govc vm.power -off web-01",
|
|
81
|
+
[AiResourceType.CephCluster]: "ceph osd out 3",
|
|
82
|
+
[AiResourceType.DatabaseServer]: "db terminate-session 12345",
|
|
83
|
+
[AiResourceType.Host]: "systemctl stop nginx",
|
|
84
|
+
};
|
|
85
|
+
/*
|
|
86
|
+
* The refusal for a caller who tried to make AI do more on a resource
|
|
87
|
+
* without one of RESOURCE_AI_ACCESS_ADMIN_PERMISSIONS: what needs them, who
|
|
88
|
+
* has them, and what stays open to every editor of the resource.
|
|
89
|
+
*/
|
|
90
|
+
export function getResourceAiAccessAdminRefusal(resourceType) {
|
|
91
|
+
const name = getResourceSentenceName(resourceType);
|
|
92
|
+
return `You need one of these permissions to let OneUptime AI do more on a ${name} (turn AI fixes on or give them more autonomy, or add command allowlist patterns): ${PermissionHelper.getPermissionTitles(RESOURCE_AI_ACCESS_ADMIN_PERMISSIONS).join(", ")}. Anyone who may edit the ${name} can still turn AI fixes off or down to Ask for approval, and remove allowlist patterns.`;
|
|
93
|
+
}
|
|
94
|
+
// The refusal for a caller who may not reset the resource's AI agent.
|
|
95
|
+
export function getResourceAiAgentResetRefusal(resourceType) {
|
|
96
|
+
return `You need one of these permissions to reset this ${getResourceSentenceName(resourceType)}'s ${getResourceAgentName(resourceType)}: ${PermissionHelper.getPermissionTitles(RESOURCE_AI_ACCESS_ADMIN_PERMISSIONS).join(", ")}.`;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=ResourceAiAccessPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceAiAccessPermissions.js","sourceRoot":"","sources":["../../../../Types/AI/ResourceAiAccessPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,EAAE,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,cAAc,EAAE,EACrB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAsB;IACrE,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,YAAY;IACvB,UAAU,CAAC,uBAAuB;CACnC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,uBAAuB,GAA6C;IACxE,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,aAAa;IAC1C,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,aAAa;IAC1C,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,sBAAsB;IAC3D,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,iBAAiB;IAClD,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,gBAAgB;IAChD,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,cAAc;IAC5C,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,iBAAiB;IAClD,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM;CAC9B,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,YAA4B;IAClE,OAAO,uBAAuB,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC;AAC7D,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,oBAAoB,CAAC,YAA4B;;IAC/D,OAAO,CAAA,MAAA,qBAAqB,CAAC,YAAY,CAAC,0CAAE,gBAAgB,KAAI,UAAU,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAE5C;IACF,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,KAAK;IAC3C,CAAC,yBAAyB,CAAC,eAAe,CAAC,EAAE,kBAAkB;IAC/D,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,WAAW;IAClD,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,iBAAiB;CAC9D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAEvC;IACF,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,iBAAiB;IAC9C,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,iBAAiB;IAC9C,CAAC,cAAc,CAAC,kBAAkB,CAAC,EACjC,8CAA8C;IAChD,CAAC,cAAc,CAAC,cAAc,CAAC,EAC7B,mDAAmD;IACrD,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,2BAA2B;IAC3D,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,gBAAgB;IAC9C,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,4BAA4B;IAC7D,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,sBAAsB;CAC9C,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAC7C,YAA4B;IAE5B,MAAM,IAAI,GAAW,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAE3D,OAAO,sEAAsE,IAAI,sFAAsF,gBAAgB,CAAC,mBAAmB,CACzM,oCAAoC,CACrC,CAAC,IAAI,CACJ,IAAI,CACL,6BAA6B,IAAI,0FAA0F,CAAC;AAC/H,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,8BAA8B,CAC5C,YAA4B;IAE5B,OAAO,mDAAmD,uBAAuB,CAC/E,YAAY,CACb,MAAM,oBAAoB,CAAC,YAAY,CAAC,KAAK,gBAAgB,CAAC,mBAAmB,CAChF,oCAAoC,CACrC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAClB,CAAC"}
|