@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
@@ -8,7 +8,9 @@ import { CheckOn, EvaluateOverTimeType, FilterType } from "./CriteriaFilter";
8
8
  import MonitorType from "./MonitorType";
9
9
  import RollingTime from "../RollingTime/RollingTime";
10
10
  import MetricsAggregationType from "../Metrics/MetricsAggregationType";
11
+ import SessionReplayBudgetMetricType from "../Rum/SessionReplayBudgetMetricType";
11
12
  function buildCriteria(data) {
13
+ const metricAggregationType = data.metricAggregationType || EvaluateOverTimeType.Average;
12
14
  const unhealthy = new MonitorCriteriaInstance();
13
15
  unhealthy.data = {
14
16
  id: ObjectID.generate().toString(),
@@ -21,7 +23,7 @@ function buildCriteria(data) {
21
23
  value: data.threshold,
22
24
  metricMonitorOptions: data.metricAlias
23
25
  ? {
24
- metricAggregationType: EvaluateOverTimeType.Average,
26
+ metricAggregationType: metricAggregationType,
25
27
  metricAlias: data.metricAlias,
26
28
  thresholdUnit: data.thresholdUnit,
27
29
  }
@@ -66,7 +68,7 @@ function buildCriteria(data) {
66
68
  value: data.threshold,
67
69
  metricMonitorOptions: data.metricAlias
68
70
  ? {
69
- metricAggregationType: EvaluateOverTimeType.Average,
71
+ metricAggregationType: metricAggregationType,
70
72
  metricAlias: data.metricAlias,
71
73
  thresholdUnit: data.thresholdUnit,
72
74
  }
@@ -79,7 +81,8 @@ function buildCriteria(data) {
79
81
  createIncidents: false,
80
82
  createAlerts: false,
81
83
  name: "Healthy",
82
- description: `The RUM signal for ${data.args.monitorName} is within its recommended threshold.`,
84
+ description: data.healthyDescription ||
85
+ `The RUM signal for ${data.args.monitorName} is within its recommended threshold.`,
83
86
  };
84
87
  const criteria = new MonitorCriteria();
85
88
  criteria.data = {
@@ -320,14 +323,207 @@ const unhandledExceptionsTemplate = {
320
323
  return step;
321
324
  },
322
325
  };
326
+ // The unit the percent series are posted in, and so the one to read them in.
327
+ const SESSION_REPLAY_BUDGET_PERCENT_UNIT = "%";
328
+ function buildSessionReplayBudgetTemplate(data) {
329
+ return {
330
+ id: data.id,
331
+ name: data.name,
332
+ description: data.description,
333
+ category: "Session Replay",
334
+ severity: data.severity,
335
+ monitorType: MonitorType.Metrics,
336
+ requirement: data.requirement,
337
+ getMonitorStep: (args) => {
338
+ const step = MonitorStep.getDefaultMonitorStep({
339
+ monitorName: args.monitorName,
340
+ monitorType: MonitorType.Metrics,
341
+ onlineMonitorStatusId: args.onlineMonitorStatusId,
342
+ offlineMonitorStatusId: args.offlineMonitorStatusId,
343
+ defaultIncidentSeverityId: args.defaultIncidentSeverityId,
344
+ defaultAlertSeverityId: args.defaultAlertSeverityId,
345
+ });
346
+ step.setMetricMonitor({
347
+ telemetryServiceIds: [new ObjectID(args.rumApplicationId)],
348
+ rollingTime: RollingTime.Past15Minutes,
349
+ metricViewConfig: {
350
+ queryConfigs: [
351
+ {
352
+ metricAliasData: {
353
+ metricVariable: data.metricAlias,
354
+ title: data.name,
355
+ description: data.description,
356
+ legend: data.name,
357
+ legendUnit: SESSION_REPLAY_BUDGET_PERCENT_UNIT,
358
+ },
359
+ metricQueryData: {
360
+ filterData: {
361
+ metricName: data.metricName,
362
+ attributes: {},
363
+ aggegationType: MetricsAggregationType.Max,
364
+ aggregateBy: {},
365
+ },
366
+ },
367
+ },
368
+ ],
369
+ formulaConfigs: [],
370
+ },
371
+ });
372
+ step.setMonitorCriteria(buildCriteria({
373
+ args: args,
374
+ checkOn: CheckOn.MetricValue,
375
+ unhealthyFilterType: FilterType.GreaterThanOrEqualTo,
376
+ healthyFilterType: FilterType.LessThan,
377
+ threshold: data.threshold,
378
+ /*
379
+ * Load-bearing: without the alias no metricMonitorOptions are
380
+ * written, and the window silently falls back to All Values.
381
+ */
382
+ metricAlias: data.metricAlias,
383
+ thresholdUnit: SESSION_REPLAY_BUDGET_PERCENT_UNIT,
384
+ metricAggregationType: EvaluateOverTimeType.MaximumValue,
385
+ unhealthyName: `${data.name} - ${data.thresholdLabel}`,
386
+ unhealthyDescription: data.breachDescription,
387
+ incidentTitle: `[RUM] ${data.incidentHeadline} - ${args.monitorName}`,
388
+ incidentDescription: data.getIncidentDescription(args.monitorName),
389
+ healthyDescription: `Session replay budget use for ${args.monitorName} is below the alert threshold.`,
390
+ }));
391
+ return step;
392
+ },
393
+ };
394
+ }
395
+ /*
396
+ * The incident descriptions only name levers that take effect BEFORE a byte
397
+ * is charged - the allowed origins and the sample percentage are checked
398
+ * ahead of the charge, and "On error or frustration" keeps ordinary sessions
399
+ * from uploading at all - because a setting that acts on what was already
400
+ * uploaded (retention, deleting recordings) gives none of the budget back.
401
+ * The daily limit itself cannot be raised from the dashboard, only by the
402
+ * deployment.
403
+ */
404
+ const sessionReplayBudgetTemplates = [
405
+ buildSessionReplayBudgetTemplate({
406
+ id: "rum-session-replay-daily-budget-nearly-spent",
407
+ name: "Session Replay Daily Budget Nearly Spent",
408
+ description: "Alert when the project's session replay uploads today reach 80% of its daily limit, before recorders are told to stop. The limit is shared by every application in the project and resets at 00:00 UTC, so one of these monitors covers them all.",
409
+ severity: "Warning",
410
+ requirement: "SessionReplayRecording",
411
+ metricName: SessionReplayBudgetMetricType.ProjectDailyUsedPercent,
412
+ metricAlias: "rum_replay_daily_budget_used",
413
+ threshold: 80,
414
+ thresholdLabel: "80% or more used",
415
+ breachDescription: "Triggers when the project's session replay uploads today reach 80% of its daily limit at any point in the last 15 minutes.",
416
+ incidentHeadline: "Project's daily session replay budget nearly spent",
417
+ getIncidentDescription: () => {
418
+ return "This project has used 80% of today's session replay upload limit, which all of its RUM applications share. At 100% every recorder in the project is told to stop until 00:00 UTC. To make the rest of the day last, open the Replay Policy page of the busiest applications and lower the Sample percentage, upload only On error or frustration, or narrow the Allowed origins so staging traffic stops spending it. Self-hosted: the limit is SESSION_REPLAY_MAX_BYTES_PER_PROJECT_PER_DAY.";
419
+ },
420
+ }),
421
+ buildSessionReplayBudgetTemplate({
422
+ id: "rum-session-replay-daily-budget-spent",
423
+ name: "Session Replay Daily Budget Spent",
424
+ description: "Alert when the project's daily session replay limit is spent: every recorder in the project has been told to stop until 00:00 UTC. The limit is shared by every application in the project, so one of these monitors covers them all.",
425
+ severity: "Critical",
426
+ requirement: "SessionReplayRecording",
427
+ metricName: SessionReplayBudgetMetricType.ProjectDailyUsedPercent,
428
+ metricAlias: "rum_replay_daily_budget_used",
429
+ threshold: 100,
430
+ thresholdLabel: "100% used",
431
+ breachDescription: "Triggers when the project's session replay uploads today reach 100% of its daily limit at any point in the last 15 minutes.",
432
+ incidentHeadline: "Session replay paused: project's daily budget spent",
433
+ getIncidentDescription: () => {
434
+ return "This project has spent today's session replay upload limit, which all of its RUM applications share: every recorder in the project has been told to stop, and nothing more is recorded until 00:00 UTC. This resolves on its own at about 00:10-00:15 UTC, once the last reading over the limit has left the monitor's 15-minute window. To make tomorrow's limit last, lower the Sample percentage, upload only On error or frustration, or narrow the Allowed origins on the busiest applications' Replay Policy page. Self-hosted: the limit is SESSION_REPLAY_MAX_BYTES_PER_PROJECT_PER_DAY.";
435
+ },
436
+ }),
437
+ buildSessionReplayBudgetTemplate({
438
+ id: "rum-session-replay-monthly-budget-nearly-spent",
439
+ name: "Session Replay Monthly Budget Nearly Spent",
440
+ description: "Alert when this application's session replay uploads this month reach 80% of its monthly budget, before its recorders are told to stop for the rest of the month (UTC).",
441
+ severity: "Warning",
442
+ requirement: "SessionReplayMonthlyBudget",
443
+ metricName: SessionReplayBudgetMetricType.ApplicationMonthlyUsedPercent,
444
+ metricAlias: "rum_replay_monthly_budget_used",
445
+ threshold: 80,
446
+ thresholdLabel: "80% or more used",
447
+ breachDescription: "Triggers when this application's session replay uploads this month reach 80% of its monthly budget at any point in the last 15 minutes.",
448
+ incidentHeadline: "Monthly session replay budget nearly spent",
449
+ getIncidentDescription: (monitorName) => {
450
+ return `${monitorName} has used 80% of its monthly session replay budget. At 100% its recorders are told to stop until the 1st of next month (UTC). Raise the Monthly budget on its Replay Policy page, lower the Sample percentage, or upload only On error or frustration.`;
451
+ },
452
+ }),
453
+ buildSessionReplayBudgetTemplate({
454
+ id: "rum-session-replay-monthly-budget-spent",
455
+ name: "Session Replay Monthly Budget Spent",
456
+ description: "Alert when this application's monthly session replay budget is spent: its recorders have been told to stop until the 1st of next month (UTC) or until the budget is raised.",
457
+ severity: "Critical",
458
+ requirement: "SessionReplayMonthlyBudget",
459
+ metricName: SessionReplayBudgetMetricType.ApplicationMonthlyUsedPercent,
460
+ metricAlias: "rum_replay_monthly_budget_used",
461
+ threshold: 100,
462
+ thresholdLabel: "100% used",
463
+ breachDescription: "Triggers when this application's session replay uploads this month reach 100% of its monthly budget at any point in the last 15 minutes.",
464
+ incidentHeadline: "Session replay paused: monthly budget spent",
465
+ getIncidentDescription: (monitorName) => {
466
+ return `${monitorName} has spent its monthly session replay budget: its recorders have been told to stop, and nothing more is recorded until the 1st of next month (UTC) or until the budget is raised on its Replay Policy page. This resolves on its own.`;
467
+ },
468
+ }),
469
+ ];
323
470
  const ALL_RUM_ALERT_TEMPLATES = [
324
471
  ...webVitalTemplates,
325
472
  failedUserOperationsTemplate,
326
473
  unhandledExceptionsTemplate,
474
+ ...sessionReplayBudgetTemplates,
327
475
  ];
476
+ /*
477
+ * Every template this module ships, whatever the application - the set that
478
+ * resolving an id and the catalog-wide invariants have to run over. What to
479
+ * offer ONE application is getRumAlertTemplates.
480
+ */
328
481
  export function getAllRumAlertTemplates() {
329
482
  return [...ALL_RUM_ALERT_TEMPLATES];
330
483
  }
484
+ /*
485
+ * Whether one application meets a template's requirement. Only an explicit
486
+ * `true` (and a real budget) counts: unknown is never read as yes.
487
+ */
488
+ function isRequirementMet(data) {
489
+ var _a, _b, _c;
490
+ if (!data.requirement) {
491
+ return true;
492
+ }
493
+ const isRecording = ((_a = data.context) === null || _a === void 0 ? void 0 : _a.sessionReplayEnabled) === true &&
494
+ ((_b = data.context) === null || _b === void 0 ? void 0 : _b.sessionReplayHasRecorded) === true;
495
+ const budgetInGB = (_c = data.context) === null || _c === void 0 ? void 0 : _c.sessionReplayMonthlyBudgetInGB;
496
+ switch (data.requirement) {
497
+ case "SessionReplayRecording":
498
+ return isRecording;
499
+ case "SessionReplayMonthlyBudget":
500
+ return (isRecording &&
501
+ typeof budgetInGB === "number" &&
502
+ Number.isFinite(budgetInGB) &&
503
+ budgetInGB > 0);
504
+ default:
505
+ return false;
506
+ }
507
+ }
508
+ /*
509
+ * The templates to offer ONE application, given what is known about it.
510
+ *
511
+ * Every template without a requirement, always. The session replay budget
512
+ * pairs only once their series can exist (see the storage budget comment
513
+ * above): the daily pair once the application has session replay on and has
514
+ * recorded, the monthly pair once it also has a Monthly budget. No context,
515
+ * or a field that is null or undefined, withholds them - so what an unknown
516
+ * application is offered is exactly the set every application was offered
517
+ * before they existed.
518
+ */
519
+ export function getRumAlertTemplates(context) {
520
+ return ALL_RUM_ALERT_TEMPLATES.filter((template) => {
521
+ return isRequirementMet({
522
+ requirement: template.requirement,
523
+ context: context,
524
+ });
525
+ });
526
+ }
331
527
  export function getRumAlertTemplateById(id) {
332
528
  return ALL_RUM_ALERT_TEMPLATES.find((template) => {
333
529
  return template.id === id;
@@ -1 +1 @@
1
- {"version":3,"file":"RumAlertTemplates.js","sourceRoot":"","sources":["../../../../Types/Monitor/RumAlertTemplates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RumAlertTemplates.js","sourceRoot":"","sources":["../../../../Types/Monitor/RumAlertTemplates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,242 @@
1
+ /*
2
+ * The infrastructure resources a resource AI agent can give OneUptime AI
3
+ * access to, and what each one's agent runs.
4
+ *
5
+ * One resource AI agent (image RESOURCE_AI_AGENT_IMAGE_REPOSITORY) is
6
+ * installed next to each resource's telemetry collector. It registers the
7
+ * resource by the same identity the collector reports (identityEnvVars), and
8
+ * runs only the programs listed for its type — every command an argv, never
9
+ * a shell line, tiered by the resource command policy
10
+ * (Utils/AiRemediation/Resource) on the server tool, at the enqueue
11
+ * chokepoint and again on the agent before anything is spawned.
12
+ *
13
+ * Kubernetes clusters are NOT here: they keep their own Kubernetes AI agent
14
+ * (Types/Kubernetes/KubernetesClusterAiAccess).
15
+ *
16
+ * This file imports NOTHING outside Types/ResourceAiAgent on purpose: the
17
+ * resource AI agent (agents/ResourceAIAgent) carries a byte-identical copy of
18
+ * this directory and must compile without the rest of Common.
19
+ */
20
+ /*
21
+ * Stored as a plain string (ResourceAiAgent.resourceType, RunnerJob and
22
+ * AutoRemediationSuggestion rows, job payloads), so each value IS the wire
23
+ * and database contract: never rename one.
24
+ */
25
+ var AiResourceType;
26
+ (function (AiResourceType) {
27
+ AiResourceType["DockerHost"] = "DockerHost";
28
+ AiResourceType["PodmanHost"] = "PodmanHost";
29
+ AiResourceType["DockerSwarmCluster"] = "DockerSwarmCluster";
30
+ AiResourceType["ProxmoxCluster"] = "ProxmoxCluster";
31
+ AiResourceType["VMwareVCenter"] = "VMwareVCenter";
32
+ AiResourceType["CephCluster"] = "CephCluster";
33
+ AiResourceType["DatabaseServer"] = "DatabaseServer";
34
+ AiResourceType["Host"] = "Host";
35
+ })(AiResourceType || (AiResourceType = {}));
36
+ export default AiResourceType;
37
+ /*
38
+ * Every type, in declaration order. This is also the priority order in
39
+ * which a remediation round picks among several resources linked to one
40
+ * incident or alert, so reordering it changes which resource AI fixes first.
41
+ */
42
+ export const ALL_AI_RESOURCE_TYPES = [
43
+ AiResourceType.DockerHost,
44
+ AiResourceType.PodmanHost,
45
+ AiResourceType.DockerSwarmCluster,
46
+ AiResourceType.ProxmoxCluster,
47
+ AiResourceType.VMwareVCenter,
48
+ AiResourceType.CephCluster,
49
+ AiResourceType.DatabaseServer,
50
+ AiResourceType.Host,
51
+ ];
52
+ // Exactly an enum value, case included — what a stored row must hold.
53
+ export function isAiResourceType(value) {
54
+ return (typeof value === "string" &&
55
+ ALL_AI_RESOURCE_TYPES.includes(value));
56
+ }
57
+ // The CLIs a Host agent runs through nsenter on the host itself.
58
+ const HOST_PROGRAMS = [
59
+ "systemctl",
60
+ "journalctl",
61
+ "df",
62
+ "free",
63
+ "uptime",
64
+ "ps",
65
+ "ss",
66
+ "ip",
67
+ "dmesg",
68
+ "lsblk",
69
+ "cat",
70
+ "top",
71
+ "uname",
72
+ "hostnamectl",
73
+ "timedatectl",
74
+ "kill",
75
+ ];
76
+ export const AI_RESOURCE_TYPE_INFO = {
77
+ [AiResourceType.DockerHost]: {
78
+ type: AiResourceType.DockerHost,
79
+ displayName: "Docker host",
80
+ agentDisplayName: "Docker AI agent",
81
+ agentAlias: "docker",
82
+ programs: ["docker"],
83
+ testCommands: ["docker version", "docker info"],
84
+ identityEnvVars: ["DOCKER_HOST_NAME"],
85
+ defaultIdentityPlaceholders: ["docker-host"],
86
+ },
87
+ /*
88
+ * Podman serves the Docker-compatible API on its socket, so the agent
89
+ * drives it with the same docker CLI and the same engine policy.
90
+ */
91
+ [AiResourceType.PodmanHost]: {
92
+ type: AiResourceType.PodmanHost,
93
+ displayName: "Podman host",
94
+ agentDisplayName: "Podman AI agent",
95
+ agentAlias: "podman",
96
+ programs: ["docker"],
97
+ testCommands: ["docker version", "docker info"],
98
+ identityEnvVars: ["PODMAN_HOST_NAME"],
99
+ defaultIdentityPlaceholders: ["podman-host"],
100
+ },
101
+ /*
102
+ * The swarm agent must run on a manager node: `docker node ls` fails on a
103
+ * worker, which is exactly what "Test connection" should reveal.
104
+ */
105
+ [AiResourceType.DockerSwarmCluster]: {
106
+ type: AiResourceType.DockerSwarmCluster,
107
+ displayName: "Docker Swarm cluster",
108
+ agentDisplayName: "Docker Swarm AI agent",
109
+ agentAlias: "docker-swarm",
110
+ programs: ["docker"],
111
+ testCommands: ["docker version", "docker node ls"],
112
+ identityEnvVars: ["DOCKER_SWARM_CLUSTER_NAME"],
113
+ // The compose default, and the name install.sh suggests.
114
+ defaultIdentityPlaceholders: ["docker-swarm", "my-swarm"],
115
+ },
116
+ /*
117
+ * There is no Proxmox CLI in the agent: "pvesh" is parsed by the policy
118
+ * and executed as calls to the Proxmox VE HTTPS API with the agent's own
119
+ * API token.
120
+ */
121
+ [AiResourceType.ProxmoxCluster]: {
122
+ type: AiResourceType.ProxmoxCluster,
123
+ displayName: "Proxmox cluster",
124
+ agentDisplayName: "Proxmox AI agent",
125
+ agentAlias: "proxmox",
126
+ programs: ["pvesh"],
127
+ testCommands: ["pvesh get /version", "pvesh get /cluster/status"],
128
+ identityEnvVars: ["PROXMOX_CLUSTER_NAME"],
129
+ defaultIdentityPlaceholders: ["proxmox-cluster"],
130
+ },
131
+ [AiResourceType.VMwareVCenter]: {
132
+ type: AiResourceType.VMwareVCenter,
133
+ displayName: "VMware vCenter",
134
+ agentDisplayName: "VMware AI agent",
135
+ agentAlias: "vmware",
136
+ programs: ["govc"],
137
+ testCommands: ["govc about"],
138
+ identityEnvVars: ["VMWARE_VCENTER_NAME"],
139
+ defaultIdentityPlaceholders: ["vmware-vcenter"],
140
+ },
141
+ [AiResourceType.CephCluster]: {
142
+ type: AiResourceType.CephCluster,
143
+ displayName: "Ceph cluster",
144
+ agentDisplayName: "Ceph AI agent",
145
+ agentAlias: "ceph",
146
+ programs: ["ceph"],
147
+ testCommands: ["ceph health", "ceph versions"],
148
+ identityEnvVars: ["CEPH_CLUSTER_NAME"],
149
+ defaultIdentityPlaceholders: ["ceph"],
150
+ },
151
+ /*
152
+ * "db" is not a binary: it names a typed catalog of diagnostic queries the
153
+ * agent runs through the database's own driver. Free SQL never runs.
154
+ * Database servers register by id or endpoint, never by name (names are
155
+ * not unique), so there is no placeholder to warn about.
156
+ */
157
+ [AiResourceType.DatabaseServer]: {
158
+ type: AiResourceType.DatabaseServer,
159
+ displayName: "Database server",
160
+ agentDisplayName: "Database AI agent",
161
+ agentAlias: "database",
162
+ programs: ["db"],
163
+ testCommands: ["db ping", "db version"],
164
+ identityEnvVars: [
165
+ "DATABASE_SERVER_ID",
166
+ "DATABASE_SYSTEM",
167
+ "DATABASE_SERVER_ADDRESS",
168
+ "DATABASE_SERVER_PORT",
169
+ ],
170
+ defaultIdentityPlaceholders: [],
171
+ },
172
+ // HOST_NAME defaults to the host's own hostname, so there is no placeholder.
173
+ [AiResourceType.Host]: {
174
+ type: AiResourceType.Host,
175
+ displayName: "Host",
176
+ agentDisplayName: "Host AI agent",
177
+ agentAlias: "host",
178
+ programs: HOST_PROGRAMS,
179
+ testCommands: ["uptime", "systemctl list-units --failed --no-pager"],
180
+ identityEnvVars: ["HOST_NAME"],
181
+ defaultIdentityPlaceholders: [],
182
+ },
183
+ };
184
+ export function getAiResourceTypeInfo(type) {
185
+ return AI_RESOURCE_TYPE_INFO[type];
186
+ }
187
+ /*
188
+ * Words an operator may set ONEUPTIME_AI_AGENT_RESOURCE_TYPE to besides the
189
+ * agentAlias itself. Compared after trimming, lowercasing and reading "_"
190
+ * as "-".
191
+ */
192
+ const EXTRA_AGENT_ALIASES = {
193
+ swarm: AiResourceType.DockerSwarmCluster,
194
+ vcenter: AiResourceType.VMwareVCenter,
195
+ db: AiResourceType.DatabaseServer,
196
+ };
197
+ /*
198
+ * Read a resource type from configuration or a request: an enum value in
199
+ * any case ("DockerHost", "dockerhost"), or an agent alias ("docker",
200
+ * "podman", "docker-swarm"/"swarm", "proxmox", "vmware"/"vcenter", "ceph",
201
+ * "database"/"db", "host"). Anything else is null — never a guess.
202
+ */
203
+ export function parseAiResourceType(value) {
204
+ if (typeof value !== "string") {
205
+ return null;
206
+ }
207
+ const trimmed = value.trim();
208
+ if (!trimmed) {
209
+ return null;
210
+ }
211
+ const folded = trimmed.toLowerCase();
212
+ for (const type of ALL_AI_RESOURCE_TYPES) {
213
+ if (type.toLowerCase() === folded) {
214
+ return type;
215
+ }
216
+ }
217
+ const alias = folded.replace(/_/g, "-");
218
+ for (const type of ALL_AI_RESOURCE_TYPES) {
219
+ if (AI_RESOURCE_TYPE_INFO[type].agentAlias === alias) {
220
+ return type;
221
+ }
222
+ }
223
+ if (Object.prototype.hasOwnProperty.call(EXTRA_AGENT_ALIASES, alias)) {
224
+ return EXTRA_AGENT_ALIASES[alias] || null;
225
+ }
226
+ return null;
227
+ }
228
+ /*
229
+ * Whether an agent's identity is one of its collector's defaults, compared
230
+ * the way the resource rows are looked up (trimmed, case-insensitively). The
231
+ * agent warns on true; it never refuses.
232
+ */
233
+ export function isDefaultIdentityPlaceholder(type, identifier) {
234
+ if (typeof identifier !== "string" || !isAiResourceType(type)) {
235
+ return false;
236
+ }
237
+ const folded = identifier.trim().toLowerCase();
238
+ return AI_RESOURCE_TYPE_INFO[type].defaultIdentityPlaceholders.some((placeholder) => {
239
+ return placeholder.toLowerCase() === folded;
240
+ });
241
+ }
242
+ //# sourceMappingURL=AiResourceType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AiResourceType.js","sourceRoot":"","sources":["../../../../Types/ResourceAiAgent/AiResourceType.ts"],"names":[],"mappings":"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"}