@oneuptime/common 10.0.38 → 10.0.40

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 (294) hide show
  1. package/Models/AnalyticsModels/Index.ts +4 -0
  2. package/Models/AnalyticsModels/Profile.ts +687 -0
  3. package/Models/AnalyticsModels/ProfileSample.ts +547 -0
  4. package/Models/DatabaseModels/Dashboard.ts +357 -0
  5. package/Models/DatabaseModels/DashboardDomain.ts +658 -0
  6. package/Models/DatabaseModels/Index.ts +2 -0
  7. package/Models/DatabaseModels/StatusPage.ts +41 -0
  8. package/Server/API/DashboardAPI.ts +408 -0
  9. package/Server/API/DashboardDomainAPI.ts +235 -0
  10. package/Server/API/StatusPageAPI.ts +36 -2
  11. package/Server/API/TelemetryAPI.ts +393 -0
  12. package/Server/EnvironmentConfig.ts +12 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1774524742177-MigrationName.ts +97 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1774524742178-MigrationName.ts +17 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1774524742179-MigrationName.ts +50 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1774559064919-MigrationName.ts +59 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  18. package/Server/Middleware/UserAuthorization.ts +96 -1
  19. package/Server/Services/DashboardDomainService.ts +647 -0
  20. package/Server/Services/DashboardService.ts +174 -3
  21. package/Server/Services/IncidentService.ts +295 -50
  22. package/Server/Services/IncidentStateTimelineService.ts +1 -0
  23. package/Server/Services/Index.ts +6 -0
  24. package/Server/Services/MonitorService.ts +5 -0
  25. package/Server/Services/ProfileAggregationService.ts +559 -0
  26. package/Server/Services/ProfileSampleService.ts +11 -0
  27. package/Server/Services/ProfileService.ts +11 -0
  28. package/Server/Services/TelemetryUsageBillingService.ts +77 -3
  29. package/Server/Services/WorkspaceNotificationSummaryService.ts +15 -1
  30. package/Server/Types/Billing/MeteredPlan/AllMeteredPlans.ts +9 -0
  31. package/Server/Types/Workflow/Components/Conditions/IfElse.ts +68 -21
  32. package/Server/Utils/Cookie.ts +48 -0
  33. package/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.ts +34 -0
  34. package/Server/Utils/Monitor/DataToProcess.ts +3 -1
  35. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +299 -0
  36. package/Server/Utils/Profile/PprofEncoder.ts +225 -0
  37. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +53 -16
  38. package/Server/Utils/Workspace/Slack/Slack.ts +26 -6
  39. package/ServiceRoute.ts +2 -0
  40. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +2 -0
  41. package/Types/CookieName.ts +1 -0
  42. package/Types/Dashboard/Chart/ChartType.ts +5 -0
  43. package/Types/Dashboard/DashboardComponentType.ts +4 -0
  44. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +10 -0
  45. package/Types/Dashboard/DashboardComponents/DashboardChartComponent.ts +1 -2
  46. package/Types/Dashboard/DashboardComponents/DashboardGaugeComponent.ts +17 -0
  47. package/Types/Dashboard/DashboardComponents/DashboardLogStreamComponent.ts +15 -0
  48. package/Types/Dashboard/DashboardComponents/DashboardTableComponent.ts +14 -0
  49. package/Types/Dashboard/DashboardComponents/DashboardTextComponent.ts +1 -0
  50. package/Types/Dashboard/DashboardComponents/DashboardTraceListComponent.ts +13 -0
  51. package/Types/Dashboard/DashboardComponents/DashboardValueComponent.ts +2 -0
  52. package/Types/Dashboard/DashboardTemplates.ts +964 -0
  53. package/Types/Dashboard/DashboardVariable.ts +23 -0
  54. package/Types/Dashboard/DashboardViewConfig.ts +59 -0
  55. package/Types/Dashboard/MasterPassword.ts +10 -0
  56. package/Types/Icon/IconProp.ts +1 -0
  57. package/Types/Incident/IncidentMetricType.ts +3 -0
  58. package/Types/MeteredPlan/ProductType.ts +1 -0
  59. package/Types/Metrics/MetricQueryConfigData.ts +3 -0
  60. package/Types/Monitor/CriteriaFilter.ts +3 -0
  61. package/Types/Monitor/KubernetesAlertTemplates.ts +78 -7
  62. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +20 -0
  63. package/Types/Monitor/MonitorStep.ts +25 -0
  64. package/Types/Monitor/MonitorStepProfileMonitor.ts +96 -0
  65. package/Types/Monitor/MonitorType.ts +11 -0
  66. package/Types/Monitor/ProfileMonitor/ProfileMonitorResponse.ts +12 -0
  67. package/Types/Permission.ts +87 -0
  68. package/Types/Telemetry/TelemetryType.ts +1 -0
  69. package/Types/Workflow/Component.ts +1 -0
  70. package/Types/Workflow/Components/Condition.ts +24 -0
  71. package/Types/Workspace/NotificationSummary/WorkspaceNotificationSummaryItem.ts +1 -0
  72. package/UI/Components/Button/Button.tsx +1 -1
  73. package/UI/Components/Card/Card.tsx +8 -4
  74. package/UI/Components/Charts/Area/AreaChart.tsx +4 -0
  75. package/UI/Components/Charts/Bar/BarChart.tsx +4 -0
  76. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +26 -0
  77. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +26 -0
  78. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +26 -0
  79. package/UI/Components/Charts/Line/LineChart.tsx +4 -0
  80. package/UI/Components/Charts/Types/ReferenceLineProps.ts +6 -0
  81. package/UI/Components/Icon/Icon.tsx +33 -0
  82. package/UI/Components/ModelTable/BaseModelTable.tsx +13 -10
  83. package/UI/Components/MoreMenu/MoreMenu.tsx +15 -2
  84. package/UI/Components/MoreMenu/MoreMenuItem.tsx +4 -4
  85. package/UI/Components/Workflow/Component.tsx +450 -209
  86. package/UI/Components/Workflow/ComponentPortViewer.tsx +57 -20
  87. package/UI/Components/Workflow/ComponentReturnValueViewer.tsx +65 -25
  88. package/UI/Components/Workflow/ComponentSettingsModal.tsx +202 -37
  89. package/UI/Components/Workflow/ComponentsModal.tsx +180 -93
  90. package/UI/Components/Workflow/Utils.ts +32 -1
  91. package/UI/Components/Workflow/Workflow.tsx +105 -9
  92. package/UI/Config.ts +9 -0
  93. package/Utils/Dashboard/Components/DashboardChartComponent.ts +53 -22
  94. package/Utils/Dashboard/Components/DashboardGaugeComponent.ts +124 -0
  95. package/Utils/Dashboard/Components/DashboardLogStreamComponent.ts +110 -0
  96. package/Utils/Dashboard/Components/DashboardTableComponent.ts +86 -0
  97. package/Utils/Dashboard/Components/DashboardTextComponent.ts +32 -7
  98. package/Utils/Dashboard/Components/DashboardTraceListComponent.ts +86 -0
  99. package/Utils/Dashboard/Components/DashboardValueComponent.ts +39 -3
  100. package/Utils/Dashboard/Components/Index.ts +28 -0
  101. package/Utils/ValueFormatter.ts +170 -0
  102. package/build/dist/Models/AnalyticsModels/Index.js +4 -0
  103. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  104. package/build/dist/Models/AnalyticsModels/Profile.js +621 -0
  105. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -0
  106. package/build/dist/Models/AnalyticsModels/ProfileSample.js +497 -0
  107. package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -0
  108. package/build/dist/Models/DatabaseModels/Dashboard.js +365 -0
  109. package/build/dist/Models/DatabaseModels/Dashboard.js.map +1 -1
  110. package/build/dist/Models/DatabaseModels/DashboardDomain.js +691 -0
  111. package/build/dist/Models/DatabaseModels/DashboardDomain.js.map +1 -0
  112. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  113. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  114. package/build/dist/Models/DatabaseModels/StatusPage.js +42 -0
  115. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  116. package/build/dist/Server/API/DashboardAPI.js +293 -0
  117. package/build/dist/Server/API/DashboardAPI.js.map +1 -0
  118. package/build/dist/Server/API/DashboardDomainAPI.js +124 -0
  119. package/build/dist/Server/API/DashboardDomainAPI.js.map +1 -0
  120. package/build/dist/Server/API/StatusPageAPI.js +26 -2
  121. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  122. package/build/dist/Server/API/TelemetryAPI.js +222 -0
  123. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  124. package/build/dist/Server/EnvironmentConfig.js +4 -0
  125. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  126. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742177-MigrationName.js +40 -0
  127. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742177-MigrationName.js.map +1 -0
  128. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742178-MigrationName.js +12 -0
  129. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742178-MigrationName.js.map +1 -0
  130. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742179-MigrationName.js +23 -0
  131. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774524742179-MigrationName.js.map +1 -0
  132. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774559064919-MigrationName.js +26 -0
  133. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774559064919-MigrationName.js.map +1 -0
  134. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  135. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  136. package/build/dist/Server/Middleware/UserAuthorization.js +41 -0
  137. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  138. package/build/dist/Server/Services/DashboardDomainService.js +595 -0
  139. package/build/dist/Server/Services/DashboardDomainService.js.map +1 -0
  140. package/build/dist/Server/Services/DashboardService.js +117 -3
  141. package/build/dist/Server/Services/DashboardService.js.map +1 -1
  142. package/build/dist/Server/Services/IncidentService.js +231 -55
  143. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  144. package/build/dist/Server/Services/IncidentStateTimelineService.js +1 -1
  145. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  146. package/build/dist/Server/Services/Index.js +6 -0
  147. package/build/dist/Server/Services/Index.js.map +1 -1
  148. package/build/dist/Server/Services/MonitorService.js +5 -2
  149. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  150. package/build/dist/Server/Services/ProfileAggregationService.js +356 -0
  151. package/build/dist/Server/Services/ProfileAggregationService.js.map +1 -0
  152. package/build/dist/Server/Services/ProfileSampleService.js +9 -0
  153. package/build/dist/Server/Services/ProfileSampleService.js.map +1 -0
  154. package/build/dist/Server/Services/ProfileService.js +9 -0
  155. package/build/dist/Server/Services/ProfileService.js.map +1 -0
  156. package/build/dist/Server/Services/TelemetryUsageBillingService.js +61 -4
  157. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  158. package/build/dist/Server/Services/WorkspaceNotificationSummaryService.js +13 -1
  159. package/build/dist/Server/Services/WorkspaceNotificationSummaryService.js.map +1 -1
  160. package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js +8 -0
  161. package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js.map +1 -1
  162. package/build/dist/Server/Types/Workflow/Components/Conditions/IfElse.js +49 -19
  163. package/build/dist/Server/Types/Workflow/Components/Conditions/IfElse.js.map +1 -1
  164. package/build/dist/Server/Utils/Cookie.js +36 -0
  165. package/build/dist/Server/Utils/Cookie.js.map +1 -1
  166. package/build/dist/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.js +34 -0
  167. package/build/dist/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.js.map +1 -0
  168. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +173 -0
  169. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  170. package/build/dist/Server/Utils/Profile/PprofEncoder.js +129 -0
  171. package/build/dist/Server/Utils/Profile/PprofEncoder.js.map +1 -0
  172. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +36 -14
  173. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  174. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +23 -6
  175. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  176. package/build/dist/ServiceRoute.js +1 -0
  177. package/build/dist/ServiceRoute.js.map +1 -1
  178. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +2 -0
  179. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  180. package/build/dist/Types/CookieName.js +1 -0
  181. package/build/dist/Types/CookieName.js.map +1 -1
  182. package/build/dist/Types/Dashboard/Chart/ChartType.js +5 -0
  183. package/build/dist/Types/Dashboard/Chart/ChartType.js.map +1 -1
  184. package/build/dist/Types/Dashboard/DashboardComponentType.js +4 -0
  185. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  186. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  187. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  188. package/build/dist/Types/Dashboard/DashboardComponents/DashboardGaugeComponent.js +2 -0
  189. package/build/dist/Types/Dashboard/DashboardComponents/DashboardGaugeComponent.js.map +1 -0
  190. package/build/dist/Types/Dashboard/DashboardComponents/DashboardLogStreamComponent.js +2 -0
  191. package/build/dist/Types/Dashboard/DashboardComponents/DashboardLogStreamComponent.js.map +1 -0
  192. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTableComponent.js +2 -0
  193. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTableComponent.js.map +1 -0
  194. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceListComponent.js +2 -0
  195. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceListComponent.js.map +1 -0
  196. package/build/dist/Types/Dashboard/DashboardTemplates.js +853 -0
  197. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -0
  198. package/build/dist/Types/Dashboard/DashboardVariable.js +7 -0
  199. package/build/dist/Types/Dashboard/DashboardVariable.js.map +1 -0
  200. package/build/dist/Types/Dashboard/DashboardViewConfig.js +50 -1
  201. package/build/dist/Types/Dashboard/DashboardViewConfig.js.map +1 -1
  202. package/build/dist/Types/Dashboard/MasterPassword.js +5 -0
  203. package/build/dist/Types/Dashboard/MasterPassword.js.map +1 -0
  204. package/build/dist/Types/Icon/IconProp.js +1 -0
  205. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  206. package/build/dist/Types/Incident/IncidentMetricType.js +3 -0
  207. package/build/dist/Types/Incident/IncidentMetricType.js.map +1 -1
  208. package/build/dist/Types/MeteredPlan/ProductType.js +1 -0
  209. package/build/dist/Types/MeteredPlan/ProductType.js.map +1 -1
  210. package/build/dist/Types/Metrics/MetricQueryConfigData.js +1 -0
  211. package/build/dist/Types/Metrics/MetricQueryConfigData.js.map +1 -1
  212. package/build/dist/Types/Monitor/CriteriaFilter.js +2 -0
  213. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  214. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +58 -7
  215. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  216. package/build/dist/Types/Monitor/MonitorStep.js +15 -0
  217. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  218. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js +59 -0
  219. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js.map +1 -0
  220. package/build/dist/Types/Monitor/MonitorType.js +10 -0
  221. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  222. package/build/dist/Types/Monitor/ProfileMonitor/ProfileMonitorResponse.js +2 -0
  223. package/build/dist/Types/Monitor/ProfileMonitor/ProfileMonitorResponse.js.map +1 -0
  224. package/build/dist/Types/Permission.js +75 -0
  225. package/build/dist/Types/Permission.js.map +1 -1
  226. package/build/dist/Types/Telemetry/TelemetryType.js +1 -0
  227. package/build/dist/Types/Telemetry/TelemetryType.js.map +1 -1
  228. package/build/dist/Types/Workflow/Component.js +1 -0
  229. package/build/dist/Types/Workflow/Component.js.map +1 -1
  230. package/build/dist/Types/Workflow/Components/Condition.js +24 -0
  231. package/build/dist/Types/Workflow/Components/Condition.js.map +1 -1
  232. package/build/dist/Types/Workspace/NotificationSummary/WorkspaceNotificationSummaryItem.js +1 -0
  233. package/build/dist/Types/Workspace/NotificationSummary/WorkspaceNotificationSummaryItem.js.map +1 -1
  234. package/build/dist/UI/Components/Button/Button.js +1 -1
  235. package/build/dist/UI/Components/Button/Button.js.map +1 -1
  236. package/build/dist/UI/Components/Card/Card.js +4 -4
  237. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  238. package/build/dist/UI/Components/Charts/Area/AreaChart.js +1 -1
  239. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  240. package/build/dist/UI/Components/Charts/Bar/BarChart.js +1 -1
  241. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  242. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +5 -2
  243. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  244. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +5 -2
  245. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  246. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +6 -3
  247. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  248. package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
  249. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  250. package/build/dist/UI/Components/Charts/Types/ReferenceLineProps.js +2 -0
  251. package/build/dist/UI/Components/Charts/Types/ReferenceLineProps.js.map +1 -0
  252. package/build/dist/UI/Components/Icon/Icon.js +11 -0
  253. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  254. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +12 -9
  255. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  256. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +8 -2
  257. package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
  258. package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +4 -4
  259. package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
  260. package/build/dist/UI/Components/Workflow/Component.js +311 -143
  261. package/build/dist/UI/Components/Workflow/Component.js.map +1 -1
  262. package/build/dist/UI/Components/Workflow/ComponentPortViewer.js +44 -18
  263. package/build/dist/UI/Components/Workflow/ComponentPortViewer.js.map +1 -1
  264. package/build/dist/UI/Components/Workflow/ComponentReturnValueViewer.js +48 -22
  265. package/build/dist/UI/Components/Workflow/ComponentReturnValueViewer.js.map +1 -1
  266. package/build/dist/UI/Components/Workflow/ComponentSettingsModal.js +127 -21
  267. package/build/dist/UI/Components/Workflow/ComponentSettingsModal.js.map +1 -1
  268. package/build/dist/UI/Components/Workflow/ComponentsModal.js +107 -52
  269. package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
  270. package/build/dist/UI/Components/Workflow/Utils.js +28 -1
  271. package/build/dist/UI/Components/Workflow/Utils.js.map +1 -1
  272. package/build/dist/UI/Components/Workflow/Workflow.js +87 -12
  273. package/build/dist/UI/Components/Workflow/Workflow.js.map +1 -1
  274. package/build/dist/UI/Config.js +3 -1
  275. package/build/dist/UI/Config.js.map +1 -1
  276. package/build/dist/Utils/Dashboard/Components/DashboardChartComponent.js +50 -21
  277. package/build/dist/Utils/Dashboard/Components/DashboardChartComponent.js.map +1 -1
  278. package/build/dist/Utils/Dashboard/Components/DashboardGaugeComponent.js +104 -0
  279. package/build/dist/Utils/Dashboard/Components/DashboardGaugeComponent.js.map +1 -0
  280. package/build/dist/Utils/Dashboard/Components/DashboardLogStreamComponent.js +91 -0
  281. package/build/dist/Utils/Dashboard/Components/DashboardLogStreamComponent.js.map +1 -0
  282. package/build/dist/Utils/Dashboard/Components/DashboardTableComponent.js +70 -0
  283. package/build/dist/Utils/Dashboard/Components/DashboardTableComponent.js.map +1 -0
  284. package/build/dist/Utils/Dashboard/Components/DashboardTextComponent.js +28 -7
  285. package/build/dist/Utils/Dashboard/Components/DashboardTextComponent.js.map +1 -1
  286. package/build/dist/Utils/Dashboard/Components/DashboardTraceListComponent.js +70 -0
  287. package/build/dist/Utils/Dashboard/Components/DashboardTraceListComponent.js.map +1 -0
  288. package/build/dist/Utils/Dashboard/Components/DashboardValueComponent.js +34 -3
  289. package/build/dist/Utils/Dashboard/Components/DashboardValueComponent.js.map +1 -1
  290. package/build/dist/Utils/Dashboard/Components/Index.js +16 -0
  291. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  292. package/build/dist/Utils/ValueFormatter.js +132 -0
  293. package/build/dist/Utils/ValueFormatter.js.map +1 -0
  294. package/package.json +1 -1
@@ -16,6 +16,8 @@ import SpanService from "./SpanService";
16
16
  import LogService from "./LogService";
17
17
  import MetricService from "./MetricService";
18
18
  import ExceptionInstanceService from "./ExceptionInstanceService";
19
+ import ProfileService from "./ProfileService";
20
+ import ProfileSampleService from "./ProfileSampleService";
19
21
  import AnalyticsQueryHelper from "../Types/AnalyticsDatabase/QueryHelper";
20
22
  import DiskSize from "../../Types/DiskSize";
21
23
  import logger from "../Utils/Logger";
@@ -26,6 +28,8 @@ import {
26
28
  AverageLogRowSizeInBytes,
27
29
  AverageMetricRowSizeInBytes,
28
30
  AverageExceptionRowSizeInBytes,
31
+ AverageProfileRowSizeInBytes,
32
+ AverageProfileSampleRowSizeInBytes,
29
33
  IsBillingEnabled,
30
34
  } from "../EnvironmentConfig";
31
35
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
@@ -81,7 +85,14 @@ export class Service extends DatabaseService<Model> {
81
85
  const averageExceptionRowSizeInBytes: number =
82
86
  this.getAverageExceptionRowSize();
83
87
 
84
- if (data.productType !== ProductType.Traces && averageRowSizeInBytes <= 0) {
88
+ const averageProfileSampleRowSizeInBytes: number =
89
+ this.getAverageProfileSampleRowSize();
90
+
91
+ if (
92
+ data.productType !== ProductType.Traces &&
93
+ data.productType !== ProductType.Profiles &&
94
+ averageRowSizeInBytes <= 0
95
+ ) {
85
96
  return;
86
97
  }
87
98
 
@@ -93,6 +104,14 @@ export class Service extends DatabaseService<Model> {
93
104
  return;
94
105
  }
95
106
 
107
+ if (
108
+ data.productType === ProductType.Profiles &&
109
+ averageRowSizeInBytes <= 0 &&
110
+ averageProfileSampleRowSizeInBytes <= 0
111
+ ) {
112
+ return;
113
+ }
114
+
96
115
  const usageDayString: string = OneUptimeDate.getDateString(usageDate);
97
116
  const startOfDay: Date = OneUptimeDate.getStartOfDay(usageDate);
98
117
  const endOfDay: Date = OneUptimeDate.getEndOfDay(usageDate);
@@ -223,6 +242,44 @@ export class Service extends DatabaseService<Model> {
223
242
  }
224
243
 
225
244
  estimatedBytes = totalRowCount * averageRowSizeInBytes;
245
+ } else if (data.productType === ProductType.Profiles) {
246
+ const profileCount: PositiveNumber = await ProfileService.countBy({
247
+ query: {
248
+ projectId: data.projectId,
249
+ serviceId: service.id,
250
+ startTime: AnalyticsQueryHelper.inBetween(startOfDay, endOfDay),
251
+ },
252
+ skip: 0,
253
+ limit: LIMIT_INFINITY,
254
+ props: {
255
+ isRoot: true,
256
+ },
257
+ });
258
+
259
+ const profileSampleCount: PositiveNumber =
260
+ await ProfileSampleService.countBy({
261
+ query: {
262
+ projectId: data.projectId,
263
+ serviceId: service.id,
264
+ time: AnalyticsQueryHelper.inBetween(startOfDay, endOfDay),
265
+ },
266
+ skip: 0,
267
+ limit: LIMIT_INFINITY,
268
+ props: {
269
+ isRoot: true,
270
+ },
271
+ });
272
+
273
+ const totalProfileCount: number = profileCount.toNumber();
274
+ const totalProfileSampleCount: number = profileSampleCount.toNumber();
275
+
276
+ if (totalProfileCount <= 0 && totalProfileSampleCount <= 0) {
277
+ continue;
278
+ }
279
+
280
+ estimatedBytes =
281
+ totalProfileCount * averageRowSizeInBytes +
282
+ totalProfileSampleCount * averageProfileSampleRowSizeInBytes;
226
283
  }
227
284
  } catch (error) {
228
285
  logger.error(
@@ -268,7 +325,8 @@ export class Service extends DatabaseService<Model> {
268
325
  if (
269
326
  data.productType !== ProductType.Traces &&
270
327
  data.productType !== ProductType.Metrics &&
271
- data.productType !== ProductType.Logs
328
+ data.productType !== ProductType.Logs &&
329
+ data.productType !== ProductType.Profiles
272
330
  ) {
273
331
  throw new BadDataException(
274
332
  "This product type is not a telemetry product type.",
@@ -370,7 +428,8 @@ export class Service extends DatabaseService<Model> {
370
428
  if (
371
429
  productType !== ProductType.Traces &&
372
430
  productType !== ProductType.Logs &&
373
- productType !== ProductType.Metrics
431
+ productType !== ProductType.Metrics &&
432
+ productType !== ProductType.Profiles
374
433
  ) {
375
434
  return fallbackSize;
376
435
  }
@@ -380,6 +439,7 @@ export class Service extends DatabaseService<Model> {
380
439
  [ProductType.Traces]: AverageSpanRowSizeInBytes,
381
440
  [ProductType.Logs]: AverageLogRowSizeInBytes,
382
441
  [ProductType.Metrics]: AverageMetricRowSizeInBytes,
442
+ [ProductType.Profiles]: AverageProfileRowSizeInBytes,
383
443
  }[productType] ?? fallbackSize;
384
444
 
385
445
  if (!Number.isFinite(value) || value <= 0) {
@@ -402,6 +462,20 @@ export class Service extends DatabaseService<Model> {
402
462
 
403
463
  return AverageExceptionRowSizeInBytes;
404
464
  }
465
+
466
+ private getAverageProfileSampleRowSize(): number {
467
+ const fallbackSize: number = 512;
468
+
469
+ if (!Number.isFinite(AverageProfileSampleRowSizeInBytes)) {
470
+ return fallbackSize;
471
+ }
472
+
473
+ if (AverageProfileSampleRowSizeInBytes <= 0) {
474
+ return fallbackSize;
475
+ }
476
+
477
+ return AverageProfileSampleRowSizeInBytes;
478
+ }
405
479
  }
406
480
 
407
481
  export default new Service();
@@ -241,6 +241,9 @@ export class Service extends DatabaseService<WorkspaceNotificationSummary> {
241
241
  items: Array<WorkspaceNotificationSummaryItem>,
242
242
  item: WorkspaceNotificationSummaryItem,
243
243
  ): boolean {
244
+ if (items.includes(WorkspaceNotificationSummaryItem.All)) {
245
+ return true;
246
+ }
244
247
  return items.includes(item);
245
248
  }
246
249
 
@@ -822,6 +825,11 @@ export class Service extends DatabaseService<WorkspaceNotificationSummary> {
822
825
  ackResolve.push(
823
826
  `Ack: ${Service.bold(td.ackBy)} in ${Service.formatDuration(OneUptimeDate.getMinutesBetweenTwoDates(td.declaredAt || inc.createdAt!, td.ackAt))}`,
824
827
  );
828
+ } else if (td?.resolvedBy && td?.resolvedAt) {
829
+ // If not explicitly acknowledged but resolved, ack time = resolve time
830
+ ackResolve.push(
831
+ `Ack: ${Service.bold(td.resolvedBy)} in ${Service.formatDuration(OneUptimeDate.getMinutesBetweenTwoDates(td.declaredAt || inc.createdAt!, td.resolvedAt))}`,
832
+ );
825
833
  } else {
826
834
  ackResolve.push(`_Not yet acknowledged_`);
827
835
  }
@@ -1251,6 +1259,11 @@ export class Service extends DatabaseService<WorkspaceNotificationSummary> {
1251
1259
  ackResolve.push(
1252
1260
  `Ack: ${Service.bold(td.ackBy)} in ${Service.formatDuration(OneUptimeDate.getMinutesBetweenTwoDates(td.declaredAt || a.createdAt!, td.ackAt))}`,
1253
1261
  );
1262
+ } else if (td?.resolvedBy && td?.resolvedAt) {
1263
+ // If not explicitly acknowledged but resolved, ack time = resolve time
1264
+ ackResolve.push(
1265
+ `Ack: ${Service.bold(td.resolvedBy)} in ${Service.formatDuration(OneUptimeDate.getMinutesBetweenTwoDates(td.declaredAt || a.createdAt!, td.resolvedAt))}`,
1266
+ );
1254
1267
  } else {
1255
1268
  ackResolve.push(`_Not yet acknowledged_`);
1256
1269
  }
@@ -1433,8 +1446,9 @@ export class Service extends DatabaseService<WorkspaceNotificationSummary> {
1433
1446
  let total: number = 0;
1434
1447
  let count: number = 0;
1435
1448
  for (const [, td] of tlMap) {
1449
+ // For ack: if not explicitly acknowledged but resolved, use resolve time as ack time
1436
1450
  const eventTime: Date | undefined =
1437
- kind === "ack" ? td.ackAt : td.resolvedAt;
1451
+ kind === "ack" ? td.ackAt || td.resolvedAt : td.resolvedAt;
1438
1452
  if (eventTime && td.declaredAt) {
1439
1453
  total += OneUptimeDate.getMinutesBetweenTwoDates(
1440
1454
  td.declaredAt,
@@ -26,11 +26,18 @@ export const TracesDataIngestMetredPlan: TelemetryMeteredPlanType =
26
26
  unitCostInUSD: 0.1 / 15, // 0.10 per 15 days per GB
27
27
  });
28
28
 
29
+ export const ProfilesDataIngestMeteredPlan: TelemetryMeteredPlanType =
30
+ new TelemetryMeteredPlanType({
31
+ productType: ProductType.Profiles,
32
+ unitCostInUSD: 0.1 / 15, // 0.10 per 15 days per GB
33
+ });
34
+
29
35
  const AllMeteredPlans: Array<ServerMeteredPlan> = [
30
36
  ActiveMonitoringMeteredPlan,
31
37
  LogDataIngestMeteredPlan,
32
38
  MetricsDataIngestMeteredPlan,
33
39
  TracesDataIngestMetredPlan,
40
+ ProfilesDataIngestMeteredPlan,
34
41
  ];
35
42
 
36
43
  export class MeteredPlanUtil {
@@ -44,6 +51,8 @@ export class MeteredPlanUtil {
44
51
  return MetricsDataIngestMeteredPlan;
45
52
  } else if (productType === ProductType.Traces) {
46
53
  return TracesDataIngestMetredPlan;
54
+ } else if (productType === ProductType.Profiles) {
55
+ return ProfilesDataIngestMeteredPlan;
47
56
  } else if (productType === ProductType.ActiveMonitoring) {
48
57
  return ActiveMonitoringMeteredPlan;
49
58
  }
@@ -9,6 +9,7 @@ import ComponentMetadata, {
9
9
  import ComponentID from "../../../../../Types/Workflow/ComponentID";
10
10
  import Components, {
11
11
  ConditionOperator,
12
+ ConditionValueType,
12
13
  } from "../../../../../Types/Workflow/Components/Condition";
13
14
  import CaptureSpan from "../../../../Utils/Telemetry/CaptureSpan";
14
15
 
@@ -61,29 +62,75 @@ export default class IfElse extends ComponentCode {
61
62
  * Inject dependencies
62
63
  */
63
64
 
64
- for (const key in args) {
65
- if (key === "operator") {
66
- continue;
67
- }
68
-
69
- const value: JSONValue = args[key];
65
+ // Get explicit types from dropdowns, default to text
66
+ let input1Type: ConditionValueType =
67
+ (args["input-1-type"] as ConditionValueType) || ConditionValueType.Text;
68
+ let input2Type: ConditionValueType =
69
+ (args["input-2-type"] as ConditionValueType) || ConditionValueType.Text;
70
70
 
71
- let shouldHaveQuotes: boolean = false;
71
+ /*
72
+ * When types differ, coerce both to the more specific type
73
+ * so comparisons like text "true" == boolean true work correctly.
74
+ * Priority: Null/Undefined keep as-is, Boolean > Number > Text.
75
+ */
76
+ if (input1Type !== input2Type) {
77
+ type IsNullishFunction = (t: ConditionValueType) => boolean;
78
+
79
+ const isNullish: IsNullishFunction = (
80
+ t: ConditionValueType,
81
+ ): boolean => {
82
+ return (
83
+ t === ConditionValueType.Null || t === ConditionValueType.Undefined
84
+ );
85
+ };
72
86
 
73
- if (
74
- typeof value === "string" &&
75
- value !== "null" &&
76
- value !== "undefined"
77
- ) {
78
- shouldHaveQuotes = true;
87
+ if (!isNullish(input1Type) && !isNullish(input2Type)) {
88
+ const typePriority: Record<string, number> = {
89
+ [ConditionValueType.Boolean]: 2,
90
+ [ConditionValueType.Number]: 1,
91
+ [ConditionValueType.Text]: 0,
92
+ };
93
+
94
+ const p1: number = typePriority[input1Type] ?? 0;
95
+ const p2: number = typePriority[input2Type] ?? 0;
96
+ const commonType: ConditionValueType =
97
+ p1 >= p2 ? input1Type : input2Type;
98
+ input1Type = commonType;
99
+ input2Type = commonType;
79
100
  }
101
+ }
80
102
 
81
- if (typeof value === "object") {
82
- args[key] = JSON.stringify(args[key]);
103
+ type FormatValueFunction = (
104
+ value: JSONValue,
105
+ valueType: ConditionValueType,
106
+ ) => string;
107
+
108
+ const formatValue: FormatValueFunction = (
109
+ value: JSONValue,
110
+ valueType: ConditionValueType,
111
+ ): string => {
112
+ const strValue: string =
113
+ typeof value === "object"
114
+ ? JSON.stringify(value)
115
+ : String(value ?? "");
116
+
117
+ switch (valueType) {
118
+ case ConditionValueType.Boolean:
119
+ return strValue === "true" ? "true" : "false";
120
+ case ConditionValueType.Number:
121
+ return isNaN(Number(strValue)) ? "0" : String(Number(strValue));
122
+ case ConditionValueType.Null:
123
+ return "null";
124
+ case ConditionValueType.Undefined:
125
+ return "undefined";
126
+ case ConditionValueType.Text:
127
+ default:
128
+ return `"${strValue}"`;
83
129
  }
130
+ };
84
131
 
85
- args[key] = shouldHaveQuotes ? `"${args[key]}"` : args[key];
86
- }
132
+ args["input-1"] = formatValue(args["input-1"], input1Type);
133
+ args["input-2"] = formatValue(args["input-2"], input2Type);
87
134
 
88
135
  type SerializeFunction = (arg: string) => string;
89
136
 
@@ -107,13 +154,13 @@ export default class IfElse extends ComponentCode {
107
154
  `;
108
155
 
109
156
  if (args["operator"] === ConditionOperator.Contains) {
110
- code += `return input1.includes(input2);`;
157
+ code += `return String(input1).includes(String(input2));`;
111
158
  } else if (args["operator"] === ConditionOperator.DoesNotContain) {
112
- code += `return !input1.includes(input2);`;
159
+ code += `return !String(input1).includes(String(input2));`;
113
160
  } else if (args["operator"] === ConditionOperator.StartsWith) {
114
- code += `return input1.startsWith(input2);`;
161
+ code += `return String(input1).startsWith(String(input2));`;
115
162
  } else if (args["operator"] === ConditionOperator.EndsWith) {
116
- code += `return input1.endsWith(input2);`;
163
+ code += `return String(input1).endsWith(String(input2));`;
117
164
  } else {
118
165
  code += `return input1 ${(args["operator"] as string) || "=="} input2;`;
119
166
  }
@@ -12,6 +12,10 @@ import {
12
12
  MASTER_PASSWORD_COOKIE_IDENTIFIER,
13
13
  MASTER_PASSWORD_COOKIE_MAX_AGE_IN_DAYS,
14
14
  } from "../../Types/StatusPage/MasterPassword";
15
+ import {
16
+ DASHBOARD_MASTER_PASSWORD_COOKIE_IDENTIFIER,
17
+ DASHBOARD_MASTER_PASSWORD_COOKIE_MAX_AGE_IN_DAYS,
18
+ } from "../../Types/Dashboard/MasterPassword";
15
19
  import CaptureSpan from "./Telemetry/CaptureSpan";
16
20
 
17
21
  export default class CookieUtil {
@@ -323,6 +327,50 @@ export default class CookieUtil {
323
327
  );
324
328
  }
325
329
 
330
+ @CaptureSpan()
331
+ public static setDashboardMasterPasswordCookie(data: {
332
+ expressResponse: ExpressResponse;
333
+ dashboardId: ObjectID;
334
+ }): void {
335
+ const expiresInDays: PositiveNumber = new PositiveNumber(
336
+ DASHBOARD_MASTER_PASSWORD_COOKIE_MAX_AGE_IN_DAYS,
337
+ );
338
+
339
+ const token: string = JSONWebToken.signJsonPayload(
340
+ {
341
+ dashboardId: data.dashboardId.toString(),
342
+ type: DASHBOARD_MASTER_PASSWORD_COOKIE_IDENTIFIER,
343
+ },
344
+ OneUptimeDate.getSecondsInDays(expiresInDays),
345
+ );
346
+
347
+ CookieUtil.setCookie(
348
+ data.expressResponse,
349
+ CookieUtil.getDashboardMasterPasswordKey(data.dashboardId),
350
+ token,
351
+ {
352
+ maxAge: OneUptimeDate.getMillisecondsInDays(expiresInDays),
353
+ httpOnly: true,
354
+ },
355
+ );
356
+ }
357
+
358
+ @CaptureSpan()
359
+ public static removeDashboardMasterPasswordCookie(
360
+ res: ExpressResponse,
361
+ dashboardId: ObjectID,
362
+ ): void {
363
+ CookieUtil.removeCookie(
364
+ res,
365
+ CookieUtil.getDashboardMasterPasswordKey(dashboardId),
366
+ );
367
+ }
368
+
369
+ @CaptureSpan()
370
+ public static getDashboardMasterPasswordKey(id: ObjectID): string {
371
+ return `${CookieName.DashboardMasterPassword}-${id.toString()}`;
372
+ }
373
+
326
374
  // get all cookies with express request
327
375
  @CaptureSpan()
328
376
  public static getAllCookies(req: ExpressRequest): Dictionary<string> {
@@ -0,0 +1,34 @@
1
+ import ProfileMonitorResponse from "../../../../Types/Monitor/ProfileMonitor/ProfileMonitorResponse";
2
+ import CaptureSpan from "../../Telemetry/CaptureSpan";
3
+ import DataToProcess from "../DataToProcess";
4
+ import CompareCriteria from "./CompareCriteria";
5
+ import {
6
+ CheckOn,
7
+ CriteriaFilter,
8
+ } from "../../../../Types/Monitor/CriteriaFilter";
9
+
10
+ export default class ProfileMonitorCriteria {
11
+ @CaptureSpan()
12
+ public static async isMonitorInstanceCriteriaFilterMet(input: {
13
+ dataToProcess: DataToProcess;
14
+ criteriaFilter: CriteriaFilter;
15
+ }): Promise<string | null> {
16
+ let threshold: number | string | undefined | null =
17
+ input.criteriaFilter.value;
18
+
19
+ if (input.criteriaFilter.checkOn === CheckOn.ProfileCount) {
20
+ threshold = CompareCriteria.convertToNumber(threshold);
21
+
22
+ const currentProfileCount: number =
23
+ (input.dataToProcess as ProfileMonitorResponse).profileCount || 0;
24
+
25
+ return CompareCriteria.compareCriteriaNumbers({
26
+ value: currentProfileCount,
27
+ threshold: threshold as number,
28
+ criteriaFilter: input.criteriaFilter,
29
+ });
30
+ }
31
+
32
+ return null;
33
+ }
34
+ }
@@ -6,6 +6,7 @@ import LogMonitorResponse from "../../../Types/Monitor/LogMonitor/LogMonitorResp
6
6
  import TraceMonitorResponse from "../../../Types/Monitor/TraceMonitor/TraceMonitorResponse";
7
7
  import MetricMonitorResponse from "../../../Types/Monitor/MetricMonitor/MetricMonitorResponse";
8
8
  import ExceptionMonitorResponse from "../../../Types/Monitor/ExceptionMonitor/ExceptionMonitorResponse";
9
+ import ProfileMonitorResponse from "../../../Types/Monitor/ProfileMonitor/ProfileMonitorResponse";
9
10
 
10
11
  type DataToProcess =
11
12
  | ProbeMonitorResponse
@@ -15,6 +16,7 @@ type DataToProcess =
15
16
  | LogMonitorResponse
16
17
  | TraceMonitorResponse
17
18
  | MetricMonitorResponse
18
- | ExceptionMonitorResponse;
19
+ | ExceptionMonitorResponse
20
+ | ProfileMonitorResponse;
19
21
 
20
22
  export default DataToProcess;