@oneuptime/common 11.0.2 → 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 (344) hide show
  1. package/Models/DatabaseModels/Alert.ts +166 -0
  2. package/Models/DatabaseModels/AlertLabelRule.ts +38 -0
  3. package/Models/DatabaseModels/AlertOwnerRule.ts +38 -0
  4. package/Models/DatabaseModels/DockerSwarmCluster.ts +989 -0
  5. package/Models/DatabaseModels/DockerSwarmClusterLabelRule.ts +514 -0
  6. package/Models/DatabaseModels/DockerSwarmClusterOwnerRule.ts +596 -0
  7. package/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.ts +487 -0
  8. package/Models/DatabaseModels/DockerSwarmClusterOwnerUser.ts +486 -0
  9. package/Models/DatabaseModels/DockerSwarmResource.ts +750 -0
  10. package/Models/DatabaseModels/Incident.ts +166 -0
  11. package/Models/DatabaseModels/IncidentLabelRule.ts +38 -0
  12. package/Models/DatabaseModels/IncidentOwnerRule.ts +38 -0
  13. package/Models/DatabaseModels/IncidentTemplate.ts +56 -0
  14. package/Models/DatabaseModels/Index.ts +24 -0
  15. package/Models/DatabaseModels/PodmanHost.ts +859 -0
  16. package/Models/DatabaseModels/PodmanHostLabelRule.ts +514 -0
  17. package/Models/DatabaseModels/PodmanHostOwnerRule.ts +596 -0
  18. package/Models/DatabaseModels/PodmanHostOwnerTeam.ts +487 -0
  19. package/Models/DatabaseModels/PodmanHostOwnerUser.ts +486 -0
  20. package/Models/DatabaseModels/PodmanResource.ts +498 -0
  21. package/Models/DatabaseModels/ScheduledMaintenance.ts +110 -0
  22. package/Models/DatabaseModels/ScheduledMaintenanceLabelRule.ts +38 -0
  23. package/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.ts +38 -0
  24. package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +56 -0
  25. package/Models/DatabaseModels/TelemetryException.ts +2 -0
  26. package/Server/API/DashboardAPI.ts +89 -0
  27. package/Server/API/DockerSwarmResourceAPI.ts +137 -0
  28. package/Server/API/TelemetryAPI.ts +8 -1
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1781587937032-MigrationName.ts +3199 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  31. package/Server/Services/AlertLabelRuleEngineService.ts +29 -0
  32. package/Server/Services/AlertOwnerRuleEngineService.ts +67 -0
  33. package/Server/Services/DockerSwarmClusterLabelRuleEngineService.ts +214 -0
  34. package/Server/Services/DockerSwarmClusterLabelRuleService.ts +14 -0
  35. package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +232 -0
  36. package/Server/Services/DockerSwarmClusterOwnerRuleService.ts +14 -0
  37. package/Server/Services/DockerSwarmClusterOwnerTeamService.ts +10 -0
  38. package/Server/Services/DockerSwarmClusterOwnerUserService.ts +10 -0
  39. package/Server/Services/DockerSwarmClusterService.ts +404 -0
  40. package/Server/Services/DockerSwarmResourceService.ts +381 -0
  41. package/Server/Services/ExceptionAggregationService.ts +1 -0
  42. package/Server/Services/IncidentLabelRuleEngineService.ts +27 -0
  43. package/Server/Services/IncidentOwnerRuleEngineService.ts +67 -0
  44. package/Server/Services/IncidentService.ts +11 -0
  45. package/Server/Services/Index.ts +14 -0
  46. package/Server/Services/LogAggregationService.ts +1 -0
  47. package/Server/Services/MetricAggregationService.ts +1 -0
  48. package/Server/Services/OpenTelemetryIngestService.ts +37 -0
  49. package/Server/Services/PodmanHostLabelRuleEngineService.ts +198 -0
  50. package/Server/Services/PodmanHostLabelRuleService.ts +14 -0
  51. package/Server/Services/PodmanHostOwnerRuleEngineService.ts +216 -0
  52. package/Server/Services/PodmanHostOwnerRuleService.ts +14 -0
  53. package/Server/Services/PodmanHostOwnerTeamService.ts +10 -0
  54. package/Server/Services/PodmanHostOwnerUserService.ts +10 -0
  55. package/Server/Services/PodmanHostService.ts +368 -0
  56. package/Server/Services/PodmanResourceService.ts +310 -0
  57. package/Server/Services/ScheduledMaintenanceLabelRuleEngineService.ts +29 -0
  58. package/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.ts +67 -0
  59. package/Server/Services/TelemetryUsageBillingService.ts +18 -0
  60. package/Server/Services/TraceAggregationService.ts +1 -0
  61. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +13 -0
  62. package/Server/Utils/Monitor/MonitorAlert.ts +10 -0
  63. package/Server/Utils/Monitor/MonitorClusterContext.ts +35 -6
  64. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +306 -0
  65. package/Server/Utils/Monitor/MonitorIncident.ts +45 -0
  66. package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +17 -0
  67. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +3 -0
  68. package/Server/Utils/Monitor/SeriesResourceLabels.ts +26 -0
  69. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +49 -0
  70. package/Server/Utils/Telemetry/Telemetry.ts +10 -0
  71. package/Server/Utils/Telemetry/TelemetryEntity.ts +22 -0
  72. package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +1 -0
  73. package/Tests/Types/DockerSwarm/DockerSwarmInventoryExtractor.test.ts +667 -0
  74. package/Tests/Types/Monitor/DockerSwarmAlertTemplates.test.ts +528 -0
  75. package/Types/Dashboard/DashboardComponentType.ts +7 -0
  76. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +2 -0
  77. package/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.ts +17 -0
  78. package/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.ts +17 -0
  79. package/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.ts +16 -0
  80. package/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.ts +15 -0
  81. package/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.ts +16 -0
  82. package/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.ts +15 -0
  83. package/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.ts +15 -0
  84. package/Types/Dashboard/DashboardTemplates.ts +194 -0
  85. package/Types/DockerSwarm/DockerSwarmInventoryExtractor.ts +452 -0
  86. package/Types/Icon/IconProp.ts +1 -0
  87. package/Types/Monitor/DockerSwarmAlertTemplates.ts +461 -0
  88. package/Types/Monitor/DockerSwarmMetricCatalog.ts +139 -0
  89. package/Types/Monitor/HostAlertTemplates.ts +455 -0
  90. package/Types/Monitor/HostMetricCatalog.ts +177 -0
  91. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +21 -0
  92. package/Types/Monitor/MonitorStep.ts +99 -0
  93. package/Types/Monitor/MonitorStepDockerSwarmMonitor.ts +74 -0
  94. package/Types/Monitor/MonitorStepHostMonitor.ts +30 -0
  95. package/Types/Monitor/MonitorStepPodmanMonitor.ts +38 -0
  96. package/Types/Monitor/MonitorType.ts +42 -0
  97. package/Types/Monitor/PodmanAlertTemplates.ts +507 -0
  98. package/Types/Monitor/PodmanMetricCatalog.ts +226 -0
  99. package/Types/Permission.ts +465 -4
  100. package/Types/Podman/PodmanInventoryExtractor.ts +343 -0
  101. package/Types/Telemetry/EntityType.ts +12 -0
  102. package/Types/Telemetry/ServiceType.ts +2 -0
  103. package/UI/Components/Icon/Icon.tsx +57 -0
  104. package/UI/Components/LogsViewer/LogsViewer.tsx +44 -1
  105. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +28 -0
  106. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +6 -0
  107. package/UI/Utils/TelemetryService.ts +1 -0
  108. package/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.ts +70 -0
  109. package/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.ts +61 -0
  110. package/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.ts +71 -0
  111. package/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.ts +100 -0
  112. package/Utils/Dashboard/Components/DashboardPodmanHostListComponent.ts +88 -0
  113. package/Utils/Dashboard/Components/DashboardPodmanImageListComponent.ts +97 -0
  114. package/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.ts +87 -0
  115. package/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.ts +87 -0
  116. package/Utils/Dashboard/Components/Index.ts +51 -0
  117. package/Utils/Telemetry/EntityKey.ts +18 -0
  118. package/build/dist/Models/DatabaseModels/Alert.js +162 -0
  119. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  120. package/build/dist/Models/DatabaseModels/AlertLabelRule.js +39 -0
  121. package/build/dist/Models/DatabaseModels/AlertLabelRule.js.map +1 -1
  122. package/build/dist/Models/DatabaseModels/AlertOwnerRule.js +39 -0
  123. package/build/dist/Models/DatabaseModels/AlertOwnerRule.js.map +1 -1
  124. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js +1018 -0
  125. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js.map +1 -0
  126. package/build/dist/Models/DatabaseModels/DockerSwarmClusterLabelRule.js +522 -0
  127. package/build/dist/Models/DatabaseModels/DockerSwarmClusterLabelRule.js.map +1 -0
  128. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerRule.js +603 -0
  129. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerRule.js.map +1 -0
  130. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js +503 -0
  131. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js.map +1 -0
  132. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js +502 -0
  133. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js.map +1 -0
  134. package/build/dist/Models/DatabaseModels/DockerSwarmResource.js +787 -0
  135. package/build/dist/Models/DatabaseModels/DockerSwarmResource.js.map +1 -0
  136. package/build/dist/Models/DatabaseModels/Incident.js +162 -0
  137. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  138. package/build/dist/Models/DatabaseModels/IncidentLabelRule.js +39 -0
  139. package/build/dist/Models/DatabaseModels/IncidentLabelRule.js.map +1 -1
  140. package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js +39 -0
  141. package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js.map +1 -1
  142. package/build/dist/Models/DatabaseModels/IncidentTemplate.js +54 -0
  143. package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
  144. package/build/dist/Models/DatabaseModels/Index.js +24 -0
  145. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  146. package/build/dist/Models/DatabaseModels/PodmanHost.js +885 -0
  147. package/build/dist/Models/DatabaseModels/PodmanHost.js.map +1 -0
  148. package/build/dist/Models/DatabaseModels/PodmanHostLabelRule.js +522 -0
  149. package/build/dist/Models/DatabaseModels/PodmanHostLabelRule.js.map +1 -0
  150. package/build/dist/Models/DatabaseModels/PodmanHostOwnerRule.js +603 -0
  151. package/build/dist/Models/DatabaseModels/PodmanHostOwnerRule.js.map +1 -0
  152. package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js +503 -0
  153. package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js.map +1 -0
  154. package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js +502 -0
  155. package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js.map +1 -0
  156. package/build/dist/Models/DatabaseModels/PodmanResource.js +526 -0
  157. package/build/dist/Models/DatabaseModels/PodmanResource.js.map +1 -0
  158. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +108 -0
  159. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  160. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js +39 -0
  161. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js.map +1 -1
  162. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js +39 -0
  163. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js.map +1 -1
  164. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +54 -0
  165. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
  166. package/build/dist/Models/DatabaseModels/TelemetryException.js +2 -0
  167. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  168. package/build/dist/Server/API/DashboardAPI.js +89 -0
  169. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  170. package/build/dist/Server/API/DockerSwarmResourceAPI.js +100 -0
  171. package/build/dist/Server/API/DockerSwarmResourceAPI.js.map +1 -0
  172. package/build/dist/Server/API/TelemetryAPI.js +8 -1
  173. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  174. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781587937032-MigrationName.js +1100 -0
  175. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781587937032-MigrationName.js.map +1 -0
  176. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  177. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  178. package/build/dist/Server/Services/AlertLabelRuleEngineService.js +30 -4
  179. package/build/dist/Server/Services/AlertLabelRuleEngineService.js.map +1 -1
  180. package/build/dist/Server/Services/AlertOwnerRuleEngineService.js +62 -5
  181. package/build/dist/Server/Services/AlertOwnerRuleEngineService.js.map +1 -1
  182. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +168 -0
  183. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -0
  184. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleService.js +13 -0
  185. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleService.js.map +1 -0
  186. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +188 -0
  187. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -0
  188. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleService.js +13 -0
  189. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleService.js.map +1 -0
  190. package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js +9 -0
  191. package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js.map +1 -0
  192. package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js +9 -0
  193. package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js.map +1 -0
  194. package/build/dist/Server/Services/DockerSwarmClusterService.js +353 -0
  195. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -0
  196. package/build/dist/Server/Services/DockerSwarmResourceService.js +258 -0
  197. package/build/dist/Server/Services/DockerSwarmResourceService.js.map +1 -0
  198. package/build/dist/Server/Services/ExceptionAggregationService.js +1 -0
  199. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  200. package/build/dist/Server/Services/IncidentLabelRuleEngineService.js +28 -4
  201. package/build/dist/Server/Services/IncidentLabelRuleEngineService.js.map +1 -1
  202. package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js +62 -5
  203. package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js.map +1 -1
  204. package/build/dist/Server/Services/IncidentService.js +8 -0
  205. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  206. package/build/dist/Server/Services/Index.js +14 -0
  207. package/build/dist/Server/Services/Index.js.map +1 -1
  208. package/build/dist/Server/Services/LogAggregationService.js +1 -0
  209. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  210. package/build/dist/Server/Services/MetricAggregationService.js +1 -0
  211. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  212. package/build/dist/Server/Services/OpenTelemetryIngestService.js +43 -13
  213. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  214. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +166 -0
  215. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -0
  216. package/build/dist/Server/Services/PodmanHostLabelRuleService.js +13 -0
  217. package/build/dist/Server/Services/PodmanHostLabelRuleService.js.map +1 -0
  218. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +186 -0
  219. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -0
  220. package/build/dist/Server/Services/PodmanHostOwnerRuleService.js +13 -0
  221. package/build/dist/Server/Services/PodmanHostOwnerRuleService.js.map +1 -0
  222. package/build/dist/Server/Services/PodmanHostOwnerTeamService.js +9 -0
  223. package/build/dist/Server/Services/PodmanHostOwnerTeamService.js.map +1 -0
  224. package/build/dist/Server/Services/PodmanHostOwnerUserService.js +9 -0
  225. package/build/dist/Server/Services/PodmanHostOwnerUserService.js.map +1 -0
  226. package/build/dist/Server/Services/PodmanHostService.js +319 -0
  227. package/build/dist/Server/Services/PodmanHostService.js.map +1 -0
  228. package/build/dist/Server/Services/PodmanResourceService.js +196 -0
  229. package/build/dist/Server/Services/PodmanResourceService.js.map +1 -0
  230. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js +30 -4
  231. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js.map +1 -1
  232. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js +62 -5
  233. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js.map +1 -1
  234. package/build/dist/Server/Services/TelemetryUsageBillingService.js +13 -0
  235. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  236. package/build/dist/Server/Services/TraceAggregationService.js +1 -0
  237. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  238. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +13 -0
  239. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  240. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +8 -0
  241. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  242. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js +35 -7
  243. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js.map +1 -1
  244. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +194 -0
  245. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  246. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +35 -1
  247. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  248. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +9 -0
  249. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
  250. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +3 -0
  251. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  252. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +16 -0
  253. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
  254. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +30 -0
  255. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  256. package/build/dist/Server/Utils/Telemetry/Telemetry.js +6 -0
  257. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  258. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +18 -0
  259. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  260. package/build/dist/Types/Dashboard/DashboardComponentType.js +7 -0
  261. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  262. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +2 -0
  263. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  264. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.js +2 -0
  265. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.js.map +1 -0
  266. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.js +2 -0
  267. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.js.map +1 -0
  268. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.js +2 -0
  269. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.js.map +1 -0
  270. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.js +2 -0
  271. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.js.map +1 -0
  272. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.js +2 -0
  273. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.js.map +1 -0
  274. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.js +2 -0
  275. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.js.map +1 -0
  276. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.js +2 -0
  277. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.js.map +1 -0
  278. package/build/dist/Types/Dashboard/DashboardTemplates.js +168 -0
  279. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  280. package/build/dist/Types/DockerSwarm/DockerSwarmInventoryExtractor.js +359 -0
  281. package/build/dist/Types/DockerSwarm/DockerSwarmInventoryExtractor.js.map +1 -0
  282. package/build/dist/Types/Icon/IconProp.js +1 -0
  283. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  284. package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js +358 -0
  285. package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js.map +1 -0
  286. package/build/dist/Types/Monitor/DockerSwarmMetricCatalog.js +103 -0
  287. package/build/dist/Types/Monitor/DockerSwarmMetricCatalog.js.map +1 -0
  288. package/build/dist/Types/Monitor/HostAlertTemplates.js +365 -0
  289. package/build/dist/Types/Monitor/HostAlertTemplates.js.map +1 -0
  290. package/build/dist/Types/Monitor/HostMetricCatalog.js +138 -0
  291. package/build/dist/Types/Monitor/HostMetricCatalog.js.map +1 -0
  292. package/build/dist/Types/Monitor/MonitorStep.js +69 -0
  293. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  294. package/build/dist/Types/Monitor/MonitorStepDockerSwarmMonitor.js +21 -0
  295. package/build/dist/Types/Monitor/MonitorStepDockerSwarmMonitor.js.map +1 -0
  296. package/build/dist/Types/Monitor/MonitorStepHostMonitor.js +20 -0
  297. package/build/dist/Types/Monitor/MonitorStepHostMonitor.js.map +1 -0
  298. package/build/dist/Types/Monitor/MonitorStepPodmanMonitor.js +21 -0
  299. package/build/dist/Types/Monitor/MonitorStepPodmanMonitor.js.map +1 -0
  300. package/build/dist/Types/Monitor/MonitorType.js +39 -0
  301. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  302. package/build/dist/Types/Monitor/PodmanAlertTemplates.js +410 -0
  303. package/build/dist/Types/Monitor/PodmanAlertTemplates.js.map +1 -0
  304. package/build/dist/Types/Monitor/PodmanMetricCatalog.js +192 -0
  305. package/build/dist/Types/Monitor/PodmanMetricCatalog.js.map +1 -0
  306. package/build/dist/Types/Permission.js +420 -4
  307. package/build/dist/Types/Permission.js.map +1 -1
  308. package/build/dist/Types/Podman/PodmanInventoryExtractor.js +293 -0
  309. package/build/dist/Types/Podman/PodmanInventoryExtractor.js.map +1 -0
  310. package/build/dist/Types/Telemetry/EntityType.js +12 -0
  311. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  312. package/build/dist/Types/Telemetry/ServiceType.js +2 -0
  313. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  314. package/build/dist/UI/Components/Icon/Icon.js +16 -0
  315. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  316. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +30 -2
  317. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  318. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +22 -0
  319. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  320. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +6 -0
  321. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  322. package/build/dist/UI/Utils/TelemetryService.js +1 -0
  323. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  324. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.js +55 -0
  325. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.js.map +1 -0
  326. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.js +46 -0
  327. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.js.map +1 -0
  328. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.js +55 -0
  329. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.js.map +1 -0
  330. package/build/dist/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.js +77 -0
  331. package/build/dist/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.js.map +1 -0
  332. package/build/dist/Utils/Dashboard/Components/DashboardPodmanHostListComponent.js +71 -0
  333. package/build/dist/Utils/Dashboard/Components/DashboardPodmanHostListComponent.js.map +1 -0
  334. package/build/dist/Utils/Dashboard/Components/DashboardPodmanImageListComponent.js +77 -0
  335. package/build/dist/Utils/Dashboard/Components/DashboardPodmanImageListComponent.js.map +1 -0
  336. package/build/dist/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.js +68 -0
  337. package/build/dist/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.js.map +1 -0
  338. package/build/dist/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.js +68 -0
  339. package/build/dist/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.js.map +1 -0
  340. package/build/dist/Utils/Dashboard/Components/Index.js +28 -0
  341. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  342. package/build/dist/Utils/Telemetry/EntityKey.js +14 -0
  343. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
  344. package/package.json +1 -1
@@ -0,0 +1,498 @@
1
+ import PodmanHost from "./PodmanHost";
2
+ import Project from "./Project";
3
+ import User from "./User";
4
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
5
+ import Route from "../../Types/API/Route";
6
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
7
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
8
+ import ColumnLength from "../../Types/Database/ColumnLength";
9
+ import ColumnType from "../../Types/Database/ColumnType";
10
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
11
+ import TableColumn from "../../Types/Database/TableColumn";
12
+ import TableColumnType from "../../Types/Database/TableColumnType";
13
+ import TableMetadata from "../../Types/Database/TableMetadata";
14
+ import TenantColumn from "../../Types/Database/TenantColumn";
15
+ import IconProp from "../../Types/Icon/IconProp";
16
+ import { JSONObject } from "../../Types/JSON";
17
+ import ObjectID from "../../Types/ObjectID";
18
+ import Permission from "../../Types/Permission";
19
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
20
+
21
+ /*
22
+ * ------------------------------------------------------------------
23
+ * PodmanResource
24
+ * ------------------------------------------------------------------
25
+ *
26
+ * Inventory snapshot of a single Podman object (Container, Image,
27
+ * Network, Volume) on a single Podman host. Populated by the
28
+ * telemetry ingest pipeline; not user-editable.
29
+ *
30
+ * Container kind is populated from the docker_stats receiver metric
31
+ * stream (every metric carries container.id / container.name /
32
+ * container.image.name resource attributes). Image / Network /
33
+ * Volume kinds are reserved for a follow-up agent change that adds a
34
+ * snapshot poller.
35
+ *
36
+ * Rows are upserted on every metric flush and hard-deleted once
37
+ * lastSeenAt falls behind a staleness threshold.
38
+ *
39
+ * ------------------------------------------------------------------
40
+ */
41
+
42
+ const READ_PERMISSIONS: Array<Permission> = [
43
+ Permission.ProjectOwner,
44
+ Permission.ProjectAdmin,
45
+ Permission.ProjectMember,
46
+ Permission.Viewer,
47
+ Permission.SettingsAdmin,
48
+ Permission.SettingsMember,
49
+ Permission.SettingsViewer,
50
+ Permission.ReadPodmanHost,
51
+ ];
52
+
53
+ @TenantColumn("projectId")
54
+ @TableAccessControl({
55
+ create: [],
56
+ read: READ_PERMISSIONS,
57
+ update: [],
58
+ delete: [],
59
+ })
60
+ @CrudApiEndpoint(new Route("/podman-resource"))
61
+ @TableMetadata({
62
+ tableName: "PodmanResource",
63
+ singularName: "Podman Resource",
64
+ pluralName: "Podman Resources",
65
+ icon: IconProp.Cube,
66
+ tableDescription:
67
+ "Snapshot of a Podman object (container, image, network, volume) as last reported by the OneUptime Podman Agent. Populated by the telemetry ingest pipeline; not user-editable.",
68
+ })
69
+ @Index(["projectId", "podmanHostId", "kind", "name"], {
70
+ unique: true,
71
+ })
72
+ @Entity({
73
+ name: "PodmanResource",
74
+ })
75
+ export default class PodmanResource extends BaseModel {
76
+ @ColumnAccessControl({
77
+ create: [],
78
+ read: READ_PERMISSIONS,
79
+ update: [],
80
+ })
81
+ @TableColumn({
82
+ manyToOneRelationColumn: "projectId",
83
+ type: TableColumnType.Entity,
84
+ modelType: Project,
85
+ title: "Project",
86
+ description: "Relation to Project this resource belongs to.",
87
+ })
88
+ @ManyToOne(
89
+ () => {
90
+ return Project;
91
+ },
92
+ {
93
+ eager: false,
94
+ nullable: true,
95
+ onDelete: "CASCADE",
96
+ orphanedRowAction: "nullify",
97
+ },
98
+ )
99
+ @JoinColumn({ name: "projectId" })
100
+ public project?: Project = undefined;
101
+
102
+ @ColumnAccessControl({
103
+ create: [],
104
+ read: READ_PERMISSIONS,
105
+ update: [],
106
+ })
107
+ @Index()
108
+ @TableColumn({
109
+ type: TableColumnType.ObjectID,
110
+ required: true,
111
+ canReadOnRelationQuery: true,
112
+ title: "Project ID",
113
+ description: "ID of the Project this resource belongs to.",
114
+ })
115
+ @Column({
116
+ type: ColumnType.ObjectID,
117
+ nullable: false,
118
+ transformer: ObjectID.getDatabaseTransformer(),
119
+ })
120
+ public projectId?: ObjectID = undefined;
121
+
122
+ @ColumnAccessControl({
123
+ create: [],
124
+ read: READ_PERMISSIONS,
125
+ update: [],
126
+ })
127
+ @TableColumn({
128
+ manyToOneRelationColumn: "podmanHostId",
129
+ type: TableColumnType.Entity,
130
+ modelType: PodmanHost,
131
+ title: "Podman Host",
132
+ description: "Host this resource lives on.",
133
+ })
134
+ @ManyToOne(
135
+ () => {
136
+ return PodmanHost;
137
+ },
138
+ {
139
+ eager: false,
140
+ nullable: true,
141
+ onDelete: "CASCADE",
142
+ orphanedRowAction: "nullify",
143
+ },
144
+ )
145
+ @JoinColumn({ name: "podmanHostId" })
146
+ public podmanHost?: PodmanHost = undefined;
147
+
148
+ @ColumnAccessControl({
149
+ create: [],
150
+ read: READ_PERMISSIONS,
151
+ update: [],
152
+ })
153
+ @Index()
154
+ @TableColumn({
155
+ type: TableColumnType.ObjectID,
156
+ required: true,
157
+ canReadOnRelationQuery: true,
158
+ title: "Podman Host ID",
159
+ description: "ID of the Podman Host this resource lives on.",
160
+ })
161
+ @Column({
162
+ type: ColumnType.ObjectID,
163
+ nullable: false,
164
+ transformer: ObjectID.getDatabaseTransformer(),
165
+ })
166
+ public podmanHostId?: ObjectID = undefined;
167
+
168
+ @ColumnAccessControl({
169
+ create: [],
170
+ read: READ_PERMISSIONS,
171
+ update: [],
172
+ })
173
+ @TableColumn({
174
+ required: true,
175
+ type: TableColumnType.ShortText,
176
+ canReadOnRelationQuery: true,
177
+ title: "Kind",
178
+ description:
179
+ "Podman resource kind in singular PascalCase (Container, Image, Network, Volume).",
180
+ })
181
+ @Column({
182
+ nullable: false,
183
+ type: ColumnType.ShortText,
184
+ length: ColumnLength.ShortText,
185
+ })
186
+ public kind?: string = undefined;
187
+
188
+ @ColumnAccessControl({
189
+ create: [],
190
+ read: READ_PERMISSIONS,
191
+ update: [],
192
+ })
193
+ @TableColumn({
194
+ required: true,
195
+ type: TableColumnType.ShortText,
196
+ canReadOnRelationQuery: true,
197
+ title: "Name",
198
+ description:
199
+ "Podman resource name. Container.name for containers, full image reference for images.",
200
+ })
201
+ @Column({
202
+ nullable: false,
203
+ type: ColumnType.ShortText,
204
+ length: ColumnLength.ShortText,
205
+ })
206
+ public name?: string = undefined;
207
+
208
+ @ColumnAccessControl({
209
+ create: [],
210
+ read: READ_PERMISSIONS,
211
+ update: [],
212
+ })
213
+ @TableColumn({
214
+ required: false,
215
+ type: TableColumnType.ShortText,
216
+ canReadOnRelationQuery: true,
217
+ title: "Container ID",
218
+ description:
219
+ "Podman container short id (12 chars). Null for non-Container kinds.",
220
+ })
221
+ @Column({
222
+ nullable: true,
223
+ type: ColumnType.ShortText,
224
+ length: ColumnLength.ShortText,
225
+ })
226
+ public containerId?: string = undefined;
227
+
228
+ @ColumnAccessControl({
229
+ create: [],
230
+ read: READ_PERMISSIONS,
231
+ update: [],
232
+ })
233
+ @TableColumn({
234
+ required: false,
235
+ type: TableColumnType.ShortText,
236
+ canReadOnRelationQuery: true,
237
+ title: "Image Name",
238
+ description:
239
+ "Image reference for the container (e.g. nginx:1.27). Null for non-Container kinds.",
240
+ })
241
+ @Column({
242
+ nullable: true,
243
+ type: ColumnType.ShortText,
244
+ length: ColumnLength.ShortText,
245
+ })
246
+ public imageName?: string = undefined;
247
+
248
+ @ColumnAccessControl({
249
+ create: [],
250
+ read: READ_PERMISSIONS,
251
+ update: [],
252
+ })
253
+ @TableColumn({
254
+ required: false,
255
+ type: TableColumnType.ShortText,
256
+ canReadOnRelationQuery: true,
257
+ title: "State",
258
+ description:
259
+ "Container state (running, exited, paused, restarting, dead, created). Null for non-Container kinds.",
260
+ })
261
+ @Column({
262
+ nullable: true,
263
+ type: ColumnType.ShortText,
264
+ length: ColumnLength.ShortText,
265
+ })
266
+ public state?: string = undefined;
267
+
268
+ @ColumnAccessControl({
269
+ create: [],
270
+ read: READ_PERMISSIONS,
271
+ update: [],
272
+ })
273
+ @TableColumn({
274
+ required: false,
275
+ type: TableColumnType.JSON,
276
+ title: "Labels",
277
+ description: "Podman labels attached to this resource.",
278
+ })
279
+ @Column({
280
+ nullable: true,
281
+ type: ColumnType.JSON,
282
+ })
283
+ public labels?: JSONObject = undefined;
284
+
285
+ @ColumnAccessControl({
286
+ create: [],
287
+ read: READ_PERMISSIONS,
288
+ update: [],
289
+ })
290
+ @TableColumn({
291
+ required: false,
292
+ type: TableColumnType.Number,
293
+ canReadOnRelationQuery: true,
294
+ title: "Latest CPU Percent",
295
+ description:
296
+ "Most recent CPU utilization percent for this container. Stored as decimal so sub-percent precision survives the round trip. Null until the first metric arrives or for non-Container kinds.",
297
+ })
298
+ @Column({
299
+ nullable: true,
300
+ type: ColumnType.Decimal,
301
+ transformer: {
302
+ to: (value: number | null | undefined): number | null => {
303
+ if (value === null || value === undefined) {
304
+ return null;
305
+ }
306
+ return value;
307
+ },
308
+ from: (value: string | number | null | undefined): number | null => {
309
+ if (value === null || value === undefined) {
310
+ return null;
311
+ }
312
+ if (typeof value === "number") {
313
+ return value;
314
+ }
315
+ const parsed: number = parseFloat(value);
316
+ return isNaN(parsed) ? null : parsed;
317
+ },
318
+ },
319
+ })
320
+ public latestCpuPercent?: number = undefined;
321
+
322
+ @ColumnAccessControl({
323
+ create: [],
324
+ read: READ_PERMISSIONS,
325
+ update: [],
326
+ })
327
+ @TableColumn({
328
+ required: false,
329
+ type: TableColumnType.BigPositiveNumber,
330
+ canReadOnRelationQuery: true,
331
+ title: "Latest Memory Bytes",
332
+ description:
333
+ "Most recent memory usage (bytes) for this container. Stored as bigint so values past 2 GiB don't overflow.",
334
+ })
335
+ @Column({
336
+ nullable: true,
337
+ type: ColumnType.BigPositiveNumber,
338
+ transformer: {
339
+ to: (value: number | null | undefined): string | null => {
340
+ if (value === null || value === undefined) {
341
+ return null;
342
+ }
343
+ return Math.trunc(value).toString();
344
+ },
345
+ from: (value: string | null | undefined): number | null => {
346
+ if (value === null || value === undefined) {
347
+ return null;
348
+ }
349
+ const parsed: number = parseInt(value, 10);
350
+ return isNaN(parsed) ? null : parsed;
351
+ },
352
+ },
353
+ })
354
+ public latestMemoryBytes?: number = undefined;
355
+
356
+ @ColumnAccessControl({
357
+ create: [],
358
+ read: READ_PERMISSIONS,
359
+ update: [],
360
+ })
361
+ @TableColumn({
362
+ required: false,
363
+ type: TableColumnType.Date,
364
+ canReadOnRelationQuery: true,
365
+ title: "Metrics Updated At",
366
+ description:
367
+ "Observed timestamp of the latest CPU/memory point. Acts as the monotonic guard for metric updates.",
368
+ })
369
+ @Column({
370
+ nullable: true,
371
+ type: ColumnType.Date,
372
+ })
373
+ public metricsUpdatedAt?: Date = undefined;
374
+
375
+ @ColumnAccessControl({
376
+ create: [],
377
+ read: READ_PERMISSIONS,
378
+ update: [],
379
+ })
380
+ @TableColumn({
381
+ required: true,
382
+ type: TableColumnType.Date,
383
+ canReadOnRelationQuery: true,
384
+ title: "Last Seen At",
385
+ description:
386
+ "Agent-observed timestamp of the most recent snapshot for this resource. Also acts as the monotonic guard for upserts.",
387
+ })
388
+ @Column({
389
+ nullable: false,
390
+ type: ColumnType.Date,
391
+ })
392
+ public lastSeenAt?: Date = undefined;
393
+
394
+ @ColumnAccessControl({
395
+ create: [],
396
+ read: READ_PERMISSIONS,
397
+ update: [],
398
+ })
399
+ @TableColumn({
400
+ required: false,
401
+ type: TableColumnType.Date,
402
+ canReadOnRelationQuery: true,
403
+ title: "Resource Creation Timestamp",
404
+ description: "When this resource was created in Podman.",
405
+ })
406
+ @Column({
407
+ nullable: true,
408
+ type: ColumnType.Date,
409
+ })
410
+ public resourceCreationTimestamp?: Date = undefined;
411
+
412
+ @ColumnAccessControl({
413
+ create: [],
414
+ read: READ_PERMISSIONS,
415
+ update: [],
416
+ })
417
+ @TableColumn({
418
+ manyToOneRelationColumn: "createdByUserId",
419
+ type: TableColumnType.Entity,
420
+ modelType: User,
421
+ title: "Created By User",
422
+ description:
423
+ "Not user-facing; ingest writes as isRoot so this stays null in practice.",
424
+ })
425
+ @ManyToOne(
426
+ () => {
427
+ return User;
428
+ },
429
+ {
430
+ eager: false,
431
+ nullable: true,
432
+ onDelete: "SET NULL",
433
+ orphanedRowAction: "nullify",
434
+ },
435
+ )
436
+ @JoinColumn({ name: "createdByUserId" })
437
+ public createdByUser?: User = undefined;
438
+
439
+ @ColumnAccessControl({
440
+ create: [],
441
+ read: READ_PERMISSIONS,
442
+ update: [],
443
+ })
444
+ @TableColumn({
445
+ type: TableColumnType.ObjectID,
446
+ title: "Created By User ID",
447
+ description: "ID of the user who created this row.",
448
+ })
449
+ @Column({
450
+ type: ColumnType.ObjectID,
451
+ nullable: true,
452
+ transformer: ObjectID.getDatabaseTransformer(),
453
+ })
454
+ public createdByUserId?: ObjectID = undefined;
455
+
456
+ @ColumnAccessControl({
457
+ create: [],
458
+ read: READ_PERMISSIONS,
459
+ update: [],
460
+ })
461
+ @TableColumn({
462
+ manyToOneRelationColumn: "deletedByUserId",
463
+ type: TableColumnType.Entity,
464
+ modelType: User,
465
+ title: "Deleted By User",
466
+ description: "Relation to the user who deleted this row.",
467
+ })
468
+ @ManyToOne(
469
+ () => {
470
+ return User;
471
+ },
472
+ {
473
+ eager: false,
474
+ nullable: true,
475
+ onDelete: "SET NULL",
476
+ orphanedRowAction: "nullify",
477
+ },
478
+ )
479
+ @JoinColumn({ name: "deletedByUserId" })
480
+ public deletedByUser?: User = undefined;
481
+
482
+ @ColumnAccessControl({
483
+ create: [],
484
+ read: READ_PERMISSIONS,
485
+ update: [],
486
+ })
487
+ @TableColumn({
488
+ type: TableColumnType.ObjectID,
489
+ title: "Deleted By User ID",
490
+ description: "ID of the user who deleted this row.",
491
+ })
492
+ @Column({
493
+ type: ColumnType.ObjectID,
494
+ nullable: true,
495
+ transformer: ObjectID.getDatabaseTransformer(),
496
+ })
497
+ public deletedByUserId?: ObjectID = undefined;
498
+ }
@@ -1,5 +1,6 @@
1
1
  import CephCluster from "./CephCluster";
2
2
  import DockerHost from "./DockerHost";
3
+ import PodmanHost from "./PodmanHost";
3
4
  import Host from "./Host";
4
5
  import KubernetesCluster from "./KubernetesCluster";
5
6
  import Label from "./Label";
@@ -7,6 +8,7 @@ import Monitor from "./Monitor";
7
8
  import MonitorStatus from "./MonitorStatus";
8
9
  import Project from "./Project";
9
10
  import ProxmoxCluster from "./ProxmoxCluster";
11
+ import DockerSwarmCluster from "./DockerSwarmCluster";
10
12
  import ScheduledMaintenanceState from "./ScheduledMaintenanceState";
11
13
  import Service from "./Service";
12
14
  import StatusPage from "./StatusPage";
@@ -654,6 +656,60 @@ export default class ScheduledMaintenance extends BaseModel {
654
656
  })
655
657
  public dockerHosts?: Array<DockerHost> = undefined;
656
658
 
659
+ @ColumnAccessControl({
660
+ create: [
661
+ Permission.ProjectOwner,
662
+ Permission.ProjectAdmin,
663
+ Permission.ProjectMember,
664
+ Permission.ScheduledMaintenanceAdmin,
665
+ Permission.ScheduledMaintenanceMember,
666
+ Permission.CreateProjectScheduledMaintenance,
667
+ ],
668
+ read: [
669
+ Permission.ProjectOwner,
670
+ Permission.ProjectAdmin,
671
+ Permission.ProjectMember,
672
+ Permission.Viewer,
673
+ Permission.ScheduledMaintenanceAdmin,
674
+ Permission.ScheduledMaintenanceMember,
675
+ Permission.ScheduledMaintenanceViewer,
676
+ Permission.ReadProjectScheduledMaintenance,
677
+ ],
678
+ update: [
679
+ Permission.ProjectOwner,
680
+ Permission.ProjectAdmin,
681
+ Permission.ProjectMember,
682
+ Permission.ScheduledMaintenanceAdmin,
683
+ Permission.ScheduledMaintenanceMember,
684
+ Permission.EditProjectScheduledMaintenance,
685
+ ],
686
+ })
687
+ @TableColumn({
688
+ required: false,
689
+ type: TableColumnType.EntityArray,
690
+ modelType: PodmanHost,
691
+ title: "Podman Hosts",
692
+ description: "List of Podman hosts affected by this event.",
693
+ })
694
+ @ManyToMany(
695
+ () => {
696
+ return PodmanHost;
697
+ },
698
+ { eager: false },
699
+ )
700
+ @JoinTable({
701
+ name: "ScheduledMaintenancePodmanHost",
702
+ inverseJoinColumn: {
703
+ name: "podmanHostId",
704
+ referencedColumnName: "_id",
705
+ },
706
+ joinColumn: {
707
+ name: "scheduledMaintenanceId",
708
+ referencedColumnName: "_id",
709
+ },
710
+ })
711
+ public podmanHosts?: Array<PodmanHost> = undefined;
712
+
657
713
  @ColumnAccessControl({
658
714
  create: [
659
715
  Permission.ProjectOwner,
@@ -708,6 +764,60 @@ export default class ScheduledMaintenance extends BaseModel {
708
764
  })
709
765
  public proxmoxClusters?: Array<ProxmoxCluster> = undefined;
710
766
 
767
+ @ColumnAccessControl({
768
+ create: [
769
+ Permission.ProjectOwner,
770
+ Permission.ProjectAdmin,
771
+ Permission.ProjectMember,
772
+ Permission.ScheduledMaintenanceAdmin,
773
+ Permission.ScheduledMaintenanceMember,
774
+ Permission.CreateProjectScheduledMaintenance,
775
+ ],
776
+ read: [
777
+ Permission.ProjectOwner,
778
+ Permission.ProjectAdmin,
779
+ Permission.ProjectMember,
780
+ Permission.Viewer,
781
+ Permission.ScheduledMaintenanceAdmin,
782
+ Permission.ScheduledMaintenanceMember,
783
+ Permission.ScheduledMaintenanceViewer,
784
+ Permission.ReadProjectScheduledMaintenance,
785
+ ],
786
+ update: [
787
+ Permission.ProjectOwner,
788
+ Permission.ProjectAdmin,
789
+ Permission.ProjectMember,
790
+ Permission.ScheduledMaintenanceAdmin,
791
+ Permission.ScheduledMaintenanceMember,
792
+ Permission.EditProjectScheduledMaintenance,
793
+ ],
794
+ })
795
+ @TableColumn({
796
+ required: false,
797
+ type: TableColumnType.EntityArray,
798
+ modelType: DockerSwarmCluster,
799
+ title: "Docker Swarm Clusters",
800
+ description: "List of Docker Swarm clusters affected by this event.",
801
+ })
802
+ @ManyToMany(
803
+ () => {
804
+ return DockerSwarmCluster;
805
+ },
806
+ { eager: false },
807
+ )
808
+ @JoinTable({
809
+ name: "ScheduledMaintenanceDockerSwarmCluster",
810
+ inverseJoinColumn: {
811
+ name: "dockerSwarmClusterId",
812
+ referencedColumnName: "_id",
813
+ },
814
+ joinColumn: {
815
+ name: "scheduledMaintenanceId",
816
+ referencedColumnName: "_id",
817
+ },
818
+ })
819
+ public dockerSwarmClusters?: Array<DockerSwarmCluster> = undefined;
820
+
711
821
  @ColumnAccessControl({
712
822
  create: [
713
823
  Permission.ProjectOwner,
@@ -754,6 +754,44 @@ export default class ScheduledMaintenanceLabelRule extends BaseModel {
754
754
  })
755
755
  public inheritLabelsFromDockerHosts?: boolean = undefined;
756
756
 
757
+ @ColumnAccessControl({
758
+ create: [
759
+ Permission.ProjectOwner,
760
+ Permission.ProjectAdmin,
761
+ Permission.CreateScheduledMaintenanceLabelRule,
762
+ ],
763
+ read: [
764
+ Permission.ProjectOwner,
765
+ Permission.ProjectAdmin,
766
+ Permission.ProjectMember,
767
+ Permission.Viewer,
768
+ Permission.ScheduledMaintenanceAdmin,
769
+ Permission.ScheduledMaintenanceMember,
770
+ Permission.ScheduledMaintenanceViewer,
771
+ Permission.ReadScheduledMaintenanceLabelRule,
772
+ ],
773
+ update: [
774
+ Permission.ProjectOwner,
775
+ Permission.ProjectAdmin,
776
+ Permission.EditScheduledMaintenanceLabelRule,
777
+ ],
778
+ })
779
+ @TableColumn({
780
+ required: false,
781
+ type: TableColumnType.Boolean,
782
+ title: "Inherit Labels From Podman Hosts",
783
+ description:
784
+ "When this rule matches, also copy every label of the event's affected Podman hosts onto the event.",
785
+ defaultValue: false,
786
+ isDefaultValueColumn: true,
787
+ })
788
+ @Column({
789
+ type: ColumnType.Boolean,
790
+ nullable: false,
791
+ default: false,
792
+ })
793
+ public inheritLabelsFromPodmanHosts?: boolean = undefined;
794
+
757
795
  @ColumnAccessControl({
758
796
  create: [
759
797
  Permission.ProjectOwner,
@@ -842,6 +842,44 @@ export default class ScheduledMaintenanceOwnerRule extends BaseModel {
842
842
  })
843
843
  public inheritOwnersFromDockerHosts?: boolean = undefined;
844
844
 
845
+ @ColumnAccessControl({
846
+ create: [
847
+ Permission.ProjectOwner,
848
+ Permission.ProjectAdmin,
849
+ Permission.CreateScheduledMaintenanceOwnerRule,
850
+ ],
851
+ read: [
852
+ Permission.ProjectOwner,
853
+ Permission.ProjectAdmin,
854
+ Permission.ProjectMember,
855
+ Permission.Viewer,
856
+ Permission.ScheduledMaintenanceAdmin,
857
+ Permission.ScheduledMaintenanceMember,
858
+ Permission.ScheduledMaintenanceViewer,
859
+ Permission.ReadScheduledMaintenanceOwnerRule,
860
+ ],
861
+ update: [
862
+ Permission.ProjectOwner,
863
+ Permission.ProjectAdmin,
864
+ Permission.EditScheduledMaintenanceOwnerRule,
865
+ ],
866
+ })
867
+ @TableColumn({
868
+ required: false,
869
+ type: TableColumnType.Boolean,
870
+ title: "Inherit Owners From Podman Hosts",
871
+ description:
872
+ "When this rule matches, also assign every owner of the event's affected Podman hosts to the event.",
873
+ defaultValue: false,
874
+ isDefaultValueColumn: true,
875
+ })
876
+ @Column({
877
+ type: ColumnType.Boolean,
878
+ nullable: false,
879
+ default: false,
880
+ })
881
+ public inheritOwnersFromPodmanHosts?: boolean = undefined;
882
+
845
883
  @ColumnAccessControl({
846
884
  create: [
847
885
  Permission.ProjectOwner,