@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
@@ -17,7 +17,7 @@ import { FixPullRequestCiStatusHelper, } from "../../../../Types/AI/FixPullReque
17
17
  import OneUptimeDate from "../../../../Types/Date";
18
18
  import API from "../../../../Utils/API";
19
19
  import CaptureSpan from "../../Telemetry/CaptureSpan";
20
- import { GitHubAppId, GitHubAppPrivateKey, GitHubAppWebhookSecret, } from "../../../EnvironmentConfig";
20
+ import { GitHubAppClientId, GitHubAppClientSecret, GitHubAppId, GitHubAppPrivateKey, GitHubAppWebhookSecret, } from "../../../EnvironmentConfig";
21
21
  import BadDataException from "../../../../Types/Exception/BadDataException";
22
22
  import GlobalCache from "../../../Infrastructure/GlobalCache";
23
23
  import * as crypto from "crypto";
@@ -390,6 +390,94 @@ class GitHubUtil extends HostedCodeRepository {
390
390
  }
391
391
  return GitHubUtil.summarizeCheckRuns(allCheckRuns);
392
392
  }
393
+ /*
394
+ * Exchanges the short-lived OAuth `code` GitHub appends to the install
395
+ * redirect for a user-to-server access token.
396
+ *
397
+ * This is the ONLY thing that ties a redirect back to the human who
398
+ * actually performed the install: `installation_id` is just a number in a
399
+ * query string that anyone can type, but `code` is minted by GitHub for one
400
+ * specific GitHub user and is single-use. Pair it with
401
+ * listInstallationIdsForUserAccessToken below to answer "does this person
402
+ * really control this installation?".
403
+ */
404
+ static async exchangeOAuthCodeForUserAccessToken(code) {
405
+ var _a;
406
+ if (!GitHubAppClientId || !GitHubAppClientSecret) {
407
+ throw new BadDataException('GitHub App OAuth is not configured on this OneUptime instance. Set GITHUB_APP_CLIENT_ID and GITHUB_APP_CLIENT_SECRET, and enable "Request user authorization (OAuth) during installation" in the GitHub App settings.');
408
+ }
409
+ const result = await API.post({
410
+ url: URL.fromString("https://github.com/login/oauth/access_token"),
411
+ data: {
412
+ client_id: GitHubAppClientId,
413
+ client_secret: GitHubAppClientSecret,
414
+ code: code,
415
+ },
416
+ headers: {
417
+ Accept: "application/json",
418
+ },
419
+ });
420
+ if (result instanceof HTTPErrorResponse) {
421
+ throw new BadDataException("Could not verify the GitHub App installation with GitHub. Please restart the installation from OneUptime.");
422
+ }
423
+ const accessToken = (_a = result.data["access_token"]) === null || _a === void 0 ? void 0 : _a.toString();
424
+ /*
425
+ * GitHub answers a bad / expired / already-redeemed code with HTTP 200 and
426
+ * an `error` body, so a non-error status is not enough on its own.
427
+ */
428
+ if (!accessToken) {
429
+ throw new BadDataException("The GitHub authorization code is invalid or has already been used. Please restart the installation from OneUptime.");
430
+ }
431
+ return accessToken;
432
+ }
433
+ /*
434
+ * Lists the IDs of every installation of THIS GitHub App that the user
435
+ * behind `userAccessToken` can administer. GitHub scopes this endpoint to
436
+ * the app the token was issued for, so a token minted by another app cannot
437
+ * widen it.
438
+ */
439
+ static async listInstallationIdsForUserAccessToken(userAccessToken) {
440
+ var _a;
441
+ const installationIds = [];
442
+ let page = 1;
443
+ let hasMore = true;
444
+ while (hasMore) {
445
+ const result = await API.get({
446
+ url: URL.fromString(`https://api.github.com/user/installations?per_page=100&page=${page}`),
447
+ headers: {
448
+ Authorization: `Bearer ${userAccessToken}`,
449
+ Accept: "application/vnd.github+json",
450
+ "X-GitHub-Api-Version": "2022-11-28",
451
+ },
452
+ });
453
+ if (result instanceof HTTPErrorResponse) {
454
+ throw new BadDataException("Could not read your GitHub App installations from GitHub. Please restart the installation from OneUptime.");
455
+ }
456
+ const installations = result.data["installations"] || [];
457
+ for (const installation of installations) {
458
+ const installationId = (_a = installation === null || installation === void 0 ? void 0 : installation["id"]) === null || _a === void 0 ? void 0 : _a.toString();
459
+ if (installationId) {
460
+ installationIds.push(installationId);
461
+ }
462
+ }
463
+ hasMore = installations.length === 100;
464
+ page++;
465
+ }
466
+ return installationIds;
467
+ }
468
+ /*
469
+ * Proves that the person completing the install redirect actually controls
470
+ * the installation they claim, by round-tripping the OAuth code through
471
+ * GitHub. Throws (never returns false) so no caller can accidentally treat
472
+ * a verification failure as a pass.
473
+ */
474
+ static async assertUserControlsInstallation(data) {
475
+ const userAccessToken = await GitHubUtil.exchangeOAuthCodeForUserAccessToken(data.oauthCode);
476
+ const installationIds = await GitHubUtil.listInstallationIdsForUserAccessToken(userAccessToken);
477
+ if (!installationIds.includes(data.installationId.toString())) {
478
+ throw new BadDataException("The GitHub account you authorized does not have access to this GitHub App installation. Please restart the installation from OneUptime.");
479
+ }
480
+ }
393
481
  /**
394
482
  * Lists repositories accessible to a GitHub App installation
395
483
  * @param installationId - The GitHub App installation ID
@@ -448,7 +536,14 @@ class GitHubUtil extends HostedCodeRepository {
448
536
  */
449
537
  static async getRepositoryTreePaths(data) {
450
538
  const cacheNamespace = "github-repo-tree";
451
- const cacheKey = `${data.organizationName}/${data.repositoryName}@${data.branchName}`;
539
+ /*
540
+ * The installation is part of the key because this cache is read BEFORE a
541
+ * token is minted — so the key is doing the access control for a cache
542
+ * hit. Keyed on org/repo/branch alone, any caller who could name someone
543
+ * else's repository would be served that repository's cached private file
544
+ * listing without ever proving access to it.
545
+ */
546
+ const cacheKey = `${data.installationId}:${data.organizationName}/${data.repositoryName}@${data.branchName}`;
452
547
  try {
453
548
  const cachedPaths = await GlobalCache.getStringArray(cacheNamespace, cacheKey);
454
549
  if (cachedPaths !== null) {
@@ -908,9 +1003,18 @@ class GitHubUtil extends HostedCodeRepository {
908
1003
  * @returns true if signature is valid
909
1004
  */
910
1005
  static verifyWebhookSignature(payload, signature) {
1006
+ /*
1007
+ * Fail closed. This used to return true when the secret was unset, which
1008
+ * made the webhook endpoint fully unauthenticated on any instance that had
1009
+ * not configured one — and the handler acts on what it is sent: the
1010
+ * `installation.deleted` branch clears installation IDs across every
1011
+ * tenant, and `installation_repositories` triggers repository imports. An
1012
+ * unconfigured secret is a misconfiguration to surface, not a check to
1013
+ * skip.
1014
+ */
911
1015
  if (!GitHubAppWebhookSecret) {
912
- logger.warn("GITHUB_APP_WEBHOOK_SECRET is not set, skipping verification");
913
- return true;
1016
+ logger.error("Rejecting GitHub webhook: GITHUB_APP_WEBHOOK_SECRET is not set, so the payload's signature cannot be verified. Set it to the webhook secret configured in the GitHub App settings.");
1017
+ return false;
914
1018
  }
915
1019
  const expectedSignature = `sha256=${crypto
916
1020
  .createHmac("sha256", GitHubAppWebhookSecret)
@@ -1019,6 +1123,24 @@ __decorate([
1019
1123
  __metadata("design:paramtypes", [Object]),
1020
1124
  __metadata("design:returntype", Promise)
1021
1125
  ], GitHubUtil, "getCheckRunsConclusionWithToken", null);
1126
+ __decorate([
1127
+ CaptureSpan(),
1128
+ __metadata("design:type", Function),
1129
+ __metadata("design:paramtypes", [String]),
1130
+ __metadata("design:returntype", Promise)
1131
+ ], GitHubUtil, "exchangeOAuthCodeForUserAccessToken", null);
1132
+ __decorate([
1133
+ CaptureSpan(),
1134
+ __metadata("design:type", Function),
1135
+ __metadata("design:paramtypes", [String]),
1136
+ __metadata("design:returntype", Promise)
1137
+ ], GitHubUtil, "listInstallationIdsForUserAccessToken", null);
1138
+ __decorate([
1139
+ CaptureSpan(),
1140
+ __metadata("design:type", Function),
1141
+ __metadata("design:paramtypes", [Object]),
1142
+ __metadata("design:returntype", Promise)
1143
+ ], GitHubUtil, "assertUserControlsInstallation", null);
1022
1144
  __decorate([
1023
1145
  CaptureSpan(),
1024
1146
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"GitHub.js","sourceRoot":"","sources":["../../../../../../Server/Utils/CodeRepository/GitHub/GitHub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitHub.js","sourceRoot":"","sources":["../../../../../../Server/Utils/CodeRepository/GitHub/GitHub.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import ProjectService from "../../../Services/ProjectService";
11
+ import ObjectID from "../../../../Types/ObjectID";
12
+ import BadDataException from "../../../../Types/Exception/BadDataException";
13
+ import CaptureSpan from "../../Telemetry/CaptureSpan";
14
+ /*
15
+ * A GitHub App installation ID is a small, guessable integer, and the single
16
+ * GitHub App JWT this instance holds will mint a `ghs_` token for ANY of them
17
+ * (GitHubUtil.getInstallationAccessToken does not — and cannot — know which
18
+ * tenant asked). So the installation ID alone is not a capability: on its own
19
+ * it is just an attacker-supplied number.
20
+ *
21
+ * Project.gitHubAppInstallationId is the ONE authoritative record of which
22
+ * project an installation belongs to. It is written only by the GitHub App
23
+ * install callback, and only after GitHub itself has confirmed — via the
24
+ * OAuth user-to-server round trip — that the person completing the install
25
+ * controls that installation. Both `create` and `update` on that column are
26
+ * closed to API callers, so nothing outside that callback can assert a
27
+ * binding.
28
+ *
29
+ * Every path that turns an installation ID into GitHub access must therefore
30
+ * re-derive the binding from here rather than trusting the ID it was handed.
31
+ * Checking that a CodeRepository row is in the caller's project is NOT enough
32
+ * on its own: the attacker owns their own project, so they control both sides
33
+ * of that comparison.
34
+ */
35
+ export default class GitHubInstallationBinding {
36
+ /*
37
+ * The installation this project owns, or null if it has none. Callers
38
+ * filtering a whole project's repositories should read it once and compare
39
+ * in memory rather than asking per row — every row in such a list shares
40
+ * the same project, so the answer cannot differ between them.
41
+ */
42
+ static async getBoundInstallationId(projectId) {
43
+ const project = await ProjectService.findOneBy({
44
+ query: {
45
+ _id: projectId.toString(),
46
+ },
47
+ select: {
48
+ _id: true,
49
+ gitHubAppInstallationId: true,
50
+ },
51
+ props: {
52
+ isRoot: true,
53
+ },
54
+ });
55
+ return (project === null || project === void 0 ? void 0 : project.gitHubAppInstallationId) || null;
56
+ }
57
+ // True only if `installationId` is the installation bound to `projectId`.
58
+ static async isInstallationBoundToProject(data) {
59
+ if (!data.installationId) {
60
+ return false;
61
+ }
62
+ const project = await ProjectService.findOneBy({
63
+ query: {
64
+ _id: data.projectId.toString(),
65
+ gitHubAppInstallationId: data.installationId.toString(),
66
+ },
67
+ select: {
68
+ _id: true,
69
+ },
70
+ props: {
71
+ isRoot: true,
72
+ },
73
+ });
74
+ return Boolean(project);
75
+ }
76
+ /*
77
+ * Convenience for the many callers that hold a CodeRepository row and are
78
+ * about to use its installation ID against GitHub. Returns false for a row
79
+ * that carries no project or no installation, so a half-populated row can
80
+ * never be mistaken for a permitted one.
81
+ *
82
+ * Row-level checks like this stay necessary even with the write boundary
83
+ * closed, because a database that was exploited before the fix can still
84
+ * hold rows whose installation ID never belonged to their project.
85
+ */
86
+ static async isRepositoryInstallationBound(repository) {
87
+ if (!repository.projectId || !repository.gitHubAppInstallationId) {
88
+ return false;
89
+ }
90
+ return GitHubInstallationBinding.isInstallationBoundToProject({
91
+ projectId: repository.projectId,
92
+ installationId: repository.gitHubAppInstallationId,
93
+ });
94
+ }
95
+ /*
96
+ * Fail-closed variant for the places where continuing without a binding
97
+ * would hand out cross-tenant access.
98
+ */
99
+ static async assertInstallationBoundToProject(data) {
100
+ const isBound = await GitHubInstallationBinding.isInstallationBoundToProject(data);
101
+ if (!isBound) {
102
+ /*
103
+ * Deliberately vague: a probing caller must not be able to tell
104
+ * "this installation belongs to someone else" from "no such
105
+ * installation", or the error itself becomes the enumeration oracle
106
+ * this check exists to close.
107
+ */
108
+ throw new BadDataException("This GitHub App installation is not connected to this project. Please connect the repository from Project Settings using the GitHub App.");
109
+ }
110
+ }
111
+ }
112
+ __decorate([
113
+ CaptureSpan(),
114
+ __metadata("design:type", Function),
115
+ __metadata("design:paramtypes", [ObjectID]),
116
+ __metadata("design:returntype", Promise)
117
+ ], GitHubInstallationBinding, "getBoundInstallationId", null);
118
+ __decorate([
119
+ CaptureSpan(),
120
+ __metadata("design:type", Function),
121
+ __metadata("design:paramtypes", [Object]),
122
+ __metadata("design:returntype", Promise)
123
+ ], GitHubInstallationBinding, "isInstallationBoundToProject", null);
124
+ __decorate([
125
+ CaptureSpan(),
126
+ __metadata("design:type", Function),
127
+ __metadata("design:paramtypes", [Object]),
128
+ __metadata("design:returntype", Promise)
129
+ ], GitHubInstallationBinding, "isRepositoryInstallationBound", null);
130
+ __decorate([
131
+ CaptureSpan(),
132
+ __metadata("design:type", Function),
133
+ __metadata("design:paramtypes", [Object]),
134
+ __metadata("design:returntype", Promise)
135
+ ], GitHubInstallationBinding, "assertInstallationBoundToProject", null);
136
+ //# sourceMappingURL=GitHubInstallationBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitHubInstallationBinding.js","sourceRoot":"","sources":["../../../../../../Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAE9D,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAClD,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;AAC5E,OAAO,WAAW,MAAM,6BAA6B,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,yBAAyB;IAC5C;;;;;OAKG;IAEiB,AAAb,MAAM,CAAC,KAAK,CAAC,sBAAsB,CACxC,SAAmB;QAEnB,MAAM,OAAO,GAAmB,MAAM,cAAc,CAAC,SAAS,CAAC;YAC7D,KAAK,EAAE;gBACL,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE;aAC1B;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,uBAAuB,EAAE,IAAI;aAC9B;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,uBAAuB,KAAI,IAAI,CAAC;IAClD,CAAC;IAED,0EAA0E;IAEtD,AAAb,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,IAGhD;QACC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAmB,MAAM,cAAc,CAAC,SAAS,CAAC;YAC7D,KAAK,EAAE;gBACL,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAC9B,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;aACxD;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;aACV;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;;;;;OASG;IAEiB,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,UAGjD;QACC,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,yBAAyB,CAAC,4BAA4B,CAAC;YAC5D,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,cAAc,EAAE,UAAU,CAAC,uBAAuB;SACnD,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IAEiB,AAAb,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,IAGpD;QACC,MAAM,OAAO,GACX,MAAM,yBAAyB,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAErE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb;;;;;eAKG;YACH,MAAM,IAAI,gBAAgB,CACxB,0IAA0I,CAC3I,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA9FqB;IADnB,WAAW,EAAE;;qCAED,QAAQ;;6DAgBpB;AAImB;IADnB,WAAW,EAAE;;;;mEAuBb;AAamB;IADnB,WAAW,EAAE;;;;oEAab;AAOmB;IADnB,WAAW,EAAE;;;;uEAmBb"}
@@ -2,6 +2,19 @@ import QueryHelper from "../../Types/Database/QueryHelper";
2
2
  import { LIMIT_PER_PROJECT } from "../../../Types/Database/LimitMax";
3
3
  import BadDataException from "../../../Types/Exception/BadDataException";
4
4
  import ObjectID from "../../../Types/ObjectID";
5
+ /*
6
+ * Ids are matched case-insensitively.
7
+ *
8
+ * ObjectID keeps whatever case it was handed (its validation regex is
9
+ * case-insensitive) and Postgres compares `uuid` values by parsed value, so a
10
+ * payload carrying an UPPERCASE uuid selects the row fine — but reads the id
11
+ * back lower-cased, because that is how Postgres renders `uuid`. Comparing the
12
+ * two verbatim would find no match and report a record that plainly exists as
13
+ * missing.
14
+ */
15
+ function normalizeId(id) {
16
+ return id.trim().toLowerCase();
17
+ }
5
18
  /*
6
19
  * The same reference reaches a service hook in several shapes: the id column
7
20
  * (`incidentSeverityId`), a relation object (`incidentSeverity: { _id }`), an
@@ -25,7 +38,7 @@ export function resolveReferenceId(value) {
25
38
  }
26
39
  export default class ProjectScopedReferenceValidator {
27
40
  static async validateReferencesBelongToProject(data) {
28
- var _a, _b, _c;
41
+ var _a, _b, _c, _d, _e, _f;
29
42
  if (!data.projectId) {
30
43
  /*
31
44
  * Root/internal writes do not always carry a project. Callers resolve the
@@ -40,60 +53,120 @@ export default class ProjectScopedReferenceValidator {
40
53
  */
41
54
  const idsByService = new Map();
42
55
  for (const reference of data.references) {
43
- const id = ((_a = reference.id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
56
+ const id = ((_a = reference.id) === null || _a === void 0 ? void 0 : _a.toString().trim()) || "";
44
57
  if (!id) {
45
58
  continue;
46
59
  }
47
60
  if (!idsByService.has(reference.service)) {
48
61
  idsByService.set(reference.service, new Map());
49
62
  }
50
- idsByService.get(reference.service).set(id, reference.modelName);
63
+ const requested = idsByService.get(reference.service);
64
+ const key = normalizeId(id);
65
+ const existing = requested.get(key);
66
+ requested.set(key, {
67
+ modelName: reference.modelName,
68
+ id: (existing === null || existing === void 0 ? void 0 : existing.id) || id,
69
+ /*
70
+ * The same id can arrive twice for one service (e.g. two monitor
71
+ * criteria pointing at the same status). If ANY of them requires the
72
+ * record to exist, the strictest wins.
73
+ */
74
+ mustExist: ((_b = existing === null || existing === void 0 ? void 0 : existing.mustExist) !== null && _b !== void 0 ? _b : false) || ((_c = reference.mustExist) !== null && _c !== void 0 ? _c : true),
75
+ });
51
76
  }
52
77
  if (idsByService.size === 0) {
53
78
  return;
54
79
  }
55
80
  const foreignReferences = [];
56
- for (const [service, idToModelName] of idsByService) {
81
+ const missingReferences = [];
82
+ for (const [service, requestedById] of idsByService) {
83
+ /*
84
+ * Read the tenant and name columns off the model rather than assuming
85
+ * `projectId` / `name`. Not every referenced model is project scoped —
86
+ * a monitor criteria can name owner *users*, and User has no tenant
87
+ * column at all. Selecting a column a model does not have throws, and
88
+ * comparing an absent projectId against the write's project would
89
+ * report every such record as belonging to "a different project".
90
+ */
91
+ const referencedModel = service.getModel();
92
+ const tenantColumnName = referencedModel.getTenantColumn();
93
+ const hasNameColumn = referencedModel.hasColumn("name");
94
+ const select = {
95
+ _id: true,
96
+ };
97
+ if (hasNameColumn) {
98
+ select["name"] = true;
99
+ }
100
+ if (tenantColumnName) {
101
+ select[tenantColumnName] = true;
102
+ }
57
103
  const records = await service.findBy({
58
104
  query: {
59
- _id: QueryHelper.any(Array.from(idToModelName.keys())),
60
- },
61
- /*
62
- * `name` and `projectId` are not on DatabaseBaseModel, but every model
63
- * passed here is project scoped and named, so the cast is safe.
64
- */
65
- select: {
66
- _id: true,
67
- name: true,
68
- projectId: true,
105
+ _id: QueryHelper.any(Array.from(requestedById.keys())),
69
106
  },
107
+ select: select,
70
108
  limit: LIMIT_PER_PROJECT,
71
109
  skip: 0,
72
110
  props: {
73
111
  isRoot: true,
74
112
  },
75
113
  });
114
+ const foundIds = new Set();
76
115
  for (const record of records) {
77
- const recordProjectId = record.getValue("projectId") || undefined;
116
+ const id = normalizeId(((_d = record._id) === null || _d === void 0 ? void 0 : _d.toString()) || "");
117
+ foundIds.add(id);
118
+ if (!tenantColumnName) {
119
+ // Global record (e.g. User) — there is no project to compare against.
120
+ continue;
121
+ }
122
+ const recordProjectId = record.getValue(tenantColumnName) || undefined;
78
123
  if ((recordProjectId === null || recordProjectId === void 0 ? void 0 : recordProjectId.toString()) === data.projectId.toString()) {
79
124
  continue;
80
125
  }
81
- const id = ((_b = record._id) === null || _b === void 0 ? void 0 : _b.toString()) || "";
82
126
  foreignReferences.push({
83
- modelName: idToModelName.get(id) || "Record",
84
- name: ((_c = record.getValue("name")) === null || _c === void 0 ? void 0 : _c.toString()) || id,
127
+ modelName: ((_e = requestedById.get(id)) === null || _e === void 0 ? void 0 : _e.modelName) || "Record",
128
+ name: (hasNameColumn && ((_f = record.getValue("name")) === null || _f === void 0 ? void 0 : _f.toString())) ||
129
+ id,
130
+ });
131
+ }
132
+ for (const [id, requested] of requestedById) {
133
+ if (foundIds.has(id) || !requested.mustExist) {
134
+ continue;
135
+ }
136
+ missingReferences.push({
137
+ modelName: requested.modelName,
138
+ // Echo the id as the caller wrote it, not the normalized key.
139
+ id: requested.id,
85
140
  });
86
141
  }
87
142
  }
88
- if (foreignReferences.length === 0) {
143
+ /*
144
+ * Both problems are reported in one go so a caller fixing a payload with
145
+ * several bad ids does not have to discover them one round-trip at a time.
146
+ * The wording of each clause is kept verbatim from when they were separate
147
+ * messages — support runbooks and tests match on it.
148
+ */
149
+ const clauses = [];
150
+ if (foreignReferences.length > 0) {
151
+ const described = foreignReferences
152
+ .map((reference) => {
153
+ return `${reference.modelName} "${reference.name}"`;
154
+ })
155
+ .join(", ");
156
+ clauses.push(`references records that belong to a different project: ${described}. Please pick values from this project and try again.`);
157
+ }
158
+ if (missingReferences.length > 0) {
159
+ const described = missingReferences
160
+ .map((reference) => {
161
+ return `${reference.modelName} "${reference.id}"`;
162
+ })
163
+ .join(", ");
164
+ clauses.push(`references records that do not exist: ${described}. Please pick values that exist in this project and try again.`);
165
+ }
166
+ if (clauses.length === 0) {
89
167
  return;
90
168
  }
91
- const described = foreignReferences
92
- .map((reference) => {
93
- return `${reference.modelName} "${reference.name}"`;
94
- })
95
- .join(", ");
96
- throw new BadDataException(`This ${data.subject || "request"} references records that belong to a different project: ${described}. Please pick values from this project and try again.`);
169
+ throw new BadDataException(`This ${data.subject || "request"} ${clauses.join(" It also ")}`);
97
170
  }
98
171
  /*
99
172
  * "Can this project actually use this record?" — for callers that must not
@@ -103,10 +176,13 @@ export default class ProjectScopedReferenceValidator {
103
176
  * there fails the whole ingest job for that monitor, so those callers ask
104
177
  * this instead and fall back to their project's own default.
105
178
  *
106
- * Note the deliberate difference from validateReferencesBelongToProject: an
107
- * id that matches NO record is unusable here (false), while the write guard
108
- * lets it pass so a record already pointing at something deleted stays
109
- * saveable.
179
+ * Note the deliberate difference from validateReferencesBelongToProject:
180
+ * that one refuses the write and names what is wrong, which is right when
181
+ * someone is typing an id in. This one answers a question and never throws,
182
+ * which is right when a worker is reading an id that was typed in long ago —
183
+ * an id monitorSteps is allowed to keep holding (the write guard exempts what
184
+ * a record already stores, since none of those ids has a foreign key behind
185
+ * it and there is no migration to clean them up).
110
186
  */
111
187
  static async isUsableInProject(data) {
112
188
  var _a;