@oneuptime/common 14.0.9 → 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 +2 -0
- package/Models/DatabaseModels/PodmanHost.ts +213 -0
- package/Models/DatabaseModels/ProxmoxCluster.ts +213 -0
- package/Models/DatabaseModels/ResourceAiAgent.ts +419 -0
- package/Models/DatabaseModels/RunnerJob.ts +144 -0
- package/Models/DatabaseModels/VMwareVCenter.ts +213 -0
- package/Server/API/AutoRemediationAPI.ts +392 -1
- package/Server/API/ResourceAiAccessAPI.ts +1669 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.ts +423 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Infrastructure/Semaphore.ts +22 -0
- package/Server/Middleware/TelemetryIngest.ts +15 -5
- package/Server/Services/AnalyticsDatabaseService.ts +45 -1
- package/Server/Services/AutoRemediationRuleEngineService.ts +940 -112
- 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/MetricRecordingRuleService.ts +47 -0
- package/Server/Services/PodmanHostService.ts +109 -1
- package/Server/Services/ProxmoxClusterService.ts +110 -1
- 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 +611 -4
- 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/Remediation/RemediationCommandTools.ts +1434 -32
- package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +935 -21
- 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 +72 -2
- package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +72 -5
- package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +72 -5
- package/Server/Utils/AutoRemediation/CommandPlanExecutor.ts +396 -13
- 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/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 +366 -143
- 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/Dashboard/ClusterAccessNotice.test.tsx +93 -0
- package/Tests/App/Dashboard/DatabaseDocumentationMarkdown.test.ts +18 -6
- package/Tests/App/Dashboard/InvestigationInfrastructureTools.test.tsx +506 -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/RunbookStepTypeMaps.test.ts +38 -7
- package/Tests/Models/DatabaseModels/DatabaseServerModels.test.ts +33 -1
- package/Tests/Models/DatabaseModels/ResourceAiAccessColumns.test.ts +738 -0
- package/Tests/Models/DatabaseModels/ResourceAiAgentModel.test.ts +842 -0
- package/Tests/Server/API/AutoRemediationApproveResourceRound.test.ts +835 -0
- package/Tests/Server/API/ResourceAiAccessAPI.test.ts +2730 -0
- package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +60 -0
- package/Tests/Server/Infrastructure/Postgres/AddResourceAiAgentsMigration.test.ts +659 -0
- package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +31 -0
- package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +63 -5
- package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerPinnedKey.test.ts +103 -5
- package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerRateLimit.test.ts +19 -1
- package/Tests/Server/Services/AutoRemediationResourceRuleEngine.test.ts +1279 -0
- 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/MonitorProbeServiceIntervalScheduling.test.ts +45 -6
- 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 +105 -0
- package/Tests/Server/Services/RunnerJobEnqueueResourceCommand.test.ts +986 -0
- package/Tests/Server/Services/RunnerJobResourceCommandLane.test.ts +211 -0
- package/Tests/Server/Services/RunnerJobResourceCommandTimeoutAndRedaction.test.ts +352 -0
- package/Tests/Server/Services/TelemetryUsageBillingSloExclusion.test.ts +218 -0
- package/Tests/Server/TestingUtils/Services/FakeRunnerJobCount.ts +145 -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/RemediationCommandTools.test.ts +94 -1
- package/Tests/Server/Utils/AI/RemediationCommandToolsResource.test.ts +1530 -0
- package/Tests/Server/Utils/AI/RemediationExecutionRunnerResourceMode.test.ts +1249 -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/CommandPlanExecutorResource.test.ts +717 -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/TelemetryIngestionKeyGuard.test.ts +33 -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/MicrosoftTeamsCreateCommandsEndToEnd.test.ts +4672 -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/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/UI/Rum/RecordingHealthDashboard.test.tsx +769 -1
- 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/SessionReplay/SessionReplayBudgetMetricType.test.ts +383 -0
- package/Types/AI/ResourceAiAccessApi.ts +140 -0
- package/Types/AI/ResourceAiAccessPermissions.ts +126 -0
- package/Types/AutoRemediation/AiRemediationCommandPlan.ts +183 -2
- 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/Telemetry/TelemetryIngestSurface.ts +14 -2
- package/Utils/AI/InvestigationReport.ts +121 -15
- 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/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 +2 -0
- package/build/dist/Models/DatabaseModels/Index.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/ProxmoxCluster.js +219 -0
- package/build/dist/Models/DatabaseModels/ProxmoxCluster.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 +145 -0
- package/build/dist/Models/DatabaseModels/RunnerJob.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/Server/API/AutoRemediationAPI.js +231 -1
- package/build/dist/Server/API/AutoRemediationAPI.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/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 +2 -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 +12 -5
- package/build/dist/Server/Middleware/TelemetryIngest.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/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/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/ProxmoxClusterService.js +104 -0
- package/build/dist/Server/Services/ProxmoxClusterService.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 +344 -5
- package/build/dist/Server/Services/RunnerJobService.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/Remediation/RemediationCommandTools.js +1029 -30
- package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +633 -28
- 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 +50 -4
- 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/AutoRemediation/CommandPlanExecutor.js +290 -13
- 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/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 +263 -110
- 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/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 +116 -29
- package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.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/Telemetry/TelemetryIngestSurface.js +13 -2
- package/build/dist/Types/Telemetry/TelemetryIngestSurface.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/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/SessionReplay/SessionReplayBudgetMetricType.js +160 -0
- package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js.map +1 -0
- package/package.json +1 -1
|
@@ -41,11 +41,20 @@ enum TelemetryIngestSurface {
|
|
|
41
41
|
* with. Server keys only, for the same reason as the Runner above.
|
|
42
42
|
*/
|
|
43
43
|
KubernetesAiAgent = "kubernetes-ai-agent",
|
|
44
|
+
/*
|
|
45
|
+
* A resource AI agent (Docker, Podman, Docker Swarm, Proxmox, VMware,
|
|
46
|
+
* Ceph, a database server or a host) registers itself with the same
|
|
47
|
+
* project ingestion key its collector uses, and receives an agent key
|
|
48
|
+
* that every command for its resource is claimed with. Server keys only,
|
|
49
|
+
* for the same reason as the two above.
|
|
50
|
+
*/
|
|
51
|
+
ResourceAiAgent = "resource-ai-agent",
|
|
44
52
|
}
|
|
45
53
|
|
|
46
54
|
/*
|
|
47
|
-
* Surfaces that mint an IDENTITY (a key that kubectl jobs for a cluster
|
|
48
|
-
*
|
|
55
|
+
* Surfaces that mint an IDENTITY (a key that kubectl jobs for a cluster, or
|
|
56
|
+
* commands for another infrastructure resource, are targeted at) rather
|
|
57
|
+
* than accept telemetry. The ingest middleware holds
|
|
49
58
|
* every one of them to the same two extra rules, keyed on this set so a new
|
|
50
59
|
* identity surface cannot quietly miss one:
|
|
51
60
|
*
|
|
@@ -60,6 +69,7 @@ export const IDENTITY_REGISTRATION_SURFACES: ReadonlySet<TelemetryIngestSurface>
|
|
|
60
69
|
new Set<TelemetryIngestSurface>([
|
|
61
70
|
TelemetryIngestSurface.KubernetesAgentRunner,
|
|
62
71
|
TelemetryIngestSurface.KubernetesAiAgent,
|
|
72
|
+
TelemetryIngestSurface.ResourceAiAgent,
|
|
63
73
|
]);
|
|
64
74
|
|
|
65
75
|
/*
|
|
@@ -109,6 +119,8 @@ const INGEST_SURFACE_READABLE_NAMES: Record<TelemetryIngestSurface, string> = {
|
|
|
109
119
|
"Kubernetes agent Runner registration",
|
|
110
120
|
[TelemetryIngestSurface.KubernetesAiAgent]:
|
|
111
121
|
"Kubernetes AI agent registration",
|
|
122
|
+
[TelemetryIngestSurface.ResourceAiAgent]:
|
|
123
|
+
"infrastructure AI agent registration",
|
|
112
124
|
};
|
|
113
125
|
|
|
114
126
|
type GetIngestSurfaceReadableNameFunction = (
|
|
@@ -47,7 +47,8 @@ export interface InvestigationEvidenceCheckedEntry {
|
|
|
47
47
|
/*
|
|
48
48
|
* What a cluster tool's line says in place of a row count, as written:
|
|
49
49
|
* "succeeded", "kubectl returned an error", "2 cluster(s)". Absent for a
|
|
50
|
-
* telemetry query's "N row(s)".
|
|
50
|
+
* telemetry query's "N row(s)". An infrastructure tool's line reads the
|
|
51
|
+
* same way: "succeeded", "command returned an error", "3 resource(s)".
|
|
51
52
|
*/
|
|
52
53
|
outcome?: string | undefined;
|
|
53
54
|
}
|
|
@@ -64,6 +65,13 @@ export interface InvestigationReportFooter {
|
|
|
64
65
|
* kubectl commands run"). Absent when the footer does not say.
|
|
65
66
|
*/
|
|
66
67
|
kubectlCommandCount?: number | undefined;
|
|
68
|
+
/*
|
|
69
|
+
* "K infrastructure commands run on your infrastructure", which the
|
|
70
|
+
* footer of a run that used the infrastructure tools states (0 for "no
|
|
71
|
+
* telemetry queries or infrastructure commands run"). Absent when the
|
|
72
|
+
* footer does not say — every report before those tools existed.
|
|
73
|
+
*/
|
|
74
|
+
infrastructureCommandCount?: number | undefined;
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
export interface ParsedInvestigationReport {
|
|
@@ -208,11 +216,13 @@ const LEADING_WHITESPACE_REGEX: RegExp = /^[ \t]/;
|
|
|
208
216
|
* "- **[C1]** label — 7 row(s)", or a cluster tool's line, which says what
|
|
209
217
|
* the call did instead of counting rows: "— succeeded", "— kubectl returned
|
|
210
218
|
* an error", "— 2 cluster(s)" (and "— never ran" / "— result unknown" for a
|
|
211
|
-
* kubectl command that gave no result).
|
|
212
|
-
*
|
|
219
|
+
* kubectl command that gave no result). An infrastructure tool's line says
|
|
220
|
+
* "— succeeded", "— command returned an error" or "— 3 resource(s)". The
|
|
221
|
+
* label is greedy so a label that itself contains " — " keeps everything
|
|
222
|
+
* up to the LAST " — <outcome>".
|
|
213
223
|
*/
|
|
214
224
|
const EVIDENCE_CHECKED_ENTRY_REGEX: RegExp =
|
|
215
|
-
/^[ \t]*(?:[-*+]|\d{1,3}[.)])[ \t]+(?:\*\*|__)?\[(C\d{1,3})\](?:\*\*|__)?(.+)[ \t][—–-][ \t]+(\d+[ \t]+(?:rows?|clusters?)(?:\(s\))?|succeeded|kubectl[ \t]+returned[ \t]+an[ \t]+error|never[ \t]+ran|did[ \t]+not[ \t]+run|(?:kubectl[ \t]+)?result[ \t]+unknown|unknown)[ \t]*$/i;
|
|
225
|
+
/^[ \t]*(?:[-*+]|\d{1,3}[.)])[ \t]+(?:\*\*|__)?\[(C\d{1,3})\](?:\*\*|__)?(.+)[ \t][—–-][ \t]+(\d+[ \t]+(?:rows?|clusters?|resources?)(?:\(s\))?|succeeded|kubectl[ \t]+returned[ \t]+an[ \t]+error|command[ \t]+returned[ \t]+an[ \t]+error|never[ \t]+ran|did[ \t]+not[ \t]+run|(?:kubectl[ \t]+)?result[ \t]+unknown|unknown)[ \t]*$/i;
|
|
216
226
|
// The entry regex backtracks over the label; never feed it a runaway line.
|
|
217
227
|
const MAX_EVIDENCE_CHECKED_LINE_LENGTH: number = 2000;
|
|
218
228
|
|
|
@@ -221,6 +231,10 @@ const EVIDENCE_ROWS_OUTCOME_REGEX: RegExp = /^(\d+)[ \t]+rows?(?:\(s\))?$/i;
|
|
|
221
231
|
const EVIDENCE_CLUSTERS_OUTCOME_REGEX: RegExp =
|
|
222
232
|
/^(\d+)[ \t]+clusters?(?:\(s\))?$/i;
|
|
223
233
|
const EVIDENCE_KUBECTL_SUCCEEDED_REGEX: RegExp = /^succeeded$/i;
|
|
234
|
+
const EVIDENCE_RESOURCES_OUTCOME_REGEX: RegExp =
|
|
235
|
+
/^(\d+)[ \t]+resources?(?:\(s\))?$/i;
|
|
236
|
+
const EVIDENCE_INFRASTRUCTURE_ERROR_REGEX: RegExp =
|
|
237
|
+
/^command[ \t]+returned[ \t]+an[ \t]+error$/i;
|
|
224
238
|
|
|
225
239
|
const FOOTER_EMPHASIS_REGEX: RegExp = /^(\*\*|__|\*|_)([\s\S]+)\1$/;
|
|
226
240
|
const FOOTER_USING_REGEX: RegExp = /\busing[ \t]+/;
|
|
@@ -231,6 +245,17 @@ const FOOTER_KUBECTL_COMMANDS_RUN_REGEX: RegExp =
|
|
|
231
245
|
// A run that used cluster tools but cited no query and no kubectl command.
|
|
232
246
|
const FOOTER_NOTHING_RUN_REGEX: RegExp =
|
|
233
247
|
/\bno[ \t]+telemetry[ \t]+queries[ \t]+or[ \t]+kubectl[ \t]+commands[ \t]+run\b/i;
|
|
248
|
+
// "... and 3 infrastructure commands run on your infrastructure" -> 3.
|
|
249
|
+
const FOOTER_INFRASTRUCTURE_COMMANDS_RUN_REGEX: RegExp =
|
|
250
|
+
/\b(\d{1,9})[ \t]+infrastructure[ \t]+commands?[ \t]+run\b/i;
|
|
251
|
+
/*
|
|
252
|
+
* A run that used the infrastructure tools (and maybe the cluster ones) but
|
|
253
|
+
* cited no query and no command: "no telemetry queries or infrastructure
|
|
254
|
+
* commands run", "no telemetry queries, kubectl commands or infrastructure
|
|
255
|
+
* commands run".
|
|
256
|
+
*/
|
|
257
|
+
const FOOTER_NOTHING_RUN_WITH_INFRASTRUCTURE_REGEX: RegExp =
|
|
258
|
+
/\bno[ \t]+telemetry[ \t]+queries(,[ \t]+kubectl[ \t]+commands)?[ \t]+or[ \t]+infrastructure[ \t]+commands[ \t]+run\b/i;
|
|
234
259
|
const DIGIT_REGEX: RegExp = /\d/;
|
|
235
260
|
|
|
236
261
|
const EVENT_REFERENCE_PATTERN: string = "#(\\d{1,9})(?!\\w)";
|
|
@@ -874,26 +899,50 @@ function findFooter(
|
|
|
874
899
|
}
|
|
875
900
|
|
|
876
901
|
const nothingRun: boolean = FOOTER_NOTHING_RUN_REGEX.test(text);
|
|
902
|
+
const nothingRunWithInfrastructure: RegExpExecArray | null =
|
|
903
|
+
FOOTER_NOTHING_RUN_WITH_INFRASTRUCTURE_REGEX.exec(text);
|
|
877
904
|
|
|
878
|
-
const queryCount: number | undefined =
|
|
879
|
-
? 0
|
|
880
|
-
: readFooterQueryCount(text);
|
|
905
|
+
const queryCount: number | undefined =
|
|
906
|
+
nothingRun || nothingRunWithInfrastructure ? 0 : readFooterQueryCount(text);
|
|
881
907
|
|
|
882
908
|
if (queryCount !== undefined) {
|
|
883
909
|
footer.queryCount = queryCount;
|
|
884
910
|
}
|
|
885
911
|
|
|
886
|
-
const kubectlCommandCount: number | undefined =
|
|
887
|
-
|
|
888
|
-
|
|
912
|
+
const kubectlCommandCount: number | undefined =
|
|
913
|
+
nothingRun || nothingRunWithInfrastructure?.[1]
|
|
914
|
+
? 0
|
|
915
|
+
: readFooterKubectlCommandCount(text);
|
|
889
916
|
|
|
890
917
|
if (kubectlCommandCount !== undefined) {
|
|
891
918
|
footer.kubectlCommandCount = kubectlCommandCount;
|
|
892
919
|
}
|
|
893
920
|
|
|
921
|
+
const infrastructureCommandCount: number | undefined =
|
|
922
|
+
nothingRunWithInfrastructure
|
|
923
|
+
? 0
|
|
924
|
+
: readFooterInfrastructureCommandCount(text);
|
|
925
|
+
|
|
926
|
+
if (infrastructureCommandCount !== undefined) {
|
|
927
|
+
footer.infrastructureCommandCount = infrastructureCommandCount;
|
|
928
|
+
}
|
|
929
|
+
|
|
894
930
|
return { breakIndex, footer };
|
|
895
931
|
}
|
|
896
932
|
|
|
933
|
+
/*
|
|
934
|
+
* "... and 3 infrastructure commands run on ..." / "1 infrastructure
|
|
935
|
+
* command run" -> 3 / 1.
|
|
936
|
+
*/
|
|
937
|
+
function readFooterInfrastructureCommandCount(
|
|
938
|
+
text: string,
|
|
939
|
+
): number | undefined {
|
|
940
|
+
const commands: RegExpExecArray | null =
|
|
941
|
+
FOOTER_INFRASTRUCTURE_COMMANDS_RUN_REGEX.exec(text);
|
|
942
|
+
|
|
943
|
+
return commands ? parseInt(commands[1] || "0", 10) : undefined;
|
|
944
|
+
}
|
|
945
|
+
|
|
897
946
|
// "... and 2 kubectl commands run on ..." / "1 kubectl command run" -> 2 / 1.
|
|
898
947
|
function readFooterKubectlCommandCount(text: string): number | undefined {
|
|
899
948
|
const commands: RegExpExecArray | null =
|
|
@@ -1013,8 +1062,18 @@ function findEvidenceCheckedBlockEnd(
|
|
|
1013
1062
|
* What kind of tool call an Evidence checked line is about, which decides
|
|
1014
1063
|
* which count of the footer it must fit in: a telemetry query ("N row(s)"),
|
|
1015
1064
|
* a kubectl command, or a cluster listing (which the footer never counts).
|
|
1065
|
+
* "kubectl" is also every outcome the two command tools share ("succeeded",
|
|
1066
|
+
* "never ran", ...): such a line fits the kubectl and infrastructure counts
|
|
1067
|
+
* together. "infrastructure" is a line only an infrastructure command
|
|
1068
|
+
* writes ("command returned an error"), and "resources" a resource listing
|
|
1069
|
+
* (never counted, like a cluster listing).
|
|
1016
1070
|
*/
|
|
1017
|
-
type EvidenceCheckedEntryKind =
|
|
1071
|
+
type EvidenceCheckedEntryKind =
|
|
1072
|
+
| "query"
|
|
1073
|
+
| "kubectl"
|
|
1074
|
+
| "clusters"
|
|
1075
|
+
| "infrastructure"
|
|
1076
|
+
| "resources";
|
|
1018
1077
|
|
|
1019
1078
|
interface ParsedEvidenceCheckedEntry {
|
|
1020
1079
|
entry: InvestigationEvidenceCheckedEntry;
|
|
@@ -1046,6 +1105,22 @@ function readEvidenceCheckedOutcome(outcomeText: string): {
|
|
|
1046
1105
|
};
|
|
1047
1106
|
}
|
|
1048
1107
|
|
|
1108
|
+
const resources: RegExpExecArray | null =
|
|
1109
|
+
EVIDENCE_RESOURCES_OUTCOME_REGEX.exec(outcome);
|
|
1110
|
+
|
|
1111
|
+
if (resources) {
|
|
1112
|
+
return {
|
|
1113
|
+
kind: "resources",
|
|
1114
|
+
rowCount: parseInt(resources[1] || "0", 10),
|
|
1115
|
+
outcome,
|
|
1116
|
+
};
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
// An infrastructure command that ran and returned an error counts as 0.
|
|
1120
|
+
if (EVIDENCE_INFRASTRUCTURE_ERROR_REGEX.test(outcome)) {
|
|
1121
|
+
return { kind: "infrastructure", rowCount: 0, outcome };
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1049
1124
|
/*
|
|
1050
1125
|
* The engine counts a kubectl command that succeeded as 1 and one that
|
|
1051
1126
|
* returned an error as 0; a command with no result has nothing to count.
|
|
@@ -1117,6 +1192,12 @@ function parseEvidenceCheckedEntries(
|
|
|
1117
1192
|
* the one run whose only citations are listings. A footer saying "0
|
|
1118
1193
|
* queries run" never goes with a block. Without a readable count (no
|
|
1119
1194
|
* footer, an older format) the block is trusted.
|
|
1195
|
+
*
|
|
1196
|
+
* Infrastructure commands follow the same rule against the footer's
|
|
1197
|
+
* infrastructure count, and a resource listing like a cluster listing. A
|
|
1198
|
+
* line the two command tools share ("succeeded") fits their counts
|
|
1199
|
+
* together; a footer that says nothing about infrastructure reads as 0 of
|
|
1200
|
+
* them, so every older report is judged exactly as it was.
|
|
1120
1201
|
*/
|
|
1121
1202
|
function isServerEvidenceCheckedBlock(
|
|
1122
1203
|
entries: Array<ParsedEvidenceCheckedEntry>,
|
|
@@ -1124,13 +1205,20 @@ function isServerEvidenceCheckedBlock(
|
|
|
1124
1205
|
): boolean {
|
|
1125
1206
|
const queryCount: number | undefined = footer?.queryCount;
|
|
1126
1207
|
const kubectlCommandCount: number | undefined = footer?.kubectlCommandCount;
|
|
1208
|
+
const infrastructureCommandCount: number | undefined =
|
|
1209
|
+
footer?.infrastructureCommandCount;
|
|
1127
1210
|
|
|
1128
|
-
if (
|
|
1211
|
+
if (
|
|
1212
|
+
queryCount === undefined &&
|
|
1213
|
+
kubectlCommandCount === undefined &&
|
|
1214
|
+
infrastructureCommandCount === undefined
|
|
1215
|
+
) {
|
|
1129
1216
|
return true;
|
|
1130
1217
|
}
|
|
1131
1218
|
|
|
1132
1219
|
let queryLines: number = 0;
|
|
1133
1220
|
let kubectlLines: number = 0;
|
|
1221
|
+
let infrastructureLines: number = 0;
|
|
1134
1222
|
let clusterLines: number = 0;
|
|
1135
1223
|
|
|
1136
1224
|
for (const parsed of entries) {
|
|
@@ -1138,6 +1226,8 @@ function isServerEvidenceCheckedBlock(
|
|
|
1138
1226
|
queryLines++;
|
|
1139
1227
|
} else if (parsed.kind === "kubectl") {
|
|
1140
1228
|
kubectlLines++;
|
|
1229
|
+
} else if (parsed.kind === "infrastructure") {
|
|
1230
|
+
infrastructureLines++;
|
|
1141
1231
|
} else {
|
|
1142
1232
|
clusterLines++;
|
|
1143
1233
|
}
|
|
@@ -1147,15 +1237,31 @@ function isServerEvidenceCheckedBlock(
|
|
|
1147
1237
|
return false;
|
|
1148
1238
|
}
|
|
1149
1239
|
|
|
1150
|
-
if (
|
|
1240
|
+
if (infrastructureLines > (infrastructureCommandCount ?? 0)) {
|
|
1151
1241
|
return false;
|
|
1152
1242
|
}
|
|
1153
1243
|
|
|
1154
|
-
if (
|
|
1244
|
+
if (
|
|
1245
|
+
kubectlLines + infrastructureLines >
|
|
1246
|
+
(kubectlCommandCount ?? 0) + (infrastructureCommandCount ?? 0)
|
|
1247
|
+
) {
|
|
1248
|
+
return false;
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
if (
|
|
1252
|
+
(queryCount ?? 0) +
|
|
1253
|
+
(kubectlCommandCount ?? 0) +
|
|
1254
|
+
(infrastructureCommandCount ?? 0) >
|
|
1255
|
+
0
|
|
1256
|
+
) {
|
|
1155
1257
|
return true;
|
|
1156
1258
|
}
|
|
1157
1259
|
|
|
1158
|
-
return
|
|
1260
|
+
return (
|
|
1261
|
+
(kubectlCommandCount !== undefined ||
|
|
1262
|
+
infrastructureCommandCount !== undefined) &&
|
|
1263
|
+
clusterLines > 0
|
|
1264
|
+
);
|
|
1159
1265
|
}
|
|
1160
1266
|
|
|
1161
1267
|
function createEmptyReport(): ParsedInvestigationReport {
|