@oneuptime/common 11.0.1 → 11.0.3

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 (577) hide show
  1. package/Models/DatabaseModels/Alert.ts +276 -0
  2. package/Models/DatabaseModels/AlertLabelRule.ts +38 -0
  3. package/Models/DatabaseModels/AlertOwnerRule.ts +38 -0
  4. package/Models/DatabaseModels/CephCluster.ts +964 -0
  5. package/Models/DatabaseModels/CephClusterLabelRule.ts +514 -0
  6. package/Models/DatabaseModels/CephClusterOwnerRule.ts +596 -0
  7. package/Models/DatabaseModels/CephClusterOwnerTeam.ts +487 -0
  8. package/Models/DatabaseModels/CephClusterOwnerUser.ts +486 -0
  9. package/Models/DatabaseModels/CephResource.ts +809 -0
  10. package/Models/DatabaseModels/DockerSwarmCluster.ts +989 -0
  11. package/Models/DatabaseModels/DockerSwarmClusterLabelRule.ts +514 -0
  12. package/Models/DatabaseModels/DockerSwarmClusterOwnerRule.ts +596 -0
  13. package/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.ts +487 -0
  14. package/Models/DatabaseModels/DockerSwarmClusterOwnerUser.ts +486 -0
  15. package/Models/DatabaseModels/DockerSwarmResource.ts +750 -0
  16. package/Models/DatabaseModels/Host.ts +64 -0
  17. package/Models/DatabaseModels/Incident.ts +276 -0
  18. package/Models/DatabaseModels/IncidentLabelRule.ts +38 -0
  19. package/Models/DatabaseModels/IncidentOwnerRule.ts +38 -0
  20. package/Models/DatabaseModels/IncidentTemplate.ts +56 -0
  21. package/Models/DatabaseModels/Index.ts +48 -0
  22. package/Models/DatabaseModels/PodmanHost.ts +859 -0
  23. package/Models/DatabaseModels/PodmanHostLabelRule.ts +514 -0
  24. package/Models/DatabaseModels/PodmanHostOwnerRule.ts +596 -0
  25. package/Models/DatabaseModels/PodmanHostOwnerTeam.ts +487 -0
  26. package/Models/DatabaseModels/PodmanHostOwnerUser.ts +486 -0
  27. package/Models/DatabaseModels/PodmanResource.ts +498 -0
  28. package/Models/DatabaseModels/ProxmoxCluster.ts +943 -0
  29. package/Models/DatabaseModels/ProxmoxClusterLabelRule.ts +514 -0
  30. package/Models/DatabaseModels/ProxmoxClusterOwnerRule.ts +596 -0
  31. package/Models/DatabaseModels/ProxmoxClusterOwnerTeam.ts +487 -0
  32. package/Models/DatabaseModels/ProxmoxClusterOwnerUser.ts +486 -0
  33. package/Models/DatabaseModels/ProxmoxResource.ts +726 -0
  34. package/Models/DatabaseModels/ScheduledMaintenance.ts +220 -0
  35. package/Models/DatabaseModels/ScheduledMaintenanceLabelRule.ts +38 -0
  36. package/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.ts +38 -0
  37. package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +56 -0
  38. package/Models/DatabaseModels/TelemetryException.ts +2 -0
  39. package/Server/API/BillingInvoiceAPI.ts +47 -7
  40. package/Server/API/CephResourceAPI.ts +134 -0
  41. package/Server/API/DashboardAPI.ts +135 -0
  42. package/Server/API/DockerSwarmResourceAPI.ts +137 -0
  43. package/Server/API/ProjectAPI.ts +15 -0
  44. package/Server/API/ProxmoxResourceAPI.ts +132 -0
  45. package/Server/API/ResellerPlanAPI.ts +17 -0
  46. package/Server/API/TelemetryAPI.ts +8 -1
  47. package/Server/Infrastructure/GlobalCache.ts +8 -2
  48. package/Server/Infrastructure/Postgres/SchemaMigrations/1781500000000-AddProxmoxAndCephClusterTables.ts +163 -0
  49. package/Server/Infrastructure/Postgres/SchemaMigrations/1781587937032-MigrationName.ts +3199 -0
  50. package/Server/Infrastructure/Postgres/SchemaMigrations/1781600000000-AddProxmoxCephV2Columns.ts +211 -0
  51. package/Server/Infrastructure/Postgres/SchemaMigrations/1781600000001-AddProxmoxCephActivityAndRules.ts +590 -0
  52. package/Server/Infrastructure/Postgres/SchemaMigrations/1781700000000-AddProxmoxCephV3Columns.ts +64 -0
  53. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
  54. package/Server/Infrastructure/Redis.ts +40 -12
  55. package/Server/Services/AlertLabelRuleEngineService.ts +29 -0
  56. package/Server/Services/AlertOwnerRuleEngineService.ts +67 -0
  57. package/Server/Services/AnalyticsDatabaseService.ts +1 -1
  58. package/Server/Services/BillingService.ts +109 -21
  59. package/Server/Services/CephClusterLabelRuleEngineService.ts +200 -0
  60. package/Server/Services/CephClusterLabelRuleService.ts +14 -0
  61. package/Server/Services/CephClusterOwnerRuleEngineService.ts +218 -0
  62. package/Server/Services/CephClusterOwnerRuleService.ts +14 -0
  63. package/Server/Services/CephClusterOwnerTeamService.ts +10 -0
  64. package/Server/Services/CephClusterOwnerUserService.ts +10 -0
  65. package/Server/Services/CephClusterService.ts +401 -0
  66. package/Server/Services/CephResourceService.ts +383 -0
  67. package/Server/Services/CloudResourceService.ts +11 -3
  68. package/Server/Services/DockerHostService.ts +11 -3
  69. package/Server/Services/DockerSwarmClusterLabelRuleEngineService.ts +214 -0
  70. package/Server/Services/DockerSwarmClusterLabelRuleService.ts +14 -0
  71. package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +232 -0
  72. package/Server/Services/DockerSwarmClusterOwnerRuleService.ts +14 -0
  73. package/Server/Services/DockerSwarmClusterOwnerTeamService.ts +10 -0
  74. package/Server/Services/DockerSwarmClusterOwnerUserService.ts +10 -0
  75. package/Server/Services/DockerSwarmClusterService.ts +404 -0
  76. package/Server/Services/DockerSwarmResourceService.ts +381 -0
  77. package/Server/Services/ExceptionAggregationService.ts +3 -0
  78. package/Server/Services/HostService.ts +11 -3
  79. package/Server/Services/IncidentLabelRuleEngineService.ts +27 -0
  80. package/Server/Services/IncidentOwnerRuleEngineService.ts +67 -0
  81. package/Server/Services/IncidentService.ts +11 -0
  82. package/Server/Services/Index.ts +38 -0
  83. package/Server/Services/KubernetesClusterService.ts +11 -3
  84. package/Server/Services/LogAggregationService.ts +3 -0
  85. package/Server/Services/MetricAggregationService.ts +3 -0
  86. package/Server/Services/OpenTelemetryIngestService.ts +73 -0
  87. package/Server/Services/PodmanHostLabelRuleEngineService.ts +198 -0
  88. package/Server/Services/PodmanHostLabelRuleService.ts +14 -0
  89. package/Server/Services/PodmanHostOwnerRuleEngineService.ts +216 -0
  90. package/Server/Services/PodmanHostOwnerRuleService.ts +14 -0
  91. package/Server/Services/PodmanHostOwnerTeamService.ts +10 -0
  92. package/Server/Services/PodmanHostOwnerUserService.ts +10 -0
  93. package/Server/Services/PodmanHostService.ts +368 -0
  94. package/Server/Services/PodmanResourceService.ts +310 -0
  95. package/Server/Services/ProxmoxClusterLabelRuleEngineService.ts +204 -0
  96. package/Server/Services/ProxmoxClusterLabelRuleService.ts +14 -0
  97. package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +222 -0
  98. package/Server/Services/ProxmoxClusterOwnerRuleService.ts +14 -0
  99. package/Server/Services/ProxmoxClusterOwnerTeamService.ts +10 -0
  100. package/Server/Services/ProxmoxClusterOwnerUserService.ts +10 -0
  101. package/Server/Services/ProxmoxClusterService.ts +382 -0
  102. package/Server/Services/ProxmoxResourceService.ts +404 -0
  103. package/Server/Services/RumApplicationService.ts +11 -3
  104. package/Server/Services/ScheduledMaintenanceLabelRuleEngineService.ts +29 -0
  105. package/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.ts +67 -0
  106. package/Server/Services/ServerlessFunctionService.ts +11 -3
  107. package/Server/Services/TelemetryUsageBillingService.ts +59 -3
  108. package/Server/Services/TraceAggregationService.ts +3 -0
  109. package/Server/Types/AnalyticsDatabase/AggregateBy.ts +8 -23
  110. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +13 -0
  111. package/Server/Utils/Monitor/MonitorAlert.ts +55 -0
  112. package/Server/Utils/Monitor/MonitorClusterContext.ts +158 -0
  113. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +650 -4
  114. package/Server/Utils/Monitor/MonitorIncident.ts +175 -7
  115. package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +56 -6
  116. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +6 -1
  117. package/Server/Utils/Monitor/SeriesResourceLabels.ts +59 -0
  118. package/Server/Utils/Profiling.ts +37 -2
  119. package/Server/Utils/Telemetry/EntityRegistry.ts +4 -0
  120. package/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.ts +1096 -0
  121. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +49 -0
  122. package/Server/Utils/Telemetry/Telemetry.ts +10 -0
  123. package/Server/Utils/Telemetry/TelemetryEntity.ts +107 -0
  124. package/Server/Utils/Telemetry.ts +8 -19
  125. package/Tests/Server/API/BillingInvoiceAPI.test.ts +194 -0
  126. package/Tests/Server/API/ProjectAPI.test.ts +91 -0
  127. package/Tests/Server/API/ResellerPlanAPI.test.ts +207 -0
  128. package/Tests/Server/Infrastructure/GlobalCache.test.ts +100 -0
  129. package/Tests/Server/Services/BillingService.test.ts +323 -0
  130. package/Tests/Server/Services/CephResourceService.test.ts +264 -0
  131. package/Tests/Server/Services/ProxmoxResourceService.test.ts +326 -0
  132. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +322 -0
  133. package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +14 -0
  134. package/Tests/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.test.ts +879 -0
  135. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +196 -0
  136. package/Tests/Types/DockerSwarm/DockerSwarmInventoryExtractor.test.ts +667 -0
  137. package/Tests/Types/Monitor/CephAlertTemplates.test.ts +1231 -0
  138. package/Tests/Types/Monitor/DockerSwarmAlertTemplates.test.ts +528 -0
  139. package/Tests/Types/Monitor/ProxmoxAlertTemplates.test.ts +732 -0
  140. package/Tests/Utils/Telemetry/EntityRelationship.test.ts +49 -0
  141. package/Tests/Utils/Telemetry/HeartbeatAvailability.test.ts +423 -0
  142. package/Types/BaseDatabase/AggregationIntervalUtil.ts +74 -0
  143. package/Types/Dashboard/DashboardComponentType.ts +11 -0
  144. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +4 -0
  145. package/Types/Dashboard/DashboardComponents/DashboardCephOsdListComponent.ts +15 -0
  146. package/Types/Dashboard/DashboardComponents/DashboardCephPoolListComponent.ts +14 -0
  147. package/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.ts +17 -0
  148. package/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.ts +17 -0
  149. package/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.ts +16 -0
  150. package/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.ts +15 -0
  151. package/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.ts +16 -0
  152. package/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.ts +15 -0
  153. package/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.ts +15 -0
  154. package/Types/Dashboard/DashboardComponents/DashboardProxmoxGuestListComponent.ts +17 -0
  155. package/Types/Dashboard/DashboardComponents/DashboardProxmoxNodeListComponent.ts +16 -0
  156. package/Types/Dashboard/DashboardTemplates.ts +640 -0
  157. package/Types/DockerSwarm/DockerSwarmInventoryExtractor.ts +452 -0
  158. package/Types/Icon/IconProp.ts +3 -0
  159. package/Types/Monitor/CephAlertTemplates.ts +1647 -0
  160. package/Types/Monitor/CephMetricCatalog.ts +409 -0
  161. package/Types/Monitor/DockerSwarmAlertTemplates.ts +461 -0
  162. package/Types/Monitor/DockerSwarmMetricCatalog.ts +139 -0
  163. package/Types/Monitor/HostAlertTemplates.ts +455 -0
  164. package/Types/Monitor/HostMetricCatalog.ts +177 -0
  165. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +65 -0
  166. package/Types/Monitor/MonitorStep.ts +163 -0
  167. package/Types/Monitor/MonitorStepCephMonitor.ts +57 -0
  168. package/Types/Monitor/MonitorStepDockerSwarmMonitor.ts +74 -0
  169. package/Types/Monitor/MonitorStepHostMonitor.ts +30 -0
  170. package/Types/Monitor/MonitorStepPodmanMonitor.ts +38 -0
  171. package/Types/Monitor/MonitorStepProxmoxMonitor.ts +81 -0
  172. package/Types/Monitor/MonitorType.ts +71 -1
  173. package/Types/Monitor/PodmanAlertTemplates.ts +507 -0
  174. package/Types/Monitor/PodmanMetricCatalog.ts +226 -0
  175. package/Types/Monitor/ProxmoxAlertTemplates.ts +899 -0
  176. package/Types/Monitor/ProxmoxMetricCatalog.ts +382 -0
  177. package/Types/Permission.ts +1029 -104
  178. package/Types/Podman/PodmanInventoryExtractor.ts +343 -0
  179. package/Types/Telemetry/EntityType.ts +23 -0
  180. package/Types/Telemetry/ServiceType.ts +4 -0
  181. package/UI/Components/Icon/Icon.tsx +141 -0
  182. package/UI/Components/LogsViewer/LogsViewer.tsx +44 -1
  183. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +28 -0
  184. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +15 -5
  185. package/UI/Utils/Telemetry/Telemetry.ts +16 -21
  186. package/UI/Utils/TelemetryService.ts +8 -3
  187. package/Utils/Dashboard/Components/DashboardCephOsdListComponent.ts +63 -0
  188. package/Utils/Dashboard/Components/DashboardCephPoolListComponent.ts +32 -0
  189. package/Utils/Dashboard/Components/DashboardCephResourceListShared.ts +61 -0
  190. package/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.ts +70 -0
  191. package/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.ts +61 -0
  192. package/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.ts +71 -0
  193. package/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.ts +100 -0
  194. package/Utils/Dashboard/Components/DashboardPodmanHostListComponent.ts +88 -0
  195. package/Utils/Dashboard/Components/DashboardPodmanImageListComponent.ts +97 -0
  196. package/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.ts +87 -0
  197. package/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.ts +87 -0
  198. package/Utils/Dashboard/Components/DashboardProxmoxGuestListComponent.ts +69 -0
  199. package/Utils/Dashboard/Components/DashboardProxmoxNodeListComponent.ts +55 -0
  200. package/Utils/Dashboard/Components/DashboardProxmoxResourceListShared.ts +61 -0
  201. package/Utils/Dashboard/Components/Index.ts +79 -0
  202. package/Utils/Telemetry/EntityKey.ts +53 -0
  203. package/Utils/Telemetry/EntityRelationship.ts +6 -0
  204. package/Utils/Telemetry/HeartbeatAvailability.ts +262 -0
  205. package/build/dist/Models/DatabaseModels/Alert.js +270 -0
  206. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  207. package/build/dist/Models/DatabaseModels/AlertLabelRule.js +39 -0
  208. package/build/dist/Models/DatabaseModels/AlertLabelRule.js.map +1 -1
  209. package/build/dist/Models/DatabaseModels/AlertOwnerRule.js +39 -0
  210. package/build/dist/Models/DatabaseModels/AlertOwnerRule.js.map +1 -1
  211. package/build/dist/Models/DatabaseModels/CephCluster.js +992 -0
  212. package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -0
  213. package/build/dist/Models/DatabaseModels/CephClusterLabelRule.js +522 -0
  214. package/build/dist/Models/DatabaseModels/CephClusterLabelRule.js.map +1 -0
  215. package/build/dist/Models/DatabaseModels/CephClusterOwnerRule.js +603 -0
  216. package/build/dist/Models/DatabaseModels/CephClusterOwnerRule.js.map +1 -0
  217. package/build/dist/Models/DatabaseModels/CephClusterOwnerTeam.js +503 -0
  218. package/build/dist/Models/DatabaseModels/CephClusterOwnerTeam.js.map +1 -0
  219. package/build/dist/Models/DatabaseModels/CephClusterOwnerUser.js +502 -0
  220. package/build/dist/Models/DatabaseModels/CephClusterOwnerUser.js.map +1 -0
  221. package/build/dist/Models/DatabaseModels/CephResource.js +846 -0
  222. package/build/dist/Models/DatabaseModels/CephResource.js.map +1 -0
  223. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js +1018 -0
  224. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js.map +1 -0
  225. package/build/dist/Models/DatabaseModels/DockerSwarmClusterLabelRule.js +522 -0
  226. package/build/dist/Models/DatabaseModels/DockerSwarmClusterLabelRule.js.map +1 -0
  227. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerRule.js +603 -0
  228. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerRule.js.map +1 -0
  229. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js +503 -0
  230. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js.map +1 -0
  231. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js +502 -0
  232. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js.map +1 -0
  233. package/build/dist/Models/DatabaseModels/DockerSwarmResource.js +787 -0
  234. package/build/dist/Models/DatabaseModels/DockerSwarmResource.js.map +1 -0
  235. package/build/dist/Models/DatabaseModels/Host.js +63 -0
  236. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  237. package/build/dist/Models/DatabaseModels/Incident.js +270 -0
  238. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  239. package/build/dist/Models/DatabaseModels/IncidentLabelRule.js +39 -0
  240. package/build/dist/Models/DatabaseModels/IncidentLabelRule.js.map +1 -1
  241. package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js +39 -0
  242. package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js.map +1 -1
  243. package/build/dist/Models/DatabaseModels/IncidentTemplate.js +54 -0
  244. package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
  245. package/build/dist/Models/DatabaseModels/Index.js +48 -0
  246. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  247. package/build/dist/Models/DatabaseModels/PodmanHost.js +885 -0
  248. package/build/dist/Models/DatabaseModels/PodmanHost.js.map +1 -0
  249. package/build/dist/Models/DatabaseModels/PodmanHostLabelRule.js +522 -0
  250. package/build/dist/Models/DatabaseModels/PodmanHostLabelRule.js.map +1 -0
  251. package/build/dist/Models/DatabaseModels/PodmanHostOwnerRule.js +603 -0
  252. package/build/dist/Models/DatabaseModels/PodmanHostOwnerRule.js.map +1 -0
  253. package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js +503 -0
  254. package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js.map +1 -0
  255. package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js +502 -0
  256. package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js.map +1 -0
  257. package/build/dist/Models/DatabaseModels/PodmanResource.js +526 -0
  258. package/build/dist/Models/DatabaseModels/PodmanResource.js.map +1 -0
  259. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +967 -0
  260. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -0
  261. package/build/dist/Models/DatabaseModels/ProxmoxClusterLabelRule.js +522 -0
  262. package/build/dist/Models/DatabaseModels/ProxmoxClusterLabelRule.js.map +1 -0
  263. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerRule.js +603 -0
  264. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerRule.js.map +1 -0
  265. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerTeam.js +503 -0
  266. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerTeam.js.map +1 -0
  267. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerUser.js +502 -0
  268. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerUser.js.map +1 -0
  269. package/build/dist/Models/DatabaseModels/ProxmoxResource.js +761 -0
  270. package/build/dist/Models/DatabaseModels/ProxmoxResource.js.map +1 -0
  271. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +216 -0
  272. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  273. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js +39 -0
  274. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js.map +1 -1
  275. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js +39 -0
  276. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js.map +1 -1
  277. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +54 -0
  278. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
  279. package/build/dist/Models/DatabaseModels/TelemetryException.js +2 -0
  280. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  281. package/build/dist/Server/API/BillingInvoiceAPI.js +35 -5
  282. package/build/dist/Server/API/BillingInvoiceAPI.js.map +1 -1
  283. package/build/dist/Server/API/CephResourceAPI.js +98 -0
  284. package/build/dist/Server/API/CephResourceAPI.js.map +1 -0
  285. package/build/dist/Server/API/DashboardAPI.js +135 -0
  286. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  287. package/build/dist/Server/API/DockerSwarmResourceAPI.js +100 -0
  288. package/build/dist/Server/API/DockerSwarmResourceAPI.js.map +1 -0
  289. package/build/dist/Server/API/ProjectAPI.js +11 -0
  290. package/build/dist/Server/API/ProjectAPI.js.map +1 -1
  291. package/build/dist/Server/API/ProxmoxResourceAPI.js +95 -0
  292. package/build/dist/Server/API/ProxmoxResourceAPI.js.map +1 -0
  293. package/build/dist/Server/API/ResellerPlanAPI.js +17 -3
  294. package/build/dist/Server/API/ResellerPlanAPI.js.map +1 -1
  295. package/build/dist/Server/API/TelemetryAPI.js +8 -1
  296. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  297. package/build/dist/Server/Infrastructure/GlobalCache.js +7 -2
  298. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  299. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781500000000-AddProxmoxAndCephClusterTables.js +76 -0
  300. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781500000000-AddProxmoxAndCephClusterTables.js.map +1 -0
  301. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781587937032-MigrationName.js +1100 -0
  302. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781587937032-MigrationName.js.map +1 -0
  303. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000000-AddProxmoxCephV2Columns.js +108 -0
  304. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000000-AddProxmoxCephV2Columns.js.map +1 -0
  305. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000001-AddProxmoxCephActivityAndRules.js +253 -0
  306. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000001-AddProxmoxCephActivityAndRules.js.map +1 -0
  307. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781700000000-AddProxmoxCephV3Columns.js +43 -0
  308. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781700000000-AddProxmoxCephV3Columns.js.map +1 -0
  309. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  310. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  311. package/build/dist/Server/Infrastructure/Redis.js +31 -8
  312. package/build/dist/Server/Infrastructure/Redis.js.map +1 -1
  313. package/build/dist/Server/Services/AlertLabelRuleEngineService.js +30 -4
  314. package/build/dist/Server/Services/AlertLabelRuleEngineService.js.map +1 -1
  315. package/build/dist/Server/Services/AlertOwnerRuleEngineService.js +62 -5
  316. package/build/dist/Server/Services/AlertOwnerRuleEngineService.js.map +1 -1
  317. package/build/dist/Server/Services/AnalyticsDatabaseService.js +1 -1
  318. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  319. package/build/dist/Server/Services/BillingService.js +85 -23
  320. package/build/dist/Server/Services/BillingService.js.map +1 -1
  321. package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js +166 -0
  322. package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js.map +1 -0
  323. package/build/dist/Server/Services/CephClusterLabelRuleService.js +13 -0
  324. package/build/dist/Server/Services/CephClusterLabelRuleService.js.map +1 -0
  325. package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +186 -0
  326. package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -0
  327. package/build/dist/Server/Services/CephClusterOwnerRuleService.js +13 -0
  328. package/build/dist/Server/Services/CephClusterOwnerRuleService.js.map +1 -0
  329. package/build/dist/Server/Services/CephClusterOwnerTeamService.js +9 -0
  330. package/build/dist/Server/Services/CephClusterOwnerTeamService.js.map +1 -0
  331. package/build/dist/Server/Services/CephClusterOwnerUserService.js +9 -0
  332. package/build/dist/Server/Services/CephClusterOwnerUserService.js.map +1 -0
  333. package/build/dist/Server/Services/CephClusterService.js +353 -0
  334. package/build/dist/Server/Services/CephClusterService.js.map +1 -0
  335. package/build/dist/Server/Services/CephResourceService.js +257 -0
  336. package/build/dist/Server/Services/CephResourceService.js.map +1 -0
  337. package/build/dist/Server/Services/CloudResourceService.js +10 -2
  338. package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
  339. package/build/dist/Server/Services/DockerHostService.js +10 -2
  340. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  341. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +168 -0
  342. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -0
  343. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleService.js +13 -0
  344. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleService.js.map +1 -0
  345. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +188 -0
  346. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -0
  347. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleService.js +13 -0
  348. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleService.js.map +1 -0
  349. package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js +9 -0
  350. package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js.map +1 -0
  351. package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js +9 -0
  352. package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js.map +1 -0
  353. package/build/dist/Server/Services/DockerSwarmClusterService.js +353 -0
  354. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -0
  355. package/build/dist/Server/Services/DockerSwarmResourceService.js +258 -0
  356. package/build/dist/Server/Services/DockerSwarmResourceService.js.map +1 -0
  357. package/build/dist/Server/Services/ExceptionAggregationService.js +3 -0
  358. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  359. package/build/dist/Server/Services/HostService.js +10 -2
  360. package/build/dist/Server/Services/HostService.js.map +1 -1
  361. package/build/dist/Server/Services/IncidentLabelRuleEngineService.js +28 -4
  362. package/build/dist/Server/Services/IncidentLabelRuleEngineService.js.map +1 -1
  363. package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js +62 -5
  364. package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js.map +1 -1
  365. package/build/dist/Server/Services/IncidentService.js +8 -0
  366. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  367. package/build/dist/Server/Services/Index.js +38 -0
  368. package/build/dist/Server/Services/Index.js.map +1 -1
  369. package/build/dist/Server/Services/KubernetesClusterService.js +10 -2
  370. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  371. package/build/dist/Server/Services/LogAggregationService.js +3 -0
  372. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  373. package/build/dist/Server/Services/MetricAggregationService.js +3 -0
  374. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  375. package/build/dist/Server/Services/OpenTelemetryIngestService.js +69 -9
  376. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  377. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +166 -0
  378. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -0
  379. package/build/dist/Server/Services/PodmanHostLabelRuleService.js +13 -0
  380. package/build/dist/Server/Services/PodmanHostLabelRuleService.js.map +1 -0
  381. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +186 -0
  382. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -0
  383. package/build/dist/Server/Services/PodmanHostOwnerRuleService.js +13 -0
  384. package/build/dist/Server/Services/PodmanHostOwnerRuleService.js.map +1 -0
  385. package/build/dist/Server/Services/PodmanHostOwnerTeamService.js +9 -0
  386. package/build/dist/Server/Services/PodmanHostOwnerTeamService.js.map +1 -0
  387. package/build/dist/Server/Services/PodmanHostOwnerUserService.js +9 -0
  388. package/build/dist/Server/Services/PodmanHostOwnerUserService.js.map +1 -0
  389. package/build/dist/Server/Services/PodmanHostService.js +319 -0
  390. package/build/dist/Server/Services/PodmanHostService.js.map +1 -0
  391. package/build/dist/Server/Services/PodmanResourceService.js +196 -0
  392. package/build/dist/Server/Services/PodmanResourceService.js.map +1 -0
  393. package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js +166 -0
  394. package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js.map +1 -0
  395. package/build/dist/Server/Services/ProxmoxClusterLabelRuleService.js +13 -0
  396. package/build/dist/Server/Services/ProxmoxClusterLabelRuleService.js.map +1 -0
  397. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +186 -0
  398. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -0
  399. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleService.js +13 -0
  400. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleService.js.map +1 -0
  401. package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js +9 -0
  402. package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js.map +1 -0
  403. package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js +9 -0
  404. package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js.map +1 -0
  405. package/build/dist/Server/Services/ProxmoxClusterService.js +337 -0
  406. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -0
  407. package/build/dist/Server/Services/ProxmoxResourceService.js +285 -0
  408. package/build/dist/Server/Services/ProxmoxResourceService.js.map +1 -0
  409. package/build/dist/Server/Services/RumApplicationService.js +10 -2
  410. package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
  411. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js +30 -4
  412. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js.map +1 -1
  413. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js +62 -5
  414. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js.map +1 -1
  415. package/build/dist/Server/Services/ServerlessFunctionService.js +10 -2
  416. package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
  417. package/build/dist/Server/Services/TelemetryUsageBillingService.js +43 -3
  418. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  419. package/build/dist/Server/Services/TraceAggregationService.js +3 -0
  420. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  421. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +8 -25
  422. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
  423. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +13 -0
  424. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  425. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +44 -0
  426. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  427. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js +118 -0
  428. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js.map +1 -0
  429. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +422 -4
  430. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  431. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +137 -8
  432. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  433. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +32 -6
  434. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
  435. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +6 -1
  436. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  437. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +39 -0
  438. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
  439. package/build/dist/Server/Utils/Profiling.js +24 -3
  440. package/build/dist/Server/Utils/Profiling.js.map +1 -1
  441. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +4 -0
  442. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  443. package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js +854 -0
  444. package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js.map +1 -0
  445. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +30 -0
  446. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  447. package/build/dist/Server/Utils/Telemetry/Telemetry.js +6 -0
  448. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  449. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +80 -0
  450. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  451. package/build/dist/Server/Utils/Telemetry.js +8 -10
  452. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  453. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +69 -0
  454. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -0
  455. package/build/dist/Types/Dashboard/DashboardComponentType.js +11 -0
  456. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  457. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +4 -0
  458. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  459. package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephOsdListComponent.js +2 -0
  460. package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephOsdListComponent.js.map +1 -0
  461. package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephPoolListComponent.js +2 -0
  462. package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephPoolListComponent.js.map +1 -0
  463. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.js +2 -0
  464. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.js.map +1 -0
  465. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.js +2 -0
  466. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.js.map +1 -0
  467. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.js +2 -0
  468. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.js.map +1 -0
  469. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.js +2 -0
  470. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.js.map +1 -0
  471. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.js +2 -0
  472. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.js.map +1 -0
  473. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.js +2 -0
  474. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.js.map +1 -0
  475. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.js +2 -0
  476. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.js.map +1 -0
  477. package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxGuestListComponent.js +2 -0
  478. package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxGuestListComponent.js.map +1 -0
  479. package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxNodeListComponent.js +2 -0
  480. package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxNodeListComponent.js.map +1 -0
  481. package/build/dist/Types/Dashboard/DashboardTemplates.js +562 -0
  482. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  483. package/build/dist/Types/DockerSwarm/DockerSwarmInventoryExtractor.js +359 -0
  484. package/build/dist/Types/DockerSwarm/DockerSwarmInventoryExtractor.js.map +1 -0
  485. package/build/dist/Types/Icon/IconProp.js +3 -0
  486. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  487. package/build/dist/Types/Monitor/CephAlertTemplates.js +1379 -0
  488. package/build/dist/Types/Monitor/CephAlertTemplates.js.map +1 -0
  489. package/build/dist/Types/Monitor/CephMetricCatalog.js +353 -0
  490. package/build/dist/Types/Monitor/CephMetricCatalog.js.map +1 -0
  491. package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js +358 -0
  492. package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js.map +1 -0
  493. package/build/dist/Types/Monitor/DockerSwarmMetricCatalog.js +103 -0
  494. package/build/dist/Types/Monitor/DockerSwarmMetricCatalog.js.map +1 -0
  495. package/build/dist/Types/Monitor/HostAlertTemplates.js +365 -0
  496. package/build/dist/Types/Monitor/HostAlertTemplates.js.map +1 -0
  497. package/build/dist/Types/Monitor/HostMetricCatalog.js +138 -0
  498. package/build/dist/Types/Monitor/HostMetricCatalog.js.map +1 -0
  499. package/build/dist/Types/Monitor/MonitorStep.js +115 -0
  500. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  501. package/build/dist/Types/Monitor/MonitorStepCephMonitor.js +34 -0
  502. package/build/dist/Types/Monitor/MonitorStepCephMonitor.js.map +1 -0
  503. package/build/dist/Types/Monitor/MonitorStepDockerSwarmMonitor.js +21 -0
  504. package/build/dist/Types/Monitor/MonitorStepDockerSwarmMonitor.js.map +1 -0
  505. package/build/dist/Types/Monitor/MonitorStepHostMonitor.js +20 -0
  506. package/build/dist/Types/Monitor/MonitorStepHostMonitor.js.map +1 -0
  507. package/build/dist/Types/Monitor/MonitorStepPodmanMonitor.js +21 -0
  508. package/build/dist/Types/Monitor/MonitorStepPodmanMonitor.js.map +1 -0
  509. package/build/dist/Types/Monitor/MonitorStepProxmoxMonitor.js +36 -0
  510. package/build/dist/Types/Monitor/MonitorStepProxmoxMonitor.js.map +1 -0
  511. package/build/dist/Types/Monitor/MonitorType.js +66 -1
  512. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  513. package/build/dist/Types/Monitor/PodmanAlertTemplates.js +410 -0
  514. package/build/dist/Types/Monitor/PodmanAlertTemplates.js.map +1 -0
  515. package/build/dist/Types/Monitor/PodmanMetricCatalog.js +192 -0
  516. package/build/dist/Types/Monitor/PodmanMetricCatalog.js.map +1 -0
  517. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js +743 -0
  518. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js.map +1 -0
  519. package/build/dist/Types/Monitor/ProxmoxMetricCatalog.js +320 -0
  520. package/build/dist/Types/Monitor/ProxmoxMetricCatalog.js.map +1 -0
  521. package/build/dist/Types/Permission.js +824 -0
  522. package/build/dist/Types/Permission.js.map +1 -1
  523. package/build/dist/Types/Podman/PodmanInventoryExtractor.js +293 -0
  524. package/build/dist/Types/Podman/PodmanInventoryExtractor.js.map +1 -0
  525. package/build/dist/Types/Telemetry/EntityType.js +23 -0
  526. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  527. package/build/dist/Types/Telemetry/ServiceType.js +4 -0
  528. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  529. package/build/dist/UI/Components/Icon/Icon.js +49 -0
  530. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  531. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +30 -2
  532. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  533. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +22 -0
  534. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  535. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +11 -1
  536. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  537. package/build/dist/UI/Utils/Telemetry/Telemetry.js +11 -10
  538. package/build/dist/UI/Utils/Telemetry/Telemetry.js.map +1 -1
  539. package/build/dist/UI/Utils/TelemetryService.js +6 -2
  540. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  541. package/build/dist/Utils/Dashboard/Components/DashboardCephOsdListComponent.js +50 -0
  542. package/build/dist/Utils/Dashboard/Components/DashboardCephOsdListComponent.js.map +1 -0
  543. package/build/dist/Utils/Dashboard/Components/DashboardCephPoolListComponent.js +27 -0
  544. package/build/dist/Utils/Dashboard/Components/DashboardCephPoolListComponent.js.map +1 -0
  545. package/build/dist/Utils/Dashboard/Components/DashboardCephResourceListShared.js +46 -0
  546. package/build/dist/Utils/Dashboard/Components/DashboardCephResourceListShared.js.map +1 -0
  547. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.js +55 -0
  548. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.js.map +1 -0
  549. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.js +46 -0
  550. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.js.map +1 -0
  551. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.js +55 -0
  552. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.js.map +1 -0
  553. package/build/dist/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.js +77 -0
  554. package/build/dist/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.js.map +1 -0
  555. package/build/dist/Utils/Dashboard/Components/DashboardPodmanHostListComponent.js +71 -0
  556. package/build/dist/Utils/Dashboard/Components/DashboardPodmanHostListComponent.js.map +1 -0
  557. package/build/dist/Utils/Dashboard/Components/DashboardPodmanImageListComponent.js +77 -0
  558. package/build/dist/Utils/Dashboard/Components/DashboardPodmanImageListComponent.js.map +1 -0
  559. package/build/dist/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.js +68 -0
  560. package/build/dist/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.js.map +1 -0
  561. package/build/dist/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.js +68 -0
  562. package/build/dist/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.js.map +1 -0
  563. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxGuestListComponent.js +55 -0
  564. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxGuestListComponent.js.map +1 -0
  565. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxNodeListComponent.js +42 -0
  566. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxNodeListComponent.js.map +1 -0
  567. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxResourceListShared.js +46 -0
  568. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxResourceListShared.js.map +1 -0
  569. package/build/dist/Utils/Dashboard/Components/Index.js +44 -0
  570. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  571. package/build/dist/Utils/Telemetry/EntityKey.js +41 -0
  572. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
  573. package/build/dist/Utils/Telemetry/EntityRelationship.js +3 -0
  574. package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -1
  575. package/build/dist/Utils/Telemetry/HeartbeatAvailability.js +174 -0
  576. package/build/dist/Utils/Telemetry/HeartbeatAvailability.js.map +1 -0
  577. package/package.json +29 -21
@@ -9,6 +9,7 @@ import FacetSection from "./FacetSection";
9
9
  import Service from "../../../../Models/DatabaseModels/Service";
10
10
  import Host from "../../../../Models/DatabaseModels/Host";
11
11
  import DockerHost from "../../../../Models/DatabaseModels/DockerHost";
12
+ import PodmanHost from "../../../../Models/DatabaseModels/PodmanHost";
12
13
  import KubernetesCluster from "../../../../Models/DatabaseModels/KubernetesCluster";
13
14
  import Dictionary from "../../../../Types/Dictionary";
14
15
  import ComponentLoader from "../../ComponentLoader/ComponentLoader";
@@ -21,6 +22,7 @@ export interface LogsFacetSidebarProps {
21
22
  serviceMap: Dictionary<Service>;
22
23
  hostMap?: Dictionary<Host>;
23
24
  dockerHostMap?: Dictionary<DockerHost>;
25
+ podmanHostMap?: Dictionary<PodmanHost>;
24
26
  kubernetesClusterMap?: Dictionary<KubernetesCluster>;
25
27
  onIncludeFilter: (facetKey: string, value: string) => void;
26
28
  onExcludeFilter: (facetKey: string, value: string) => void;
@@ -42,6 +44,7 @@ const RESOURCE_FACET_KEYS: ReadonlySet<string> = new Set([
42
44
  "primaryEntityId",
43
45
  "hostId",
44
46
  "dockerHostId",
47
+ "podmanHostId",
45
48
  "kubernetesClusterId",
46
49
  ]);
47
50
 
@@ -126,6 +129,23 @@ function buildDockerHostDisplayMap(
126
129
  return map;
127
130
  }
128
131
 
132
+ function buildPodmanHostDisplayMap(
133
+ podmanHostMap: Dictionary<PodmanHost> | undefined,
134
+ ): Record<string, string> {
135
+ const map: Record<string, string> = {};
136
+ if (!podmanHostMap) {
137
+ return map;
138
+ }
139
+ for (const [id, podmanHost] of Object.entries(podmanHostMap)) {
140
+ const label: string | undefined =
141
+ podmanHost?.name || podmanHost?.hostIdentifier;
142
+ if (label) {
143
+ map[id] = label;
144
+ }
145
+ }
146
+ return map;
147
+ }
148
+
129
149
  function buildClusterDisplayMap(
130
150
  clusterMap: Dictionary<KubernetesCluster> | undefined,
131
151
  ): Record<string, string> {
@@ -149,6 +169,7 @@ function getFacetTitle(key: string): string {
149
169
  primaryEntityId: "Service",
150
170
  hostId: "Host",
151
171
  dockerHostId: "Docker Host",
172
+ podmanHostId: "Podman Host",
152
173
  kubernetesClusterId: "Kubernetes Cluster",
153
174
  traceId: "Trace ID",
154
175
  spanId: "Span ID",
@@ -180,6 +201,10 @@ const LogsFacetSidebar: FunctionComponent<LogsFacetSidebarProps> = (
180
201
  return buildDockerHostDisplayMap(props.dockerHostMap);
181
202
  }, [props.dockerHostMap]);
182
203
 
204
+ const podmanHostDisplayMap: Record<string, string> = useMemo(() => {
205
+ return buildPodmanHostDisplayMap(props.podmanHostMap);
206
+ }, [props.podmanHostMap]);
207
+
183
208
  const clusterDisplayMap: Record<string, string> = useMemo(() => {
184
209
  return buildClusterDisplayMap(props.kubernetesClusterMap);
185
210
  }, [props.kubernetesClusterMap]);
@@ -190,6 +215,7 @@ const LogsFacetSidebar: FunctionComponent<LogsFacetSidebarProps> = (
190
215
  "primaryEntityId",
191
216
  "hostId",
192
217
  "dockerHostId",
218
+ "podmanHostId",
193
219
  "kubernetesClusterId",
194
220
  ];
195
221
  const otherKeys: Array<string> = Object.keys(props.facetData).filter(
@@ -287,6 +313,8 @@ const LogsFacetSidebar: FunctionComponent<LogsFacetSidebarProps> = (
287
313
  valueDisplayMap = hostDisplayMap;
288
314
  } else if (key === "dockerHostId") {
289
315
  valueDisplayMap = dockerHostDisplayMap;
316
+ } else if (key === "podmanHostId") {
317
+ valueDisplayMap = podmanHostDisplayMap;
290
318
  } else if (key === "kubernetesClusterId") {
291
319
  valueDisplayMap = clusterDisplayMap;
292
320
  } else if (key === "severityText") {
@@ -32,10 +32,10 @@ export default class TemplateVariablesCatalog {
32
32
  monitorType: MonitorType;
33
33
  /**
34
34
  * Attribute keys the user has configured on the metric query
35
- * (e.g. ["host.name", "region"]). For metric/kubernetes/docker
36
- * monitors, these become per-series template variables — one
37
- * incident fires per unique value combination, and each incident
38
- * can reference the label values via `{{host.name}}` etc.
35
+ * (e.g. ["host.name", "region"]). For metric/kubernetes/docker/
36
+ * proxmox/ceph monitors, these become per-series template variables
37
+ * — one incident fires per unique value combination, and each
38
+ * incident can reference the label values via `{{host.name}}` etc.
39
39
  */
40
40
  seriesAttributeKeys?: Array<string> | undefined;
41
41
  }): Array<TemplateVariableGroup> {
@@ -52,7 +52,12 @@ export default class TemplateVariablesCatalog {
52
52
  if (
53
53
  input.monitorType === MonitorType.Metrics ||
54
54
  input.monitorType === MonitorType.Kubernetes ||
55
- input.monitorType === MonitorType.Docker
55
+ input.monitorType === MonitorType.Docker ||
56
+ input.monitorType === MonitorType.Host ||
57
+ input.monitorType === MonitorType.Podman ||
58
+ input.monitorType === MonitorType.DockerSwarm ||
59
+ input.monitorType === MonitorType.Proxmox ||
60
+ input.monitorType === MonitorType.Ceph
56
61
  ) {
57
62
  groups.push(
58
63
  TemplateVariablesCatalog.seriesLabelsGroup(input.seriesAttributeKeys),
@@ -485,6 +490,11 @@ export default class TemplateVariablesCatalog {
485
490
  case MonitorType.Metrics:
486
491
  case MonitorType.Kubernetes:
487
492
  case MonitorType.Docker:
493
+ case MonitorType.Host:
494
+ case MonitorType.Podman:
495
+ case MonitorType.DockerSwarm:
496
+ case MonitorType.Proxmox:
497
+ case MonitorType.Ceph:
488
498
  return {
489
499
  title: "Metric",
490
500
  variables: [
@@ -8,14 +8,16 @@ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
8
8
  import { registerInstrumentations } from "@opentelemetry/instrumentation";
9
9
  import { FetchInstrumentation } from "@opentelemetry/instrumentation-fetch";
10
10
  import { XMLHttpRequestInstrumentation } from "@opentelemetry/instrumentation-xml-http-request";
11
- import { Resource } from "@opentelemetry/resources";
11
+ import { resourceFromAttributes } from "@opentelemetry/resources";
12
12
  import {
13
13
  BatchSpanProcessor,
14
14
  TracerConfig,
15
15
  WebTracerProvider,
16
16
  } from "@opentelemetry/sdk-trace-web";
17
- import type { SpanExporter } from "@opentelemetry/sdk-trace-base";
18
- import type { SpanExporter as WebSpanExporter } from "@opentelemetry/sdk-trace-web/node_modules/@opentelemetry/sdk-trace-base/build/src/export/SpanExporter";
17
+ import type {
18
+ SpanExporter,
19
+ SpanProcessor,
20
+ } from "@opentelemetry/sdk-trace-base";
19
21
  import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
20
22
  import URL from "../../../Types/API/URL";
21
23
 
@@ -87,14 +89,6 @@ export default class Telemetry {
87
89
  Object.keys(OpenTelemetryExporterOtlpHeaders).length > 0;
88
90
 
89
91
  if (OpenTelemetryExporterOtlpEndpoint && hasHeaders) {
90
- const providerConfig: TracerConfig = {
91
- resource: new Resource({
92
- [ATTR_SERVICE_NAME]: data.serviceName,
93
- }),
94
- };
95
-
96
- const provider: WebTracerProvider = new WebTracerProvider(providerConfig);
97
-
98
92
  const traceExporter: SpanExporter = new OTLPTraceExporter({
99
93
  url: URL.fromString(
100
94
  OpenTelemetryExporterOtlpEndpoint?.toString() + "/v1/traces",
@@ -102,17 +96,18 @@ export default class Telemetry {
102
96
  headers: OpenTelemetryExporterOtlpHeaders,
103
97
  }) as unknown as SpanExporter;
104
98
 
105
- const webTraceExporter: WebSpanExporter =
106
- traceExporter as unknown as WebSpanExporter;
107
-
108
- provider.addSpanProcessor(new BatchSpanProcessor(webTraceExporter));
99
+ const providerConfig: TracerConfig = {
100
+ resource: resourceFromAttributes({
101
+ [ATTR_SERVICE_NAME]: data.serviceName,
102
+ }),
103
+ // Stamp global RUM attributes (userId, projectId, ...) onto every span.
104
+ spanProcessors: [
105
+ new BatchSpanProcessor(traceExporter),
106
+ new GlobalAttributeSpanProcessor() as unknown as SpanProcessor,
107
+ ],
108
+ };
109
109
 
110
- // Stamp global RUM attributes (userId, projectId, ...) onto every span.
111
- provider.addSpanProcessor(
112
- new GlobalAttributeSpanProcessor() as unknown as Parameters<
113
- WebTracerProvider["addSpanProcessor"]
114
- >[0],
115
- );
110
+ const provider: WebTracerProvider = new WebTracerProvider(providerConfig);
116
111
 
117
112
  provider.register({
118
113
  contextManager: new ZoneContextManager(),
@@ -23,7 +23,8 @@ export const UNKNOWN_SERVICE_NAME: string = "Unknown Service";
23
23
  * primaryEntityType) to something renderable. Either a Service (a real
24
24
  * OpenTelemetry service, or the synthetic "Unknown Service" for the
25
25
  * unattributed bucket) — or a plain `label` for infrastructure resource
26
- * types (Host / DockerHost / KubernetesCluster) that have no Service row.
26
+ * types (Host / DockerHost / KubernetesCluster / ProxmoxCluster /
27
+ * CephCluster) that have no Service row.
27
28
  */
28
29
  export interface ResolvedTelemetryResource {
29
30
  service?: Service;
@@ -66,8 +67,9 @@ export default class TelemetryServiceUtil {
66
67
  * old server-side `service` ORM relation on TelemetryException: a real
67
68
  * Service resolves from the loaded list, the unattributed bucket resolves
68
69
  * to the synthetic "Unknown Service", and Host / DockerHost /
69
- * KubernetesCluster resolve to a type label (no Service row exists for
70
- * them). Mirrors how the ClickHouse analytics rows are resolved.
70
+ * KubernetesCluster / ProxmoxCluster / CephCluster resolve to a type
71
+ * label (no Service row exists for them). Mirrors how the ClickHouse
72
+ * analytics rows are resolved.
71
73
  */
72
74
  public static resolveTelemetryResource(data: {
73
75
  primaryEntityId: ObjectID | string | null | undefined;
@@ -100,7 +102,10 @@ export default class TelemetryServiceUtil {
100
102
  const typeLabels: Record<string, string> = {
101
103
  [ServiceType.Host]: "Host telemetry",
102
104
  [ServiceType.DockerHost]: "Docker host telemetry",
105
+ [ServiceType.PodmanHost]: "Podman host telemetry",
103
106
  [ServiceType.KubernetesCluster]: "Kubernetes telemetry",
107
+ [ServiceType.ProxmoxCluster]: "Proxmox Cluster",
108
+ [ServiceType.CephCluster]: "Ceph Cluster",
104
109
  };
105
110
  const label: string | undefined = data.primaryEntityType
106
111
  ? typeLabels[data.primaryEntityType.toString()]
@@ -0,0 +1,63 @@
1
+ import DashboardCephOsdListComponent from "../../../Types/Dashboard/DashboardComponents/DashboardCephOsdListComponent";
2
+ import { ObjectType } from "../../../Types/JSON";
3
+ import ObjectID from "../../../Types/ObjectID";
4
+ import DashboardBaseComponentUtil from "./DashboardBaseComponent";
5
+ import {
6
+ ComponentArgument,
7
+ ComponentInputType,
8
+ } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
9
+ import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
10
+ import {
11
+ CephFiltersSection,
12
+ getCephCommonArguments,
13
+ } from "./DashboardCephResourceListShared";
14
+
15
+ export default class DashboardCephOsdListComponentUtil extends DashboardBaseComponentUtil {
16
+ public static override getDefaultComponent(): DashboardCephOsdListComponent {
17
+ return {
18
+ _type: ObjectType.DashboardComponent,
19
+ componentType: DashboardComponentType.CephOsdList,
20
+ widthInDashboardUnits: 6,
21
+ heightInDashboardUnits: 4,
22
+ topInDashboardUnits: 0,
23
+ leftInDashboardUnits: 0,
24
+ componentId: ObjectID.generate(),
25
+ minHeightInDashboardUnits: 3,
26
+ minWidthInDashboardUnits: 6,
27
+ arguments: {
28
+ maxRows: 25,
29
+ /*
30
+ * The classic "OSD wall" — a honeycomb where each cell is an
31
+ * OSD colored by up/in state — is the view operators expect
32
+ * for this widget, so honeycomb is the default. The list view
33
+ * stays one dropdown away.
34
+ */
35
+ viewMode: "honeycomb",
36
+ },
37
+ };
38
+ }
39
+
40
+ public static override getComponentConfigArguments(): Array<
41
+ ComponentArgument<DashboardCephOsdListComponent>
42
+ > {
43
+ const args: Array<ComponentArgument<DashboardCephOsdListComponent>> =
44
+ getCephCommonArguments<DashboardCephOsdListComponent>();
45
+
46
+ args.push({
47
+ name: "State",
48
+ description: "Quick filter by OSD up/in state",
49
+ required: false,
50
+ type: ComponentInputType.Dropdown,
51
+ id: "stateFilter",
52
+ section: CephFiltersSection,
53
+ dropdownOptions: [
54
+ { label: "All", value: "" },
55
+ { label: "Up only", value: "up" },
56
+ { label: "Down only", value: "down" },
57
+ { label: "Out only", value: "out" },
58
+ ],
59
+ });
60
+
61
+ return args;
62
+ }
63
+ }
@@ -0,0 +1,32 @@
1
+ import DashboardCephPoolListComponent from "../../../Types/Dashboard/DashboardComponents/DashboardCephPoolListComponent";
2
+ import { ObjectType } from "../../../Types/JSON";
3
+ import ObjectID from "../../../Types/ObjectID";
4
+ import DashboardBaseComponentUtil from "./DashboardBaseComponent";
5
+ import { ComponentArgument } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
6
+ import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
7
+ import { getCephCommonArguments } from "./DashboardCephResourceListShared";
8
+
9
+ export default class DashboardCephPoolListComponentUtil extends DashboardBaseComponentUtil {
10
+ public static override getDefaultComponent(): DashboardCephPoolListComponent {
11
+ return {
12
+ _type: ObjectType.DashboardComponent,
13
+ componentType: DashboardComponentType.CephPoolList,
14
+ widthInDashboardUnits: 6,
15
+ heightInDashboardUnits: 4,
16
+ topInDashboardUnits: 0,
17
+ leftInDashboardUnits: 0,
18
+ componentId: ObjectID.generate(),
19
+ minHeightInDashboardUnits: 3,
20
+ minWidthInDashboardUnits: 6,
21
+ arguments: {
22
+ maxRows: 25,
23
+ },
24
+ };
25
+ }
26
+
27
+ public static override getComponentConfigArguments(): Array<
28
+ ComponentArgument<DashboardCephPoolListComponent>
29
+ > {
30
+ return getCephCommonArguments<DashboardCephPoolListComponent>();
31
+ }
32
+ }
@@ -0,0 +1,61 @@
1
+ import {
2
+ ComponentArgument,
3
+ ComponentArgumentSection,
4
+ ComponentInputType,
5
+ EntityFilterModelType,
6
+ } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
7
+ import DashboardBaseComponent from "../../../Types/Dashboard/DashboardComponents/DashboardBaseComponent";
8
+ import { getViewModeArgument } from "./DashboardListSharedArgs";
9
+
10
+ export const CephDisplaySection: ComponentArgumentSection = {
11
+ name: "Display Options",
12
+ description: "Configure the widget title and row limit",
13
+ order: 1,
14
+ };
15
+
16
+ export const CephFiltersSection: ComponentArgumentSection = {
17
+ name: "Filters",
18
+ description: "Narrow down which resources are shown",
19
+ order: 2,
20
+ defaultCollapsed: true,
21
+ };
22
+
23
+ export function getCephCommonArguments<
24
+ T extends DashboardBaseComponent,
25
+ >(): Array<ComponentArgument<T>> {
26
+ const args: Array<ComponentArgument<T>> = [];
27
+
28
+ args.push({
29
+ name: "Title",
30
+ description: "Header shown above the list",
31
+ required: false,
32
+ type: ComponentInputType.Text,
33
+ id: "title" as keyof T["arguments"],
34
+ section: CephDisplaySection,
35
+ });
36
+
37
+ args.push({
38
+ name: "Max Rows",
39
+ description: "Maximum number of rows to show",
40
+ required: false,
41
+ type: ComponentInputType.Number,
42
+ id: "maxRows" as keyof T["arguments"],
43
+ placeholder: "25",
44
+ section: CephDisplaySection,
45
+ });
46
+
47
+ args.push(getViewModeArgument<T>(CephDisplaySection));
48
+
49
+ args.push({
50
+ name: "Clusters",
51
+ description: "Show only resources from the selected Ceph clusters",
52
+ required: false,
53
+ type: ComponentInputType.EntityMultiSelectDropdown,
54
+ id: "cephClusterIds" as keyof T["arguments"],
55
+ placeholder: "All clusters",
56
+ section: CephFiltersSection,
57
+ entityFilterModelType: EntityFilterModelType.CephCluster,
58
+ });
59
+
60
+ return args;
61
+ }
@@ -0,0 +1,70 @@
1
+ import DashboardDockerSwarmNodeListComponent from "../../../Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent";
2
+ import { ObjectType } from "../../../Types/JSON";
3
+ import ObjectID from "../../../Types/ObjectID";
4
+ import DashboardBaseComponentUtil from "./DashboardBaseComponent";
5
+ import {
6
+ ComponentArgument,
7
+ ComponentInputType,
8
+ } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
9
+ import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
10
+ import {
11
+ DockerSwarmFiltersSection,
12
+ getDockerSwarmCommonArguments,
13
+ } from "./DashboardDockerSwarmResourceListShared";
14
+
15
+ export default class DashboardDockerSwarmNodeListComponentUtil extends DashboardBaseComponentUtil {
16
+ public static override getDefaultComponent(): DashboardDockerSwarmNodeListComponent {
17
+ return {
18
+ _type: ObjectType.DashboardComponent,
19
+ componentType: DashboardComponentType.DockerSwarmNodeList,
20
+ widthInDashboardUnits: 6,
21
+ heightInDashboardUnits: 4,
22
+ topInDashboardUnits: 0,
23
+ leftInDashboardUnits: 0,
24
+ componentId: ObjectID.generate(),
25
+ minHeightInDashboardUnits: 3,
26
+ minWidthInDashboardUnits: 6,
27
+ arguments: {
28
+ maxRows: 25,
29
+ },
30
+ };
31
+ }
32
+
33
+ public static override getComponentConfigArguments(): Array<
34
+ ComponentArgument<DashboardDockerSwarmNodeListComponent>
35
+ > {
36
+ const args: Array<
37
+ ComponentArgument<DashboardDockerSwarmNodeListComponent>
38
+ > = getDockerSwarmCommonArguments<DashboardDockerSwarmNodeListComponent>();
39
+
40
+ args.push({
41
+ name: "Role",
42
+ description: "Show only manager nodes or only worker nodes",
43
+ required: false,
44
+ type: ComponentInputType.Dropdown,
45
+ id: "roleFilter",
46
+ section: DockerSwarmFiltersSection,
47
+ dropdownOptions: [
48
+ { label: "All", value: "" },
49
+ { label: "Managers only", value: "manager" },
50
+ { label: "Workers only", value: "worker" },
51
+ ],
52
+ });
53
+
54
+ args.push({
55
+ name: "Status",
56
+ description: "Quick filter by node readiness",
57
+ required: false,
58
+ type: ComponentInputType.Dropdown,
59
+ id: "statusFilter",
60
+ section: DockerSwarmFiltersSection,
61
+ dropdownOptions: [
62
+ { label: "All", value: "" },
63
+ { label: "Ready only", value: "ready" },
64
+ { label: "Not ready only", value: "notready" },
65
+ ],
66
+ });
67
+
68
+ return args;
69
+ }
70
+ }
@@ -0,0 +1,61 @@
1
+ import {
2
+ ComponentArgument,
3
+ ComponentArgumentSection,
4
+ ComponentInputType,
5
+ EntityFilterModelType,
6
+ } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
7
+ import DashboardBaseComponent from "../../../Types/Dashboard/DashboardComponents/DashboardBaseComponent";
8
+ import { getViewModeArgument } from "./DashboardListSharedArgs";
9
+
10
+ export const DockerSwarmDisplaySection: ComponentArgumentSection = {
11
+ name: "Display Options",
12
+ description: "Configure the widget title and row limit",
13
+ order: 1,
14
+ };
15
+
16
+ export const DockerSwarmFiltersSection: ComponentArgumentSection = {
17
+ name: "Filters",
18
+ description: "Narrow down which resources are shown",
19
+ order: 2,
20
+ defaultCollapsed: true,
21
+ };
22
+
23
+ export function getDockerSwarmCommonArguments<
24
+ T extends DashboardBaseComponent,
25
+ >(): Array<ComponentArgument<T>> {
26
+ const args: Array<ComponentArgument<T>> = [];
27
+
28
+ args.push({
29
+ name: "Title",
30
+ description: "Header shown above the list",
31
+ required: false,
32
+ type: ComponentInputType.Text,
33
+ id: "title" as keyof T["arguments"],
34
+ section: DockerSwarmDisplaySection,
35
+ });
36
+
37
+ args.push({
38
+ name: "Max Rows",
39
+ description: "Maximum number of rows to show",
40
+ required: false,
41
+ type: ComponentInputType.Number,
42
+ id: "maxRows" as keyof T["arguments"],
43
+ placeholder: "25",
44
+ section: DockerSwarmDisplaySection,
45
+ });
46
+
47
+ args.push(getViewModeArgument<T>(DockerSwarmDisplaySection));
48
+
49
+ args.push({
50
+ name: "Clusters",
51
+ description: "Show only resources from the selected Docker Swarm clusters",
52
+ required: false,
53
+ type: ComponentInputType.EntityMultiSelectDropdown,
54
+ id: "dockerSwarmClusterIds" as keyof T["arguments"],
55
+ placeholder: "All clusters",
56
+ section: DockerSwarmFiltersSection,
57
+ entityFilterModelType: EntityFilterModelType.DockerSwarmCluster,
58
+ });
59
+
60
+ return args;
61
+ }
@@ -0,0 +1,71 @@
1
+ import DashboardDockerSwarmServiceListComponent from "../../../Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent";
2
+ import { ObjectType } from "../../../Types/JSON";
3
+ import ObjectID from "../../../Types/ObjectID";
4
+ import DashboardBaseComponentUtil from "./DashboardBaseComponent";
5
+ import {
6
+ ComponentArgument,
7
+ ComponentInputType,
8
+ } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
9
+ import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
10
+ import {
11
+ DockerSwarmFiltersSection,
12
+ getDockerSwarmCommonArguments,
13
+ } from "./DashboardDockerSwarmResourceListShared";
14
+
15
+ export default class DashboardDockerSwarmServiceListComponentUtil extends DashboardBaseComponentUtil {
16
+ public static override getDefaultComponent(): DashboardDockerSwarmServiceListComponent {
17
+ return {
18
+ _type: ObjectType.DashboardComponent,
19
+ componentType: DashboardComponentType.DockerSwarmServiceList,
20
+ widthInDashboardUnits: 6,
21
+ heightInDashboardUnits: 4,
22
+ topInDashboardUnits: 0,
23
+ leftInDashboardUnits: 0,
24
+ componentId: ObjectID.generate(),
25
+ minHeightInDashboardUnits: 3,
26
+ minWidthInDashboardUnits: 6,
27
+ arguments: {
28
+ maxRows: 25,
29
+ },
30
+ };
31
+ }
32
+
33
+ public static override getComponentConfigArguments(): Array<
34
+ ComponentArgument<DashboardDockerSwarmServiceListComponent>
35
+ > {
36
+ const args: Array<
37
+ ComponentArgument<DashboardDockerSwarmServiceListComponent>
38
+ > =
39
+ getDockerSwarmCommonArguments<DashboardDockerSwarmServiceListComponent>();
40
+
41
+ args.push({
42
+ name: "Service Mode",
43
+ description: "Show only replicated services or only global services",
44
+ required: false,
45
+ type: ComponentInputType.Dropdown,
46
+ id: "serviceModeFilter",
47
+ section: DockerSwarmFiltersSection,
48
+ dropdownOptions: [
49
+ { label: "All", value: "" },
50
+ { label: "Replicated only", value: "replicated" },
51
+ { label: "Global only", value: "global" },
52
+ ],
53
+ });
54
+
55
+ args.push({
56
+ name: "Status",
57
+ description: "Quick filter by whether the service is fully converged",
58
+ required: false,
59
+ type: ComponentInputType.Dropdown,
60
+ id: "statusFilter",
61
+ section: DockerSwarmFiltersSection,
62
+ dropdownOptions: [
63
+ { label: "All", value: "" },
64
+ { label: "Converged only", value: "converged" },
65
+ { label: "Not converged only", value: "notconverged" },
66
+ ],
67
+ });
68
+
69
+ return args;
70
+ }
71
+ }
@@ -0,0 +1,100 @@
1
+ import DashboardPodmanContainerListComponent from "../../../Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent";
2
+ import { ObjectType } from "../../../Types/JSON";
3
+ import ObjectID from "../../../Types/ObjectID";
4
+ import DashboardBaseComponentUtil from "./DashboardBaseComponent";
5
+ import {
6
+ ComponentArgument,
7
+ ComponentArgumentSection,
8
+ ComponentInputType,
9
+ EntityFilterModelType,
10
+ } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
11
+ import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
12
+ import { getViewModeArgument } from "./DashboardListSharedArgs";
13
+
14
+ const DisplaySection: ComponentArgumentSection = {
15
+ name: "Display Options",
16
+ description: "Configure the widget title and row limit",
17
+ order: 1,
18
+ };
19
+
20
+ const FiltersSection: ComponentArgumentSection = {
21
+ name: "Filters",
22
+ description: "Narrow down which containers are shown",
23
+ order: 2,
24
+ defaultCollapsed: true,
25
+ };
26
+
27
+ export default class DashboardPodmanContainerListComponentUtil extends DashboardBaseComponentUtil {
28
+ public static override getDefaultComponent(): DashboardPodmanContainerListComponent {
29
+ return {
30
+ _type: ObjectType.DashboardComponent,
31
+ componentType: DashboardComponentType.PodmanContainerList,
32
+ widthInDashboardUnits: 6,
33
+ heightInDashboardUnits: 4,
34
+ topInDashboardUnits: 0,
35
+ leftInDashboardUnits: 0,
36
+ componentId: ObjectID.generate(),
37
+ minHeightInDashboardUnits: 3,
38
+ minWidthInDashboardUnits: 6,
39
+ arguments: {
40
+ maxRows: 25,
41
+ },
42
+ };
43
+ }
44
+
45
+ public static override getComponentConfigArguments(): Array<
46
+ ComponentArgument<DashboardPodmanContainerListComponent>
47
+ > {
48
+ const args: Array<
49
+ ComponentArgument<DashboardPodmanContainerListComponent>
50
+ > = [];
51
+
52
+ args.push({
53
+ name: "Title",
54
+ description: "Header shown above the container list",
55
+ required: false,
56
+ type: ComponentInputType.Text,
57
+ id: "title",
58
+ section: DisplaySection,
59
+ });
60
+
61
+ args.push({
62
+ name: "Max Rows",
63
+ description: "Maximum number of containers to show",
64
+ required: false,
65
+ type: ComponentInputType.Number,
66
+ id: "maxRows",
67
+ placeholder: "25",
68
+ section: DisplaySection,
69
+ });
70
+
71
+ args.push(
72
+ getViewModeArgument<DashboardPodmanContainerListComponent>(
73
+ DisplaySection,
74
+ ),
75
+ );
76
+
77
+ args.push({
78
+ name: "Hosts",
79
+ description: "Show only containers from the selected hosts",
80
+ required: false,
81
+ type: ComponentInputType.EntityMultiSelectDropdown,
82
+ id: "podmanHostIds",
83
+ placeholder: "All hosts",
84
+ section: FiltersSection,
85
+ entityFilterModelType: EntityFilterModelType.PodmanHost,
86
+ });
87
+
88
+ args.push({
89
+ name: "Image Name",
90
+ description: "Substring of the container image to match (e.g. nginx)",
91
+ required: false,
92
+ type: ComponentInputType.Text,
93
+ id: "imageName",
94
+ placeholder: "nginx",
95
+ section: FiltersSection,
96
+ });
97
+
98
+ return args;
99
+ }
100
+ }