@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
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import Project from "./Project";
|
|
11
|
+
import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
12
|
+
import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
|
|
13
|
+
import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
|
|
14
|
+
import ColumnLength from "../../Types/Database/ColumnLength";
|
|
15
|
+
import ColumnType from "../../Types/Database/ColumnType";
|
|
16
|
+
import TableColumn from "../../Types/Database/TableColumn";
|
|
17
|
+
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
18
|
+
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
19
|
+
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
20
|
+
import IconProp from "../../Types/Icon/IconProp";
|
|
21
|
+
import ObjectID from "../../Types/ObjectID";
|
|
22
|
+
import Permission from "../../Types/Permission";
|
|
23
|
+
import AiResourceType from "../../Types/ResourceAiAgent/AiResourceType";
|
|
24
|
+
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
25
|
+
/*
|
|
26
|
+
* Who may see a resource's AI agent: whoever may read a resource of any of
|
|
27
|
+
* the AiResourceType models (DockerHost, PodmanHost, DockerSwarmCluster,
|
|
28
|
+
* ProxmoxCluster, VMwareVCenter, CephCluster, DatabaseServer, Host) — the
|
|
29
|
+
* roles every one of their read lists shares, plus each model's own Read
|
|
30
|
+
* permission. The table is polymorphic, so no one list can be "exactly the
|
|
31
|
+
* resource's readers" the way KubernetesAiAgent's is the cluster's: the
|
|
32
|
+
* per-type check (the caller may read THIS resource) is the resource AI
|
|
33
|
+
* access API's, which reads the row as root after loading the resource
|
|
34
|
+
* with the caller's permissions. Nobody writes a row through the API — the
|
|
35
|
+
* agent registers and heartbeats through /resource-ai-agent-ingest, and an
|
|
36
|
+
* admin reset goes through the resource AI access API, both as root.
|
|
37
|
+
*/
|
|
38
|
+
const RESOURCE_READERS = [
|
|
39
|
+
Permission.ProjectOwner,
|
|
40
|
+
Permission.ProjectAdmin,
|
|
41
|
+
Permission.ProjectMember,
|
|
42
|
+
Permission.Viewer,
|
|
43
|
+
Permission.SettingsAdmin,
|
|
44
|
+
Permission.SettingsMember,
|
|
45
|
+
Permission.SettingsViewer,
|
|
46
|
+
Permission.ReadDockerHost,
|
|
47
|
+
Permission.ReadPodmanHost,
|
|
48
|
+
Permission.ReadDockerSwarmCluster,
|
|
49
|
+
Permission.ReadProxmoxCluster,
|
|
50
|
+
Permission.ReadVMwareVCenter,
|
|
51
|
+
Permission.ReadCephCluster,
|
|
52
|
+
Permission.ReadDatabaseServer,
|
|
53
|
+
Permission.ReadHost,
|
|
54
|
+
];
|
|
55
|
+
/*
|
|
56
|
+
* The resource AI agent of one infrastructure resource (a Docker or Podman
|
|
57
|
+
* host, a Docker Swarm, Proxmox or Ceph cluster, a vCenter, a database
|
|
58
|
+
* server or a host): the slim executor installed next to the resource's
|
|
59
|
+
* telemetry collector (image oneuptime/resource-ai-agent). Like the
|
|
60
|
+
* Kubernetes AI agent it is deliberately NOT a Runner: it never appears on
|
|
61
|
+
* the Runners page, is never handed a credential (it uses only credentials
|
|
62
|
+
* from its own environment and mounts) and runs nothing but AI resource
|
|
63
|
+
* commands — RunnerJob rows of step type ResourceCommand targeted at it
|
|
64
|
+
* through RunnerJob.targetResourceAiAgentId.
|
|
65
|
+
*
|
|
66
|
+
* One row per resource, keyed by (resourceType, resourceId). resourceId has
|
|
67
|
+
* no foreign key on purpose: it points into a different table for every
|
|
68
|
+
* resourceType. The row goes with its project (ON DELETE CASCADE); nothing
|
|
69
|
+
* ties it to the resource row in the database, so removing it with its
|
|
70
|
+
* resource is the server's job.
|
|
71
|
+
*
|
|
72
|
+
* The agent registers with the project's telemetry ingestion key and
|
|
73
|
+
* receives an agent key; only the key's sha256 is kept (keyHash), and no
|
|
74
|
+
* user can read it. The dashboard reads the row through the resource's AI
|
|
75
|
+
* access status, which is why there is no CRUD API and no API documentation
|
|
76
|
+
* for this table (KubernetesAiAgent and UserProjectSsoConsent are the
|
|
77
|
+
* precedent).
|
|
78
|
+
*/
|
|
79
|
+
let ResourceAiAgent = class ResourceAiAgent extends BaseModel {
|
|
80
|
+
constructor() {
|
|
81
|
+
super(...arguments);
|
|
82
|
+
this.project = undefined;
|
|
83
|
+
this.projectId = undefined;
|
|
84
|
+
/*
|
|
85
|
+
* Which model resourceId points into: an AiResourceType value, stored as
|
|
86
|
+
* spelled (the enum values are the database contract).
|
|
87
|
+
*/
|
|
88
|
+
this.resourceType = undefined;
|
|
89
|
+
/*
|
|
90
|
+
* The resource row (in the table resourceType names). No foreign key: a
|
|
91
|
+
* column can reference only one table.
|
|
92
|
+
*/
|
|
93
|
+
this.resourceId = undefined;
|
|
94
|
+
/*
|
|
95
|
+
* The identity the agent registered with — the one its resource's
|
|
96
|
+
* collector reports (a host name, a cluster name, a database endpoint) —
|
|
97
|
+
* as it last presented it.
|
|
98
|
+
*/
|
|
99
|
+
this.resourceIdentifier = undefined;
|
|
100
|
+
/*
|
|
101
|
+
* sha256 (hex) of the agent key the agent presents on every request after
|
|
102
|
+
* registration. The key itself is never stored. Null after an admin reset:
|
|
103
|
+
* no key matches, so the running agent fails authentication and registers
|
|
104
|
+
* again. Unreadable by every role — even a hash of a bearer credential is
|
|
105
|
+
* nothing the dashboard or the API should hand out.
|
|
106
|
+
*/
|
|
107
|
+
this.keyHash = undefined;
|
|
108
|
+
this.agentVersion = undefined;
|
|
109
|
+
/*
|
|
110
|
+
* The agent's last reported posture (ResourceAiAgentPosture), always read
|
|
111
|
+
* back through parseResourceAiAgentPosture. The server forces
|
|
112
|
+
* resourceType and resourceIdentifier before storing it.
|
|
113
|
+
*/
|
|
114
|
+
this.posture = undefined;
|
|
115
|
+
this.lastAliveAt = undefined;
|
|
116
|
+
this.connectionStatus = undefined;
|
|
117
|
+
this.lastRegisteredAt = undefined;
|
|
118
|
+
/*
|
|
119
|
+
* The TelemetryIngestionKey whose request last minted this agent's key
|
|
120
|
+
* (TelemetryRequest.ingestionKeyPolicy.ingestionKeyId), so an operator
|
|
121
|
+
* who revokes a leaked key can tell which agents it registered. No foreign
|
|
122
|
+
* key: deleting an ingestion key must not delete or re-key an agent.
|
|
123
|
+
*/
|
|
124
|
+
this.registeredWithIngestionKeyId = undefined;
|
|
125
|
+
this.lastRefusedRegistrationAt = undefined;
|
|
126
|
+
this.lastRefusedRegistrationReason = undefined;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
__decorate([
|
|
130
|
+
ColumnAccessControl({
|
|
131
|
+
create: [],
|
|
132
|
+
read: RESOURCE_READERS,
|
|
133
|
+
update: [],
|
|
134
|
+
}),
|
|
135
|
+
TableColumn({
|
|
136
|
+
manyToOneRelationColumn: "projectId",
|
|
137
|
+
type: TableColumnType.Entity,
|
|
138
|
+
modelType: Project,
|
|
139
|
+
title: "Project",
|
|
140
|
+
description: "Relation to Project Resource in which this object belongs",
|
|
141
|
+
}),
|
|
142
|
+
ManyToOne(() => {
|
|
143
|
+
return Project;
|
|
144
|
+
}, {
|
|
145
|
+
eager: false,
|
|
146
|
+
nullable: false,
|
|
147
|
+
onDelete: "CASCADE",
|
|
148
|
+
orphanedRowAction: "nullify",
|
|
149
|
+
}),
|
|
150
|
+
JoinColumn({ name: "projectId" }),
|
|
151
|
+
__metadata("design:type", Project)
|
|
152
|
+
], ResourceAiAgent.prototype, "project", void 0);
|
|
153
|
+
__decorate([
|
|
154
|
+
ColumnAccessControl({
|
|
155
|
+
create: [],
|
|
156
|
+
read: RESOURCE_READERS,
|
|
157
|
+
update: [],
|
|
158
|
+
}),
|
|
159
|
+
Index(),
|
|
160
|
+
TableColumn({
|
|
161
|
+
type: TableColumnType.ObjectID,
|
|
162
|
+
required: true,
|
|
163
|
+
canReadOnRelationQuery: true,
|
|
164
|
+
title: "Project ID",
|
|
165
|
+
description: "ID of your OneUptime Project in which this object belongs",
|
|
166
|
+
}),
|
|
167
|
+
Column({
|
|
168
|
+
type: ColumnType.ObjectID,
|
|
169
|
+
nullable: false,
|
|
170
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
171
|
+
}),
|
|
172
|
+
__metadata("design:type", ObjectID)
|
|
173
|
+
], ResourceAiAgent.prototype, "projectId", void 0);
|
|
174
|
+
__decorate([
|
|
175
|
+
ColumnAccessControl({
|
|
176
|
+
create: [],
|
|
177
|
+
read: RESOURCE_READERS,
|
|
178
|
+
update: [],
|
|
179
|
+
}),
|
|
180
|
+
Index(),
|
|
181
|
+
TableColumn({
|
|
182
|
+
type: TableColumnType.ShortText,
|
|
183
|
+
required: true,
|
|
184
|
+
canReadOnRelationQuery: true,
|
|
185
|
+
title: "Resource Type",
|
|
186
|
+
description: "The kind of resource this AI agent runs next to: DockerHost, PodmanHost, DockerSwarmCluster, ProxmoxCluster, VMwareVCenter, CephCluster, DatabaseServer or Host.",
|
|
187
|
+
example: AiResourceType.DockerHost,
|
|
188
|
+
}),
|
|
189
|
+
Column({
|
|
190
|
+
type: ColumnType.ShortText,
|
|
191
|
+
length: ColumnLength.ShortText,
|
|
192
|
+
nullable: false,
|
|
193
|
+
}),
|
|
194
|
+
__metadata("design:type", String)
|
|
195
|
+
], ResourceAiAgent.prototype, "resourceType", void 0);
|
|
196
|
+
__decorate([
|
|
197
|
+
ColumnAccessControl({
|
|
198
|
+
create: [],
|
|
199
|
+
read: RESOURCE_READERS,
|
|
200
|
+
update: [],
|
|
201
|
+
}),
|
|
202
|
+
Index(),
|
|
203
|
+
TableColumn({
|
|
204
|
+
type: TableColumnType.ObjectID,
|
|
205
|
+
required: true,
|
|
206
|
+
canReadOnRelationQuery: true,
|
|
207
|
+
title: "Resource ID",
|
|
208
|
+
description: "ID of the resource this AI agent runs next to, in the table its resource type names. A resource has at most one agent.",
|
|
209
|
+
}),
|
|
210
|
+
Column({
|
|
211
|
+
type: ColumnType.ObjectID,
|
|
212
|
+
nullable: false,
|
|
213
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
214
|
+
}),
|
|
215
|
+
__metadata("design:type", ObjectID)
|
|
216
|
+
], ResourceAiAgent.prototype, "resourceId", void 0);
|
|
217
|
+
__decorate([
|
|
218
|
+
ColumnAccessControl({
|
|
219
|
+
create: [],
|
|
220
|
+
read: RESOURCE_READERS,
|
|
221
|
+
update: [],
|
|
222
|
+
}),
|
|
223
|
+
TableColumn({
|
|
224
|
+
type: TableColumnType.LongText,
|
|
225
|
+
required: false,
|
|
226
|
+
title: "Resource Identifier",
|
|
227
|
+
description: "The identity the agent registered its resource with (the host name, cluster name or database endpoint its telemetry collector reports). Set by the server.",
|
|
228
|
+
}),
|
|
229
|
+
Column({
|
|
230
|
+
type: ColumnType.LongText,
|
|
231
|
+
length: ColumnLength.LongText,
|
|
232
|
+
nullable: true,
|
|
233
|
+
}),
|
|
234
|
+
__metadata("design:type", String)
|
|
235
|
+
], ResourceAiAgent.prototype, "resourceIdentifier", void 0);
|
|
236
|
+
__decorate([
|
|
237
|
+
ColumnAccessControl({
|
|
238
|
+
create: [],
|
|
239
|
+
read: [],
|
|
240
|
+
update: [],
|
|
241
|
+
}),
|
|
242
|
+
TableColumn({
|
|
243
|
+
type: TableColumnType.ShortText,
|
|
244
|
+
required: false,
|
|
245
|
+
title: "Key Hash",
|
|
246
|
+
description: "SHA-256 of the key the agent authenticates with. Set by the server; never readable.",
|
|
247
|
+
}),
|
|
248
|
+
Column({
|
|
249
|
+
type: ColumnType.ShortText,
|
|
250
|
+
length: ColumnLength.ShortText,
|
|
251
|
+
nullable: true,
|
|
252
|
+
}),
|
|
253
|
+
__metadata("design:type", String)
|
|
254
|
+
], ResourceAiAgent.prototype, "keyHash", void 0);
|
|
255
|
+
__decorate([
|
|
256
|
+
ColumnAccessControl({
|
|
257
|
+
create: [],
|
|
258
|
+
read: RESOURCE_READERS,
|
|
259
|
+
update: [],
|
|
260
|
+
}),
|
|
261
|
+
TableColumn({
|
|
262
|
+
type: TableColumnType.ShortText,
|
|
263
|
+
required: false,
|
|
264
|
+
title: "Agent Version",
|
|
265
|
+
description: "Self-reported version of the resource AI agent. Updated on registration and every heartbeat.",
|
|
266
|
+
}),
|
|
267
|
+
Column({
|
|
268
|
+
type: ColumnType.ShortText,
|
|
269
|
+
length: ColumnLength.ShortText,
|
|
270
|
+
nullable: true,
|
|
271
|
+
}),
|
|
272
|
+
__metadata("design:type", String)
|
|
273
|
+
], ResourceAiAgent.prototype, "agentVersion", void 0);
|
|
274
|
+
__decorate([
|
|
275
|
+
ColumnAccessControl({
|
|
276
|
+
create: [],
|
|
277
|
+
read: RESOURCE_READERS,
|
|
278
|
+
update: [],
|
|
279
|
+
}),
|
|
280
|
+
TableColumn({
|
|
281
|
+
type: TableColumnType.JSON,
|
|
282
|
+
required: false,
|
|
283
|
+
title: "Posture",
|
|
284
|
+
description: "What the agent last reported about itself: whether it may write, the targets it may write to, the targets it never changes, whether it could reach its resource and the resource's version. Set by the server.",
|
|
285
|
+
}),
|
|
286
|
+
Column({
|
|
287
|
+
type: ColumnType.JSON,
|
|
288
|
+
nullable: true,
|
|
289
|
+
}),
|
|
290
|
+
__metadata("design:type", Object)
|
|
291
|
+
], ResourceAiAgent.prototype, "posture", void 0);
|
|
292
|
+
__decorate([
|
|
293
|
+
ColumnAccessControl({
|
|
294
|
+
create: [],
|
|
295
|
+
read: RESOURCE_READERS,
|
|
296
|
+
update: [],
|
|
297
|
+
}),
|
|
298
|
+
TableColumn({
|
|
299
|
+
type: TableColumnType.Date,
|
|
300
|
+
required: false,
|
|
301
|
+
canReadOnRelationQuery: true,
|
|
302
|
+
title: "Last Alive At",
|
|
303
|
+
description: "Most recent registration or heartbeat from this agent.",
|
|
304
|
+
}),
|
|
305
|
+
Column({
|
|
306
|
+
type: ColumnType.Date,
|
|
307
|
+
nullable: true,
|
|
308
|
+
}),
|
|
309
|
+
__metadata("design:type", Date)
|
|
310
|
+
], ResourceAiAgent.prototype, "lastAliveAt", void 0);
|
|
311
|
+
__decorate([
|
|
312
|
+
ColumnAccessControl({
|
|
313
|
+
create: [],
|
|
314
|
+
read: RESOURCE_READERS,
|
|
315
|
+
update: [],
|
|
316
|
+
}),
|
|
317
|
+
TableColumn({
|
|
318
|
+
type: TableColumnType.ShortText,
|
|
319
|
+
required: true,
|
|
320
|
+
isDefaultValueColumn: true,
|
|
321
|
+
canReadOnRelationQuery: true,
|
|
322
|
+
title: "Connection Status",
|
|
323
|
+
description: "connected while the agent registers and heartbeats; disconnected once it signs off or is reset. It is online only when connected AND its last heartbeat is recent.",
|
|
324
|
+
defaultValue: "disconnected",
|
|
325
|
+
}),
|
|
326
|
+
Column({
|
|
327
|
+
type: ColumnType.ShortText,
|
|
328
|
+
length: ColumnLength.ShortText,
|
|
329
|
+
nullable: false,
|
|
330
|
+
default: "disconnected",
|
|
331
|
+
}),
|
|
332
|
+
__metadata("design:type", String)
|
|
333
|
+
], ResourceAiAgent.prototype, "connectionStatus", void 0);
|
|
334
|
+
__decorate([
|
|
335
|
+
ColumnAccessControl({
|
|
336
|
+
create: [],
|
|
337
|
+
read: RESOURCE_READERS,
|
|
338
|
+
update: [],
|
|
339
|
+
}),
|
|
340
|
+
TableColumn({
|
|
341
|
+
type: TableColumnType.Date,
|
|
342
|
+
required: false,
|
|
343
|
+
title: "Last Registered At",
|
|
344
|
+
description: "When the agent last registered and was issued a key.",
|
|
345
|
+
}),
|
|
346
|
+
Column({
|
|
347
|
+
type: ColumnType.Date,
|
|
348
|
+
nullable: true,
|
|
349
|
+
}),
|
|
350
|
+
__metadata("design:type", Date)
|
|
351
|
+
], ResourceAiAgent.prototype, "lastRegisteredAt", void 0);
|
|
352
|
+
__decorate([
|
|
353
|
+
ColumnAccessControl({
|
|
354
|
+
create: [],
|
|
355
|
+
read: RESOURCE_READERS,
|
|
356
|
+
update: [],
|
|
357
|
+
}),
|
|
358
|
+
TableColumn({
|
|
359
|
+
type: TableColumnType.ObjectID,
|
|
360
|
+
required: false,
|
|
361
|
+
title: "Registered With Ingestion Key ID",
|
|
362
|
+
description: "ID of the telemetry ingestion key the agent last registered with.",
|
|
363
|
+
}),
|
|
364
|
+
Column({
|
|
365
|
+
type: ColumnType.ObjectID,
|
|
366
|
+
nullable: true,
|
|
367
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
368
|
+
}),
|
|
369
|
+
__metadata("design:type", ObjectID)
|
|
370
|
+
], ResourceAiAgent.prototype, "registeredWithIngestionKeyId", void 0);
|
|
371
|
+
__decorate([
|
|
372
|
+
ColumnAccessControl({
|
|
373
|
+
create: [],
|
|
374
|
+
read: RESOURCE_READERS,
|
|
375
|
+
update: [],
|
|
376
|
+
}),
|
|
377
|
+
TableColumn({
|
|
378
|
+
type: TableColumnType.Date,
|
|
379
|
+
required: false,
|
|
380
|
+
title: "Last Refused Registration At",
|
|
381
|
+
description: "When another agent last tried to register for this resource and was refused.",
|
|
382
|
+
}),
|
|
383
|
+
Column({
|
|
384
|
+
type: ColumnType.Date,
|
|
385
|
+
nullable: true,
|
|
386
|
+
}),
|
|
387
|
+
__metadata("design:type", Date)
|
|
388
|
+
], ResourceAiAgent.prototype, "lastRefusedRegistrationAt", void 0);
|
|
389
|
+
__decorate([
|
|
390
|
+
ColumnAccessControl({
|
|
391
|
+
create: [],
|
|
392
|
+
read: RESOURCE_READERS,
|
|
393
|
+
update: [],
|
|
394
|
+
}),
|
|
395
|
+
TableColumn({
|
|
396
|
+
type: TableColumnType.ShortText,
|
|
397
|
+
required: false,
|
|
398
|
+
title: "Last Refused Registration Reason",
|
|
399
|
+
description: "Why that registration was refused, for example previous_instance_online.",
|
|
400
|
+
}),
|
|
401
|
+
Column({
|
|
402
|
+
type: ColumnType.ShortText,
|
|
403
|
+
length: ColumnLength.ShortText,
|
|
404
|
+
nullable: true,
|
|
405
|
+
}),
|
|
406
|
+
__metadata("design:type", String)
|
|
407
|
+
], ResourceAiAgent.prototype, "lastRefusedRegistrationReason", void 0);
|
|
408
|
+
ResourceAiAgent = __decorate([
|
|
409
|
+
TenantColumn("projectId"),
|
|
410
|
+
TableAccessControl({
|
|
411
|
+
create: [],
|
|
412
|
+
read: RESOURCE_READERS,
|
|
413
|
+
delete: [],
|
|
414
|
+
update: [],
|
|
415
|
+
})
|
|
416
|
+
/*
|
|
417
|
+
* One agent per live resource, enforced by the database: two agents
|
|
418
|
+
* registering for the same new resource at once must not both create a
|
|
419
|
+
* row. Named, and declared here rather than only in a migration, so
|
|
420
|
+
* TypeORM's schema builder recognises it and never generates a DROP for it.
|
|
421
|
+
*/
|
|
422
|
+
,
|
|
423
|
+
Index("IDX_ResourceAiAgent_projectId_resourceType_resourceId", ["projectId", "resourceType", "resourceId"], {
|
|
424
|
+
unique: true,
|
|
425
|
+
where: '"deletedAt" IS NULL',
|
|
426
|
+
}),
|
|
427
|
+
TableMetadata({
|
|
428
|
+
tableName: "ResourceAiAgent",
|
|
429
|
+
singularName: "Resource AI Agent",
|
|
430
|
+
pluralName: "Resource AI Agents",
|
|
431
|
+
icon: IconProp.ServerStack,
|
|
432
|
+
tableDescription: "The AI agent installed next to an infrastructure resource (a Docker or Podman host, a Docker Swarm, Proxmox or Ceph cluster, a VMware vCenter, a database server or a host): the executor OneUptime AI uses to investigate (and, when allowed, fix) that resource. One per resource. Managed by the server; not user-writable.",
|
|
433
|
+
}),
|
|
434
|
+
Entity({
|
|
435
|
+
name: "ResourceAiAgent",
|
|
436
|
+
})
|
|
437
|
+
], ResourceAiAgent);
|
|
438
|
+
export default ResourceAiAgent;
|
|
439
|
+
//# sourceMappingURL=ResourceAiAgent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceAiAgent.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/ResourceAiAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import KubernetesAiAgent from "./KubernetesAiAgent";
|
|
11
11
|
import KubernetesCluster from "./KubernetesCluster";
|
|
12
12
|
import Project from "./Project";
|
|
13
|
+
import ResourceAiAgent from "./ResourceAiAgent";
|
|
13
14
|
import Runner from "./Runner";
|
|
14
15
|
import RunbookExecution from "./RunbookExecution";
|
|
15
16
|
import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
@@ -26,6 +27,7 @@ import TenantColumn from "../../Types/Database/TenantColumn";
|
|
|
26
27
|
import IconProp from "../../Types/Icon/IconProp";
|
|
27
28
|
import ObjectID from "../../Types/ObjectID";
|
|
28
29
|
import Permission from "../../Types/Permission";
|
|
30
|
+
import AiResourceType from "../../Types/ResourceAiAgent/AiResourceType";
|
|
29
31
|
import RunnerJobStatus from "../../Types/Runbook/RunnerJobStatus";
|
|
30
32
|
import RunnerJobOrigin from "../../Types/Runbook/RunnerJobOrigin";
|
|
31
33
|
import RunbookStepType from "../../Types/Runbook/RunbookStepType";
|
|
@@ -47,6 +49,14 @@ let RunnerJob = class RunnerJob extends BaseModel {
|
|
|
47
49
|
this.autoRemediationSuggestionId = undefined;
|
|
48
50
|
this.kubernetesCluster = undefined;
|
|
49
51
|
this.kubernetesClusterId = undefined;
|
|
52
|
+
/*
|
|
53
|
+
* The resource a ResourceCommand job ran against, so a resource's AI page
|
|
54
|
+
* can list every command OneUptime AI ran on it (what kubernetesClusterId
|
|
55
|
+
* is for a Kubectl job). Two columns, not a relation: resourceId points
|
|
56
|
+
* into the table resourceType names, so it can have no foreign key.
|
|
57
|
+
*/
|
|
58
|
+
this.resourceType = undefined;
|
|
59
|
+
this.resourceId = undefined;
|
|
50
60
|
this.stepId = undefined;
|
|
51
61
|
this.stepType = undefined;
|
|
52
62
|
this.targetAgent = undefined;
|
|
@@ -62,6 +72,19 @@ let RunnerJob = class RunnerJob extends BaseModel {
|
|
|
62
72
|
*/
|
|
63
73
|
this.targetKubernetesAiAgent = undefined;
|
|
64
74
|
this.targetKubernetesAiAgentId = undefined;
|
|
75
|
+
/*
|
|
76
|
+
* The resource AI agent an AI resource command (step type ResourceCommand)
|
|
77
|
+
* is targeted at: the agent next to a Docker or Podman host, a Docker
|
|
78
|
+
* Swarm, Proxmox or Ceph cluster, a vCenter, a database server or a host.
|
|
79
|
+
* A job sets exactly one of targetAgentId (a Runner),
|
|
80
|
+
* targetKubernetesAiAgentId and this; only the named agent may claim it.
|
|
81
|
+
* As for the Kubernetes AI agent, the agent's id is also written to
|
|
82
|
+
* assignedAgentId on claim, so the job heartbeat and result paths are the
|
|
83
|
+
* Runner's own. Deleting the agent row nulls this, which leaves the job
|
|
84
|
+
* claimable by nobody.
|
|
85
|
+
*/
|
|
86
|
+
this.targetResourceAiAgent = undefined;
|
|
87
|
+
this.targetResourceAiAgentId = undefined;
|
|
65
88
|
this.assignedAgentId = undefined;
|
|
66
89
|
this.status = undefined;
|
|
67
90
|
/*
|
|
@@ -378,6 +401,66 @@ __decorate([
|
|
|
378
401
|
}),
|
|
379
402
|
__metadata("design:type", ObjectID)
|
|
380
403
|
], RunnerJob.prototype, "kubernetesClusterId", void 0);
|
|
404
|
+
__decorate([
|
|
405
|
+
ColumnAccessControl({
|
|
406
|
+
create: [],
|
|
407
|
+
read: [
|
|
408
|
+
Permission.ProjectOwner,
|
|
409
|
+
Permission.ProjectAdmin,
|
|
410
|
+
Permission.ProjectMember,
|
|
411
|
+
Permission.Viewer,
|
|
412
|
+
Permission.RunbookAdmin,
|
|
413
|
+
Permission.RunbookMember,
|
|
414
|
+
Permission.RunbookViewer,
|
|
415
|
+
Permission.ReadRunbookExecution,
|
|
416
|
+
],
|
|
417
|
+
update: [],
|
|
418
|
+
}),
|
|
419
|
+
Index(),
|
|
420
|
+
TableColumn({
|
|
421
|
+
type: TableColumnType.ShortText,
|
|
422
|
+
required: false,
|
|
423
|
+
canReadOnRelationQuery: true,
|
|
424
|
+
title: "Resource Type",
|
|
425
|
+
description: "The kind of resource a ResourceCommand job ran against (DockerHost, PodmanHost, DockerSwarmCluster, ProxmoxCluster, VMwareVCenter, CephCluster, DatabaseServer or Host). Set on ResourceCommand jobs only.",
|
|
426
|
+
}),
|
|
427
|
+
Column({
|
|
428
|
+
type: ColumnType.ShortText,
|
|
429
|
+
length: ColumnLength.ShortText,
|
|
430
|
+
nullable: true,
|
|
431
|
+
}),
|
|
432
|
+
__metadata("design:type", String)
|
|
433
|
+
], RunnerJob.prototype, "resourceType", void 0);
|
|
434
|
+
__decorate([
|
|
435
|
+
ColumnAccessControl({
|
|
436
|
+
create: [],
|
|
437
|
+
read: [
|
|
438
|
+
Permission.ProjectOwner,
|
|
439
|
+
Permission.ProjectAdmin,
|
|
440
|
+
Permission.ProjectMember,
|
|
441
|
+
Permission.Viewer,
|
|
442
|
+
Permission.RunbookAdmin,
|
|
443
|
+
Permission.RunbookMember,
|
|
444
|
+
Permission.RunbookViewer,
|
|
445
|
+
Permission.ReadRunbookExecution,
|
|
446
|
+
],
|
|
447
|
+
update: [],
|
|
448
|
+
}),
|
|
449
|
+
Index(),
|
|
450
|
+
TableColumn({
|
|
451
|
+
type: TableColumnType.ObjectID,
|
|
452
|
+
required: false,
|
|
453
|
+
canReadOnRelationQuery: true,
|
|
454
|
+
title: "Resource ID",
|
|
455
|
+
description: "ID of the resource a ResourceCommand job ran against, in the table its resource type names.",
|
|
456
|
+
}),
|
|
457
|
+
Column({
|
|
458
|
+
type: ColumnType.ObjectID,
|
|
459
|
+
nullable: true,
|
|
460
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
461
|
+
}),
|
|
462
|
+
__metadata("design:type", ObjectID)
|
|
463
|
+
], RunnerJob.prototype, "resourceId", void 0);
|
|
381
464
|
__decorate([
|
|
382
465
|
ColumnAccessControl({
|
|
383
466
|
create: [],
|
|
@@ -558,6 +641,68 @@ __decorate([
|
|
|
558
641
|
}),
|
|
559
642
|
__metadata("design:type", ObjectID)
|
|
560
643
|
], RunnerJob.prototype, "targetKubernetesAiAgentId", void 0);
|
|
644
|
+
__decorate([
|
|
645
|
+
ColumnAccessControl({
|
|
646
|
+
create: [],
|
|
647
|
+
read: [
|
|
648
|
+
Permission.ProjectOwner,
|
|
649
|
+
Permission.ProjectAdmin,
|
|
650
|
+
Permission.ProjectMember,
|
|
651
|
+
Permission.Viewer,
|
|
652
|
+
Permission.RunbookAdmin,
|
|
653
|
+
Permission.RunbookMember,
|
|
654
|
+
Permission.RunbookViewer,
|
|
655
|
+
Permission.ReadRunbookExecution,
|
|
656
|
+
],
|
|
657
|
+
update: [],
|
|
658
|
+
}),
|
|
659
|
+
TableColumn({
|
|
660
|
+
manyToOneRelationColumn: "targetResourceAiAgentId",
|
|
661
|
+
type: TableColumnType.Entity,
|
|
662
|
+
modelType: ResourceAiAgent,
|
|
663
|
+
title: "Target Resource AI Agent",
|
|
664
|
+
description: "The resource AI agent this AI resource command runs on (the agent installed next to the resource). Only this agent may claim the job.",
|
|
665
|
+
}),
|
|
666
|
+
ManyToOne(() => {
|
|
667
|
+
return ResourceAiAgent;
|
|
668
|
+
}, {
|
|
669
|
+
eager: false,
|
|
670
|
+
nullable: true,
|
|
671
|
+
onDelete: "SET NULL",
|
|
672
|
+
orphanedRowAction: "nullify",
|
|
673
|
+
}),
|
|
674
|
+
JoinColumn({ name: "targetResourceAiAgentId" }),
|
|
675
|
+
__metadata("design:type", ResourceAiAgent)
|
|
676
|
+
], RunnerJob.prototype, "targetResourceAiAgent", void 0);
|
|
677
|
+
__decorate([
|
|
678
|
+
ColumnAccessControl({
|
|
679
|
+
create: [],
|
|
680
|
+
read: [
|
|
681
|
+
Permission.ProjectOwner,
|
|
682
|
+
Permission.ProjectAdmin,
|
|
683
|
+
Permission.ProjectMember,
|
|
684
|
+
Permission.Viewer,
|
|
685
|
+
Permission.RunbookAdmin,
|
|
686
|
+
Permission.RunbookMember,
|
|
687
|
+
Permission.RunbookViewer,
|
|
688
|
+
Permission.ReadRunbookExecution,
|
|
689
|
+
],
|
|
690
|
+
update: [],
|
|
691
|
+
}),
|
|
692
|
+
Index(),
|
|
693
|
+
TableColumn({
|
|
694
|
+
type: TableColumnType.ObjectID,
|
|
695
|
+
required: false,
|
|
696
|
+
title: "Target Resource AI Agent ID",
|
|
697
|
+
description: "ID of the resource AI agent that should claim and execute this job.",
|
|
698
|
+
}),
|
|
699
|
+
Column({
|
|
700
|
+
type: ColumnType.ObjectID,
|
|
701
|
+
nullable: true,
|
|
702
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
703
|
+
}),
|
|
704
|
+
__metadata("design:type", ObjectID)
|
|
705
|
+
], RunnerJob.prototype, "targetResourceAiAgentId", void 0);
|
|
561
706
|
__decorate([
|
|
562
707
|
ColumnAccessControl({
|
|
563
708
|
create: [],
|