@oneuptime/common 11.0.2 → 11.0.4

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 (498) 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/GlobalConfig.ts +19 -0
  11. package/Models/DatabaseModels/GlobalOidc.ts +351 -0
  12. package/Models/DatabaseModels/GlobalOidcProject.ts +265 -0
  13. package/Models/DatabaseModels/GlobalSso.ts +312 -0
  14. package/Models/DatabaseModels/GlobalSsoProject.ts +268 -0
  15. package/Models/DatabaseModels/Incident.ts +166 -0
  16. package/Models/DatabaseModels/IncidentLabelRule.ts +38 -0
  17. package/Models/DatabaseModels/IncidentOwnerRule.ts +38 -0
  18. package/Models/DatabaseModels/IncidentTemplate.ts +56 -0
  19. package/Models/DatabaseModels/Index.ts +32 -0
  20. package/Models/DatabaseModels/PodmanHost.ts +859 -0
  21. package/Models/DatabaseModels/PodmanHostLabelRule.ts +514 -0
  22. package/Models/DatabaseModels/PodmanHostOwnerRule.ts +596 -0
  23. package/Models/DatabaseModels/PodmanHostOwnerTeam.ts +487 -0
  24. package/Models/DatabaseModels/PodmanHostOwnerUser.ts +486 -0
  25. package/Models/DatabaseModels/PodmanResource.ts +498 -0
  26. package/Models/DatabaseModels/Project.ts +31 -0
  27. package/Models/DatabaseModels/ScheduledMaintenance.ts +110 -0
  28. package/Models/DatabaseModels/ScheduledMaintenanceLabelRule.ts +38 -0
  29. package/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.ts +38 -0
  30. package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +56 -0
  31. package/Models/DatabaseModels/StatusPage.ts +82 -0
  32. package/Models/DatabaseModels/TelemetryException.ts +2 -0
  33. package/Server/API/DashboardAPI.ts +89 -0
  34. package/Server/API/DockerSwarmResourceAPI.ts +137 -0
  35. package/Server/API/StatusPageAPI.ts +2 -0
  36. package/Server/API/TelemetryAPI.ts +8 -1
  37. package/Server/Infrastructure/Postgres/SchemaMigrations/1781750000000-MigrationName.ts +3199 -0
  38. package/Server/Infrastructure/Postgres/SchemaMigrations/1782000000000-AddGlobalSsoAndOidc.ts +176 -0
  39. package/Server/Infrastructure/Postgres/SchemaMigrations/1782100000000-AddStatusPageImageAltText.ts +25 -0
  40. package/Server/Infrastructure/Postgres/SchemaMigrations/1782200000000-AddRequireSsoForLoginToGlobalProviders.ts +25 -0
  41. package/Server/Infrastructure/Postgres/SchemaMigrations/1782300000000-MoveRequireSsoForLoginToGlobalConfig.ts +38 -0
  42. package/Server/Infrastructure/Postgres/SchemaMigrations/1782310000000-MigrationName.ts +299 -0
  43. package/Server/Infrastructure/Postgres/SchemaMigrations/1782400000000-RemoveIsTestedFromGlobalSsoAndOidc.ts +21 -0
  44. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +14 -0
  45. package/Server/Middleware/UserAuthorization.ts +113 -42
  46. package/Server/Services/AlertLabelRuleEngineService.ts +29 -0
  47. package/Server/Services/AlertOwnerRuleEngineService.ts +67 -0
  48. package/Server/Services/DockerSwarmClusterLabelRuleEngineService.ts +214 -0
  49. package/Server/Services/DockerSwarmClusterLabelRuleService.ts +14 -0
  50. package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +232 -0
  51. package/Server/Services/DockerSwarmClusterOwnerRuleService.ts +14 -0
  52. package/Server/Services/DockerSwarmClusterOwnerTeamService.ts +10 -0
  53. package/Server/Services/DockerSwarmClusterOwnerUserService.ts +10 -0
  54. package/Server/Services/DockerSwarmClusterService.ts +404 -0
  55. package/Server/Services/DockerSwarmResourceService.ts +381 -0
  56. package/Server/Services/ExceptionAggregationService.ts +1 -0
  57. package/Server/Services/GlobalConfigService.ts +50 -0
  58. package/Server/Services/GlobalOidcProjectService.ts +85 -0
  59. package/Server/Services/GlobalOidcService.ts +10 -0
  60. package/Server/Services/GlobalSsoProjectService.ts +85 -0
  61. package/Server/Services/GlobalSsoService.ts +10 -0
  62. package/Server/Services/IncidentLabelRuleEngineService.ts +27 -0
  63. package/Server/Services/IncidentOwnerRuleEngineService.ts +67 -0
  64. package/Server/Services/IncidentService.ts +11 -0
  65. package/Server/Services/Index.ts +22 -0
  66. package/Server/Services/LogAggregationService.ts +1 -0
  67. package/Server/Services/MetricAggregationService.ts +1 -0
  68. package/Server/Services/OpenTelemetryIngestService.ts +37 -0
  69. package/Server/Services/PodmanHostLabelRuleEngineService.ts +198 -0
  70. package/Server/Services/PodmanHostLabelRuleService.ts +14 -0
  71. package/Server/Services/PodmanHostOwnerRuleEngineService.ts +216 -0
  72. package/Server/Services/PodmanHostOwnerRuleService.ts +14 -0
  73. package/Server/Services/PodmanHostOwnerTeamService.ts +10 -0
  74. package/Server/Services/PodmanHostOwnerUserService.ts +10 -0
  75. package/Server/Services/PodmanHostService.ts +368 -0
  76. package/Server/Services/PodmanResourceService.ts +310 -0
  77. package/Server/Services/ProjectService.ts +44 -1
  78. package/Server/Services/ScheduledMaintenanceLabelRuleEngineService.ts +29 -0
  79. package/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.ts +67 -0
  80. package/Server/Services/TelemetryUsageBillingService.ts +18 -0
  81. package/Server/Services/TraceAggregationService.ts +1 -0
  82. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +13 -0
  83. package/Server/Utils/Cookie.ts +39 -5
  84. package/Server/Utils/JsonWebToken.ts +7 -0
  85. package/Server/Utils/Monitor/MonitorAlert.ts +10 -0
  86. package/Server/Utils/Monitor/MonitorClusterContext.ts +35 -6
  87. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +306 -0
  88. package/Server/Utils/Monitor/MonitorIncident.ts +45 -0
  89. package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +17 -0
  90. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +3 -0
  91. package/Server/Utils/Monitor/SeriesResourceLabels.ts +26 -0
  92. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +49 -0
  93. package/Server/Utils/Telemetry/Telemetry.ts +10 -0
  94. package/Server/Utils/Telemetry/TelemetryEntity.ts +22 -0
  95. package/Server/Utils/ValidateGlobalProviderProjectTeams.ts +119 -0
  96. package/Tests/Server/Middleware/UserAuthorization.test.ts +51 -13
  97. package/Tests/Server/Middleware/UserAuthorizationSSOProvider.test.ts +163 -0
  98. package/Tests/Server/Utils/CookieSSOToken.test.ts +130 -0
  99. package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +1 -0
  100. package/Tests/Types/DockerSwarm/DockerSwarmInventoryExtractor.test.ts +667 -0
  101. package/Tests/Types/Monitor/DockerSwarmAlertTemplates.test.ts +528 -0
  102. package/Types/Dashboard/DashboardComponentType.ts +7 -0
  103. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +2 -0
  104. package/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.ts +17 -0
  105. package/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.ts +17 -0
  106. package/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.ts +16 -0
  107. package/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.ts +15 -0
  108. package/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.ts +16 -0
  109. package/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.ts +15 -0
  110. package/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.ts +15 -0
  111. package/Types/Dashboard/DashboardTemplates.ts +194 -0
  112. package/Types/DockerSwarm/DockerSwarmInventoryExtractor.ts +452 -0
  113. package/Types/Icon/IconProp.ts +1 -0
  114. package/Types/JsonWebTokenData.ts +3 -0
  115. package/Types/Monitor/DockerSwarmAlertTemplates.ts +461 -0
  116. package/Types/Monitor/DockerSwarmMetricCatalog.ts +139 -0
  117. package/Types/Monitor/HostAlertTemplates.ts +455 -0
  118. package/Types/Monitor/HostMetricCatalog.ts +177 -0
  119. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +21 -0
  120. package/Types/Monitor/MonitorStep.ts +99 -0
  121. package/Types/Monitor/MonitorStepDockerSwarmMonitor.ts +74 -0
  122. package/Types/Monitor/MonitorStepHostMonitor.ts +30 -0
  123. package/Types/Monitor/MonitorStepPodmanMonitor.ts +38 -0
  124. package/Types/Monitor/MonitorType.ts +42 -0
  125. package/Types/Monitor/PodmanAlertTemplates.ts +507 -0
  126. package/Types/Monitor/PodmanMetricCatalog.ts +226 -0
  127. package/Types/Permission.ts +465 -4
  128. package/Types/Podman/PodmanInventoryExtractor.ts +343 -0
  129. package/Types/SSO/SsoProviderType.ts +8 -0
  130. package/Types/Telemetry/EntityType.ts +12 -0
  131. package/Types/Telemetry/ServiceType.ts +2 -0
  132. package/UI/Components/Accordion/Accordion.tsx +5 -1
  133. package/UI/Components/CardSelect/CardSelect.tsx +6 -1
  134. package/UI/Components/CategoryCheckbox/Index.tsx +2 -1
  135. package/UI/Components/CodeEditor/CodeEditor.tsx +2 -0
  136. package/UI/Components/CollapsibleSection/CollapsibleSection.tsx +8 -1
  137. package/UI/Components/Dropdown/Dropdown.tsx +2 -0
  138. package/UI/Components/EntityDropdown/EntityDropdown.tsx +3 -0
  139. package/UI/Components/FilePicker/FilePicker.tsx +2 -0
  140. package/UI/Components/Forms/Fields/ColorPicker.tsx +2 -0
  141. package/UI/Components/Forms/Fields/FieldLabel.tsx +4 -0
  142. package/UI/Components/Forms/Fields/FormField.tsx +72 -15
  143. package/UI/Components/Forms/Fields/IconPicker.tsx +2 -0
  144. package/UI/Components/Forms/Validation.ts +107 -23
  145. package/UI/Components/Icon/Icon.tsx +57 -0
  146. package/UI/Components/Input/Input.tsx +4 -0
  147. package/UI/Components/Link/Link.tsx +23 -0
  148. package/UI/Components/LogsViewer/LogsViewer.tsx +44 -1
  149. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +28 -0
  150. package/UI/Components/Markdown.tsx/MarkdownConverters.ts +0 -0
  151. package/UI/Components/Markdown.tsx/MarkdownEditor.tsx +3 -0
  152. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +63 -2
  153. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +6 -0
  154. package/UI/Components/Radio/Radio.tsx +2 -0
  155. package/UI/Components/RadioButtons/GroupRadioButtons.tsx +6 -1
  156. package/UI/Components/Tabs/Tabs.tsx +63 -0
  157. package/UI/Components/TextArea/TextArea.tsx +2 -0
  158. package/UI/Components/TimePicker/TimePicker.tsx +2 -0
  159. package/UI/Components/Toggle/Toggle.tsx +2 -1
  160. package/UI/Components/Tooltip/Tooltip.tsx +6 -1
  161. package/UI/Utils/TelemetryService.ts +1 -0
  162. package/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.ts +70 -0
  163. package/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.ts +61 -0
  164. package/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.ts +71 -0
  165. package/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.ts +100 -0
  166. package/Utils/Dashboard/Components/DashboardPodmanHostListComponent.ts +88 -0
  167. package/Utils/Dashboard/Components/DashboardPodmanImageListComponent.ts +97 -0
  168. package/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.ts +87 -0
  169. package/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.ts +87 -0
  170. package/Utils/Dashboard/Components/Index.ts +51 -0
  171. package/Utils/Telemetry/EntityKey.ts +18 -0
  172. package/build/dist/Models/DatabaseModels/Alert.js +162 -0
  173. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  174. package/build/dist/Models/DatabaseModels/AlertLabelRule.js +39 -0
  175. package/build/dist/Models/DatabaseModels/AlertLabelRule.js.map +1 -1
  176. package/build/dist/Models/DatabaseModels/AlertOwnerRule.js +39 -0
  177. package/build/dist/Models/DatabaseModels/AlertOwnerRule.js.map +1 -1
  178. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js +1018 -0
  179. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js.map +1 -0
  180. package/build/dist/Models/DatabaseModels/DockerSwarmClusterLabelRule.js +522 -0
  181. package/build/dist/Models/DatabaseModels/DockerSwarmClusterLabelRule.js.map +1 -0
  182. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerRule.js +603 -0
  183. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerRule.js.map +1 -0
  184. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js +503 -0
  185. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js.map +1 -0
  186. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js +502 -0
  187. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js.map +1 -0
  188. package/build/dist/Models/DatabaseModels/DockerSwarmResource.js +787 -0
  189. package/build/dist/Models/DatabaseModels/DockerSwarmResource.js.map +1 -0
  190. package/build/dist/Models/DatabaseModels/GlobalConfig.js +20 -0
  191. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  192. package/build/dist/Models/DatabaseModels/GlobalOidc.js +379 -0
  193. package/build/dist/Models/DatabaseModels/GlobalOidc.js.map +1 -0
  194. package/build/dist/Models/DatabaseModels/GlobalOidcProject.js +276 -0
  195. package/build/dist/Models/DatabaseModels/GlobalOidcProject.js.map +1 -0
  196. package/build/dist/Models/DatabaseModels/GlobalSso.js +341 -0
  197. package/build/dist/Models/DatabaseModels/GlobalSso.js.map +1 -0
  198. package/build/dist/Models/DatabaseModels/GlobalSsoProject.js +279 -0
  199. package/build/dist/Models/DatabaseModels/GlobalSsoProject.js.map +1 -0
  200. package/build/dist/Models/DatabaseModels/Incident.js +162 -0
  201. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  202. package/build/dist/Models/DatabaseModels/IncidentLabelRule.js +39 -0
  203. package/build/dist/Models/DatabaseModels/IncidentLabelRule.js.map +1 -1
  204. package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js +39 -0
  205. package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js.map +1 -1
  206. package/build/dist/Models/DatabaseModels/IncidentTemplate.js +54 -0
  207. package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
  208. package/build/dist/Models/DatabaseModels/Index.js +32 -0
  209. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  210. package/build/dist/Models/DatabaseModels/PodmanHost.js +885 -0
  211. package/build/dist/Models/DatabaseModels/PodmanHost.js.map +1 -0
  212. package/build/dist/Models/DatabaseModels/PodmanHostLabelRule.js +522 -0
  213. package/build/dist/Models/DatabaseModels/PodmanHostLabelRule.js.map +1 -0
  214. package/build/dist/Models/DatabaseModels/PodmanHostOwnerRule.js +603 -0
  215. package/build/dist/Models/DatabaseModels/PodmanHostOwnerRule.js.map +1 -0
  216. package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js +503 -0
  217. package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js.map +1 -0
  218. package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js +502 -0
  219. package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js.map +1 -0
  220. package/build/dist/Models/DatabaseModels/PodmanResource.js +526 -0
  221. package/build/dist/Models/DatabaseModels/PodmanResource.js.map +1 -0
  222. package/build/dist/Models/DatabaseModels/Project.js +32 -0
  223. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  224. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +108 -0
  225. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  226. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js +39 -0
  227. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js.map +1 -1
  228. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js +39 -0
  229. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js.map +1 -1
  230. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +54 -0
  231. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
  232. package/build/dist/Models/DatabaseModels/StatusPage.js +84 -0
  233. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  234. package/build/dist/Models/DatabaseModels/TelemetryException.js +2 -0
  235. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  236. package/build/dist/Server/API/DashboardAPI.js +89 -0
  237. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  238. package/build/dist/Server/API/DockerSwarmResourceAPI.js +100 -0
  239. package/build/dist/Server/API/DockerSwarmResourceAPI.js.map +1 -0
  240. package/build/dist/Server/API/StatusPageAPI.js +2 -0
  241. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  242. package/build/dist/Server/API/TelemetryAPI.js +8 -1
  243. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  244. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781750000000-MigrationName.js +1100 -0
  245. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781750000000-MigrationName.js.map +1 -0
  246. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782000000000-AddGlobalSsoAndOidc.js +73 -0
  247. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782000000000-AddGlobalSsoAndOidc.js.map +1 -0
  248. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782100000000-AddStatusPageImageAltText.js +14 -0
  249. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782100000000-AddStatusPageImageAltText.js.map +1 -0
  250. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782200000000-AddRequireSsoForLoginToGlobalProviders.js +14 -0
  251. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782200000000-AddRequireSsoForLoginToGlobalProviders.js.map +1 -0
  252. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782300000000-MoveRequireSsoForLoginToGlobalConfig.js +23 -0
  253. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782300000000-MoveRequireSsoForLoginToGlobalConfig.js.map +1 -0
  254. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782310000000-MigrationName.js +106 -0
  255. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782310000000-MigrationName.js.map +1 -0
  256. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782400000000-RemoveIsTestedFromGlobalSsoAndOidc.js +14 -0
  257. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782400000000-RemoveIsTestedFromGlobalSsoAndOidc.js.map +1 -0
  258. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +14 -0
  259. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  260. package/build/dist/Server/Middleware/UserAuthorization.js +77 -34
  261. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  262. package/build/dist/Server/Services/AlertLabelRuleEngineService.js +30 -4
  263. package/build/dist/Server/Services/AlertLabelRuleEngineService.js.map +1 -1
  264. package/build/dist/Server/Services/AlertOwnerRuleEngineService.js +62 -5
  265. package/build/dist/Server/Services/AlertOwnerRuleEngineService.js.map +1 -1
  266. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +168 -0
  267. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -0
  268. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleService.js +13 -0
  269. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleService.js.map +1 -0
  270. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +188 -0
  271. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -0
  272. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleService.js +13 -0
  273. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleService.js.map +1 -0
  274. package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js +9 -0
  275. package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js.map +1 -0
  276. package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js +9 -0
  277. package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js.map +1 -0
  278. package/build/dist/Server/Services/DockerSwarmClusterService.js +353 -0
  279. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -0
  280. package/build/dist/Server/Services/DockerSwarmResourceService.js +258 -0
  281. package/build/dist/Server/Services/DockerSwarmResourceService.js.map +1 -0
  282. package/build/dist/Server/Services/ExceptionAggregationService.js +1 -0
  283. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  284. package/build/dist/Server/Services/GlobalConfigService.js +55 -0
  285. package/build/dist/Server/Services/GlobalConfigService.js.map +1 -1
  286. package/build/dist/Server/Services/GlobalOidcProjectService.js +80 -0
  287. package/build/dist/Server/Services/GlobalOidcProjectService.js.map +1 -0
  288. package/build/dist/Server/Services/GlobalOidcService.js +9 -0
  289. package/build/dist/Server/Services/GlobalOidcService.js.map +1 -0
  290. package/build/dist/Server/Services/GlobalSsoProjectService.js +80 -0
  291. package/build/dist/Server/Services/GlobalSsoProjectService.js.map +1 -0
  292. package/build/dist/Server/Services/GlobalSsoService.js +9 -0
  293. package/build/dist/Server/Services/GlobalSsoService.js.map +1 -0
  294. package/build/dist/Server/Services/IncidentLabelRuleEngineService.js +28 -4
  295. package/build/dist/Server/Services/IncidentLabelRuleEngineService.js.map +1 -1
  296. package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js +62 -5
  297. package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js.map +1 -1
  298. package/build/dist/Server/Services/IncidentService.js +8 -0
  299. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  300. package/build/dist/Server/Services/Index.js +22 -0
  301. package/build/dist/Server/Services/Index.js.map +1 -1
  302. package/build/dist/Server/Services/LogAggregationService.js +1 -0
  303. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  304. package/build/dist/Server/Services/MetricAggregationService.js +1 -0
  305. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  306. package/build/dist/Server/Services/OpenTelemetryIngestService.js +43 -13
  307. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  308. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +166 -0
  309. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -0
  310. package/build/dist/Server/Services/PodmanHostLabelRuleService.js +13 -0
  311. package/build/dist/Server/Services/PodmanHostLabelRuleService.js.map +1 -0
  312. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +186 -0
  313. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -0
  314. package/build/dist/Server/Services/PodmanHostOwnerRuleService.js +13 -0
  315. package/build/dist/Server/Services/PodmanHostOwnerRuleService.js.map +1 -0
  316. package/build/dist/Server/Services/PodmanHostOwnerTeamService.js +9 -0
  317. package/build/dist/Server/Services/PodmanHostOwnerTeamService.js.map +1 -0
  318. package/build/dist/Server/Services/PodmanHostOwnerUserService.js +9 -0
  319. package/build/dist/Server/Services/PodmanHostOwnerUserService.js.map +1 -0
  320. package/build/dist/Server/Services/PodmanHostService.js +319 -0
  321. package/build/dist/Server/Services/PodmanHostService.js.map +1 -0
  322. package/build/dist/Server/Services/PodmanResourceService.js +196 -0
  323. package/build/dist/Server/Services/PodmanResourceService.js.map +1 -0
  324. package/build/dist/Server/Services/ProjectService.js +36 -1
  325. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  326. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js +30 -4
  327. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js.map +1 -1
  328. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js +62 -5
  329. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js.map +1 -1
  330. package/build/dist/Server/Services/TelemetryUsageBillingService.js +13 -0
  331. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  332. package/build/dist/Server/Services/TraceAggregationService.js +1 -0
  333. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  334. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +13 -0
  335. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  336. package/build/dist/Server/Utils/Cookie.js +32 -3
  337. package/build/dist/Server/Utils/Cookie.js.map +1 -1
  338. package/build/dist/Server/Utils/JsonWebToken.js +6 -0
  339. package/build/dist/Server/Utils/JsonWebToken.js.map +1 -1
  340. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +8 -0
  341. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  342. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js +35 -7
  343. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js.map +1 -1
  344. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +194 -0
  345. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  346. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +35 -1
  347. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  348. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +9 -0
  349. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
  350. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +3 -0
  351. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  352. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +16 -0
  353. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
  354. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +30 -0
  355. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  356. package/build/dist/Server/Utils/Telemetry/Telemetry.js +6 -0
  357. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  358. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +18 -0
  359. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  360. package/build/dist/Server/Utils/ValidateGlobalProviderProjectTeams.js +66 -0
  361. package/build/dist/Server/Utils/ValidateGlobalProviderProjectTeams.js.map +1 -0
  362. package/build/dist/Types/Dashboard/DashboardComponentType.js +7 -0
  363. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  364. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +2 -0
  365. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  366. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.js +2 -0
  367. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.js.map +1 -0
  368. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.js +2 -0
  369. package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.js.map +1 -0
  370. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.js +2 -0
  371. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.js.map +1 -0
  372. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.js +2 -0
  373. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.js.map +1 -0
  374. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.js +2 -0
  375. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.js.map +1 -0
  376. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.js +2 -0
  377. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.js.map +1 -0
  378. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.js +2 -0
  379. package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.js.map +1 -0
  380. package/build/dist/Types/Dashboard/DashboardTemplates.js +168 -0
  381. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  382. package/build/dist/Types/DockerSwarm/DockerSwarmInventoryExtractor.js +359 -0
  383. package/build/dist/Types/DockerSwarm/DockerSwarmInventoryExtractor.js.map +1 -0
  384. package/build/dist/Types/Icon/IconProp.js +1 -0
  385. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  386. package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js +358 -0
  387. package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js.map +1 -0
  388. package/build/dist/Types/Monitor/DockerSwarmMetricCatalog.js +103 -0
  389. package/build/dist/Types/Monitor/DockerSwarmMetricCatalog.js.map +1 -0
  390. package/build/dist/Types/Monitor/HostAlertTemplates.js +365 -0
  391. package/build/dist/Types/Monitor/HostAlertTemplates.js.map +1 -0
  392. package/build/dist/Types/Monitor/HostMetricCatalog.js +138 -0
  393. package/build/dist/Types/Monitor/HostMetricCatalog.js.map +1 -0
  394. package/build/dist/Types/Monitor/MonitorStep.js +69 -0
  395. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  396. package/build/dist/Types/Monitor/MonitorStepDockerSwarmMonitor.js +21 -0
  397. package/build/dist/Types/Monitor/MonitorStepDockerSwarmMonitor.js.map +1 -0
  398. package/build/dist/Types/Monitor/MonitorStepHostMonitor.js +20 -0
  399. package/build/dist/Types/Monitor/MonitorStepHostMonitor.js.map +1 -0
  400. package/build/dist/Types/Monitor/MonitorStepPodmanMonitor.js +21 -0
  401. package/build/dist/Types/Monitor/MonitorStepPodmanMonitor.js.map +1 -0
  402. package/build/dist/Types/Monitor/MonitorType.js +39 -0
  403. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  404. package/build/dist/Types/Monitor/PodmanAlertTemplates.js +410 -0
  405. package/build/dist/Types/Monitor/PodmanAlertTemplates.js.map +1 -0
  406. package/build/dist/Types/Monitor/PodmanMetricCatalog.js +192 -0
  407. package/build/dist/Types/Monitor/PodmanMetricCatalog.js.map +1 -0
  408. package/build/dist/Types/Permission.js +420 -4
  409. package/build/dist/Types/Permission.js.map +1 -1
  410. package/build/dist/Types/Podman/PodmanInventoryExtractor.js +293 -0
  411. package/build/dist/Types/Podman/PodmanInventoryExtractor.js.map +1 -0
  412. package/build/dist/Types/SSO/SsoProviderType.js +9 -0
  413. package/build/dist/Types/SSO/SsoProviderType.js.map +1 -0
  414. package/build/dist/Types/Telemetry/EntityType.js +12 -0
  415. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  416. package/build/dist/Types/Telemetry/ServiceType.js +2 -0
  417. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  418. package/build/dist/UI/Components/Accordion/Accordion.js +5 -3
  419. package/build/dist/UI/Components/Accordion/Accordion.js.map +1 -1
  420. package/build/dist/UI/Components/CardSelect/CardSelect.js +1 -1
  421. package/build/dist/UI/Components/CardSelect/CardSelect.js.map +1 -1
  422. package/build/dist/UI/Components/CategoryCheckbox/Index.js +1 -1
  423. package/build/dist/UI/Components/CategoryCheckbox/Index.js.map +1 -1
  424. package/build/dist/UI/Components/CodeEditor/CodeEditor.js +1 -1
  425. package/build/dist/UI/Components/CodeEditor/CodeEditor.js.map +1 -1
  426. package/build/dist/UI/Components/CollapsibleSection/CollapsibleSection.js +4 -2
  427. package/build/dist/UI/Components/CollapsibleSection/CollapsibleSection.js.map +1 -1
  428. package/build/dist/UI/Components/Dropdown/Dropdown.js +1 -1
  429. package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
  430. package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js +2 -2
  431. package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js.map +1 -1
  432. package/build/dist/UI/Components/FilePicker/FilePicker.js +1 -1
  433. package/build/dist/UI/Components/FilePicker/FilePicker.js.map +1 -1
  434. package/build/dist/UI/Components/Forms/Fields/ColorPicker.js +1 -1
  435. package/build/dist/UI/Components/Forms/Fields/ColorPicker.js.map +1 -1
  436. package/build/dist/UI/Components/Forms/Fields/FieldLabel.js +1 -1
  437. package/build/dist/UI/Components/Forms/Fields/FieldLabel.js.map +1 -1
  438. package/build/dist/UI/Components/Forms/Fields/FormField.js +58 -22
  439. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  440. package/build/dist/UI/Components/Forms/Fields/IconPicker.js +1 -1
  441. package/build/dist/UI/Components/Forms/Fields/IconPicker.js.map +1 -1
  442. package/build/dist/UI/Components/Forms/Validation.js +64 -15
  443. package/build/dist/UI/Components/Forms/Validation.js.map +1 -1
  444. package/build/dist/UI/Components/Icon/Icon.js +16 -0
  445. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  446. package/build/dist/UI/Components/Input/Input.js +1 -1
  447. package/build/dist/UI/Components/Input/Input.js.map +1 -1
  448. package/build/dist/UI/Components/Link/Link.js +22 -1
  449. package/build/dist/UI/Components/Link/Link.js.map +1 -1
  450. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +30 -2
  451. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  452. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +22 -0
  453. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  454. package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js +0 -0
  455. package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js.map +1 -1
  456. package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js +2 -2
  457. package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js.map +1 -1
  458. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +46 -2
  459. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  460. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +6 -0
  461. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  462. package/build/dist/UI/Components/Radio/Radio.js +1 -1
  463. package/build/dist/UI/Components/Radio/Radio.js.map +1 -1
  464. package/build/dist/UI/Components/RadioButtons/GroupRadioButtons.js +1 -1
  465. package/build/dist/UI/Components/RadioButtons/GroupRadioButtons.js.map +1 -1
  466. package/build/dist/UI/Components/Tabs/Tabs.js +50 -1
  467. package/build/dist/UI/Components/Tabs/Tabs.js.map +1 -1
  468. package/build/dist/UI/Components/TextArea/TextArea.js +1 -1
  469. package/build/dist/UI/Components/TextArea/TextArea.js.map +1 -1
  470. package/build/dist/UI/Components/TimePicker/TimePicker.js +1 -1
  471. package/build/dist/UI/Components/TimePicker/TimePicker.js.map +1 -1
  472. package/build/dist/UI/Components/Toggle/Toggle.js +1 -1
  473. package/build/dist/UI/Components/Toggle/Toggle.js.map +1 -1
  474. package/build/dist/UI/Components/Tooltip/Tooltip.js +6 -1
  475. package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
  476. package/build/dist/UI/Utils/TelemetryService.js +1 -0
  477. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  478. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.js +55 -0
  479. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.js.map +1 -0
  480. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.js +46 -0
  481. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.js.map +1 -0
  482. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.js +55 -0
  483. package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.js.map +1 -0
  484. package/build/dist/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.js +77 -0
  485. package/build/dist/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.js.map +1 -0
  486. package/build/dist/Utils/Dashboard/Components/DashboardPodmanHostListComponent.js +71 -0
  487. package/build/dist/Utils/Dashboard/Components/DashboardPodmanHostListComponent.js.map +1 -0
  488. package/build/dist/Utils/Dashboard/Components/DashboardPodmanImageListComponent.js +77 -0
  489. package/build/dist/Utils/Dashboard/Components/DashboardPodmanImageListComponent.js.map +1 -0
  490. package/build/dist/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.js +68 -0
  491. package/build/dist/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.js.map +1 -0
  492. package/build/dist/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.js +68 -0
  493. package/build/dist/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.js.map +1 -0
  494. package/build/dist/Utils/Dashboard/Components/Index.js +28 -0
  495. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  496. package/build/dist/Utils/Telemetry/EntityKey.js +14 -0
  497. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
  498. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import CephCluster from "../../../Models/DatabaseModels/CephCluster";
2
+ import DockerSwarmCluster from "../../../Models/DatabaseModels/DockerSwarmCluster";
2
3
  import DockerHost from "../../../Models/DatabaseModels/DockerHost";
3
4
  import Host from "../../../Models/DatabaseModels/Host";
4
5
  import Incident from "../../../Models/DatabaseModels/Incident";
@@ -9,6 +10,7 @@ import KubernetesCluster from "../../../Models/DatabaseModels/KubernetesCluster"
9
10
  import Label from "../../../Models/DatabaseModels/Label";
10
11
  import Monitor from "../../../Models/DatabaseModels/Monitor";
11
12
  import OnCallDutyPolicy from "../../../Models/DatabaseModels/OnCallDutyPolicy";
13
+ import PodmanHost from "../../../Models/DatabaseModels/PodmanHost";
12
14
  import ProxmoxCluster from "../../../Models/DatabaseModels/ProxmoxCluster";
13
15
  import Service from "../../../Models/DatabaseModels/Service";
14
16
  import Includes from "../../../Types/BaseDatabase/Includes";
@@ -27,6 +29,7 @@ import DockerHostService from "../../Services/DockerHostService";
27
29
  import HostService from "../../Services/HostService";
28
30
  import IncidentService from "../../Services/IncidentService";
29
31
  import KubernetesClusterService from "../../Services/KubernetesClusterService";
32
+ import PodmanHostService from "../../Services/PodmanHostService";
30
33
  import ProxmoxClusterService from "../../Services/ProxmoxClusterService";
31
34
  import ServiceService from "../../Services/ServiceService";
32
35
  import IncidentSeverityService from "../../Services/IncidentSeverityService";
@@ -577,6 +580,7 @@ export default class MonitorIncident {
577
580
  const [
578
581
  resolvedHosts,
579
582
  resolvedDockerHosts,
583
+ resolvedPodmanHosts,
580
584
  resolvedClusters,
581
585
  resolvedServices,
582
586
  resolvedProxmoxClusters,
@@ -596,6 +600,13 @@ export default class MonitorIncident {
596
600
  projectId: input.projectId,
597
601
  findBy: DockerHostService.findBy.bind(DockerHostService),
598
602
  }),
603
+ this.resolveResourceIds({
604
+ ids: refs.podmanHostIds,
605
+ names: refs.podmanHostNames,
606
+ nameColumn: "hostIdentifier",
607
+ projectId: input.projectId,
608
+ findBy: PodmanHostService.findBy.bind(PodmanHostService),
609
+ }),
599
610
  this.resolveResourceIds({
600
611
  ids: refs.kubernetesClusterIds,
601
612
  names: refs.kubernetesClusterNames,
@@ -642,6 +653,15 @@ export default class MonitorIncident {
642
653
  },
643
654
  );
644
655
  }
656
+ if (resolvedPodmanHosts.length > 0) {
657
+ input.incident.podmanHosts = resolvedPodmanHosts.map(
658
+ (id: string): PodmanHost => {
659
+ const podmanHost: PodmanHost = new PodmanHost();
660
+ podmanHost._id = id;
661
+ return podmanHost;
662
+ },
663
+ );
664
+ }
645
665
  if (resolvedClusters.length > 0) {
646
666
  input.incident.kubernetesClusters = resolvedClusters.map(
647
667
  (id: string): KubernetesCluster => {
@@ -735,6 +755,31 @@ export default class MonitorIncident {
735
755
 
736
756
  input.incident.cephClusters = merged;
737
757
  }
758
+
759
+ if (input.clusterContext.dockerSwarmClusterIds.length > 0) {
760
+ const existingIds: Set<string> = new Set<string>(
761
+ (input.incident.dockerSwarmClusters || []).map(
762
+ (cluster: DockerSwarmCluster) => {
763
+ return String(cluster._id);
764
+ },
765
+ ),
766
+ );
767
+
768
+ const merged: Array<DockerSwarmCluster> = [
769
+ ...(input.incident.dockerSwarmClusters || []),
770
+ ];
771
+
772
+ for (const id of input.clusterContext.dockerSwarmClusterIds) {
773
+ if (existingIds.has(id)) {
774
+ continue;
775
+ }
776
+ const cluster: DockerSwarmCluster = new DockerSwarmCluster();
777
+ cluster._id = id;
778
+ merged.push(cluster);
779
+ }
780
+
781
+ input.incident.dockerSwarmClusters = merged;
782
+ }
738
783
  }
739
784
 
740
785
  /*
@@ -23,6 +23,7 @@ export interface ResourceKeySet {
23
23
  export interface MaintainedResourceKeys {
24
24
  hosts: ResourceKeySet;
25
25
  dockerHosts: ResourceKeySet;
26
+ podmanHosts: ResourceKeySet;
26
27
  kubernetesClusters: ResourceKeySet;
27
28
  /*
28
29
  * Proxmox/Ceph clusters have no `oneuptime.*.id` label stamp, so only
@@ -112,6 +113,11 @@ export default class MonitorMaintenanceSuppression {
112
113
  refs.dockerHostNames,
113
114
  input.maintained.dockerHosts.names,
114
115
  ) ||
116
+ this.intersects(refs.podmanHostIds, input.maintained.podmanHosts.ids) ||
117
+ this.intersects(
118
+ refs.podmanHostNames,
119
+ input.maintained.podmanHosts.names,
120
+ ) ||
115
121
  this.intersects(
116
122
  refs.kubernetesClusterIds,
117
123
  input.maintained.kubernetesClusters.ids,
@@ -156,6 +162,8 @@ export default class MonitorMaintenanceSuppression {
156
162
  maintained.hosts.names.size > 0 ||
157
163
  maintained.dockerHosts.ids.size > 0 ||
158
164
  maintained.dockerHosts.names.size > 0 ||
165
+ maintained.podmanHosts.ids.size > 0 ||
166
+ maintained.podmanHosts.names.size > 0 ||
159
167
  maintained.kubernetesClusters.ids.size > 0 ||
160
168
  maintained.kubernetesClusters.names.size > 0 ||
161
169
  maintained.proxmoxClusters.ids.size > 0 ||
@@ -181,6 +189,7 @@ export default class MonitorMaintenanceSuppression {
181
189
  const maintained: MaintainedResourceKeys = {
182
190
  hosts: { ids: new Set<string>(), names: new Set<string>() },
183
191
  dockerHosts: { ids: new Set<string>(), names: new Set<string>() },
192
+ podmanHosts: { ids: new Set<string>(), names: new Set<string>() },
184
193
  kubernetesClusters: { ids: new Set<string>(), names: new Set<string>() },
185
194
  proxmoxClusters: { ids: new Set<string>(), names: new Set<string>() },
186
195
  cephClusters: { ids: new Set<string>(), names: new Set<string>() },
@@ -199,6 +208,7 @@ export default class MonitorMaintenanceSuppression {
199
208
  _id: true,
200
209
  hosts: { _id: true, hostIdentifier: true },
201
210
  dockerHosts: { _id: true, hostIdentifier: true },
211
+ podmanHosts: { _id: true, hostIdentifier: true },
202
212
  kubernetesClusters: { _id: true, clusterIdentifier: true },
203
213
  proxmoxClusters: { _id: true, name: true },
204
214
  cephClusters: { _id: true, name: true },
@@ -222,6 +232,13 @@ export default class MonitorMaintenanceSuppression {
222
232
  dockerHost.hostIdentifier,
223
233
  );
224
234
  }
235
+ for (const podmanHost of event.podmanHosts || []) {
236
+ this.addKey(
237
+ maintained.podmanHosts,
238
+ podmanHost._id,
239
+ podmanHost.hostIdentifier,
240
+ );
241
+ }
225
242
  for (const cluster of event.kubernetesClusters || []) {
226
243
  this.addKey(
227
244
  maintained.kubernetesClusters,
@@ -361,6 +361,9 @@ export default class MonitorTemplateUtil {
361
361
  data.monitorType === MonitorType.Metrics ||
362
362
  data.monitorType === MonitorType.Kubernetes ||
363
363
  data.monitorType === MonitorType.Docker ||
364
+ data.monitorType === MonitorType.Host ||
365
+ data.monitorType === MonitorType.Podman ||
366
+ data.monitorType === MonitorType.DockerSwarm ||
364
367
  data.monitorType === MonitorType.Proxmox ||
365
368
  data.monitorType === MonitorType.Ceph
366
369
  ) {
@@ -48,6 +48,22 @@ export const DockerHostNameLabelKeys: ReadonlyArray<string> = [
48
48
  "oneuptime.docker.host.name",
49
49
  ];
50
50
 
51
+ /*
52
+ * For Podman hosts we deliberately ignore raw `host.name` /
53
+ * `oneuptime.host.name`: those are the Host's territory. The ingest
54
+ * pipeline stamps `oneuptime.podman.host.*` independently when the
55
+ * source is a podman host, so only those keys identify a PodmanHost.
56
+ */
57
+ export const PodmanHostIdLabelKeys: ReadonlyArray<string> = [
58
+ "resource.oneuptime.podman.host.id",
59
+ "oneuptime.podman.host.id",
60
+ ];
61
+
62
+ export const PodmanHostNameLabelKeys: ReadonlyArray<string> = [
63
+ "resource.oneuptime.podman.host.name",
64
+ "oneuptime.podman.host.name",
65
+ ];
66
+
51
67
  export const KubernetesClusterIdLabelKeys: ReadonlyArray<string> = [
52
68
  "resource.oneuptime.kubernetes.cluster.id",
53
69
  "oneuptime.kubernetes.cluster.id",
@@ -112,6 +128,8 @@ export interface SeriesResourceRefs {
112
128
  hostNames: Array<string>;
113
129
  dockerHostIds: Array<string>;
114
130
  dockerHostNames: Array<string>;
131
+ podmanHostIds: Array<string>;
132
+ podmanHostNames: Array<string>;
115
133
  kubernetesClusterIds: Array<string>;
116
134
  kubernetesClusterNames: Array<string>;
117
135
  proxmoxClusterNames: Array<string>;
@@ -166,6 +184,14 @@ export default class SeriesResourceLabels {
166
184
  seriesLabels,
167
185
  DockerHostNameLabelKeys,
168
186
  ),
187
+ podmanHostIds: this.collectLabelValues(
188
+ seriesLabels,
189
+ PodmanHostIdLabelKeys,
190
+ ),
191
+ podmanHostNames: this.collectLabelValues(
192
+ seriesLabels,
193
+ PodmanHostNameLabelKeys,
194
+ ),
169
195
  kubernetesClusterIds: this.collectLabelValues(
170
196
  seriesLabels,
171
197
  KubernetesClusterIdLabelKeys,
@@ -5,6 +5,7 @@ import MultiSearch from "../../../Types/BaseDatabase/MultiSearch";
5
5
  import ServiceModel from "../../../Models/DatabaseModels/Service";
6
6
  import HostModel from "../../../Models/DatabaseModels/Host";
7
7
  import DockerHostModel from "../../../Models/DatabaseModels/DockerHost";
8
+ import PodmanHostModel from "../../../Models/DatabaseModels/PodmanHost";
8
9
  import KubernetesClusterModel from "../../../Models/DatabaseModels/KubernetesCluster";
9
10
  import ServerlessFunctionModel from "../../../Models/DatabaseModels/ServerlessFunction";
10
11
  import CloudResourceModel from "../../../Models/DatabaseModels/CloudResource";
@@ -12,6 +13,7 @@ import RumApplicationModel from "../../../Models/DatabaseModels/RumApplication";
12
13
  import ServiceService from "../../Services/ServiceService";
13
14
  import HostService from "../../Services/HostService";
14
15
  import DockerHostService from "../../Services/DockerHostService";
16
+ import PodmanHostService from "../../Services/PodmanHostService";
15
17
  import KubernetesClusterService from "../../Services/KubernetesClusterService";
16
18
  import ServerlessFunctionService from "../../Services/ServerlessFunctionService";
17
19
  import CloudResourceService from "../../Services/CloudResourceService";
@@ -34,6 +36,7 @@ export const RESOURCE_FACET_KEYS: ReadonlySet<string> = new Set([
34
36
  "serviceId",
35
37
  "hostId",
36
38
  "dockerHostId",
39
+ "podmanHostId",
37
40
  "kubernetesClusterId",
38
41
  "serverlessFunctionId",
39
42
  "cloudResourceId",
@@ -118,6 +121,13 @@ export default class ResourceFacetResolver {
118
121
  searchText,
119
122
  limit,
120
123
  );
124
+ case "podmanHostId":
125
+ return ResourceFacetResolver.queryPodmanHosts(
126
+ projectId,
127
+ spec.counts,
128
+ searchText,
129
+ limit,
130
+ );
121
131
  case "kubernetesClusterId":
122
132
  return ResourceFacetResolver.queryKubernetesClusters(
123
133
  projectId,
@@ -260,6 +270,45 @@ export default class ResourceFacetResolver {
260
270
  );
261
271
  }
262
272
 
273
+ private static async queryPodmanHosts(
274
+ projectId: ObjectID,
275
+ counts: Map<string, number>,
276
+ searchText: string | undefined,
277
+ limit: number,
278
+ ): Promise<Array<ResolvedFacetValue>> {
279
+ const query: Record<string, unknown> = { projectId };
280
+ if (searchText) {
281
+ query["name"] = new MultiSearch({
282
+ fields: ["name", "hostIdentifier"],
283
+ value: searchText,
284
+ });
285
+ }
286
+
287
+ const podmanHosts: Array<PodmanHostModel> = await PodmanHostService.findBy({
288
+ query: query as any,
289
+ select: {
290
+ _id: true,
291
+ name: true,
292
+ hostIdentifier: true,
293
+ },
294
+ limit: new PositiveNumber(limit),
295
+ skip: new PositiveNumber(0),
296
+ props: { isRoot: true },
297
+ });
298
+
299
+ return ResourceFacetResolver.mergeCounts(
300
+ podmanHosts.map(
301
+ (p: PodmanHostModel): { id: string; displayName: string } => {
302
+ return {
303
+ id: p._id ? p._id.toString() : "",
304
+ displayName: p.name || p.hostIdentifier || "Unknown",
305
+ };
306
+ },
307
+ ),
308
+ counts,
309
+ );
310
+ }
311
+
263
312
  private static async queryKubernetesClusters(
264
313
  projectId: ObjectID,
265
314
  counts: Map<string, number>,
@@ -163,6 +163,16 @@ export default class TelemetryUtil {
163
163
  };
164
164
  }
165
165
 
166
+ public static getAttributesForPodmanHostIdAndHostName(data: {
167
+ podmanHostId: ObjectID;
168
+ hostName: string;
169
+ }): Dictionary<AttributeType> {
170
+ return {
171
+ "oneuptime.podman.host.id": data.podmanHostId.toString(),
172
+ "oneuptime.podman.host.name": data.hostName,
173
+ };
174
+ }
175
+
166
176
  public static getAttributesForKubernetesClusterIdAndName(data: {
167
177
  kubernetesClusterId: ObjectID;
168
178
  clusterName: string;
@@ -597,6 +597,28 @@ export default class TelemetryEntity {
597
597
  : null;
598
598
  },
599
599
 
600
+ /*
601
+ * docker.swarm.cluster — docker.swarm.cluster.name only, mirroring the
602
+ * proxmox/ceph cluster identity: the typed Postgres row
603
+ * (DockerSwarmCluster) and the read side
604
+ * (`EntityKey.keyForDockerSwarmCluster`) are name-based, and the agent
605
+ * stamps `docker.swarm.cluster.name` on every signal. Node/Service/Task
606
+ * identity is NOT derived from resource attributes (inventory arrives as
607
+ * separate JSON-line log records), so only the cluster entity flows here.
608
+ */
609
+ (attrs: EntityAttributes) => {
610
+ const name: string | null = TelemetryEntity.str(
611
+ attrs,
612
+ "docker.swarm.cluster.name",
613
+ );
614
+ return name
615
+ ? {
616
+ entityType: EntityType.DockerSwarmCluster,
617
+ id: { "docker.swarm.cluster.name": name },
618
+ }
619
+ : null;
620
+ },
621
+
600
622
  /*
601
623
  * container — container.id. High-churn: flows as a membership key but
602
624
  * is membership-only by default (not promoted to a registry row
@@ -0,0 +1,119 @@
1
+ import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
2
+ import BadDataException from "../../Types/Exception/BadDataException";
3
+ import ObjectID from "../../Types/ObjectID";
4
+ import Project from "../../Models/DatabaseModels/Project";
5
+ import Team from "../../Models/DatabaseModels/Team";
6
+ import QueryHelper from "../Types/Database/QueryHelper";
7
+ import TeamService from "../Services/TeamService";
8
+
9
+ /*
10
+ * The Admin Dashboard attach form submits the chosen project via the `project`
11
+ * relation, not the `projectId` FK: the entity dropdown sets the related
12
+ * Project (as a model with only `_id`), so `createBy.data.projectId` is
13
+ * undefined at create-hook time. Resolve the FK from either shape so the hook
14
+ * can populate the NOT NULL `projectId` column and validate teams against it.
15
+ */
16
+ export const resolveAttachmentProjectId: (data: {
17
+ projectId?: ObjectID | undefined;
18
+ project?: Project | undefined;
19
+ }) => ObjectID | undefined = (data: {
20
+ projectId?: ObjectID | undefined;
21
+ project?: Project | undefined;
22
+ }): ObjectID | undefined => {
23
+ if (data.projectId) {
24
+ return data.projectId;
25
+ }
26
+
27
+ const project: (Project & { _id?: string }) | undefined = data.project as
28
+ | (Project & { _id?: string })
29
+ | undefined;
30
+
31
+ if (!project) {
32
+ return undefined;
33
+ }
34
+
35
+ const idString: string | undefined =
36
+ project._id?.toString() || (project.id ? project.id.toString() : undefined);
37
+
38
+ return idString ? new ObjectID(idString) : undefined;
39
+ };
40
+
41
+ /*
42
+ * Guards a Global SSO / Global OIDC project-attachment: every default team
43
+ * selected for the attachment MUST belong to the same project the attachment
44
+ * targets.
45
+ *
46
+ * Without this guard, an admin (or a direct API call) could attach a team that
47
+ * lives in project B to an attachment that targets project A. The SSO/OIDC
48
+ * login fan-out (see App/FeatureSet/Identity/API/GlobalSSO.ts) provisions a
49
+ * TeamMember with `projectId = attachment.projectId` but `teamId = team.id`,
50
+ * and because that path runs with `ignoreHooks: true` no service-level
51
+ * validation would catch the mismatch — producing a corrupt, cross-project
52
+ * membership row. This is the server-side backstop for the project-scoped team
53
+ * picker in the Admin Dashboard.
54
+ */
55
+ type ValidateGlobalProviderProjectTeamsFunction = (data: {
56
+ teams: Array<Team> | undefined;
57
+ projectId: ObjectID | undefined;
58
+ }) => Promise<void>;
59
+
60
+ const validateGlobalProviderProjectTeams: ValidateGlobalProviderProjectTeamsFunction =
61
+ async (data: {
62
+ teams: Array<Team> | undefined;
63
+ projectId: ObjectID | undefined;
64
+ }): Promise<void> => {
65
+ const teams: Array<Team> | undefined = data.teams;
66
+
67
+ if (!teams || teams.length === 0) {
68
+ // No default teams selected: nothing to validate.
69
+ return;
70
+ }
71
+
72
+ if (!data.projectId) {
73
+ throw new BadDataException(
74
+ "A project must be selected before choosing default teams.",
75
+ );
76
+ }
77
+
78
+ const projectId: string = data.projectId.toString();
79
+
80
+ const teamIds: Array<string> = teams
81
+ .map((team: Team) => {
82
+ return (
83
+ team.id?.toString() ||
84
+ (team as { _id?: string })._id?.toString() ||
85
+ undefined
86
+ );
87
+ })
88
+ .filter((id: string | undefined): id is string => {
89
+ return Boolean(id);
90
+ });
91
+
92
+ if (teamIds.length === 0) {
93
+ return;
94
+ }
95
+
96
+ const foundTeams: Array<Team> = await TeamService.findBy({
97
+ query: { _id: QueryHelper.any(teamIds) },
98
+ select: { _id: true, projectId: true },
99
+ limit: LIMIT_PER_PROJECT,
100
+ skip: 0,
101
+ props: { isRoot: true },
102
+ });
103
+
104
+ if (foundTeams.length !== teamIds.length) {
105
+ throw new BadDataException(
106
+ "One or more selected teams could not be found.",
107
+ );
108
+ }
109
+
110
+ for (const team of foundTeams) {
111
+ if (team.projectId?.toString() !== projectId) {
112
+ throw new BadDataException(
113
+ "All selected teams must belong to the project this provider is attached to.",
114
+ );
115
+ }
116
+ }
117
+ };
118
+
119
+ export default validateGlobalProviderProjectTeams;
@@ -1,6 +1,7 @@
1
1
  import ProjectMiddleware from "../../../Server/Middleware/ProjectAuthorization";
2
2
  import UserMiddleware from "../../../Server/Middleware/UserAuthorization";
3
3
  import AccessTokenService from "../../../Server/Services/AccessTokenService";
4
+ import GlobalConfigService from "../../../Server/Services/GlobalConfigService";
4
5
  import ProjectService from "../../../Server/Services/ProjectService";
5
6
  import TeamMemberService from "../../../Server/Services/TeamMemberService";
6
7
  import UserService from "../../../Server/Services/UserService";
@@ -26,7 +27,6 @@ import {
26
27
  UserGlobalAccessPermission,
27
28
  UserTenantAccessPermission,
28
29
  } from "../../../Types/Permission";
29
- import Project from "../../../Models/DatabaseModels/Project";
30
30
  import {
31
31
  describe,
32
32
  expect,
@@ -44,6 +44,7 @@ jest.mock("../../../Server/Middleware/ProjectAuthorization");
44
44
  jest.mock("../../../Server/Utils/JsonWebToken");
45
45
  jest.mock("../../../Server/Services/UserService");
46
46
  jest.mock("../../../Server/Services/AccessTokenService");
47
+ jest.mock("../../../Server/Services/GlobalConfigService");
47
48
  jest.mock("../../../Server/Utils/Response");
48
49
  jest.mock("../../../Server/Services/ProjectService");
49
50
  jest.mock("../../../Server/Services/TeamMemberService");
@@ -56,7 +57,6 @@ describe("UserMiddleware", () => {
56
57
  const mockedAccessToken: string = ObjectID.generate().toString();
57
58
  const projectId: ObjectID = ObjectID.generate();
58
59
  const userId: ObjectID = ObjectID.generate();
59
- const mockedProject: Project = { _id: projectId.toString() } as Project;
60
60
 
61
61
  beforeEach(() => {
62
62
  jest.clearAllMocks();
@@ -590,15 +590,32 @@ describe("UserMiddleware", () => {
590
590
  ProjectService,
591
591
  "getRequireSsoForLogin",
592
592
  );
593
+ const spyGetRequireSsoWithSsoProviderId: jest.SpyInstance = getJestSpyOn(
594
+ ProjectService,
595
+ "getRequireSsoWithSsoProviderId",
596
+ );
593
597
  const spyDoesSsoTokenForProjectExist: jest.SpyInstance = getJestSpyOn(
594
598
  UserMiddleware,
595
599
  "doesSsoTokenForProjectExist",
596
600
  );
601
+ const spyGetGlobalRequireSsoForLogin: jest.SpyInstance = getJestSpyOn(
602
+ GlobalConfigService,
603
+ "getRequireSsoForLogin",
604
+ );
597
605
 
598
606
  afterEach(() => {
599
607
  jest.clearAllMocks();
600
608
  });
601
609
 
610
+ /*
611
+ * By default no project requires a specific SSO provider (discriminator),
612
+ * and the instance-wide "Require SSO for Login" flag is off.
613
+ */
614
+ beforeEach(() => {
615
+ spyGetRequireSsoWithSsoProviderId.mockResolvedValue(null);
616
+ spyGetGlobalRequireSsoForLogin.mockResolvedValue(false);
617
+ });
618
+
602
619
  test("should throw 'Invalid tenantId' error, when project is not found for the tenantId", async () => {
603
620
  spyGetRequireSsoForLogin.mockRejectedValueOnce(
604
621
  new BadDataException("Project not found"),
@@ -630,6 +647,7 @@ describe("UserMiddleware", () => {
630
647
  req,
631
648
  projectId,
632
649
  userId,
650
+ undefined,
633
651
  );
634
652
  });
635
653
 
@@ -688,16 +706,37 @@ describe("UserMiddleware", () => {
688
706
  projectId,
689
707
  } as UserTenantAccessPermission;
690
708
 
691
- const spyFindBy: jest.SpyInstance = getJestSpyOn(ProjectService, "findBy");
709
+ const spyGetProjectRequireSsoForLogin: jest.SpyInstance = getJestSpyOn(
710
+ ProjectService,
711
+ "getRequireSsoForLogin",
712
+ );
713
+ const spyGetRequireSsoWithSsoProviderId: jest.SpyInstance = getJestSpyOn(
714
+ ProjectService,
715
+ "getRequireSsoWithSsoProviderId",
716
+ );
692
717
  const spyDoesSsoTokenForProjectExist: jest.SpyInstance = getJestSpyOn(
693
718
  UserMiddleware,
694
719
  "doesSsoTokenForProjectExist",
695
720
  );
721
+ const spyGetGlobalRequireSsoForLogin: jest.SpyInstance = getJestSpyOn(
722
+ GlobalConfigService,
723
+ "getRequireSsoForLogin",
724
+ );
696
725
 
697
726
  afterEach(() => {
698
727
  jest.clearAllMocks();
699
728
  });
700
729
 
730
+ /*
731
+ * By default neither a project's own nor the instance-wide "Require SSO for
732
+ * Login" flag is on, and no project requires a specific SSO provider.
733
+ */
734
+ beforeEach(() => {
735
+ spyGetProjectRequireSsoForLogin.mockResolvedValue(false);
736
+ spyGetRequireSsoWithSsoProviderId.mockResolvedValue(null);
737
+ spyGetGlobalRequireSsoForLogin.mockResolvedValue(false);
738
+ });
739
+
701
740
  test("should return null, when projectIds length is zero", async () => {
702
741
  const result: Dictionary<UserTenantAccessPermission> | null =
703
742
  await UserMiddleware.getUserTenantAccessPermissionForMultiTenant(
@@ -707,14 +746,12 @@ describe("UserMiddleware", () => {
707
746
  );
708
747
 
709
748
  expect(result).toBeNull();
710
- expect(spyFindBy).not.toBeCalled();
749
+ expect(spyGetProjectRequireSsoForLogin).not.toBeCalled();
711
750
  });
712
751
 
713
752
  test("should return default tenant access permission, when project for a projectId is found, sso is required for login, but sso token does not exist for that projectId", async () => {
714
753
  spyDoesSsoTokenForProjectExist.mockReturnValueOnce(false);
715
- spyFindBy.mockResolvedValueOnce([
716
- { ...mockedProject, requireSsoForLogin: true },
717
- ]);
754
+ spyGetProjectRequireSsoForLogin.mockResolvedValueOnce(true);
718
755
 
719
756
  const spyGetDefaultUserTenantAccessPermission: jest.SpyInstance =
720
757
  getJestSpyOn(
@@ -736,6 +773,7 @@ describe("UserMiddleware", () => {
736
773
  req,
737
774
  projectId,
738
775
  userId,
776
+ undefined,
739
777
  );
740
778
  expect(spyGetDefaultUserTenantAccessPermission).toHaveBeenCalledWith(
741
779
  projectId,
@@ -743,8 +781,6 @@ describe("UserMiddleware", () => {
743
781
  });
744
782
 
745
783
  test("should return user tenant access permission, when project for a projectId is found, sso is not required for login and project level permission exist for the projectId", async () => {
746
- spyFindBy.mockResolvedValueOnce([mockedProject]);
747
-
748
784
  const spyGetUserTenantAccessPermission: jest.SpyInstance = getJestSpyOn(
749
785
  AccessTokenService,
750
786
  "getUserTenantAccessPermission",
@@ -768,8 +804,6 @@ describe("UserMiddleware", () => {
768
804
  });
769
805
 
770
806
  test("should return null, when project for a projectId is found, sso is not required for login but project level permission does not exist for the projectId", async () => {
771
- spyFindBy.mockResolvedValueOnce([mockedProject]);
772
-
773
807
  const spyGetUserTenantAccessPermission: jest.SpyInstance = getJestSpyOn(
774
808
  AccessTokenService,
775
809
  "getUserTenantAccessPermission",
@@ -790,7 +824,9 @@ describe("UserMiddleware", () => {
790
824
  });
791
825
 
792
826
  test("should return user tenant access permission, when project for a projectId is not found, but project level permission exist for the projectId", async () => {
793
- spyFindBy.mockResolvedValueOnce([]);
827
+ spyGetProjectRequireSsoForLogin.mockRejectedValueOnce(
828
+ new BadDataException("Project not found"),
829
+ );
794
830
 
795
831
  getJestSpyOn(
796
832
  AccessTokenService,
@@ -810,7 +846,9 @@ describe("UserMiddleware", () => {
810
846
  });
811
847
 
812
848
  test("should return null, when project for a projectId is not found, and project level permission does not exist for the projectId", async () => {
813
- spyFindBy.mockResolvedValueOnce([]);
849
+ spyGetProjectRequireSsoForLogin.mockRejectedValueOnce(
850
+ new BadDataException("Project not found"),
851
+ );
814
852
 
815
853
  const spyGetUserTenantAccessPermission: jest.SpyInstance = getJestSpyOn(
816
854
  AccessTokenService,