@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.
Files changed (383) hide show
  1. package/Models/DatabaseModels/AutoRemediationSuggestion.ts +60 -0
  2. package/Models/DatabaseModels/CephCluster.ts +213 -0
  3. package/Models/DatabaseModels/DatabaseServer.ts +213 -0
  4. package/Models/DatabaseModels/DockerHost.ts +213 -0
  5. package/Models/DatabaseModels/DockerSwarmCluster.ts +213 -0
  6. package/Models/DatabaseModels/GlobalConfig.ts +1 -1
  7. package/Models/DatabaseModels/Host.ts +213 -0
  8. package/Models/DatabaseModels/Index.ts +2 -0
  9. package/Models/DatabaseModels/PodmanHost.ts +213 -0
  10. package/Models/DatabaseModels/ProxmoxCluster.ts +213 -0
  11. package/Models/DatabaseModels/ResourceAiAgent.ts +419 -0
  12. package/Models/DatabaseModels/RunnerJob.ts +144 -0
  13. package/Models/DatabaseModels/VMwareVCenter.ts +213 -0
  14. package/Server/API/AutoRemediationAPI.ts +392 -1
  15. package/Server/API/ResourceAiAccessAPI.ts +1669 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.ts +423 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  18. package/Server/Infrastructure/Semaphore.ts +22 -0
  19. package/Server/Middleware/TelemetryIngest.ts +15 -5
  20. package/Server/Services/AnalyticsDatabaseService.ts +45 -1
  21. package/Server/Services/AutoRemediationRuleEngineService.ts +940 -112
  22. package/Server/Services/CephClusterService.ts +109 -1
  23. package/Server/Services/DatabaseServerService.ts +116 -1
  24. package/Server/Services/DockerHostService.ts +109 -1
  25. package/Server/Services/DockerSwarmClusterService.ts +113 -1
  26. package/Server/Services/HostService.ts +126 -4
  27. package/Server/Services/MetricRecordingRuleService.ts +47 -0
  28. package/Server/Services/PodmanHostService.ts +109 -1
  29. package/Server/Services/ProxmoxClusterService.ts +110 -1
  30. package/Server/Services/ResourceAiAccessService.ts +1439 -0
  31. package/Server/Services/ResourceAiAgentJobService.ts +202 -0
  32. package/Server/Services/ResourceAiAgentService.ts +2432 -0
  33. package/Server/Services/RunnerJobService.ts +611 -4
  34. package/Server/Services/TelemetryUsageBillingService.ts +28 -0
  35. package/Server/Services/TraceRecordingRuleService.ts +33 -0
  36. package/Server/Services/VMwareVCenterService.ts +110 -1
  37. package/Server/Utils/AI/Remediation/RemediationCommandTools.ts +1434 -32
  38. package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +935 -21
  39. package/Server/Utils/AI/Remediation/RemediationPlanRunner.ts +25 -1
  40. package/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.ts +577 -0
  41. package/Server/Utils/AI/ResourceAccess/ResourceAccessContext.ts +271 -0
  42. package/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.ts +45 -0
  43. package/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.ts +964 -0
  44. package/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.ts +333 -0
  45. package/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.ts +873 -0
  46. package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +72 -2
  47. package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +72 -5
  48. package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +72 -5
  49. package/Server/Utils/AutoRemediation/CommandPlanExecutor.ts +396 -13
  50. package/Server/Utils/AutoRemediation/RemediationVerifier.ts +35 -2
  51. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +9 -1
  52. package/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.ts +920 -0
  53. package/Server/Utils/SessionReplay/SessionReplayUsage.ts +84 -6
  54. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +35 -15
  55. package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +33 -15
  56. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +21 -1
  57. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +298 -224
  58. package/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.ts +35 -15
  59. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.ts +389 -175
  60. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +366 -143
  61. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.ts +163 -0
  62. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.ts +396 -0
  63. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.ts +418 -0
  64. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.ts +152 -0
  65. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.ts +251 -0
  66. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.ts +214 -0
  67. package/Tests/App/Dashboard/ClusterAccessNotice.test.tsx +93 -0
  68. package/Tests/App/Dashboard/DatabaseDocumentationMarkdown.test.ts +18 -6
  69. package/Tests/App/Dashboard/InvestigationInfrastructureTools.test.tsx +506 -0
  70. package/Tests/App/Dashboard/RemediationSuggestionCardDescription.test.tsx +209 -0
  71. package/Tests/App/Dashboard/RemediationSuggestionCardResource.test.tsx +317 -0
  72. package/Tests/App/Dashboard/ResourceAiAccessSettingsUtil.test.ts +921 -0
  73. package/Tests/App/Dashboard/ResourceAiAgentInstall.test.ts +860 -0
  74. package/Tests/App/Dashboard/ResourceAiAgentPage.test.tsx +1721 -0
  75. package/Tests/App/Dashboard/ResourceAiAgentStatus.test.ts +1002 -0
  76. package/Tests/App/Dashboard/ResourceAiInsightsPage.test.tsx +931 -0
  77. package/Tests/App/Dashboard/ResourceAiNavigation.test.tsx +575 -0
  78. package/Tests/App/Dashboard/RunbookStepTypeMaps.test.ts +38 -7
  79. package/Tests/Models/DatabaseModels/DatabaseServerModels.test.ts +33 -1
  80. package/Tests/Models/DatabaseModels/ResourceAiAccessColumns.test.ts +738 -0
  81. package/Tests/Models/DatabaseModels/ResourceAiAgentModel.test.ts +842 -0
  82. package/Tests/Server/API/AutoRemediationApproveResourceRound.test.ts +835 -0
  83. package/Tests/Server/API/ResourceAiAccessAPI.test.ts +2730 -0
  84. package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +60 -0
  85. package/Tests/Server/Infrastructure/Postgres/AddResourceAiAgentsMigration.test.ts +659 -0
  86. package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +31 -0
  87. package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +63 -5
  88. package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerPinnedKey.test.ts +103 -5
  89. package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerRateLimit.test.ts +19 -1
  90. package/Tests/Server/Services/AutoRemediationResourceRuleEngine.test.ts +1279 -0
  91. package/Tests/Server/Services/DatabaseServerService.test.ts +55 -0
  92. package/Tests/Server/Services/GroupTelemetryUsageExcludeNames.test.ts +299 -0
  93. package/Tests/Server/Services/HostServiceFindOrCreateMemo.test.ts +44 -0
  94. package/Tests/Server/Services/MonitorProbeServiceIntervalScheduling.test.ts +45 -6
  95. package/Tests/Server/Services/RecordingRuleReservedMetricName.test.ts +171 -0
  96. package/Tests/Server/Services/ResourceAiAccessChangeAuthorization.test.ts +256 -0
  97. package/Tests/Server/Services/ResourceAiAccessService.test.ts +1373 -0
  98. package/Tests/Server/Services/ResourceAiAgentJobService.test.ts +375 -0
  99. package/Tests/Server/Services/ResourceAiAgentServiceHelpers.test.ts +1114 -0
  100. package/Tests/Server/Services/ResourceAiAgentServiceLifecycle.test.ts +1050 -0
  101. package/Tests/Server/Services/ResourceAiAgentServiceRegister.test.ts +2251 -0
  102. package/Tests/Server/Services/ResourceAiSettingsCreate.test.ts +373 -0
  103. package/Tests/Server/Services/ResourceAiSettingsPermission.test.ts +1042 -0
  104. package/Tests/Server/Services/ResourceServiceDeleteCleansUpAi.test.ts +319 -0
  105. package/Tests/Server/Services/RunnerJobEnqueueKubectl.test.ts +105 -0
  106. package/Tests/Server/Services/RunnerJobEnqueueResourceCommand.test.ts +986 -0
  107. package/Tests/Server/Services/RunnerJobResourceCommandLane.test.ts +211 -0
  108. package/Tests/Server/Services/RunnerJobResourceCommandTimeoutAndRedaction.test.ts +352 -0
  109. package/Tests/Server/Services/TelemetryUsageBillingSloExclusion.test.ts +218 -0
  110. package/Tests/Server/TestingUtils/Services/FakeRunnerJobCount.ts +145 -0
  111. package/Tests/Server/Utils/AI/InvestigationInfrastructureAccessWiring.test.ts +453 -0
  112. package/Tests/Server/Utils/AI/InvestigationInfrastructureReport.test.ts +721 -0
  113. package/Tests/Server/Utils/AI/RemediationCommandTools.test.ts +94 -1
  114. package/Tests/Server/Utils/AI/RemediationCommandToolsResource.test.ts +1530 -0
  115. package/Tests/Server/Utils/AI/RemediationExecutionRunnerResourceMode.test.ts +1249 -0
  116. package/Tests/Server/Utils/AI/RemediationPlanRunner.test.ts +117 -0
  117. package/Tests/Server/Utils/AI/RemediationResourceCopyParity.test.ts +463 -0
  118. package/Tests/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.test.ts +722 -0
  119. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAccessContext.test.ts +266 -0
  120. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.test.ts +1220 -0
  121. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.test.ts +569 -0
  122. package/Tests/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.test.ts +830 -0
  123. package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutorResource.test.ts +717 -0
  124. package/Tests/Server/Utils/AutoRemediation/RemediationVerifierResourceFollowUp.test.ts +338 -0
  125. package/Tests/Server/Utils/Monitor/Criteria/SessionReplayBudgetTemplateCriteria.test.ts +422 -0
  126. package/Tests/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.test.ts +1647 -0
  127. package/Tests/Server/Utils/SessionReplay/SessionReplayUsage.test.ts +143 -1
  128. package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.test.ts +33 -3
  129. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsAccountNotLinked.test.ts +1093 -0
  130. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.test.ts +1049 -0
  131. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.test.ts +1676 -0
  132. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCards.test.ts +2884 -0
  133. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.test.ts +2490 -0
  134. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmit.test.ts +2293 -0
  135. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmitServerTimezone.test.ts +386 -0
  136. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.test.ts +1477 -0
  137. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.test.ts +1967 -0
  138. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsStripHtmlTags.test.ts +92 -0
  139. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsSubmittedFormRemoval.test.ts +1819 -0
  140. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.test.ts +1033 -0
  141. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezoneServerZone.test.ts +610 -0
  142. package/Tests/Server/Utils/Workspace/MicrosoftTeamsBotMessageHandling.test.ts +2610 -0
  143. package/Tests/Server/Utils/Workspace/MicrosoftTeamsCreateCommandsEndToEnd.test.ts +4672 -0
  144. package/Tests/Server/Utils/Workspace/WorkspaceCreateProjectReferences.test.ts +190 -65
  145. package/Tests/Types/AutoRemediation/AiRemediationCommandPlan.test.ts +10 -4
  146. package/Tests/Types/AutoRemediation/AiRemediationCommandPlanResourceCommand.test.ts +305 -0
  147. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +277 -13
  148. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +113 -0
  149. package/Tests/Types/Monitor/RumAlertTemplates.test.ts +773 -2
  150. package/Tests/Types/ResourceAiAgent/AiResourceType.test.ts +419 -0
  151. package/Tests/Types/ResourceAiAgent/ResourceAiAccess.test.ts +517 -0
  152. package/Tests/Types/Runbook/RunbookStepType.test.ts +147 -8
  153. package/Tests/UI/Rum/RecordingHealthDashboard.test.tsx +769 -1
  154. package/Tests/Utils/AiRemediation/Resource/CephCommandPolicy.test.ts +1653 -0
  155. package/Tests/Utils/AiRemediation/Resource/CephOutputRedaction.test.ts +204 -0
  156. package/Tests/Utils/AiRemediation/Resource/DatabaseCommandPolicy.test.ts +1077 -0
  157. package/Tests/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.test.ts +558 -0
  158. package/Tests/Utils/AiRemediation/Resource/DatabaseQueryRedactor.test.ts +834 -0
  159. package/Tests/Utils/AiRemediation/Resource/DockerCliGrammar.test.ts +747 -0
  160. package/Tests/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.test.ts +1259 -0
  161. package/Tests/Utils/AiRemediation/Resource/DockerOutputRedaction.test.ts +386 -0
  162. package/Tests/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.test.ts +782 -0
  163. package/Tests/Utils/AiRemediation/Resource/GovcCommandPolicy.test.ts +2259 -0
  164. package/Tests/Utils/AiRemediation/Resource/HostCommandPolicy.test.ts +2019 -0
  165. package/Tests/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.test.ts +2497 -0
  166. package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicy.test.ts +1305 -0
  167. package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.test.ts +585 -0
  168. package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactor.test.ts +334 -0
  169. package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactorCopyParity.test.ts +98 -0
  170. package/Tests/Utils/AiRemediation/Resource/ResourcePolicyImportClosure.test.ts +391 -0
  171. package/Tests/Utils/AiRemediation/ResourceAiAgentPolicyCopyParity.test.ts +497 -0
  172. package/Tests/Utils/SessionReplay/SessionReplayBudgetMetricType.test.ts +383 -0
  173. package/Types/AI/ResourceAiAccessApi.ts +140 -0
  174. package/Types/AI/ResourceAiAccessPermissions.ts +126 -0
  175. package/Types/AutoRemediation/AiRemediationCommandPlan.ts +183 -2
  176. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +55 -22
  177. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +35 -3
  178. package/Types/Monitor/RumAlertTemplates.ts +351 -4
  179. package/Types/ResourceAiAgent/AiResourceType.ts +310 -0
  180. package/Types/ResourceAiAgent/ResourceAiAccess.ts +574 -0
  181. package/Types/Rum/SessionReplayBudgetMetricType.ts +47 -0
  182. package/Types/Runbook/RunbookStepType.ts +29 -0
  183. package/Types/Telemetry/TelemetryIngestSurface.ts +14 -2
  184. package/Utils/AI/InvestigationReport.ts +121 -15
  185. package/Utils/AiRemediation/Resource/CephCommandPolicy.ts +1936 -0
  186. package/Utils/AiRemediation/Resource/DatabaseCommandPolicy.ts +166 -0
  187. package/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.ts +1532 -0
  188. package/Utils/AiRemediation/Resource/DatabaseQueryRedactor.ts +1394 -0
  189. package/Utils/AiRemediation/Resource/DockerCliGrammar.ts +1839 -0
  190. package/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.ts +490 -0
  191. package/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.ts +687 -0
  192. package/Utils/AiRemediation/Resource/GovcCommandPolicy.ts +2096 -0
  193. package/Utils/AiRemediation/Resource/HostCommandPolicy.ts +2982 -0
  194. package/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.ts +1679 -0
  195. package/Utils/AiRemediation/Resource/ResourceCommandPolicy.ts +851 -0
  196. package/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.ts +593 -0
  197. package/Utils/AiRemediation/Resource/ResourceOutputRedactor.ts +2812 -0
  198. package/Utils/SessionReplay/SessionReplayBudgetMetricType.ts +184 -0
  199. package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js +62 -0
  200. package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js.map +1 -1
  201. package/build/dist/Models/DatabaseModels/CephCluster.js +219 -0
  202. package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -1
  203. package/build/dist/Models/DatabaseModels/DatabaseServer.js +219 -0
  204. package/build/dist/Models/DatabaseModels/DatabaseServer.js.map +1 -1
  205. package/build/dist/Models/DatabaseModels/DockerHost.js +219 -0
  206. package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
  207. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js +219 -0
  208. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js.map +1 -1
  209. package/build/dist/Models/DatabaseModels/GlobalConfig.js +1 -1
  210. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  211. package/build/dist/Models/DatabaseModels/Host.js +219 -0
  212. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  213. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  214. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  215. package/build/dist/Models/DatabaseModels/PodmanHost.js +219 -0
  216. package/build/dist/Models/DatabaseModels/PodmanHost.js.map +1 -1
  217. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +219 -0
  218. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -1
  219. package/build/dist/Models/DatabaseModels/ResourceAiAgent.js +439 -0
  220. package/build/dist/Models/DatabaseModels/ResourceAiAgent.js.map +1 -0
  221. package/build/dist/Models/DatabaseModels/RunnerJob.js +145 -0
  222. package/build/dist/Models/DatabaseModels/RunnerJob.js.map +1 -1
  223. package/build/dist/Models/DatabaseModels/VMwareVCenter.js +219 -0
  224. package/build/dist/Models/DatabaseModels/VMwareVCenter.js.map +1 -1
  225. package/build/dist/Server/API/AutoRemediationAPI.js +231 -1
  226. package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -1
  227. package/build/dist/Server/API/ResourceAiAccessAPI.js +1119 -0
  228. package/build/dist/Server/API/ResourceAiAccessAPI.js.map +1 -0
  229. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js +168 -0
  230. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js.map +1 -0
  231. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  232. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  233. package/build/dist/Server/Infrastructure/Semaphore.js +6 -0
  234. package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
  235. package/build/dist/Server/Middleware/TelemetryIngest.js +12 -5
  236. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  237. package/build/dist/Server/Services/AnalyticsDatabaseService.js +26 -1
  238. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  239. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +601 -3
  240. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js.map +1 -1
  241. package/build/dist/Server/Services/CephClusterService.js +104 -0
  242. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  243. package/build/dist/Server/Services/DatabaseServerService.js +99 -0
  244. package/build/dist/Server/Services/DatabaseServerService.js.map +1 -1
  245. package/build/dist/Server/Services/DockerHostService.js +104 -0
  246. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  247. package/build/dist/Server/Services/DockerSwarmClusterService.js +104 -0
  248. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  249. package/build/dist/Server/Services/HostService.js +114 -2
  250. package/build/dist/Server/Services/HostService.js.map +1 -1
  251. package/build/dist/Server/Services/MetricRecordingRuleService.js +46 -0
  252. package/build/dist/Server/Services/MetricRecordingRuleService.js.map +1 -1
  253. package/build/dist/Server/Services/PodmanHostService.js +104 -0
  254. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  255. package/build/dist/Server/Services/ProxmoxClusterService.js +104 -0
  256. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  257. package/build/dist/Server/Services/ResourceAiAccessService.js +1028 -0
  258. package/build/dist/Server/Services/ResourceAiAccessService.js.map +1 -0
  259. package/build/dist/Server/Services/ResourceAiAgentJobService.js +173 -0
  260. package/build/dist/Server/Services/ResourceAiAgentJobService.js.map +1 -0
  261. package/build/dist/Server/Services/ResourceAiAgentService.js +1687 -0
  262. package/build/dist/Server/Services/ResourceAiAgentService.js.map +1 -0
  263. package/build/dist/Server/Services/RunnerJobService.js +344 -5
  264. package/build/dist/Server/Services/RunnerJobService.js.map +1 -1
  265. package/build/dist/Server/Services/TelemetryUsageBillingService.js +26 -0
  266. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  267. package/build/dist/Server/Services/TraceRecordingRuleService.js +37 -0
  268. package/build/dist/Server/Services/TraceRecordingRuleService.js.map +1 -1
  269. package/build/dist/Server/Services/VMwareVCenterService.js +104 -0
  270. package/build/dist/Server/Services/VMwareVCenterService.js.map +1 -1
  271. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js +1029 -30
  272. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -1
  273. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +633 -28
  274. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -1
  275. package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js +21 -1
  276. package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js.map +1 -1
  277. package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js +330 -0
  278. package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js.map +1 -0
  279. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js +160 -0
  280. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js.map +1 -0
  281. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js +33 -0
  282. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js.map +1 -0
  283. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js +640 -0
  284. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js.map +1 -0
  285. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js +226 -0
  286. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js.map +1 -0
  287. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js +600 -0
  288. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js.map +1 -0
  289. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +50 -4
  290. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
  291. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +55 -4
  292. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
  293. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +55 -4
  294. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
  295. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js +290 -13
  296. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js.map +1 -1
  297. package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js +29 -1
  298. package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js.map +1 -1
  299. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +9 -1
  300. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
  301. package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js +627 -0
  302. package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js.map +1 -0
  303. package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js +60 -5
  304. package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js.map +1 -1
  305. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +19 -15
  306. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
  307. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +19 -15
  308. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -1
  309. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +17 -1
  310. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
  311. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +183 -209
  312. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
  313. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js +19 -15
  314. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js.map +1 -1
  315. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js +233 -167
  316. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js.map +1 -1
  317. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +263 -110
  318. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  319. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js +129 -0
  320. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js.map +1 -0
  321. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js +266 -0
  322. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js.map +1 -0
  323. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js +258 -0
  324. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js.map +1 -0
  325. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js +104 -0
  326. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js.map +1 -0
  327. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js +183 -0
  328. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js.map +1 -0
  329. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js +123 -0
  330. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js.map +1 -0
  331. package/build/dist/Types/AI/ResourceAiAccessApi.js +30 -0
  332. package/build/dist/Types/AI/ResourceAiAccessApi.js.map +1 -0
  333. package/build/dist/Types/AI/ResourceAiAccessPermissions.js +98 -0
  334. package/build/dist/Types/AI/ResourceAiAccessPermissions.js.map +1 -0
  335. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js +116 -29
  336. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js.map +1 -1
  337. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +47 -21
  338. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  339. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +5 -0
  340. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  341. package/build/dist/Types/Monitor/RumAlertTemplates.js +199 -3
  342. package/build/dist/Types/Monitor/RumAlertTemplates.js.map +1 -1
  343. package/build/dist/Types/ResourceAiAgent/AiResourceType.js +242 -0
  344. package/build/dist/Types/ResourceAiAgent/AiResourceType.js.map +1 -0
  345. package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js +275 -0
  346. package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js.map +1 -0
  347. package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js +45 -0
  348. package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js.map +1 -0
  349. package/build/dist/Types/Runbook/RunbookStepType.js +27 -0
  350. package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
  351. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js +13 -2
  352. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js.map +1 -1
  353. package/build/dist/Utils/AI/InvestigationReport.js +71 -11
  354. package/build/dist/Utils/AI/InvestigationReport.js.map +1 -1
  355. package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js +1462 -0
  356. package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js.map +1 -0
  357. package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js +122 -0
  358. package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js.map +1 -0
  359. package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js +1139 -0
  360. package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js.map +1 -0
  361. package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js +1060 -0
  362. package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js.map +1 -0
  363. package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js +1301 -0
  364. package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js.map +1 -0
  365. package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js +370 -0
  366. package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js.map +1 -0
  367. package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js +498 -0
  368. package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js.map +1 -0
  369. package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js +1565 -0
  370. package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js.map +1 -0
  371. package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js +2206 -0
  372. package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js.map +1 -0
  373. package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js +1129 -0
  374. package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js.map +1 -0
  375. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js +565 -0
  376. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js.map +1 -0
  377. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js +408 -0
  378. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js.map +1 -0
  379. package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js +1910 -0
  380. package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js.map +1 -0
  381. package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js +160 -0
  382. package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js.map +1 -0
  383. 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: [],