@oneuptime/common 10.7.1 → 10.8.0

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 (262) hide show
  1. package/Models/DatabaseModels/CloudResource.ts +846 -0
  2. package/Models/DatabaseModels/CloudResourceInstance.ts +276 -0
  3. package/Models/DatabaseModels/CloudResourceLabelRule.ts +510 -0
  4. package/Models/DatabaseModels/CloudResourceOwnerRule.ts +592 -0
  5. package/Models/DatabaseModels/CloudResourceOwnerTeam.ts +487 -0
  6. package/Models/DatabaseModels/CloudResourceOwnerUser.ts +486 -0
  7. package/Models/DatabaseModels/Host.ts +209 -0
  8. package/Models/DatabaseModels/Index.ts +36 -0
  9. package/Models/DatabaseModels/RumApplication.ts +731 -0
  10. package/Models/DatabaseModels/RumApplicationClient.ts +229 -0
  11. package/Models/DatabaseModels/RumApplicationLabelRule.ts +510 -0
  12. package/Models/DatabaseModels/RumApplicationOwnerRule.ts +592 -0
  13. package/Models/DatabaseModels/RumApplicationOwnerTeam.ts +486 -0
  14. package/Models/DatabaseModels/RumApplicationOwnerUser.ts +485 -0
  15. package/Models/DatabaseModels/ServerlessFunction.ts +881 -0
  16. package/Models/DatabaseModels/ServerlessFunctionInstance.ts +212 -0
  17. package/Models/DatabaseModels/ServerlessFunctionLabelRule.ts +510 -0
  18. package/Models/DatabaseModels/ServerlessFunctionOwnerRule.ts +592 -0
  19. package/Models/DatabaseModels/ServerlessFunctionOwnerTeam.ts +487 -0
  20. package/Models/DatabaseModels/ServerlessFunctionOwnerUser.ts +486 -0
  21. package/Models/DatabaseModels/Service.ts +268 -0
  22. package/Models/DatabaseModels/TelemetryException.ts +15 -1
  23. package/Models/DatabaseModels/WorkflowLog.ts +52 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1780931746908-AddResumeStateToWorkflowLog.ts +21 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.ts +108 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.ts +205 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.ts +195 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.ts +202 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.ts +156 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.ts +149 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.ts +149 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1780941762204-AddTelemetryResourceInventoryTables.ts +95 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1780985763463-AddRumApplicationSdkLanguage.ts +25 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1780987192743-RecastCloudResourcesByEnvironment.ts +30 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +22 -0
  36. package/Server/Infrastructure/Queue.ts +11 -0
  37. package/Server/Services/CloudResourceInstanceService.ts +76 -0
  38. package/Server/Services/CloudResourceLabelRuleEngineService.ts +175 -0
  39. package/Server/Services/CloudResourceLabelRuleService.ts +14 -0
  40. package/Server/Services/CloudResourceOwnerRuleEngineService.ts +192 -0
  41. package/Server/Services/CloudResourceOwnerRuleService.ts +14 -0
  42. package/Server/Services/CloudResourceOwnerTeamService.ts +10 -0
  43. package/Server/Services/CloudResourceOwnerUserService.ts +10 -0
  44. package/Server/Services/CloudResourceService.ts +342 -0
  45. package/Server/Services/ExceptionAggregationService.ts +3 -0
  46. package/Server/Services/HostService.ts +42 -0
  47. package/Server/Services/LogAggregationService.ts +3 -0
  48. package/Server/Services/MetricAggregationService.ts +3 -0
  49. package/Server/Services/OpenTelemetryIngestService.ts +148 -1
  50. package/Server/Services/RumApplicationClientService.ts +69 -0
  51. package/Server/Services/RumApplicationLabelRuleEngineService.ts +175 -0
  52. package/Server/Services/RumApplicationLabelRuleService.ts +14 -0
  53. package/Server/Services/RumApplicationOwnerRuleEngineService.ts +192 -0
  54. package/Server/Services/RumApplicationOwnerRuleService.ts +14 -0
  55. package/Server/Services/RumApplicationOwnerTeamService.ts +10 -0
  56. package/Server/Services/RumApplicationOwnerUserService.ts +10 -0
  57. package/Server/Services/RumApplicationService.ts +301 -0
  58. package/Server/Services/ServerlessFunctionInstanceService.ts +61 -0
  59. package/Server/Services/ServerlessFunctionLabelRuleEngineService.ts +182 -0
  60. package/Server/Services/ServerlessFunctionLabelRuleService.ts +14 -0
  61. package/Server/Services/ServerlessFunctionOwnerRuleEngineService.ts +199 -0
  62. package/Server/Services/ServerlessFunctionOwnerRuleService.ts +14 -0
  63. package/Server/Services/ServerlessFunctionOwnerTeamService.ts +10 -0
  64. package/Server/Services/ServerlessFunctionOwnerUserService.ts +10 -0
  65. package/Server/Services/ServerlessFunctionService.ts +351 -0
  66. package/Server/Services/ServiceService.ts +95 -8
  67. package/Server/Services/TraceAggregationService.ts +3 -0
  68. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +39 -0
  69. package/Server/Types/Workflow/ComponentCode.ts +9 -0
  70. package/Server/Types/Workflow/Components/Index.ts +2 -0
  71. package/Server/Types/Workflow/Components/Sleep.ts +105 -0
  72. package/Server/Types/Workflow/Workflow.ts +6 -0
  73. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +150 -0
  74. package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +193 -0
  75. package/Tests/UI/Components/DuplicateModel.test.tsx +2 -2
  76. package/Types/Monitor/KubernetesAlertTemplates.ts +239 -14
  77. package/Types/Permission.ts +692 -1
  78. package/Types/Telemetry/ServiceType.ts +3 -0
  79. package/Types/Workflow/ComponentID.ts +1 -0
  80. package/Types/Workflow/Components/Sleep.ts +71 -0
  81. package/Types/Workflow/Components.ts +2 -0
  82. package/Types/Workflow/WorkflowStatus.ts +1 -0
  83. package/UI/Components/BulkUpdate/BulkLabelActions.tsx +159 -32
  84. package/UI/Components/Navbar/NavBar.tsx +72 -123
  85. package/UI/Components/Navbar/NavBarMenuModal.tsx +642 -0
  86. package/UI/Components/Workflow/WorkflowStatus.tsx +3 -0
  87. package/build/dist/Models/DatabaseModels/CloudResource.js +871 -0
  88. package/build/dist/Models/DatabaseModels/CloudResource.js.map +1 -0
  89. package/build/dist/Models/DatabaseModels/CloudResourceInstance.js +300 -0
  90. package/build/dist/Models/DatabaseModels/CloudResourceInstance.js.map +1 -0
  91. package/build/dist/Models/DatabaseModels/CloudResourceLabelRule.js +520 -0
  92. package/build/dist/Models/DatabaseModels/CloudResourceLabelRule.js.map +1 -0
  93. package/build/dist/Models/DatabaseModels/CloudResourceOwnerRule.js +601 -0
  94. package/build/dist/Models/DatabaseModels/CloudResourceOwnerRule.js.map +1 -0
  95. package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js +503 -0
  96. package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js.map +1 -0
  97. package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js +502 -0
  98. package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js.map +1 -0
  99. package/build/dist/Models/DatabaseModels/Host.js +215 -0
  100. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  101. package/build/dist/Models/DatabaseModels/Index.js +36 -0
  102. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  103. package/build/dist/Models/DatabaseModels/RumApplication.js +751 -0
  104. package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -0
  105. package/build/dist/Models/DatabaseModels/RumApplicationClient.js +252 -0
  106. package/build/dist/Models/DatabaseModels/RumApplicationClient.js.map +1 -0
  107. package/build/dist/Models/DatabaseModels/RumApplicationLabelRule.js +520 -0
  108. package/build/dist/Models/DatabaseModels/RumApplicationLabelRule.js.map +1 -0
  109. package/build/dist/Models/DatabaseModels/RumApplicationOwnerRule.js +601 -0
  110. package/build/dist/Models/DatabaseModels/RumApplicationOwnerRule.js.map +1 -0
  111. package/build/dist/Models/DatabaseModels/RumApplicationOwnerTeam.js +503 -0
  112. package/build/dist/Models/DatabaseModels/RumApplicationOwnerTeam.js.map +1 -0
  113. package/build/dist/Models/DatabaseModels/RumApplicationOwnerUser.js +502 -0
  114. package/build/dist/Models/DatabaseModels/RumApplicationOwnerUser.js.map +1 -0
  115. package/build/dist/Models/DatabaseModels/ServerlessFunction.js +908 -0
  116. package/build/dist/Models/DatabaseModels/ServerlessFunction.js.map +1 -0
  117. package/build/dist/Models/DatabaseModels/ServerlessFunctionInstance.js +234 -0
  118. package/build/dist/Models/DatabaseModels/ServerlessFunctionInstance.js.map +1 -0
  119. package/build/dist/Models/DatabaseModels/ServerlessFunctionLabelRule.js +520 -0
  120. package/build/dist/Models/DatabaseModels/ServerlessFunctionLabelRule.js.map +1 -0
  121. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerRule.js +601 -0
  122. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerRule.js.map +1 -0
  123. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerTeam.js +503 -0
  124. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerTeam.js.map +1 -0
  125. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerUser.js +502 -0
  126. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerUser.js.map +1 -0
  127. package/build/dist/Models/DatabaseModels/Service.js +276 -0
  128. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  129. package/build/dist/Models/DatabaseModels/TelemetryException.js +12 -1
  130. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  131. package/build/dist/Models/DatabaseModels/WorkflowLog.js +53 -0
  132. package/build/dist/Models/DatabaseModels/WorkflowLog.js.map +1 -1
  133. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931746908-AddResumeStateToWorkflowLog.js +14 -0
  134. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931746908-AddResumeStateToWorkflowLog.js.map +1 -0
  135. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.js +53 -0
  136. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.js.map +1 -0
  137. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.js +82 -0
  138. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.js.map +1 -0
  139. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.js +82 -0
  140. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.js.map +1 -0
  141. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.js +83 -0
  142. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780936579718-AddRumApplicationTables.js.map +1 -0
  143. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.js +67 -0
  144. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780938407319-AddServerlessFunctionRuleTables.js.map +1 -0
  145. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.js +60 -0
  146. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940721814-AddCloudResourceRuleTables.js.map +1 -0
  147. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.js +60 -0
  148. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780940998002-AddRumApplicationRuleTables.js.map +1 -0
  149. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780941762204-AddTelemetryResourceInventoryTables.js +45 -0
  150. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780941762204-AddTelemetryResourceInventoryTables.js.map +1 -0
  151. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780985763463-AddRumApplicationSdkLanguage.js +18 -0
  152. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780985763463-AddRumApplicationSdkLanguage.js.map +1 -0
  153. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780987192743-RecastCloudResourcesByEnvironment.js +27 -0
  154. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780987192743-RecastCloudResourcesByEnvironment.js.map +1 -0
  155. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +22 -0
  156. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  157. package/build/dist/Server/Infrastructure/Queue.js +3 -0
  158. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  159. package/build/dist/Server/Services/CloudResourceInstanceService.js +76 -0
  160. package/build/dist/Server/Services/CloudResourceInstanceService.js.map +1 -0
  161. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js +160 -0
  162. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -0
  163. package/build/dist/Server/Services/CloudResourceLabelRuleService.js +13 -0
  164. package/build/dist/Server/Services/CloudResourceLabelRuleService.js.map +1 -0
  165. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +179 -0
  166. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -0
  167. package/build/dist/Server/Services/CloudResourceOwnerRuleService.js +13 -0
  168. package/build/dist/Server/Services/CloudResourceOwnerRuleService.js.map +1 -0
  169. package/build/dist/Server/Services/CloudResourceOwnerTeamService.js +9 -0
  170. package/build/dist/Server/Services/CloudResourceOwnerTeamService.js.map +1 -0
  171. package/build/dist/Server/Services/CloudResourceOwnerUserService.js +9 -0
  172. package/build/dist/Server/Services/CloudResourceOwnerUserService.js.map +1 -0
  173. package/build/dist/Server/Services/CloudResourceService.js +287 -0
  174. package/build/dist/Server/Services/CloudResourceService.js.map +1 -0
  175. package/build/dist/Server/Services/ExceptionAggregationService.js +3 -0
  176. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  177. package/build/dist/Server/Services/HostService.js +29 -1
  178. package/build/dist/Server/Services/HostService.js.map +1 -1
  179. package/build/dist/Server/Services/LogAggregationService.js +3 -0
  180. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  181. package/build/dist/Server/Services/MetricAggregationService.js +3 -0
  182. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  183. package/build/dist/Server/Services/OpenTelemetryIngestService.js +98 -2
  184. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  185. package/build/dist/Server/Services/RumApplicationClientService.js +70 -0
  186. package/build/dist/Server/Services/RumApplicationClientService.js.map +1 -0
  187. package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js +160 -0
  188. package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js.map +1 -0
  189. package/build/dist/Server/Services/RumApplicationLabelRuleService.js +13 -0
  190. package/build/dist/Server/Services/RumApplicationLabelRuleService.js.map +1 -0
  191. package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js +179 -0
  192. package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js.map +1 -0
  193. package/build/dist/Server/Services/RumApplicationOwnerRuleService.js +13 -0
  194. package/build/dist/Server/Services/RumApplicationOwnerRuleService.js.map +1 -0
  195. package/build/dist/Server/Services/RumApplicationOwnerTeamService.js +9 -0
  196. package/build/dist/Server/Services/RumApplicationOwnerTeamService.js.map +1 -0
  197. package/build/dist/Server/Services/RumApplicationOwnerUserService.js +9 -0
  198. package/build/dist/Server/Services/RumApplicationOwnerUserService.js.map +1 -0
  199. package/build/dist/Server/Services/RumApplicationService.js +259 -0
  200. package/build/dist/Server/Services/RumApplicationService.js.map +1 -0
  201. package/build/dist/Server/Services/ServerlessFunctionInstanceService.js +64 -0
  202. package/build/dist/Server/Services/ServerlessFunctionInstanceService.js.map +1 -0
  203. package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js +160 -0
  204. package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js.map +1 -0
  205. package/build/dist/Server/Services/ServerlessFunctionLabelRuleService.js +13 -0
  206. package/build/dist/Server/Services/ServerlessFunctionLabelRuleService.js.map +1 -0
  207. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js +179 -0
  208. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js.map +1 -0
  209. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleService.js +13 -0
  210. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleService.js.map +1 -0
  211. package/build/dist/Server/Services/ServerlessFunctionOwnerTeamService.js +9 -0
  212. package/build/dist/Server/Services/ServerlessFunctionOwnerTeamService.js.map +1 -0
  213. package/build/dist/Server/Services/ServerlessFunctionOwnerUserService.js +9 -0
  214. package/build/dist/Server/Services/ServerlessFunctionOwnerUserService.js.map +1 -0
  215. package/build/dist/Server/Services/ServerlessFunctionService.js +299 -0
  216. package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -0
  217. package/build/dist/Server/Services/ServiceService.js +63 -7
  218. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  219. package/build/dist/Server/Services/TraceAggregationService.js +3 -0
  220. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  221. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +39 -0
  222. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  223. package/build/dist/Server/Types/Workflow/ComponentCode.js.map +1 -1
  224. package/build/dist/Server/Types/Workflow/Components/Index.js +2 -0
  225. package/build/dist/Server/Types/Workflow/Components/Index.js.map +1 -1
  226. package/build/dist/Server/Types/Workflow/Components/Sleep.js +85 -0
  227. package/build/dist/Server/Types/Workflow/Components/Sleep.js.map +1 -0
  228. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +90 -0
  229. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  230. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js +121 -0
  231. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js.map +1 -0
  232. package/build/dist/Tests/UI/Components/DuplicateModel.test.js +2 -2
  233. package/build/dist/Tests/UI/Components/DuplicateModel.test.js.map +1 -1
  234. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +210 -14
  235. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  236. package/build/dist/Types/Permission.js +609 -1
  237. package/build/dist/Types/Permission.js.map +1 -1
  238. package/build/dist/Types/Telemetry/ServiceType.js +3 -0
  239. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  240. package/build/dist/Types/Workflow/ComponentID.js +1 -0
  241. package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
  242. package/build/dist/Types/Workflow/Components/Sleep.js +64 -0
  243. package/build/dist/Types/Workflow/Components/Sleep.js.map +1 -0
  244. package/build/dist/Types/Workflow/Components.js +2 -0
  245. package/build/dist/Types/Workflow/Components.js.map +1 -1
  246. package/build/dist/Types/Workflow/WorkflowStatus.js +1 -0
  247. package/build/dist/Types/Workflow/WorkflowStatus.js.map +1 -1
  248. package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js +113 -19
  249. package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -1
  250. package/build/dist/UI/Components/Navbar/NavBar.js +34 -66
  251. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  252. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +412 -0
  253. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -0
  254. package/build/dist/UI/Components/Workflow/WorkflowStatus.js +3 -0
  255. package/build/dist/UI/Components/Workflow/WorkflowStatus.js.map +1 -1
  256. package/package.json +1 -1
  257. package/UI/Components/Navbar/NavBarMenu.tsx +0 -183
  258. package/UI/Components/Navbar/NavBarMenuItem.tsx +0 -146
  259. package/build/dist/UI/Components/Navbar/NavBarMenu.js +0 -82
  260. package/build/dist/UI/Components/Navbar/NavBarMenu.js.map +0 -1
  261. package/build/dist/UI/Components/Navbar/NavBarMenuItem.js +0 -109
  262. package/build/dist/UI/Components/Navbar/NavBarMenuItem.js.map +0 -1
@@ -367,6 +367,17 @@ import { MigrationName1780387560604 } from "./1780387560604-MigrationName";
367
367
  import { MigrationName1780388219225 } from "./1780388219225-MigrationName";
368
368
  import { AddMetricAndTraceSavedView1780645560183 } from "./1780645560183-AddMetricAndTraceSavedView";
369
369
  import { AddKubernetesLatestMemoryPercent1780651429467 } from "./1780651429467-AddKubernetesLatestMemoryPercent";
370
+ import { AddResumeStateToWorkflowLog1780931746908 } from "./1780931746908-AddResumeStateToWorkflowLog";
371
+ import { AddTelemetryResourceMetadataColumns1780931863719 } from "./1780931863719-AddTelemetryResourceMetadataColumns";
372
+ import { AddServerlessFunctionTables1780933132562 } from "./1780933132562-AddServerlessFunctionTables";
373
+ import { AddCloudResourceTables1780935387827 } from "./1780935387827-AddCloudResourceTables";
374
+ import { AddRumApplicationTables1780936579718 } from "./1780936579718-AddRumApplicationTables";
375
+ import { AddServerlessFunctionRuleTables1780938407319 } from "./1780938407319-AddServerlessFunctionRuleTables";
376
+ import { AddCloudResourceRuleTables1780940721814 } from "./1780940721814-AddCloudResourceRuleTables";
377
+ import { AddRumApplicationRuleTables1780940998002 } from "./1780940998002-AddRumApplicationRuleTables";
378
+ import { AddTelemetryResourceInventoryTables1780941762204 } from "./1780941762204-AddTelemetryResourceInventoryTables";
379
+ import { AddRumApplicationSdkLanguage1780985763463 } from "./1780985763463-AddRumApplicationSdkLanguage";
380
+ import { RecastCloudResourcesByEnvironment1780987192743 } from "./1780987192743-RecastCloudResourcesByEnvironment";
370
381
 
371
382
  export default [
372
383
  InitialMigration,
@@ -738,4 +749,15 @@ export default [
738
749
  MigrationName1780388219225,
739
750
  AddMetricAndTraceSavedView1780645560183,
740
751
  AddKubernetesLatestMemoryPercent1780651429467,
752
+ AddResumeStateToWorkflowLog1780931746908,
753
+ AddTelemetryResourceMetadataColumns1780931863719,
754
+ AddServerlessFunctionTables1780933132562,
755
+ AddCloudResourceTables1780935387827,
756
+ AddRumApplicationTables1780936579718,
757
+ AddServerlessFunctionRuleTables1780938407319,
758
+ AddCloudResourceRuleTables1780940721814,
759
+ AddRumApplicationRuleTables1780940998002,
760
+ AddTelemetryResourceInventoryTables1780941762204,
761
+ AddRumApplicationSdkLanguage1780985763463,
762
+ RecastCloudResourcesByEnvironment1780987192743,
741
763
  ];
@@ -192,6 +192,13 @@ export default class Queue {
192
192
  options?: {
193
193
  scheduleAt?: string | undefined;
194
194
  repeatableKey?: string | undefined;
195
+ /**
196
+ * One-off delay in milliseconds before the job becomes eligible to run.
197
+ * Mutually exclusive with `scheduleAt` (a repeatable cron pattern); if
198
+ * both are set, `scheduleAt` wins. Used to park a delayed job (e.g. the
199
+ * Sleep component's durable resume).
200
+ */
201
+ delayInMs?: number | undefined;
195
202
  },
196
203
  ): Promise<Job> {
197
204
  const sanitizedJobId: string = this.sanitizeJobId(jobId.toString());
@@ -200,6 +207,10 @@ export default class Queue {
200
207
  jobId: sanitizedJobId,
201
208
  };
202
209
 
210
+ if (options && options.delayInMs && options.delayInMs > 0) {
211
+ optionsObject.delay = options.delayInMs;
212
+ }
213
+
203
214
  const queue: BullQueue = this.getQueue(queueName);
204
215
 
205
216
  if (options && options.scheduleAt) {
@@ -0,0 +1,76 @@
1
+ import DatabaseService from "./DatabaseService";
2
+ import Model from "../../Models/DatabaseModels/CloudResourceInstance";
3
+ import ObjectID from "../../Types/ObjectID";
4
+ import OneUptimeDate from "../../Types/Date";
5
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
6
+ import logger from "../Utils/Logger";
7
+
8
+ export class Service extends DatabaseService<Model> {
9
+ public constructor() {
10
+ super(Model);
11
+ }
12
+
13
+ /**
14
+ * Upsert a cloud-resource instance / task (service.instance.id) from ingest.
15
+ * Refreshes lastSeenAt (and cpu/mem when provided) if it already exists.
16
+ */
17
+ @CaptureSpan()
18
+ public async recordInstance(data: {
19
+ projectId: ObjectID;
20
+ cloudResourceId: ObjectID;
21
+ instanceName: string;
22
+ cpuPercent?: number | undefined;
23
+ memoryBytes?: number | undefined;
24
+ }): Promise<void> {
25
+ try {
26
+ const existing: Model | null = await this.findOneBy({
27
+ query: {
28
+ projectId: data.projectId,
29
+ cloudResourceId: data.cloudResourceId,
30
+ instanceName: data.instanceName,
31
+ },
32
+ select: { _id: true },
33
+ props: { isRoot: true },
34
+ });
35
+
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ const fields: any = { lastSeenAt: OneUptimeDate.getCurrentDate() };
38
+ if (data.cpuPercent !== undefined) {
39
+ fields.latestCpuPercent = data.cpuPercent;
40
+ }
41
+ if (data.memoryBytes !== undefined) {
42
+ fields.latestMemoryBytes = data.memoryBytes;
43
+ }
44
+
45
+ if (existing && existing._id) {
46
+ await this.updateOneById({
47
+ id: new ObjectID(existing._id.toString()),
48
+ data: fields,
49
+ props: { isRoot: true },
50
+ });
51
+ return;
52
+ }
53
+
54
+ const item: Model = new Model();
55
+ item.projectId = data.projectId;
56
+ item.cloudResourceId = data.cloudResourceId;
57
+ item.instanceName = data.instanceName;
58
+ item.lastSeenAt = OneUptimeDate.getCurrentDate();
59
+ if (data.cpuPercent !== undefined) {
60
+ item.latestCpuPercent = data.cpuPercent;
61
+ }
62
+ if (data.memoryBytes !== undefined) {
63
+ item.latestMemoryBytes = data.memoryBytes;
64
+ }
65
+ await this.create({ data: item, props: { isRoot: true } });
66
+ } catch (err) {
67
+ logger.warn(
68
+ `CloudResourceInstanceService.recordInstance failed: ${
69
+ err instanceof Error ? err.message : String(err)
70
+ }`,
71
+ );
72
+ }
73
+ }
74
+ }
75
+
76
+ export default new Service();
@@ -0,0 +1,175 @@
1
+ import Label from "../../Models/DatabaseModels/Label";
2
+ import CloudResource from "../../Models/DatabaseModels/CloudResource";
3
+ import CloudResourceLabelRule from "../../Models/DatabaseModels/CloudResourceLabelRule";
4
+ import CloudResourceLabelRuleService from "./CloudResourceLabelRuleService";
5
+ import CloudResourceService from "./CloudResourceService";
6
+ import ObjectID from "../../Types/ObjectID";
7
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
8
+ import logger, { LogAttributes } from "../Utils/Logger";
9
+
10
+ class CloudResourceLabelRuleEngineServiceClass {
11
+ /**
12
+ * Evaluates CloudResourceLabelRule rows for the given resource and attaches
13
+ * matched labels. The union is deduped against labels already on the
14
+ * resource before insert to avoid PK conflicts on the join table.
15
+ */
16
+ @CaptureSpan()
17
+ public async applyRulesToCloudResource(
18
+ cloudResource: CloudResource,
19
+ ): Promise<void> {
20
+ if (!cloudResource.id || !cloudResource.projectId) {
21
+ return;
22
+ }
23
+
24
+ try {
25
+ const rules: Array<CloudResourceLabelRule> =
26
+ await CloudResourceLabelRuleService.findBy({
27
+ query: {
28
+ projectId: cloudResource.projectId,
29
+ isEnabled: true,
30
+ },
31
+ props: { isRoot: true },
32
+ select: {
33
+ _id: true,
34
+ name: true,
35
+ matchLabels: { _id: true },
36
+ nameRegexPattern: true,
37
+ descriptionRegexPattern: true,
38
+ labelsToAdd: { _id: true },
39
+ },
40
+ limit: 100,
41
+ skip: 0,
42
+ });
43
+
44
+ if (rules.length === 0) {
45
+ return;
46
+ }
47
+
48
+ const resourceWithDetails: CloudResource | null =
49
+ await CloudResourceService.findOneById({
50
+ id: cloudResource.id,
51
+ select: {
52
+ name: true,
53
+ description: true,
54
+ labels: { _id: true },
55
+ },
56
+ props: { isRoot: true },
57
+ });
58
+
59
+ if (!resourceWithDetails) {
60
+ return;
61
+ }
62
+
63
+ const labelIdsToAdd: Set<string> = new Set();
64
+
65
+ for (const rule of rules) {
66
+ if (!this.doesMatchRule(resourceWithDetails, rule)) {
67
+ continue;
68
+ }
69
+ for (const label of rule.labelsToAdd || []) {
70
+ if (label.id) {
71
+ labelIdsToAdd.add(label.id.toString());
72
+ }
73
+ }
74
+ }
75
+
76
+ if (labelIdsToAdd.size === 0) {
77
+ return;
78
+ }
79
+
80
+ const existingLabelIds: Set<string> = new Set(
81
+ (resourceWithDetails.labels || [])
82
+ .map((l: Label) => {
83
+ return l.id?.toString() || "";
84
+ })
85
+ .filter((id: string) => {
86
+ return id !== "";
87
+ }),
88
+ );
89
+
90
+ const newLabelIds: Array<string> = Array.from(labelIdsToAdd).filter(
91
+ (id: string) => {
92
+ return !existingLabelIds.has(id);
93
+ },
94
+ );
95
+ if (newLabelIds.length === 0) {
96
+ return;
97
+ }
98
+
99
+ await CloudResourceService.getRepository()
100
+ .createQueryBuilder()
101
+ .relation(CloudResource, "labels")
102
+ .of(cloudResource.id.toString())
103
+ .add(newLabelIds);
104
+
105
+ const mergedLabelIds: Set<string> = new Set([
106
+ ...existingLabelIds,
107
+ ...newLabelIds,
108
+ ]);
109
+ cloudResource.labels = Array.from(mergedLabelIds).map((id: string) => {
110
+ const label: Label = new Label();
111
+ label.id = new ObjectID(id);
112
+ return label;
113
+ });
114
+ } catch (error) {
115
+ logger.error(`Error applying cloud resource label rules: ${error}`, {
116
+ projectId: cloudResource.projectId?.toString(),
117
+ cloudResourceId: cloudResource.id?.toString(),
118
+ } as LogAttributes);
119
+ }
120
+ }
121
+
122
+ private doesMatchRule(
123
+ cloudResource: CloudResource,
124
+ rule: CloudResourceLabelRule,
125
+ ): boolean {
126
+ if (rule.matchLabels && rule.matchLabels.length > 0) {
127
+ if (!cloudResource.labels || cloudResource.labels.length === 0) {
128
+ return false;
129
+ }
130
+ const ruleLabelIds: Array<string> = rule.matchLabels.map((l: Label) => {
131
+ return l.id?.toString() || "";
132
+ });
133
+ const labelIds: Array<string> = cloudResource.labels.map((l: Label) => {
134
+ return l.id?.toString() || "";
135
+ });
136
+ if (
137
+ !ruleLabelIds.some((id: string) => {
138
+ return labelIds.includes(id);
139
+ })
140
+ ) {
141
+ return false;
142
+ }
143
+ }
144
+
145
+ if (
146
+ rule.nameRegexPattern &&
147
+ (!cloudResource.name ||
148
+ !this.testRegex(rule.nameRegexPattern, cloudResource.name))
149
+ ) {
150
+ return false;
151
+ }
152
+
153
+ if (
154
+ rule.descriptionRegexPattern &&
155
+ (!cloudResource.description ||
156
+ !this.testRegex(rule.descriptionRegexPattern, cloudResource.description))
157
+ ) {
158
+ return false;
159
+ }
160
+
161
+ return true;
162
+ }
163
+
164
+ private testRegex(pattern: string, value: string): boolean {
165
+ try {
166
+ const regex: RegExp = new RegExp(pattern, "i");
167
+ return regex.test(value);
168
+ } catch {
169
+ logger.warn(`Invalid regex in cloud resource label rule: ${pattern}`);
170
+ return false;
171
+ }
172
+ }
173
+ }
174
+
175
+ export default new CloudResourceLabelRuleEngineServiceClass();
@@ -0,0 +1,14 @@
1
+ import DatabaseService from "./DatabaseService";
2
+ import Model from "../../Models/DatabaseModels/CloudResourceLabelRule";
3
+ import { IsBillingEnabled } from "../EnvironmentConfig";
4
+
5
+ export class Service extends DatabaseService<Model> {
6
+ public constructor() {
7
+ super(Model);
8
+ if (IsBillingEnabled) {
9
+ this.hardDeleteItemsOlderThanInDays("createdAt", 3 * 365);
10
+ }
11
+ }
12
+ }
13
+
14
+ export default new Service();
@@ -0,0 +1,192 @@
1
+ import Label from "../../Models/DatabaseModels/Label";
2
+ import CloudResource from "../../Models/DatabaseModels/CloudResource";
3
+ import CloudResourceOwnerRule from "../../Models/DatabaseModels/CloudResourceOwnerRule";
4
+ import CloudResourceOwnerUser from "../../Models/DatabaseModels/CloudResourceOwnerUser";
5
+ import CloudResourceOwnerTeam from "../../Models/DatabaseModels/CloudResourceOwnerTeam";
6
+ import CloudResourceOwnerRuleService from "./CloudResourceOwnerRuleService";
7
+ import CloudResourceOwnerUserService from "./CloudResourceOwnerUserService";
8
+ import CloudResourceOwnerTeamService from "./CloudResourceOwnerTeamService";
9
+ import CloudResourceService from "./CloudResourceService";
10
+ import ObjectID from "../../Types/ObjectID";
11
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
12
+ import logger, { LogAttributes } from "../Utils/Logger";
13
+
14
+ class CloudResourceOwnerRuleEngineServiceClass {
15
+ /**
16
+ * Evaluates CloudResourceOwnerRule rows for the given resource and adds
17
+ * matched owner users / teams. Rules with notifyOwners set notify the added
18
+ * owners; rules with notifyOwners off add silently.
19
+ */
20
+ @CaptureSpan()
21
+ public async applyRulesToCloudResource(
22
+ cloudResource: CloudResource,
23
+ ): Promise<void> {
24
+ if (!cloudResource.id || !cloudResource.projectId) {
25
+ return;
26
+ }
27
+
28
+ try {
29
+ const rules: Array<CloudResourceOwnerRule> =
30
+ await CloudResourceOwnerRuleService.findBy({
31
+ query: {
32
+ projectId: cloudResource.projectId,
33
+ isEnabled: true,
34
+ },
35
+ props: { isRoot: true },
36
+ select: {
37
+ _id: true,
38
+ name: true,
39
+ notifyOwners: true,
40
+ matchLabels: { _id: true },
41
+ nameRegexPattern: true,
42
+ descriptionRegexPattern: true,
43
+ ownerUsers: { _id: true },
44
+ ownerTeams: { _id: true },
45
+ },
46
+ limit: 100,
47
+ skip: 0,
48
+ });
49
+
50
+ if (rules.length === 0) {
51
+ return;
52
+ }
53
+
54
+ const resourceWithDetails: CloudResource | null =
55
+ await CloudResourceService.findOneById({
56
+ id: cloudResource.id,
57
+ select: {
58
+ name: true,
59
+ description: true,
60
+ labels: { _id: true },
61
+ },
62
+ props: { isRoot: true },
63
+ });
64
+
65
+ if (!resourceWithDetails) {
66
+ return;
67
+ }
68
+
69
+ const usersByNotify: Map<boolean, Set<string>> = new Map([
70
+ [true, new Set()],
71
+ [false, new Set()],
72
+ ]);
73
+ const teamsByNotify: Map<boolean, Set<string>> = new Map([
74
+ [true, new Set()],
75
+ [false, new Set()],
76
+ ]);
77
+
78
+ let anyMatched: boolean = false;
79
+
80
+ for (const rule of rules) {
81
+ if (!this.doesMatchRule(resourceWithDetails, rule)) {
82
+ continue;
83
+ }
84
+ const notify: boolean = rule.notifyOwners !== false;
85
+ for (const user of rule.ownerUsers || []) {
86
+ if (user.id) {
87
+ usersByNotify.get(notify)!.add(user.id.toString());
88
+ anyMatched = true;
89
+ }
90
+ }
91
+ for (const team of rule.ownerTeams || []) {
92
+ if (team.id) {
93
+ teamsByNotify.get(notify)!.add(team.id.toString());
94
+ anyMatched = true;
95
+ }
96
+ }
97
+ }
98
+
99
+ if (!anyMatched) {
100
+ return;
101
+ }
102
+
103
+ for (const notify of [true, false]) {
104
+ const userIds: Set<string> = usersByNotify.get(notify)!;
105
+ const teamIds: Set<string> = teamsByNotify.get(notify)!;
106
+
107
+ for (const userId of userIds) {
108
+ const owner: CloudResourceOwnerUser = new CloudResourceOwnerUser();
109
+ owner.cloudResourceId = cloudResource.id;
110
+ owner.projectId = cloudResource.projectId;
111
+ owner.userId = new ObjectID(userId);
112
+ owner.isOwnerNotified = !notify;
113
+ await CloudResourceOwnerUserService.create({
114
+ data: owner,
115
+ props: { isRoot: true },
116
+ });
117
+ }
118
+
119
+ for (const teamId of teamIds) {
120
+ const owner: CloudResourceOwnerTeam = new CloudResourceOwnerTeam();
121
+ owner.cloudResourceId = cloudResource.id;
122
+ owner.projectId = cloudResource.projectId;
123
+ owner.teamId = new ObjectID(teamId);
124
+ owner.isOwnerNotified = !notify;
125
+ await CloudResourceOwnerTeamService.create({
126
+ data: owner,
127
+ props: { isRoot: true },
128
+ });
129
+ }
130
+ }
131
+ } catch (error) {
132
+ logger.error(`Error applying cloud resource owner rules: ${error}`, {
133
+ projectId: cloudResource.projectId?.toString(),
134
+ cloudResourceId: cloudResource.id?.toString(),
135
+ } as LogAttributes);
136
+ }
137
+ }
138
+
139
+ private doesMatchRule(
140
+ cloudResource: CloudResource,
141
+ rule: CloudResourceOwnerRule,
142
+ ): boolean {
143
+ if (rule.matchLabels && rule.matchLabels.length > 0) {
144
+ if (!cloudResource.labels || cloudResource.labels.length === 0) {
145
+ return false;
146
+ }
147
+ const ruleLabelIds: Array<string> = rule.matchLabels.map((l: Label) => {
148
+ return l.id?.toString() || "";
149
+ });
150
+ const labelIds: Array<string> = cloudResource.labels.map((l: Label) => {
151
+ return l.id?.toString() || "";
152
+ });
153
+ if (
154
+ !ruleLabelIds.some((id: string) => {
155
+ return labelIds.includes(id);
156
+ })
157
+ ) {
158
+ return false;
159
+ }
160
+ }
161
+
162
+ if (
163
+ rule.nameRegexPattern &&
164
+ (!cloudResource.name ||
165
+ !this.testRegex(rule.nameRegexPattern, cloudResource.name))
166
+ ) {
167
+ return false;
168
+ }
169
+
170
+ if (
171
+ rule.descriptionRegexPattern &&
172
+ (!cloudResource.description ||
173
+ !this.testRegex(rule.descriptionRegexPattern, cloudResource.description))
174
+ ) {
175
+ return false;
176
+ }
177
+
178
+ return true;
179
+ }
180
+
181
+ private testRegex(pattern: string, value: string): boolean {
182
+ try {
183
+ const regex: RegExp = new RegExp(pattern, "i");
184
+ return regex.test(value);
185
+ } catch {
186
+ logger.warn(`Invalid regex in cloud resource owner rule: ${pattern}`);
187
+ return false;
188
+ }
189
+ }
190
+ }
191
+
192
+ export default new CloudResourceOwnerRuleEngineServiceClass();
@@ -0,0 +1,14 @@
1
+ import DatabaseService from "./DatabaseService";
2
+ import Model from "../../Models/DatabaseModels/CloudResourceOwnerRule";
3
+ import { IsBillingEnabled } from "../EnvironmentConfig";
4
+
5
+ export class Service extends DatabaseService<Model> {
6
+ public constructor() {
7
+ super(Model);
8
+ if (IsBillingEnabled) {
9
+ this.hardDeleteItemsOlderThanInDays("createdAt", 3 * 365);
10
+ }
11
+ }
12
+ }
13
+
14
+ export default new Service();
@@ -0,0 +1,10 @@
1
+ import DatabaseService from "./DatabaseService";
2
+ import Model from "../../Models/DatabaseModels/CloudResourceOwnerTeam";
3
+
4
+ export class Service extends DatabaseService<Model> {
5
+ public constructor() {
6
+ super(Model);
7
+ }
8
+ }
9
+
10
+ export default new Service();
@@ -0,0 +1,10 @@
1
+ import DatabaseService from "./DatabaseService";
2
+ import Model from "../../Models/DatabaseModels/CloudResourceOwnerUser";
3
+
4
+ export class Service extends DatabaseService<Model> {
5
+ public constructor() {
6
+ super(Model);
7
+ }
8
+ }
9
+
10
+ export default new Service();