@oneuptime/common 12.0.2 → 12.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 (384) hide show
  1. package/Models/DatabaseModels/CephCluster.ts +14 -0
  2. package/Models/DatabaseModels/CodeRepository.ts +14 -6
  3. package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +14 -0
  4. package/Models/DatabaseModels/DockerHost.ts +14 -0
  5. package/Models/DatabaseModels/GlobalOidcProject.ts +18 -0
  6. package/Models/DatabaseModels/GlobalSsoProject.ts +18 -0
  7. package/Models/DatabaseModels/Index.ts +2 -0
  8. package/Models/DatabaseModels/IoTFleet.ts +14 -0
  9. package/Models/DatabaseModels/KubernetesCluster.ts +14 -0
  10. package/Models/DatabaseModels/LogDropFilter.ts +9 -20
  11. package/Models/DatabaseModels/NetworkDevice.ts +14 -0
  12. package/Models/DatabaseModels/NetworkInterface.ts +18 -0
  13. package/Models/DatabaseModels/Project.ts +16 -2
  14. package/Models/DatabaseModels/ProxmoxCluster.ts +14 -0
  15. package/Models/DatabaseModels/Service.ts +30 -0
  16. package/Models/DatabaseModels/StatusPageMonitorRule.ts +911 -0
  17. package/Models/DatabaseModels/StatusPagePrivateUser.ts +30 -0
  18. package/Models/DatabaseModels/StatusPageResource.ts +73 -0
  19. package/Models/DatabaseModels/TraceDropFilter.ts +9 -20
  20. package/Models/DatabaseModels/User.ts +30 -0
  21. package/Server/API/AIAgentDataAPI.ts +31 -0
  22. package/Server/API/BaseAPI.ts +13 -2
  23. package/Server/API/DashboardAPI.ts +458 -12
  24. package/Server/API/GitHubAPI.ts +119 -283
  25. package/Server/API/UserAPI.ts +263 -1
  26. package/Server/EnvironmentConfig.ts +38 -4
  27. package/Server/Infrastructure/GlobalCache.ts +152 -0
  28. package/Server/Infrastructure/Postgres/DataSourceOptions.ts +16 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.ts +123 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.ts +21 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.ts +68 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.ts +100 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.ts +214 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.ts +69 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  36. package/Server/Services/AlertStateTimelineService.ts +20 -0
  37. package/Server/Services/AnalyticsDatabaseService.ts +72 -1
  38. package/Server/Services/CephClusterService.ts +26 -86
  39. package/Server/Services/CloudResourceService.ts +23 -83
  40. package/Server/Services/CodeRepositoryService.ts +105 -2
  41. package/Server/Services/DatabaseService.ts +296 -2
  42. package/Server/Services/DockerHostService.ts +19 -79
  43. package/Server/Services/DockerSwarmClusterService.ts +27 -88
  44. package/Server/Services/HostService.ts +46 -99
  45. package/Server/Services/IncidentStateTimelineService.ts +20 -0
  46. package/Server/Services/Index.ts +2 -0
  47. package/Server/Services/IoTFleetService.ts +19 -79
  48. package/Server/Services/KubernetesClusterService.ts +17 -78
  49. package/Server/Services/LabelService.ts +57 -10
  50. package/Server/Services/MetricTypeService.ts +84 -0
  51. package/Server/Services/MonitorService.ts +89 -14
  52. package/Server/Services/MonitorStatusTimelineService.ts +29 -0
  53. package/Server/Services/MonitorTemplateService.ts +65 -0
  54. package/Server/Services/OpenTelemetryIngestService.ts +230 -26
  55. package/Server/Services/PodmanHostService.ts +19 -79
  56. package/Server/Services/ProxmoxClusterService.ts +23 -83
  57. package/Server/Services/RumApplicationService.ts +19 -80
  58. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +21 -0
  59. package/Server/Services/ServerlessFunctionService.ts +24 -85
  60. package/Server/Services/ServiceService.ts +299 -73
  61. package/Server/Services/StatusPageMonitorRuleEngineService.ts +752 -0
  62. package/Server/Services/StatusPageMonitorRuleService.ts +471 -0
  63. package/Server/Services/TelemetryEntityRelationshipService.ts +1 -0
  64. package/Server/Services/TelemetryEntityService.ts +1 -0
  65. package/Server/Services/UserService.ts +184 -0
  66. package/Server/Utils/AI/Toolbox/CodeTools.ts +45 -4
  67. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +13 -0
  68. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +157 -4
  69. package/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.ts +130 -0
  70. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +170 -39
  71. package/Server/Utils/Monitor/MonitorResource.ts +63 -36
  72. package/Server/Utils/Monitor/MonitorStatusTimeline.ts +36 -0
  73. package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +148 -127
  74. package/Server/Utils/Monitor/MonitorStepsReferenceExtractor.ts +434 -0
  75. package/Server/Utils/PasswordHash.ts +306 -0
  76. package/Server/Utils/SingleFlight.ts +83 -0
  77. package/Server/Utils/StatusPage/MonitorRulePatternValidator.ts +46 -0
  78. package/Server/Utils/Telemetry/EntityRegistry.ts +107 -26
  79. package/Server/Utils/Telemetry/ResourceHeartbeat.ts +314 -0
  80. package/Server/Utils/Telemetry/Telemetry.ts +351 -122
  81. package/Tests/App/Dashboard/OverviewCustomFields.test.tsx +333 -0
  82. package/Tests/App/Dashboard/UserCustomFields.test.tsx +392 -0
  83. package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
  84. package/Tests/Models/DatabaseModels/ColumnTransformerInvariants.test.ts +306 -0
  85. package/Tests/Models/DatabaseModels/NumberColumnDeserialization.test.ts +333 -0
  86. package/Tests/Models/DatabaseModels/StatusPageMonitorRuleModel.test.ts +190 -0
  87. package/Tests/Server/API/AIAgentDataRepositoryToken.test.ts +381 -0
  88. package/Tests/Server/API/DashboardPublicAttributeValuesAPI.test.ts +943 -0
  89. package/Tests/Server/API/DashboardPublicMetricsAggregateAPI.test.ts +1296 -0
  90. package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +26 -0
  91. package/Tests/Server/API/DashboardPublicTemplatePayloads.test.ts +598 -0
  92. package/Tests/Server/API/GitHubAppInstallationBindingAPI.test.ts +539 -0
  93. package/Tests/Server/API/Helpers.ts +6 -1
  94. package/Tests/Server/API/UserProjectsAPI.test.ts +852 -0
  95. package/Tests/Server/Infrastructure/GlobalCache.test.ts +354 -0
  96. package/Tests/Server/Infrastructure/PostgresLockTimeoutOptions.test.ts +181 -0
  97. package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +215 -0
  98. package/Tests/Server/Services/AddPerUserPasswordSaltMigration.test.ts +178 -0
  99. package/Tests/Server/Services/AnalyticsDatabasePaginationStability.test.ts +582 -0
  100. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +5 -0
  101. package/Tests/Server/Services/CodeRepositoryInstallationBinding.test.ts +305 -0
  102. package/Tests/Server/Services/CodeRepositoryResolutionBinding.test.ts +147 -0
  103. package/Tests/Server/Services/DatabaseServicePerUserPasswordSalt.test.ts +870 -0
  104. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlocked.test.ts +342 -0
  105. package/Tests/Server/Services/DropFilterSaveValidation.test.ts +245 -0
  106. package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +163 -15
  107. package/Tests/Server/Services/MetricTypeAttachServices.test.ts +222 -0
  108. package/Tests/Server/Services/MissingReferenceWriteGuard.test.ts +614 -0
  109. package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +23 -0
  110. package/Tests/Server/Services/OpenTelemetryServiceResolutionCache.test.ts +568 -0
  111. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +305 -56
  112. package/Tests/Server/Services/RestoreDroppedUniqueIndexesMigration.test.ts +386 -0
  113. package/Tests/Server/Services/RestoreServiceLowerNameIndexMigration.test.ts +240 -0
  114. package/Tests/Server/Services/ServiceUpdateLastSeenSplitGates.test.ts +705 -0
  115. package/Tests/Server/Services/StatusPageMonitorRuleEngineService.test.ts +1719 -0
  116. package/Tests/Server/Services/StatusPageMonitorRuleHooks.test.ts +1212 -0
  117. package/Tests/Server/Services/StatusPageMonitorRuleMonitorCreateHook.test.ts +228 -0
  118. package/Tests/Server/Services/UserServiceFirstMasterAdminElection.test.ts +885 -0
  119. package/Tests/Server/Services/WidenHashedStringColumnsForScryptMigration.test.ts +220 -0
  120. package/Tests/Server/Utils/AI/CodeTools.test.ts +47 -1
  121. package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +10 -0
  122. package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +267 -0
  123. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +120 -0
  124. package/Tests/Server/Utils/CodeRepository/GitHubInstallationBinding.test.ts +292 -0
  125. package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +260 -13
  126. package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +302 -0
  127. package/Tests/Server/Utils/GitHubInstallationOwnershipVerification.test.ts +340 -0
  128. package/Tests/Server/Utils/GitHubWebhookAndTreeCacheIsolation.test.ts +250 -0
  129. package/Tests/Server/Utils/MetricTypeIndexConvergence.test.ts +598 -0
  130. package/Tests/Server/Utils/Monitor/MonitorStatusTimelineUnusableStatus.test.ts +154 -0
  131. package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +638 -92
  132. package/Tests/Server/Utils/Monitor/MonitorStepsReferenceExtractor.test.ts +724 -0
  133. package/Tests/Server/Utils/PasswordHash.test.ts +555 -0
  134. package/Tests/Server/Utils/SingleFlight.test.ts +221 -0
  135. package/Tests/Types/Dashboard/NetworkDashboardTemplate.test.ts +793 -0
  136. package/Tests/Types/Database/BigIntColumnTransformer.test.ts +147 -0
  137. package/Tests/Types/Database/ColumnLength.test.ts +7 -1
  138. package/Tests/Types/Database/DatabasePropertyTransformer.test.ts +140 -0
  139. package/Tests/Types/Database/NumericColumnValue.test.ts +127 -0
  140. package/Tests/Types/Decimal.test.ts +37 -0
  141. package/Tests/Types/HashedStringPerUserSalt.test.ts +476 -0
  142. package/Tests/Types/Monitor/DockerAlertTemplates.test.ts +293 -0
  143. package/Tests/Types/Monitor/HostAlertTemplates.test.ts +249 -0
  144. package/Tests/Types/Monitor/IotAlertTemplates.test.ts +320 -0
  145. package/Tests/Types/Monitor/PodmanAlertTemplates.test.ts +271 -0
  146. package/Tests/Types/Monitor/SnmpVersionParsing.test.ts +152 -0
  147. package/Tests/Types/Port.test.ts +38 -0
  148. package/Tests/UI/Components/CustomFields/CustomFieldsDetail.test.tsx +696 -0
  149. package/Tests/UI/Components/LogsHistogram.test.tsx +276 -0
  150. package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +489 -0
  151. package/Tests/UI/Components/UseLogsHistogram.test.tsx +500 -0
  152. package/Tests/UI/Utils/UserProjectsModelAPI.test.ts +714 -0
  153. package/Tests/Utils/Dashboard/Components/DashboardComponentsUtil.test.ts +120 -0
  154. package/Tests/Utils/Dashboard/DashboardNetworkMapComponent.test.ts +327 -0
  155. package/Tests/Utils/TeamMembersByProject.test.ts +655 -0
  156. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  157. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  158. package/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts +40 -0
  159. package/Types/Dashboard/DashboardTemplates.ts +397 -0
  160. package/Types/Database/BigIntColumnTransformer.ts +74 -0
  161. package/Types/Database/ColumnLength.ts +9 -1
  162. package/Types/Database/DatabaseProperty.ts +26 -0
  163. package/Types/Database/NumericColumnValue.ts +128 -0
  164. package/Types/Database/TableColumn.ts +11 -0
  165. package/Types/Database/UnsynchronizedIndex.ts +48 -0
  166. package/Types/Decimal.ts +16 -4
  167. package/Types/HashedString.ts +139 -4
  168. package/Types/Permission.ts +48 -0
  169. package/Types/Port.ts +16 -4
  170. package/UI/Components/CustomFields/CustomFieldsDetail.tsx +85 -11
  171. package/UI/Components/LogsViewer/useLiveLogsRefresh.ts +86 -0
  172. package/UI/Components/LogsViewer/useLogsHistogram.ts +113 -0
  173. package/UI/Components/Navbar/NavBar.tsx +12 -2
  174. package/UI/Components/Navbar/NavBarMenuModal.tsx +19 -7
  175. package/UI/Utils/ModelAPI/UserProjectsModelAPI.ts +257 -0
  176. package/Utils/Dashboard/Components/DashboardNetworkMapComponent.ts +136 -0
  177. package/Utils/Dashboard/Components/Index.ts +7 -0
  178. package/Utils/TeamMembersByProject.ts +237 -0
  179. package/build/dist/Models/DatabaseModels/CephCluster.js +16 -1
  180. package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -1
  181. package/build/dist/Models/DatabaseModels/CodeRepository.js +14 -6
  182. package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
  183. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +12 -0
  184. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  185. package/build/dist/Models/DatabaseModels/DockerHost.js +16 -1
  186. package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
  187. package/build/dist/Models/DatabaseModels/GlobalOidcProject.js +16 -1
  188. package/build/dist/Models/DatabaseModels/GlobalOidcProject.js.map +1 -1
  189. package/build/dist/Models/DatabaseModels/GlobalSsoProject.js +16 -1
  190. package/build/dist/Models/DatabaseModels/GlobalSsoProject.js.map +1 -1
  191. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  192. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  193. package/build/dist/Models/DatabaseModels/IoTFleet.js +16 -1
  194. package/build/dist/Models/DatabaseModels/IoTFleet.js.map +1 -1
  195. package/build/dist/Models/DatabaseModels/KubernetesCluster.js +16 -1
  196. package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
  197. package/build/dist/Models/DatabaseModels/LogDropFilter.js +9 -20
  198. package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
  199. package/build/dist/Models/DatabaseModels/NetworkDevice.js +16 -1
  200. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  201. package/build/dist/Models/DatabaseModels/NetworkInterface.js +16 -1
  202. package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
  203. package/build/dist/Models/DatabaseModels/Project.js +16 -2
  204. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  205. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +16 -1
  206. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -1
  207. package/build/dist/Models/DatabaseModels/Service.js +28 -1
  208. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  209. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js +925 -0
  210. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js.map +1 -0
  211. package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +32 -0
  212. package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js.map +1 -1
  213. package/build/dist/Models/DatabaseModels/StatusPageResource.js +72 -0
  214. package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
  215. package/build/dist/Models/DatabaseModels/TraceDropFilter.js +9 -20
  216. package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
  217. package/build/dist/Models/DatabaseModels/User.js +32 -0
  218. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  219. package/build/dist/Server/API/AIAgentDataAPI.js +21 -2
  220. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  221. package/build/dist/Server/API/BaseAPI.js +11 -1
  222. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  223. package/build/dist/Server/API/DashboardAPI.js +343 -10
  224. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  225. package/build/dist/Server/API/GitHubAPI.js +94 -167
  226. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  227. package/build/dist/Server/API/UserAPI.js +187 -2
  228. package/build/dist/Server/API/UserAPI.js.map +1 -1
  229. package/build/dist/Server/EnvironmentConfig.js +34 -4
  230. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  231. package/build/dist/Server/Infrastructure/GlobalCache.js +120 -0
  232. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  233. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +5 -3
  234. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
  235. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js +48 -0
  236. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js.map +1 -0
  237. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.js +14 -0
  238. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.js.map +1 -0
  239. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.js +59 -0
  240. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.js.map +1 -0
  241. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.js +93 -0
  242. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.js.map +1 -0
  243. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.js +101 -0
  244. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.js.map +1 -0
  245. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.js +66 -0
  246. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.js.map +1 -0
  247. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  248. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  249. package/build/dist/Server/Services/AlertStateTimelineService.js +19 -0
  250. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  251. package/build/dist/Server/Services/AnalyticsDatabaseService.js +57 -1
  252. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  253. package/build/dist/Server/Services/CephClusterService.js +26 -76
  254. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  255. package/build/dist/Server/Services/CloudResourceService.js +23 -73
  256. package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
  257. package/build/dist/Server/Services/CodeRepositoryService.js +90 -2
  258. package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -1
  259. package/build/dist/Server/Services/DatabaseService.js +246 -2
  260. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  261. package/build/dist/Server/Services/DockerHostService.js +19 -69
  262. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  263. package/build/dist/Server/Services/DockerSwarmClusterService.js +27 -78
  264. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  265. package/build/dist/Server/Services/HostService.js +58 -102
  266. package/build/dist/Server/Services/HostService.js.map +1 -1
  267. package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
  268. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  269. package/build/dist/Server/Services/Index.js +2 -0
  270. package/build/dist/Server/Services/Index.js.map +1 -1
  271. package/build/dist/Server/Services/IoTFleetService.js +19 -69
  272. package/build/dist/Server/Services/IoTFleetService.js.map +1 -1
  273. package/build/dist/Server/Services/KubernetesClusterService.js +17 -68
  274. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  275. package/build/dist/Server/Services/LabelService.js +42 -7
  276. package/build/dist/Server/Services/LabelService.js.map +1 -1
  277. package/build/dist/Server/Services/MetricTypeService.js +74 -0
  278. package/build/dist/Server/Services/MetricTypeService.js.map +1 -1
  279. package/build/dist/Server/Services/MonitorService.js +81 -9
  280. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  281. package/build/dist/Server/Services/MonitorStatusTimelineService.js +28 -0
  282. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  283. package/build/dist/Server/Services/MonitorTemplateService.js +60 -0
  284. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  285. package/build/dist/Server/Services/OpenTelemetryIngestService.js +155 -25
  286. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  287. package/build/dist/Server/Services/PodmanHostService.js +19 -69
  288. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  289. package/build/dist/Server/Services/ProxmoxClusterService.js +23 -73
  290. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  291. package/build/dist/Server/Services/RumApplicationService.js +19 -70
  292. package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
  293. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +20 -0
  294. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  295. package/build/dist/Server/Services/ServerlessFunctionService.js +24 -75
  296. package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
  297. package/build/dist/Server/Services/ServiceService.js +236 -61
  298. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  299. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +603 -0
  300. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -0
  301. package/build/dist/Server/Services/StatusPageMonitorRuleService.js +401 -0
  302. package/build/dist/Server/Services/StatusPageMonitorRuleService.js.map +1 -0
  303. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +1 -0
  304. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -1
  305. package/build/dist/Server/Services/TelemetryEntityService.js +1 -0
  306. package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -1
  307. package/build/dist/Server/Services/UserService.js +165 -0
  308. package/build/dist/Server/Services/UserService.js.map +1 -1
  309. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js +31 -1
  310. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js.map +1 -1
  311. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +13 -0
  312. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  313. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +126 -4
  314. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  315. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.js +136 -0
  316. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.js.map +1 -0
  317. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +105 -29
  318. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
  319. package/build/dist/Server/Utils/Monitor/MonitorResource.js +56 -32
  320. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  321. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +30 -3
  322. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
  323. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +110 -98
  324. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -1
  325. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js +312 -0
  326. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js.map +1 -0
  327. package/build/dist/Server/Utils/PasswordHash.js +237 -0
  328. package/build/dist/Server/Utils/PasswordHash.js.map +1 -0
  329. package/build/dist/Server/Utils/SingleFlight.js +76 -0
  330. package/build/dist/Server/Utils/SingleFlight.js.map +1 -0
  331. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js +29 -0
  332. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js.map +1 -0
  333. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +78 -19
  334. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  335. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +160 -0
  336. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -0
  337. package/build/dist/Server/Utils/Telemetry/Telemetry.js +279 -104
  338. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  339. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  340. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  341. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  342. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  343. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js +2 -0
  344. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js.map +1 -0
  345. package/build/dist/Types/Dashboard/DashboardTemplates.js +368 -0
  346. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  347. package/build/dist/Types/Database/BigIntColumnTransformer.js +66 -0
  348. package/build/dist/Types/Database/BigIntColumnTransformer.js.map +1 -0
  349. package/build/dist/Types/Database/ColumnLength.js +9 -1
  350. package/build/dist/Types/Database/ColumnLength.js.map +1 -1
  351. package/build/dist/Types/Database/DatabaseProperty.js +25 -0
  352. package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
  353. package/build/dist/Types/Database/NumericColumnValue.js +97 -0
  354. package/build/dist/Types/Database/NumericColumnValue.js.map +1 -0
  355. package/build/dist/Types/Database/TableColumn.js.map +1 -1
  356. package/build/dist/Types/Database/UnsynchronizedIndex.js +46 -0
  357. package/build/dist/Types/Database/UnsynchronizedIndex.js.map +1 -0
  358. package/build/dist/Types/Decimal.js +14 -3
  359. package/build/dist/Types/Decimal.js.map +1 -1
  360. package/build/dist/Types/HashedString.js +95 -5
  361. package/build/dist/Types/HashedString.js.map +1 -1
  362. package/build/dist/Types/Permission.js +42 -0
  363. package/build/dist/Types/Permission.js.map +1 -1
  364. package/build/dist/Types/Port.js +15 -5
  365. package/build/dist/Types/Port.js.map +1 -1
  366. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +51 -10
  367. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
  368. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js +44 -0
  369. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js.map +1 -0
  370. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js +75 -0
  371. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js.map +1 -0
  372. package/build/dist/UI/Components/Navbar/NavBar.js +3 -1
  373. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  374. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +19 -7
  375. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  376. package/build/dist/UI/Utils/ModelAPI/UserProjectsModelAPI.js +156 -0
  377. package/build/dist/UI/Utils/ModelAPI/UserProjectsModelAPI.js.map +1 -0
  378. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js +114 -0
  379. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js.map +1 -0
  380. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  381. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  382. package/build/dist/Utils/TeamMembersByProject.js +145 -0
  383. package/build/dist/Utils/TeamMembersByProject.js.map +1 -0
  384. package/package.json +1 -1
@@ -0,0 +1,156 @@
1
+ import ModelAPI from "./ModelAPI";
2
+ import API from "../API/API";
3
+ import { APP_API_URL } from "../../Config";
4
+ import BaseModel from "../../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
5
+ import Team from "../../../Models/DatabaseModels/Team";
6
+ import TeamMember from "../../../Models/DatabaseModels/TeamMember";
7
+ import User from "../../../Models/DatabaseModels/User";
8
+ import HTTPErrorResponse from "../../../Types/API/HTTPErrorResponse";
9
+ import HTTPMethod from "../../../Types/API/HTTPMethod";
10
+ import URL from "../../../Types/API/URL";
11
+ import BadDataException from "../../../Types/Exception/BadDataException";
12
+ import ObjectID from "../../../Types/ObjectID";
13
+ export default class UserProjectsModelAPI extends ModelAPI {
14
+ static async getList(data) {
15
+ if (!(new data.modelType() instanceof TeamMember)) {
16
+ /*
17
+ * Not the model this API exists for - a table's entity filter fetching
18
+ * its dropdown options, say. Behave like the plain one, but through
19
+ * `super` so a subclass's getCommonHeaders still applies.
20
+ */
21
+ return super.getList(data);
22
+ }
23
+ const userId = this.getUserIdFromQuery(data.query);
24
+ if (!userId) {
25
+ /*
26
+ * Without a user there is no list to fetch - the endpoint is
27
+ * "the projects of THIS user". Failing loudly beats returning an empty
28
+ * list, which would render as "this user is in no projects".
29
+ */
30
+ throw new BadDataException("A user id is required to list the projects a user belongs to.");
31
+ }
32
+ const url = URL.fromString(APP_API_URL.toString())
33
+ .addRoute(new User().getCrudApiPath())
34
+ .addRoute(`/${userId.toString()}/projects`);
35
+ const result = await API.fetch({
36
+ method: HTTPMethod.POST,
37
+ url: url,
38
+ data: {},
39
+ headers: this.getCommonHeaders(data.requestOptions),
40
+ params: {
41
+ limit: data.limit.toString(),
42
+ skip: data.skip.toString(),
43
+ },
44
+ });
45
+ if (result instanceof HTTPErrorResponse) {
46
+ throw result;
47
+ }
48
+ const rows = result.data.map((item) => {
49
+ return this.toRow(item);
50
+ });
51
+ return {
52
+ data: rows,
53
+ count: result.count,
54
+ skip: result.skip,
55
+ limit: result.limit,
56
+ };
57
+ }
58
+ /**
59
+ * Removes the user from the project on this row - every one of their team
60
+ * memberships in it, not just the one whose id the row happens to carry.
61
+ *
62
+ * A grouped row stands for a project, so deleting one membership would leave
63
+ * the row on screen (still in the project, via their other teams) and look
64
+ * like the delete silently failed. Removing the user from a single team is
65
+ * done from the memberships table on the same page, where a row is a
66
+ * membership again.
67
+ *
68
+ * This goes through one `remove-from-project` request rather than a DELETE
69
+ * per membership, and that is load-bearing rather than an optimisation. The
70
+ * server refuses to remove the last accepted member of the Owners team, and
71
+ * it refuses per request - so a loop deletes every other membership first and
72
+ * only then reports a failure, leaving the person stripped of the teams the
73
+ * caller was just told they had not lost. The endpoint runs that check across
74
+ * the whole set before deleting anything.
75
+ */
76
+ static async deleteItem(data) {
77
+ if (!(new data.modelType() instanceof TeamMember)) {
78
+ return super.deleteItem(data);
79
+ }
80
+ const rowMembership = await this.getItem({
81
+ modelType: TeamMember,
82
+ id: data.id,
83
+ select: {
84
+ _id: true,
85
+ userId: true,
86
+ projectId: true,
87
+ },
88
+ requestOptions: data.requestOptions,
89
+ });
90
+ const userId = rowMembership === null || rowMembership === void 0 ? void 0 : rowMembership.userId;
91
+ const projectId = rowMembership === null || rowMembership === void 0 ? void 0 : rowMembership.projectId;
92
+ if (!userId || !projectId) {
93
+ /*
94
+ * The row is gone, or came back without the user or project it stands
95
+ * for. Fall back to the single delete the table asked for rather than
96
+ * guessing which project to empty.
97
+ */
98
+ return super.deleteItem(data);
99
+ }
100
+ const url = URL.fromString(APP_API_URL.toString())
101
+ .addRoute(new User().getCrudApiPath())
102
+ .addRoute(`/${userId.toString()}/remove-from-project`);
103
+ const result = await API.post({
104
+ url: url,
105
+ data: {
106
+ projectId: projectId.toString(),
107
+ },
108
+ headers: this.getCommonHeaders(data.requestOptions),
109
+ });
110
+ if (result instanceof HTTPErrorResponse) {
111
+ throw result;
112
+ }
113
+ }
114
+ /**
115
+ * The user the table is listing projects for.
116
+ *
117
+ * Accepts the id in the shapes a table query can carry it in: an ObjectID
118
+ * (what the page passes) or a plain string.
119
+ */
120
+ static getUserIdFromQuery(query) {
121
+ const value = query["userId"];
122
+ if (value instanceof ObjectID) {
123
+ return value;
124
+ }
125
+ if (typeof value === "string" && value) {
126
+ return new ObjectID(value);
127
+ }
128
+ return null;
129
+ }
130
+ /**
131
+ * One row of the response.
132
+ *
133
+ * The base of the row is a TeamMember and hydrates as one. The aggregate
134
+ * fields are not columns of TeamMember, so BaseModel.fromJSON drops them -
135
+ * they are read off the raw JSON and attached here.
136
+ */
137
+ static toRow(item) {
138
+ const row = BaseModel.fromJSON(item, TeamMember);
139
+ row.teamsForProject = BaseModel.fromJSONArray(item["teams"] || [], Team);
140
+ row.teamCountForProject = row.teamsForProject.length;
141
+ row.pendingTeamCountForProject = this.toCount(item["pendingTeamCount"]);
142
+ row.teamMemberIdsForProject = (item["teamMemberIds"] || [])
143
+ .map((id) => {
144
+ return (id === null || id === void 0 ? void 0 : id.toString()) || "";
145
+ })
146
+ .filter((id) => {
147
+ return Boolean(id);
148
+ });
149
+ return row;
150
+ }
151
+ static toCount(value) {
152
+ const count = Number(value);
153
+ return Number.isFinite(count) && count > 0 ? count : 0;
154
+ }
155
+ }
156
+ //# sourceMappingURL=UserProjectsModelAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserProjectsModelAPI.js","sourceRoot":"","sources":["../../../../../UI/Utils/ModelAPI/UserProjectsModelAPI.ts"],"names":[],"mappings":"AAAA,OAAO,QAAwC,MAAM,YAAY,CAAC;AAClE,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,SAAS,MAAM,oEAAoE,CAAC;AAC3F,OAAO,IAAI,MAAM,qCAAqC,CAAC;AACvD,OAAO,UAAU,MAAM,2CAA2C,CAAC;AACnE,OAAO,IAAI,MAAM,qCAAqC,CAAC;AACvD,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AACrE,OAAO,UAAU,MAAM,+BAA+B,CAAC;AAEvD,OAAO,GAAG,MAAM,wBAAwB,CAAC;AAKzC,OAAO,gBAAgB,MAAM,2CAA2C,CAAC;AAEzE,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AA6C/C,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,QAAQ;IACjD,MAAM,CAAU,KAAK,CAAC,OAAO,CAA+B,IASlE;QACC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,UAAU,CAAC,EAAE,CAAC;YAClD;;;;eAIG;YACH,OAAO,KAAK,CAAC,OAAO,CAAa,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,MAAM,GAAoB,IAAI,CAAC,kBAAkB,CACrD,IAAI,CAAC,KAA0B,CAChC,CAAC;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ;;;;eAIG;YACH,MAAM,IAAI,gBAAgB,CACxB,+DAA+D,CAChE,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAQ,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;aACpD,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,cAAc,EAAG,CAAC;aACtC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAE9C,MAAM,MAAM,GACV,MAAM,GAAG,CAAC,KAAK,CAAY;YACzB,MAAM,EAAE,UAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC;YACnD,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;aAC3B;SACF,CAAC,CAAC;QAEL,IAAI,MAAM,YAAY,iBAAiB,EAAE,CAAC;YACxC,MAAM,MAAM,CAAC;QACf,CAAC;QAED,MAAM,IAAI,GAA2B,MAAM,CAAC,IAAkB,CAAC,GAAG,CAChE,CAAC,IAAgB,EAAE,EAAE;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CACF,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,IAAoC;YAC1C,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,MAAM,CAAU,KAAK,CAAC,UAAU,CAA+B,IAIrE;QACC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,YAAY,UAAU,CAAC,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC,UAAU,CAAa,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,aAAa,GAAsB,MAAM,IAAI,CAAC,OAAO,CAAa;YACtE,SAAS,EAAE,UAAU;YACrB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,IAAI;aAChB;YACD,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAyB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAC;QAC3D,MAAM,SAAS,GAAyB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,CAAC;QAEjE,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B;;;;eAIG;YACH,OAAO,KAAK,CAAC,UAAU,CAAa,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,GAAG,GAAQ,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;aACpD,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,cAAc,EAAG,CAAC;aACtC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QAEzD,MAAM,MAAM,GACV,MAAM,GAAG,CAAC,IAAI,CAAa;YACzB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE;gBACJ,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;aAChC;YACD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC;SACpD,CAAC,CAAC;QAEL,IAAI,MAAM,YAAY,iBAAiB,EAAE,CAAC;YACxC,MAAM,MAAM,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,kBAAkB,CAAC,KAAwB;QACxD,MAAM,KAAK,GAAa,KAAiC,CAAC,QAAQ,CAAC,CAAC;QAEpE,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;YACvC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,KAAK,CAAC,IAAgB;QACnC,MAAM,GAAG,GAAmB,SAAS,CAAC,QAAQ,CAC5C,IAAI,EACJ,UAAU,CACO,CAAC;QAEpB,GAAG,CAAC,eAAe,GAAG,SAAS,CAAC,aAAa,CAC1C,IAAI,CAAC,OAAO,CAAuB,IAAI,EAAE,EAC1C,IAAI,CACL,CAAC;QACF,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC;QACrD,GAAG,CAAC,0BAA0B,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACxE,GAAG,CAAC,uBAAuB,GAAG,CAC3B,IAAI,CAAC,eAAe,CAAoB,IAAI,EAAE,CAChD;aACE,GAAG,CAAC,CAAC,EAAW,EAAE,EAAE;YACnB,OAAO,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC;QAC9B,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,EAAU,EAAE,EAAE;YACrB,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,KAAc;QACnC,MAAM,KAAK,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -0,0 +1,114 @@
1
+ import { ObjectType } from "../../../Types/JSON";
2
+ import ObjectID from "../../../Types/ObjectID";
3
+ import DashboardBaseComponentUtil from "./DashboardBaseComponent";
4
+ import { ComponentInputType, EntityFilterModelType, } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
5
+ import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
6
+ const DisplaySection = {
7
+ name: "Display Options",
8
+ description: "Configure the widget title, size of the map and its labels",
9
+ order: 1,
10
+ };
11
+ const FiltersSection = {
12
+ name: "Filters",
13
+ description: "Narrow down which network sites are drawn",
14
+ order: 2,
15
+ defaultCollapsed: true,
16
+ };
17
+ /*
18
+ * A map is only readable while the markers on it can be told apart, and the
19
+ * fetch is a plain list query — so the widget draws a bounded number of
20
+ * sites rather than every row in the project. 250 comfortably covers a
21
+ * franchise estate at the level a dashboard tile is read at, and the footer
22
+ * says out loud when the cap dropped anything.
23
+ */
24
+ export const DEFAULT_MAX_SITES = 250;
25
+ export default class DashboardNetworkMapComponentUtil extends DashboardBaseComponentUtil {
26
+ static getDefaultComponent() {
27
+ return {
28
+ _type: ObjectType.DashboardComponent,
29
+ componentType: DashboardComponentType.NetworkMap,
30
+ /*
31
+ * A map needs room in BOTH axes: the world is roughly 2:1, so a
32
+ * short-and-wide tile letterboxes it into a strip. Half the grid
33
+ * across and five rows down is the smallest shape that still reads
34
+ * as a map rather than as a banner.
35
+ */
36
+ widthInDashboardUnits: 6,
37
+ heightInDashboardUnits: 5,
38
+ topInDashboardUnits: 0,
39
+ leftInDashboardUnits: 0,
40
+ componentId: ObjectID.generate(),
41
+ minHeightInDashboardUnits: 4,
42
+ minWidthInDashboardUnits: 4,
43
+ arguments: {
44
+ maxSites: DEFAULT_MAX_SITES,
45
+ viewMode: "map",
46
+ showLabels: true,
47
+ },
48
+ };
49
+ }
50
+ static getComponentConfigArguments() {
51
+ const args = [];
52
+ args.push({
53
+ name: "Title",
54
+ description: "Header shown above the map",
55
+ required: false,
56
+ type: ComponentInputType.Text,
57
+ id: "title",
58
+ section: DisplaySection,
59
+ });
60
+ args.push({
61
+ name: "View Mode",
62
+ description: "Draw the sites on a world map (default), or list them in a table.",
63
+ required: false,
64
+ type: ComponentInputType.Dropdown,
65
+ id: "viewMode",
66
+ section: DisplaySection,
67
+ dropdownOptions: [
68
+ { label: "Map", value: "map" },
69
+ { label: "List", value: "list" },
70
+ ],
71
+ });
72
+ args.push({
73
+ name: "Max Sites",
74
+ description: "Maximum number of network sites to draw",
75
+ required: false,
76
+ type: ComponentInputType.Number,
77
+ id: "maxSites",
78
+ placeholder: String(DEFAULT_MAX_SITES),
79
+ section: DisplaySection,
80
+ });
81
+ args.push({
82
+ name: "Show Site Names",
83
+ description: "Print each site's name under its marker. Names come off automatically when the map gets too busy for them to be readable.",
84
+ required: false,
85
+ type: ComponentInputType.Boolean,
86
+ id: "showLabels",
87
+ section: DisplaySection,
88
+ });
89
+ args.push({
90
+ name: "Site Types",
91
+ description: "Only draw sites of these types — e.g. just the stores, or just the regional hubs.",
92
+ required: false,
93
+ type: ComponentInputType.EntityMultiSelectDropdown,
94
+ id: "networkSiteTypeIds",
95
+ section: FiltersSection,
96
+ entityFilterModelType: EntityFilterModelType.NetworkSiteType,
97
+ });
98
+ args.push({
99
+ name: "Status",
100
+ description: "Quick filter by the status rolled up onto the site",
101
+ required: false,
102
+ type: ComponentInputType.Dropdown,
103
+ id: "statusFilter",
104
+ section: FiltersSection,
105
+ dropdownOptions: [
106
+ { label: "All", value: "" },
107
+ { label: "Down only", value: "down" },
108
+ { label: "Operational only", value: "operational" },
109
+ ],
110
+ });
111
+ return args;
112
+ }
113
+ }
114
+ //# sourceMappingURL=DashboardNetworkMapComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardNetworkMapComponent.js","sourceRoot":"","sources":["../../../../../Utils/Dashboard/Components/DashboardNetworkMapComponent.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ import DashboardKubernetesStatefulSetListComponentUtil from "./DashboardKubernet
25
25
  import DashboardLogStreamComponentUtil from "./DashboardLogStreamComponent";
26
26
  import DashboardLogChartComponentUtil from "./DashboardLogChartComponent";
27
27
  import DashboardMonitorListComponentUtil from "./DashboardMonitorListComponent";
28
+ import DashboardNetworkMapComponentUtil from "./DashboardNetworkMapComponent";
28
29
  import DashboardPodmanContainerListComponentUtil from "./DashboardPodmanContainerListComponent";
29
30
  import DashboardPodmanHostListComponentUtil from "./DashboardPodmanHostListComponent";
30
31
  import DashboardPodmanImageListComponentUtil from "./DashboardPodmanImageListComponent";
@@ -164,6 +165,9 @@ export default class DashboardComponentsUtil {
164
165
  if (dashboardComponentType === DashboardComponentType.CephPoolList) {
165
166
  return DashboardCephPoolListComponentUtil.getComponentConfigArguments();
166
167
  }
168
+ if (dashboardComponentType === DashboardComponentType.NetworkMap) {
169
+ return DashboardNetworkMapComponentUtil.getComponentConfigArguments();
170
+ }
167
171
  if (dashboardComponentType === DashboardComponentType.Html) {
168
172
  return DashboardHtmlComponentUtil.getComponentConfigArguments();
169
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../../Utils/Dashboard/Components/Index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../../Utils/Dashboard/Components/Index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ export default class TeamMembersByProject {
2
+ /**
3
+ * The project a membership is grouped under. Null when the membership carries
4
+ * no project at all - those rows are never merged, because merging them would
5
+ * put memberships of unrelated projects on one line.
6
+ */
7
+ static getGroupKey(teamMember) {
8
+ var _a, _b, _c;
9
+ const projectId = ((_a = teamMember.projectId) === null || _a === void 0 ? void 0 : _a.toString()) ||
10
+ ((_c = (_b = teamMember.project) === null || _b === void 0 ? void 0 : _b._id) === null || _c === void 0 ? void 0 : _c.toString()) ||
11
+ "";
12
+ return projectId || null;
13
+ }
14
+ /**
15
+ * The name this row reads and sorts under. Falls back to the project id so a
16
+ * row whose project could not be joined still lands somewhere deterministic
17
+ * rather than sorting as a blank.
18
+ */
19
+ static getProjectName(row) {
20
+ var _a, _b, _c, _d, _e;
21
+ return (((_b = (_a = row.project) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toString()) ||
22
+ ((_c = row.projectId) === null || _c === void 0 ? void 0 : _c.toString()) ||
23
+ ((_e = (_d = row.project) === null || _d === void 0 ? void 0 : _d._id) === null || _e === void 0 ? void 0 : _e.toString()) ||
24
+ "");
25
+ }
26
+ /**
27
+ * One row per project, in the order each project was first seen. The input
28
+ * order is whatever the caller sorted the memberships by, so first-seen order
29
+ * keeps that sort intact.
30
+ */
31
+ static groupByProject(teamMembers) {
32
+ const rowsByGroupKey = new Map();
33
+ const rows = [];
34
+ /*
35
+ * Which teams are already on a row. Tracked separately rather than
36
+ * re-derived from `teams`, because a membership identifies its team by
37
+ * `teamId` while the team object it carries identifies itself by `_id`, and
38
+ * either one can be missing from a given select.
39
+ */
40
+ const teamKeysByRow = new Map();
41
+ for (const teamMember of teamMembers) {
42
+ const groupKey = this.getGroupKey(teamMember);
43
+ let row = groupKey
44
+ ? rowsByGroupKey.get(groupKey)
45
+ : undefined;
46
+ if (!row) {
47
+ row = {
48
+ id: undefined,
49
+ projectId: teamMember.projectId || undefined,
50
+ project: teamMember.project || undefined,
51
+ teams: [],
52
+ teamMemberIds: [],
53
+ hasAcceptedInvitation: false,
54
+ pendingTeamCount: 0,
55
+ joinedAt: undefined,
56
+ };
57
+ teamKeysByRow.set(row, new Set());
58
+ if (groupKey) {
59
+ rowsByGroupKey.set(groupKey, row);
60
+ }
61
+ rows.push(row);
62
+ }
63
+ this.addMembershipToRow(row, teamMember, teamKeysByRow.get(row));
64
+ }
65
+ for (const row of rows) {
66
+ this.finalizeRow(row);
67
+ }
68
+ return rows;
69
+ }
70
+ /**
71
+ * Alphabetical by project name, case-insensitively. Rows with no name at all
72
+ * sort last so the list does not open on a run of blanks.
73
+ *
74
+ * Returns a new array; the input is left alone.
75
+ */
76
+ static sortByProjectName(rows) {
77
+ return [...rows].sort((a, b) => {
78
+ const nameA = this.getProjectName(a).toLowerCase();
79
+ const nameB = this.getProjectName(b).toLowerCase();
80
+ if (!nameA && !nameB) {
81
+ return 0;
82
+ }
83
+ if (!nameA) {
84
+ return 1;
85
+ }
86
+ if (!nameB) {
87
+ return -1;
88
+ }
89
+ return nameA.localeCompare(nameB);
90
+ });
91
+ }
92
+ static addMembershipToRow(row, teamMember, teamKeys) {
93
+ var _a, _b, _c, _d;
94
+ if (teamMember.hasAcceptedInvitation) {
95
+ row.hasAcceptedInvitation = true;
96
+ }
97
+ else {
98
+ row.pendingTeamCount = row.pendingTeamCount + 1;
99
+ }
100
+ /*
101
+ * A later membership can carry the joined project when the first one did
102
+ * not (different selects, or a nullified relation), so fill in whatever is
103
+ * still missing rather than trusting the first membership seen.
104
+ */
105
+ if (!row.project && teamMember.project) {
106
+ row.project = teamMember.project;
107
+ }
108
+ if (!row.projectId && teamMember.projectId) {
109
+ row.projectId = teamMember.projectId;
110
+ }
111
+ const membershipId = ((_a = teamMember._id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
112
+ if (membershipId) {
113
+ row.teamMemberIds.push(membershipId);
114
+ }
115
+ const createdAt = teamMember.createdAt;
116
+ if (createdAt && (!row.joinedAt || createdAt < row.joinedAt)) {
117
+ row.joinedAt = createdAt;
118
+ }
119
+ const team = teamMember.team;
120
+ if (!team) {
121
+ return;
122
+ }
123
+ const teamKey = ((_b = teamMember.teamId) === null || _b === void 0 ? void 0 : _b.toString()) ||
124
+ ((_c = team._id) === null || _c === void 0 ? void 0 : _c.toString()) ||
125
+ ((_d = team.name) === null || _d === void 0 ? void 0 : _d.toString()) ||
126
+ "";
127
+ if (!teamKey || teamKeys.has(teamKey)) {
128
+ return;
129
+ }
130
+ teamKeys.add(teamKey);
131
+ row.teams.push(team);
132
+ }
133
+ static finalizeRow(row) {
134
+ row.teams.sort((a, b) => {
135
+ var _a, _b;
136
+ return (((_a = a.name) === null || _a === void 0 ? void 0 : _a.toString()) || "")
137
+ .toLowerCase()
138
+ .localeCompare((((_b = b.name) === null || _b === void 0 ? void 0 : _b.toString()) || "").toLowerCase());
139
+ });
140
+ if (row.teamMemberIds.length > 0) {
141
+ row.id = [...row.teamMemberIds].sort()[0];
142
+ }
143
+ }
144
+ }
145
+ //# sourceMappingURL=TeamMembersByProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamMembersByProject.js","sourceRoot":"","sources":["../../../Utils/TeamMembersByProject.ts"],"names":[],"mappings":"AA8CA,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC;;;;OAIG;IACI,MAAM,CAAC,WAAW,CAAC,UAAsB;;QAC9C,MAAM,SAAS,GACb,CAAA,MAAA,UAAU,CAAC,SAAS,0CAAE,QAAQ,EAAE;aAChC,MAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,GAAG,0CAAE,QAAQ,EAAE,CAAA;YACnC,EAAE,CAAC;QAEL,OAAO,SAAS,IAAI,IAAI,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,cAAc,CAAC,GAA0B;;QACrD,OAAO,CACL,CAAA,MAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,IAAI,0CAAE,QAAQ,EAAE;aAC7B,MAAA,GAAG,CAAC,SAAS,0CAAE,QAAQ,EAAE,CAAA;aACzB,MAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,GAAG,0CAAE,QAAQ,EAAE,CAAA;YAC5B,EAAE,CACH,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,cAAc,CAC1B,WAA8B;QAE9B,MAAM,cAAc,GAAuC,IAAI,GAAG,EAG/D,CAAC;QACJ,MAAM,IAAI,GAAiC,EAAE,CAAC;QAE9C;;;;;WAKG;QACH,MAAM,aAAa,GAA4C,IAAI,GAAG,EAGnE,CAAC;QAEJ,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAkB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAE7D,IAAI,GAAG,GAAsC,QAAQ;gBACnD,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC9B,CAAC,CAAC,SAAS,CAAC;YAEd,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,GAAG;oBACJ,EAAE,EAAE,SAAS;oBACb,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,SAAS;oBAC5C,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,SAAS;oBACxC,KAAK,EAAE,EAAE;oBACT,aAAa,EAAE,EAAE;oBACjB,qBAAqB,EAAE,KAAK;oBAC5B,gBAAgB,EAAE,CAAC;oBACnB,QAAQ,EAAE,SAAS;iBACpB,CAAC;gBAEF,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;gBAE1C,IAAI,QAAQ,EAAE,CAAC;oBACb,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACpC,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAC;QACpE,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,iBAAiB,CAC7B,IAAkC;QAElC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CACnB,CAAC,CAAwB,EAAE,CAAwB,EAAE,EAAE;YACrD,MAAM,KAAK,GAAW,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAW,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAE3D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,CAAC,CAAC;YACX,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,CAAC;YACX,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;YAED,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAC/B,GAA0B,EAC1B,UAAsB,EACtB,QAAqB;;QAErB,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC;YACrC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAClD,CAAC;QAED;;;;WAIG;QACH,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvC,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAC3C,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACvC,CAAC;QAED,MAAM,YAAY,GAAW,CAAA,MAAA,UAAU,CAAC,GAAG,0CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC;QAE9D,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,SAAS,GAAqB,UAAU,CAAC,SAAS,CAAC;QAEzD,IAAI,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,GAAqB,UAAU,CAAC,IAAI,CAAC;QAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GACX,CAAA,MAAA,UAAU,CAAC,MAAM,0CAAE,QAAQ,EAAE;aAC7B,MAAA,IAAI,CAAC,GAAG,0CAAE,QAAQ,EAAE,CAAA;aACpB,MAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,EAAE,CAAA;YACrB,EAAE,CAAC;QAEL,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,GAA0B;QACnD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAO,EAAE,CAAO,EAAE,EAAE;;YAClC,OAAO,CAAC,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC;iBAC9B,WAAW,EAAE;iBACb,aAAa,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAE,CAAC;QAC7C,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneuptime/common",
3
- "version": "12.0.2",
3
+ "version": "12.0.4",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",