@oneuptime/common 10.8.2 → 11.0.1

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 (740) hide show
  1. package/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.ts +16 -18
  2. package/Models/AnalyticsModels/AuditLog.ts +3 -1
  3. package/Models/AnalyticsModels/ExceptionInstance.ts +200 -82
  4. package/Models/AnalyticsModels/Index.ts +7 -2
  5. package/Models/AnalyticsModels/Log.ts +197 -81
  6. package/Models/AnalyticsModels/Metric.ts +199 -86
  7. package/Models/AnalyticsModels/MetricBaselineHourly.ts +44 -25
  8. package/Models/AnalyticsModels/MetricItemAggMV1m.ts +23 -20
  9. package/Models/AnalyticsModels/{MetricItemAggMV1mByHost.ts → MetricItemAggMV1mByHostV2.ts} +58 -47
  10. package/Models/AnalyticsModels/MonitorLog.ts +5 -1
  11. package/Models/AnalyticsModels/Profile.ts +206 -85
  12. package/Models/AnalyticsModels/ProfileSample.ts +196 -83
  13. package/Models/AnalyticsModels/Span.ts +218 -85
  14. package/Models/DatabaseModels/Index.ts +4 -0
  15. package/Models/DatabaseModels/Service.ts +29 -0
  16. package/Models/DatabaseModels/TelemetryEntity.ts +393 -0
  17. package/Models/DatabaseModels/TelemetryEntityRelationship.ts +294 -0
  18. package/Models/DatabaseModels/TelemetryException.ts +10 -10
  19. package/Models/DatabaseModels/TelemetryUsageBilling.ts +5 -5
  20. package/Server/API/AIAgentDataAPI.ts +13 -12
  21. package/Server/API/DashboardAPI.ts +2 -2
  22. package/Server/API/TelemetryAPI.ts +656 -141
  23. package/Server/API/TelemetryExceptionAPI.ts +2 -2
  24. package/Server/Infrastructure/ClickhouseConfig.ts +12 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.ts +48 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.ts +70 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.ts +57 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.ts +207 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.ts +24 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.ts +25 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  32. package/Server/Infrastructure/Queue.ts +36 -3
  33. package/Server/Middleware/TelemetryIngest.ts +27 -22
  34. package/Server/Services/AlertService.ts +9 -9
  35. package/Server/Services/AnalyticsDatabaseService.ts +204 -35
  36. package/Server/Services/ExceptionAggregationService.ts +41 -18
  37. package/Server/Services/HostService.ts +2 -1
  38. package/Server/Services/IncidentService.ts +19 -19
  39. package/Server/Services/Index.ts +6 -2
  40. package/Server/Services/LogAggregationService.ts +116 -43
  41. package/Server/Services/MetricAggregationService.ts +29 -14
  42. package/Server/Services/MetricBaselineService.ts +34 -34
  43. package/Server/Services/MetricItemAggMV1mByHostV2Service.ts +30 -0
  44. package/Server/Services/MetricService.ts +119 -31
  45. package/Server/Services/OpenTelemetryIngestService.ts +186 -50
  46. package/Server/Services/ProfileAggregationService.ts +904 -126
  47. package/Server/Services/ServiceService.ts +6 -0
  48. package/Server/Services/SpanService.ts +274 -14
  49. package/Server/Services/TelemetryEntityRelationshipService.ts +71 -0
  50. package/Server/Services/TelemetryEntityService.ts +246 -0
  51. package/Server/Services/TelemetryExceptionService.ts +27 -23
  52. package/Server/Services/TelemetryUsageBillingService.ts +38 -31
  53. package/Server/Services/TraceAggregationService.ts +875 -43
  54. package/Server/Types/AnalyticsDatabase/ModelPermission.ts +43 -2
  55. package/Server/Types/Database/Permissions/AccessControlPermission.ts +47 -2
  56. package/Server/Types/Database/Permissions/BasePermission.ts +37 -1
  57. package/Server/Types/Database/Permissions/OwnedScopePermission.ts +21 -3
  58. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +1 -0
  59. package/Server/Types/Database/QueryHelper.ts +41 -0
  60. package/Server/Utils/Alert/AlertPrivacyFilter.ts +9 -2
  61. package/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.ts +9 -2
  62. package/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.ts +95 -0
  63. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +133 -0
  64. package/Server/Utils/Incident/IncidentPrivacyFilter.ts +9 -2
  65. package/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.ts +9 -2
  66. package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +1 -1
  67. package/Server/Utils/Monitor/MonitorLogUtil.ts +1 -2
  68. package/Server/Utils/Monitor/MonitorMetricUtil.ts +3 -4
  69. package/Server/Utils/PrivacyFilterUtil.ts +72 -0
  70. package/Server/Utils/Profile/PprofEncoder.ts +135 -11
  71. package/Server/Utils/Telemetry/EntityRegistry.ts +316 -0
  72. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +5 -0
  73. package/Server/Utils/Telemetry/TelemetryEntity.ts +783 -0
  74. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +79 -4
  75. package/Tests/Server/Services/LogAggregationService.test.ts +7 -2
  76. package/Tests/Server/Services/ProfileAggregationService.test.ts +280 -0
  77. package/Tests/Server/Services/ProfileBreakdown.test.ts +161 -0
  78. package/Tests/Server/Services/ProfileFunctionFocus.test.ts +349 -0
  79. package/Tests/Server/Services/TelemetryAttributeService.test.ts +1 -1
  80. package/Tests/Server/Services/TraceAggregationService.test.ts +403 -0
  81. package/Tests/Server/Types/AnalyticsDatabase/ModelPermissionOwnedScope.test.ts +114 -0
  82. package/Tests/Server/Types/Database/Permissions/AccessControlPermission.test.ts +189 -0
  83. package/Tests/Server/Types/Database/Permissions/BasePermission.test.ts +118 -0
  84. package/Tests/Server/Types/Database/Permissions/OwnedScopePermission.test.ts +159 -0
  85. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +275 -8
  86. package/Tests/Server/Utils/PrivacyFilterUtil.test.ts +177 -0
  87. package/Tests/Server/Utils/Profile/PprofEncoder.test.ts +276 -0
  88. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +761 -0
  89. package/Tests/Types/Monitor/MonitorStepEntityScope.test.ts +275 -0
  90. package/Tests/Types/Text.test.ts +52 -0
  91. package/Tests/Utils/ModelImportExport.test.ts +366 -0
  92. package/Tests/Utils/Telemetry/EntityKey.test.ts +150 -0
  93. package/Tests/Utils/Telemetry/EntityKeySqlParity.test.ts +40 -0
  94. package/Tests/Utils/Telemetry/EntityRelationship.test.ts +150 -0
  95. package/Tests/Utils/UUID.test.ts +47 -0
  96. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +14 -9
  97. package/Types/AnalyticsDatabase/TableColumnType.ts +1 -0
  98. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  99. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +37 -0
  100. package/Types/Dashboard/DashboardTemplates.ts +4 -5
  101. package/Types/Log/LogQueryParser.ts +2 -2
  102. package/Types/Log/LogQueryToFilter.ts +2 -2
  103. package/Types/Monitor/MonitorStepExceptionMonitor.ts +19 -1
  104. package/Types/Monitor/MonitorStepLogMonitor.ts +20 -1
  105. package/Types/Monitor/MonitorStepMetricMonitor.ts +27 -0
  106. package/Types/Monitor/MonitorStepProfileMonitor.ts +19 -1
  107. package/Types/Monitor/MonitorStepTraceMonitor.ts +18 -1
  108. package/Types/Monitor/MonitorType.ts +8 -1
  109. package/Types/ObjectID.ts +10 -0
  110. package/Types/Telemetry/EntityRelationshipType.ts +31 -0
  111. package/Types/Telemetry/EntityType.ts +33 -0
  112. package/Types/Telemetry/TelemetrySavedViewState.ts +2 -0
  113. package/Types/Text.ts +34 -0
  114. package/Types/Trace/TraceAggregationType.ts +1 -0
  115. package/Types/Trace/TraceRecordingRuleDefinition.ts +74 -0
  116. package/UI/Components/ImportExport/ExportModelCard.tsx +90 -0
  117. package/UI/Components/ImportExport/ImportModelsModal.tsx +239 -0
  118. package/UI/Components/LogsViewer/LogsViewer.tsx +12 -9
  119. package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +10 -9
  120. package/UI/Components/LogsViewer/components/LogSearchBar.tsx +1 -1
  121. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +2 -2
  122. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +4 -4
  123. package/UI/Components/LogsViewer/components/LogsTable.tsx +5 -3
  124. package/UI/Components/ModelTable/ModelTable.tsx +294 -143
  125. package/UI/Components/Navbar/NavBarMenuModal.tsx +81 -44
  126. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +33 -10
  127. package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +18 -3
  128. package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +91 -68
  129. package/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.tsx +9 -2
  130. package/UI/Utils/LogExport.ts +2 -2
  131. package/UI/Utils/ModelImportExport.ts +207 -0
  132. package/UI/Utils/TelemetryService.ts +20 -20
  133. package/Utils/Dashboard/Components/DashboardTraceChartComponent.ts +134 -0
  134. package/Utils/Dashboard/Components/Index.ts +7 -0
  135. package/Utils/ModelImportExport.ts +369 -0
  136. package/Utils/Telemetry/EntityKey.ts +151 -0
  137. package/Utils/Telemetry/EntityRelationship.ts +113 -0
  138. package/Utils/Traces/CriticalPath.ts +7 -7
  139. package/Utils/UUID.ts +57 -0
  140. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js +14 -13
  141. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js.map +1 -1
  142. package/build/dist/Models/AnalyticsModels/AuditLog.js +2 -1
  143. package/build/dist/Models/AnalyticsModels/AuditLog.js.map +1 -1
  144. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +125 -22
  145. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  146. package/build/dist/Models/AnalyticsModels/Index.js +7 -2
  147. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  148. package/build/dist/Models/AnalyticsModels/Log.js +123 -22
  149. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  150. package/build/dist/Models/AnalyticsModels/Metric.js +125 -27
  151. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  152. package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js +38 -21
  153. package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js.map +1 -1
  154. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js +17 -16
  155. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js.map +1 -1
  156. package/build/dist/Models/AnalyticsModels/{MetricItemAggMV1mByHost.js → MetricItemAggMV1mByHostV2.js} +54 -42
  157. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHostV2.js.map +1 -0
  158. package/build/dist/Models/AnalyticsModels/MonitorLog.js +4 -1
  159. package/build/dist/Models/AnalyticsModels/MonitorLog.js.map +1 -1
  160. package/build/dist/Models/AnalyticsModels/Profile.js +132 -26
  161. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
  162. package/build/dist/Models/AnalyticsModels/ProfileSample.js +121 -23
  163. package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
  164. package/build/dist/Models/AnalyticsModels/Span.js +144 -26
  165. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  166. package/build/dist/Models/DatabaseModels/Index.js +4 -0
  167. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  168. package/build/dist/Models/DatabaseModels/Service.js +30 -0
  169. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  170. package/build/dist/Models/DatabaseModels/TelemetryEntity.js +419 -0
  171. package/build/dist/Models/DatabaseModels/TelemetryEntity.js.map +1 -0
  172. package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js +317 -0
  173. package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js.map +1 -0
  174. package/build/dist/Models/DatabaseModels/TelemetryException.js +12 -12
  175. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  176. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +7 -7
  177. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -1
  178. package/build/dist/Server/API/AIAgentDataAPI.js +14 -13
  179. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  180. package/build/dist/Server/API/DashboardAPI.js +2 -2
  181. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  182. package/build/dist/Server/API/TelemetryAPI.js +425 -129
  183. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  184. package/build/dist/Server/API/TelemetryExceptionAPI.js +2 -2
  185. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  186. package/build/dist/Server/Infrastructure/ClickhouseConfig.js +12 -0
  187. package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
  188. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.js +29 -0
  189. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.js.map +1 -0
  190. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.js +38 -0
  191. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.js.map +1 -0
  192. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.js +33 -0
  193. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.js.map +1 -0
  194. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.js +78 -0
  195. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.js.map +1 -0
  196. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.js +19 -0
  197. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.js.map +1 -0
  198. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.js +18 -0
  199. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.js.map +1 -0
  200. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  201. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  202. package/build/dist/Server/Infrastructure/Queue.js +14 -3
  203. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  204. package/build/dist/Server/Middleware/TelemetryIngest.js +16 -18
  205. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  206. package/build/dist/Server/Services/AlertService.js +9 -9
  207. package/build/dist/Server/Services/AlertService.js.map +1 -1
  208. package/build/dist/Server/Services/AnalyticsDatabaseService.js +115 -40
  209. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  210. package/build/dist/Server/Services/ExceptionAggregationService.js +38 -18
  211. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  212. package/build/dist/Server/Services/HostService.js +2 -1
  213. package/build/dist/Server/Services/HostService.js.map +1 -1
  214. package/build/dist/Server/Services/IncidentService.js +19 -19
  215. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  216. package/build/dist/Server/Services/Index.js +6 -2
  217. package/build/dist/Server/Services/Index.js.map +1 -1
  218. package/build/dist/Server/Services/LogAggregationService.js +100 -42
  219. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  220. package/build/dist/Server/Services/MetricAggregationService.js +27 -14
  221. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  222. package/build/dist/Server/Services/MetricBaselineService.js +28 -28
  223. package/build/dist/Server/Services/MetricBaselineService.js.map +1 -1
  224. package/build/dist/Server/Services/MetricItemAggMV1mByHostV2Service.js +28 -0
  225. package/build/dist/Server/Services/MetricItemAggMV1mByHostV2Service.js.map +1 -0
  226. package/build/dist/Server/Services/MetricService.js +116 -31
  227. package/build/dist/Server/Services/MetricService.js.map +1 -1
  228. package/build/dist/Server/Services/OpenTelemetryIngestService.js +103 -36
  229. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  230. package/build/dist/Server/Services/ProfileAggregationService.js +613 -105
  231. package/build/dist/Server/Services/ProfileAggregationService.js.map +1 -1
  232. package/build/dist/Server/Services/ServiceService.js +9 -5
  233. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  234. package/build/dist/Server/Services/SpanService.js +217 -15
  235. package/build/dist/Server/Services/SpanService.js.map +1 -1
  236. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +72 -0
  237. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -0
  238. package/build/dist/Server/Services/TelemetryEntityService.js +201 -0
  239. package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -0
  240. package/build/dist/Server/Services/TelemetryExceptionService.js +18 -18
  241. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  242. package/build/dist/Server/Services/TelemetryUsageBillingService.js +27 -21
  243. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  244. package/build/dist/Server/Services/TraceAggregationService.js +568 -43
  245. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  246. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +38 -2
  247. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  248. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js +36 -2
  249. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js.map +1 -1
  250. package/build/dist/Server/Types/Database/Permissions/BasePermission.js +25 -1
  251. package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
  252. package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js +17 -3
  253. package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js.map +1 -1
  254. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +1 -0
  255. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  256. package/build/dist/Server/Types/Database/QueryHelper.js +31 -0
  257. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  258. package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js +3 -2
  259. package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js.map +1 -1
  260. package/build/dist/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.js +3 -2
  261. package/build/dist/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.js.map +1 -1
  262. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js +46 -0
  263. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js.map +1 -0
  264. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +97 -3
  265. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  266. package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js +3 -2
  267. package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js.map +1 -1
  268. package/build/dist/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.js +3 -2
  269. package/build/dist/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.js.map +1 -1
  270. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +1 -1
  271. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
  272. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js +1 -2
  273. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js.map +1 -1
  274. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +3 -4
  275. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  276. package/build/dist/Server/Utils/PrivacyFilterUtil.js +47 -0
  277. package/build/dist/Server/Utils/PrivacyFilterUtil.js.map +1 -0
  278. package/build/dist/Server/Utils/Profile/PprofEncoder.js +132 -4
  279. package/build/dist/Server/Utils/Profile/PprofEncoder.js.map +1 -1
  280. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +228 -0
  281. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -0
  282. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +5 -0
  283. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  284. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +569 -0
  285. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -0
  286. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +14 -9
  287. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  288. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js +1 -0
  289. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js.map +1 -1
  290. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  291. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  292. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.js +2 -0
  293. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.js.map +1 -0
  294. package/build/dist/Types/Dashboard/DashboardTemplates.js +4 -5
  295. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  296. package/build/dist/Types/Log/LogQueryParser.js +2 -2
  297. package/build/dist/Types/Log/LogQueryParser.js.map +1 -1
  298. package/build/dist/Types/Log/LogQueryToFilter.js +1 -1
  299. package/build/dist/Types/Log/LogQueryToFilter.js.map +1 -1
  300. package/build/dist/Types/Monitor/MonitorStepExceptionMonitor.js +9 -1
  301. package/build/dist/Types/Monitor/MonitorStepExceptionMonitor.js.map +1 -1
  302. package/build/dist/Types/Monitor/MonitorStepLogMonitor.js +9 -1
  303. package/build/dist/Types/Monitor/MonitorStepLogMonitor.js.map +1 -1
  304. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js +13 -0
  305. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js.map +1 -1
  306. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js +9 -1
  307. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js.map +1 -1
  308. package/build/dist/Types/Monitor/MonitorStepTraceMonitor.js +9 -1
  309. package/build/dist/Types/Monitor/MonitorStepTraceMonitor.js.map +1 -1
  310. package/build/dist/Types/Monitor/MonitorType.js +8 -1
  311. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  312. package/build/dist/Types/ObjectID.js +9 -0
  313. package/build/dist/Types/ObjectID.js.map +1 -1
  314. package/build/dist/Types/Telemetry/EntityRelationshipType.js +32 -0
  315. package/build/dist/Types/Telemetry/EntityRelationshipType.js.map +1 -0
  316. package/build/dist/Types/Telemetry/EntityType.js +34 -0
  317. package/build/dist/Types/Telemetry/EntityType.js.map +1 -0
  318. package/build/dist/Types/Text.js +32 -1
  319. package/build/dist/Types/Text.js.map +1 -1
  320. package/build/dist/Types/Trace/TraceAggregationType.js +1 -0
  321. package/build/dist/Types/Trace/TraceAggregationType.js.map +1 -1
  322. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js +50 -1
  323. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js.map +1 -1
  324. package/build/dist/UI/Components/ImportExport/ExportModelCard.js +50 -0
  325. package/build/dist/UI/Components/ImportExport/ExportModelCard.js.map +1 -0
  326. package/build/dist/UI/Components/ImportExport/ImportModelsModal.js +115 -0
  327. package/build/dist/UI/Components/ImportExport/ImportModelsModal.js.map +1 -0
  328. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +10 -9
  329. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  330. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +8 -8
  331. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
  332. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +1 -1
  333. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
  334. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +2 -2
  335. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  336. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +4 -4
  337. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  338. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +3 -3
  339. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
  340. package/build/dist/UI/Components/ModelTable/ModelTable.js +166 -74
  341. package/build/dist/UI/Components/ModelTable/ModelTable.js.map +1 -1
  342. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +43 -30
  343. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  344. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +6 -2
  345. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  346. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +14 -3
  347. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
  348. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +18 -10
  349. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
  350. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js +4 -2
  351. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js.map +1 -1
  352. package/build/dist/UI/Utils/LogExport.js +2 -2
  353. package/build/dist/UI/Utils/LogExport.js.map +1 -1
  354. package/build/dist/UI/Utils/ModelImportExport.js +142 -0
  355. package/build/dist/UI/Utils/ModelImportExport.js.map +1 -0
  356. package/build/dist/UI/Utils/TelemetryService.js +16 -16
  357. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  358. package/build/dist/Utils/Dashboard/Components/DashboardTraceChartComponent.js +110 -0
  359. package/build/dist/Utils/Dashboard/Components/DashboardTraceChartComponent.js.map +1 -0
  360. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  361. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  362. package/build/dist/Utils/ModelImportExport.js +257 -0
  363. package/build/dist/Utils/ModelImportExport.js.map +1 -0
  364. package/build/dist/Utils/Telemetry/EntityKey.js +115 -0
  365. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -0
  366. package/build/dist/Utils/Telemetry/EntityRelationship.js +71 -0
  367. package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -0
  368. package/build/dist/Utils/Traces/CriticalPath.js +5 -5
  369. package/build/dist/Utils/Traces/CriticalPath.js.map +1 -1
  370. package/build/dist/Utils/UUID.js +50 -0
  371. package/build/dist/Utils/UUID.js.map +1 -1
  372. package/package.json +2 -1
  373. package/tsconfig.json +10 -1
  374. package/Server/Services/MetricItemAggMV1mByHostService.ts +0 -30
  375. package/Types/Profile/ProfileMetricType.ts +0 -16
  376. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHost.js.map +0 -1
  377. package/build/dist/Server/Services/MetricItemAggMV1mByHostService.js +0 -28
  378. package/build/dist/Server/Services/MetricItemAggMV1mByHostService.js.map +0 -1
  379. package/build/dist/Tests/MockType.js +0 -5
  380. package/build/dist/Tests/MockType.js.map +0 -1
  381. package/build/dist/Tests/Models/AnalyticsModels/Log.test.js +0 -12
  382. package/build/dist/Tests/Models/AnalyticsModels/Log.test.js.map +0 -1
  383. package/build/dist/Tests/Models/File.test.js +0 -10
  384. package/build/dist/Tests/Models/File.test.js.map +0 -1
  385. package/build/dist/Tests/Server/API/BaseAPI.test.js +0 -590
  386. package/build/dist/Tests/Server/API/BaseAPI.test.js.map +0 -1
  387. package/build/dist/Tests/Server/API/Helpers.js +0 -27
  388. package/build/dist/Tests/Server/API/Helpers.js.map +0 -1
  389. package/build/dist/Tests/Server/API/ProbeAPI.test.js +0 -84
  390. package/build/dist/Tests/Server/API/ProbeAPI.test.js.map +0 -1
  391. package/build/dist/Tests/Server/API/ProjectAPI.test.js +0 -170
  392. package/build/dist/Tests/Server/API/ProjectAPI.test.js.map +0 -1
  393. package/build/dist/Tests/Server/API/UserSmsApi.test.js +0 -177
  394. package/build/dist/Tests/Server/API/UserSmsApi.test.js.map +0 -1
  395. package/build/dist/Tests/Server/Middleware/BearerTokenAuthorization.test.js +0 -63
  396. package/build/dist/Tests/Server/Middleware/BearerTokenAuthorization.test.js.map +0 -1
  397. package/build/dist/Tests/Server/Middleware/ClusterKeyAuthorization.test.js +0 -58
  398. package/build/dist/Tests/Server/Middleware/ClusterKeyAuthorization.test.js.map +0 -1
  399. package/build/dist/Tests/Server/Middleware/NotificationMiddleware.test.js +0 -101
  400. package/build/dist/Tests/Server/Middleware/NotificationMiddleware.test.js.map +0 -1
  401. package/build/dist/Tests/Server/Middleware/ProjectAuthorization.test.js +0 -160
  402. package/build/dist/Tests/Server/Middleware/ProjectAuthorization.test.js.map +0 -1
  403. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +0 -410
  404. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +0 -1
  405. package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js +0 -165
  406. package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js.map +0 -1
  407. package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js +0 -193
  408. package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js.map +0 -1
  409. package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js +0 -435
  410. package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js.map +0 -1
  411. package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js +0 -320
  412. package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js.map +0 -1
  413. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js +0 -266
  414. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js.map +0 -1
  415. package/build/dist/Tests/Server/Services/BillingService.test.js +0 -910
  416. package/build/dist/Tests/Server/Services/BillingService.test.js.map +0 -1
  417. package/build/dist/Tests/Server/Services/LogAggregationService.test.js +0 -75
  418. package/build/dist/Tests/Server/Services/LogAggregationService.test.js.map +0 -1
  419. package/build/dist/Tests/Server/Services/ProbeService.test.js +0 -127
  420. package/build/dist/Tests/Server/Services/ProbeService.test.js.map +0 -1
  421. package/build/dist/Tests/Server/Services/ScheduledMaintenanceService.test.js +0 -114
  422. package/build/dist/Tests/Server/Services/ScheduledMaintenanceService.test.js.map +0 -1
  423. package/build/dist/Tests/Server/Services/TeamMemberService.test.js +0 -106
  424. package/build/dist/Tests/Server/Services/TeamMemberService.test.js.map +0 -1
  425. package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js +0 -50
  426. package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js.map +0 -1
  427. package/build/dist/Tests/Server/TestingUtils/Init.js +0 -4
  428. package/build/dist/Tests/Server/TestingUtils/Init.js.map +0 -1
  429. package/build/dist/Tests/Server/TestingUtils/Postgres/TestDataSourceOptions.js +0 -9
  430. package/build/dist/Tests/Server/TestingUtils/Postgres/TestDataSourceOptions.js.map +0 -1
  431. package/build/dist/Tests/Server/TestingUtils/Redis/TestRedisOptions.js +0 -16
  432. package/build/dist/Tests/Server/TestingUtils/Redis/TestRedisOptions.js.map +0 -1
  433. package/build/dist/Tests/Server/TestingUtils/Services/BillingServiceHelper.js +0 -125
  434. package/build/dist/Tests/Server/TestingUtils/Services/BillingServiceHelper.js.map +0 -1
  435. package/build/dist/Tests/Server/TestingUtils/Services/ProjectServiceHelper.js +0 -39
  436. package/build/dist/Tests/Server/TestingUtils/Services/ProjectServiceHelper.js.map +0 -1
  437. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceServiceHelper.js +0 -20
  438. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceServiceHelper.js.map +0 -1
  439. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceStateServiceHelper.js +0 -31
  440. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceStateServiceHelper.js.map +0 -1
  441. package/build/dist/Tests/Server/TestingUtils/Services/TeamMemberServiceHelper.js +0 -14
  442. package/build/dist/Tests/Server/TestingUtils/Services/TeamMemberServiceHelper.js.map +0 -1
  443. package/build/dist/Tests/Server/TestingUtils/Services/TeamServiceHelper.js +0 -21
  444. package/build/dist/Tests/Server/TestingUtils/Services/TeamServiceHelper.js.map +0 -1
  445. package/build/dist/Tests/Server/TestingUtils/Services/Types.js +0 -2
  446. package/build/dist/Tests/Server/TestingUtils/Services/Types.js.map +0 -1
  447. package/build/dist/Tests/Server/TestingUtils/Services/UserServiceHelper.js +0 -37
  448. package/build/dist/Tests/Server/TestingUtils/Services/UserServiceHelper.js.map +0 -1
  449. package/build/dist/Tests/Server/TestingUtils/__mocks__/Stripe.mock.js +0 -13
  450. package/build/dist/Tests/Server/TestingUtils/__mocks__/Stripe.mock.js.map +0 -1
  451. package/build/dist/Tests/Server/TestingUtils/__mocks__/TestDatabase.mock.js +0 -22
  452. package/build/dist/Tests/Server/TestingUtils/__mocks__/TestDatabase.mock.js.map +0 -1
  453. package/build/dist/Tests/Server/Types/Domain.test.js +0 -78
  454. package/build/dist/Tests/Server/Types/Domain.test.js.map +0 -1
  455. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/Statement.test.js +0 -94
  456. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/Statement.test.js.map +0 -1
  457. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js +0 -459
  458. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js.map +0 -1
  459. package/build/dist/Tests/Server/Utils/Cookie.test.js +0 -83
  460. package/build/dist/Tests/Server/Utils/Cookie.test.js.map +0 -1
  461. package/build/dist/Tests/Server/Utils/CronTab.test.js +0 -29
  462. package/build/dist/Tests/Server/Utils/CronTab.test.js.map +0 -1
  463. package/build/dist/Tests/Server/Utils/JsonToCsv.test.js +0 -114
  464. package/build/dist/Tests/Server/Utils/JsonToCsv.test.js.map +0 -1
  465. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js +0 -606
  466. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js.map +0 -1
  467. package/build/dist/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.js +0 -255
  468. package/build/dist/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.js.map +0 -1
  469. package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js +0 -142
  470. package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js.map +0 -1
  471. package/build/dist/Tests/Server/Utils/StatusPageResource.test.js +0 -122
  472. package/build/dist/Tests/Server/Utils/StatusPageResource.test.js.map +0 -1
  473. package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js +0 -0
  474. package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js.map +0 -1
  475. package/build/dist/Tests/Server/Utils/VM/VMAPI.test.js +0 -205
  476. package/build/dist/Tests/Server/Utils/VM/VMAPI.test.js.map +0 -1
  477. package/build/dist/Tests/Spy.js +0 -4
  478. package/build/dist/Tests/Spy.js.map +0 -1
  479. package/build/dist/Tests/Types/API/ErrorResponse.test.js +0 -13
  480. package/build/dist/Tests/Types/API/ErrorResponse.test.js.map +0 -1
  481. package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js +0 -33
  482. package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js.map +0 -1
  483. package/build/dist/Tests/Types/API/HTTPMethod.test.js +0 -16
  484. package/build/dist/Tests/Types/API/HTTPMethod.test.js.map +0 -1
  485. package/build/dist/Tests/Types/API/Headers.test.js +0 -14
  486. package/build/dist/Tests/Types/API/Headers.test.js.map +0 -1
  487. package/build/dist/Tests/Types/API/Hostname.test.js +0 -22
  488. package/build/dist/Tests/Types/API/Hostname.test.js.map +0 -1
  489. package/build/dist/Tests/Types/API/Protocal.test.js +0 -19
  490. package/build/dist/Tests/Types/API/Protocal.test.js.map +0 -1
  491. package/build/dist/Tests/Types/API/Response.test.js +0 -14
  492. package/build/dist/Tests/Types/API/Response.test.js.map +0 -1
  493. package/build/dist/Tests/Types/API/ResponseType.test.js +0 -13
  494. package/build/dist/Tests/Types/API/ResponseType.test.js.map +0 -1
  495. package/build/dist/Tests/Types/API/Route.test.js +0 -30
  496. package/build/dist/Tests/Types/API/Route.test.js.map +0 -1
  497. package/build/dist/Tests/Types/API/StatusCode.test.js +0 -26
  498. package/build/dist/Tests/Types/API/StatusCode.test.js.map +0 -1
  499. package/build/dist/Tests/Types/API/URL.test.js +0 -33
  500. package/build/dist/Tests/Types/API/URL.test.js.map +0 -1
  501. package/build/dist/Tests/Types/Alerts/AlertEventType.test.js +0 -34
  502. package/build/dist/Tests/Types/Alerts/AlertEventType.test.js.map +0 -1
  503. package/build/dist/Tests/Types/Alerts/AlertType.test.js +0 -19
  504. package/build/dist/Tests/Types/Alerts/AlertType.test.js.map +0 -1
  505. package/build/dist/Tests/Types/AppEnvironment.test.js +0 -13
  506. package/build/dist/Tests/Types/AppEnvironment.test.js.map +0 -1
  507. package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js +0 -13
  508. package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js.map +0 -1
  509. package/build/dist/Tests/Types/ArrayUtil.test.js +0 -71
  510. package/build/dist/Tests/Types/ArrayUtil.test.js.map +0 -1
  511. package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js +0 -181
  512. package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js.map +0 -1
  513. package/build/dist/Tests/Types/BrandColors.test.js +0 -124
  514. package/build/dist/Tests/Types/BrandColors.test.js.map +0 -1
  515. package/build/dist/Tests/Types/Char.test.js +0 -82
  516. package/build/dist/Tests/Types/Char.test.js.map +0 -1
  517. package/build/dist/Tests/Types/Code/CodeType.test.js +0 -13
  518. package/build/dist/Tests/Types/Code/CodeType.test.js.map +0 -1
  519. package/build/dist/Tests/Types/Color.test.js +0 -44
  520. package/build/dist/Tests/Types/Color.test.js.map +0 -1
  521. package/build/dist/Tests/Types/Company/CompanySize.test.js +0 -20
  522. package/build/dist/Tests/Types/Company/CompanySize.test.js.map +0 -1
  523. package/build/dist/Tests/Types/Company/JobRole.test.js +0 -22
  524. package/build/dist/Tests/Types/Company/JobRole.test.js.map +0 -1
  525. package/build/dist/Tests/Types/Countries.test.js +0 -249
  526. package/build/dist/Tests/Types/Countries.test.js.map +0 -1
  527. package/build/dist/Tests/Types/Database/ColumnLength.test.js +0 -43
  528. package/build/dist/Tests/Types/Database/ColumnLength.test.js.map +0 -1
  529. package/build/dist/Tests/Types/Database/ColumnType.test.js +0 -79
  530. package/build/dist/Tests/Types/Database/ColumnType.test.js.map +0 -1
  531. package/build/dist/Tests/Types/Database/Columns.test.js +0 -20
  532. package/build/dist/Tests/Types/Database/Columns.test.js.map +0 -1
  533. package/build/dist/Tests/Types/Database/CompareBase.test.js +0 -37
  534. package/build/dist/Tests/Types/Database/CompareBase.test.js.map +0 -1
  535. package/build/dist/Tests/Types/Database/Date.test.js +0 -62
  536. package/build/dist/Tests/Types/Database/Date.test.js.map +0 -1
  537. package/build/dist/Tests/Types/Database/EqualTo.test.js +0 -65
  538. package/build/dist/Tests/Types/Database/EqualTo.test.js.map +0 -1
  539. package/build/dist/Tests/Types/Database/EqualToOrNull.test.js +0 -62
  540. package/build/dist/Tests/Types/Database/EqualToOrNull.test.js.map +0 -1
  541. package/build/dist/Tests/Types/Database/InBetween.test.js +0 -72
  542. package/build/dist/Tests/Types/Database/InBetween.test.js.map +0 -1
  543. package/build/dist/Tests/Types/Database/LimitMax.test.js +0 -18
  544. package/build/dist/Tests/Types/Database/LimitMax.test.js.map +0 -1
  545. package/build/dist/Tests/Types/Database/NotEqual.test.js +0 -19
  546. package/build/dist/Tests/Types/Database/NotEqual.test.js.map +0 -1
  547. package/build/dist/Tests/Types/Database/Search.test.js +0 -10
  548. package/build/dist/Tests/Types/Database/Search.test.js.map +0 -1
  549. package/build/dist/Tests/Types/DatabaseType.test.js +0 -7
  550. package/build/dist/Tests/Types/DatabaseType.test.js.map +0 -1
  551. package/build/dist/Tests/Types/Date.test.js +0 -194
  552. package/build/dist/Tests/Types/Date.test.js.map +0 -1
  553. package/build/dist/Tests/Types/Dictionary.test.js +0 -25
  554. package/build/dist/Tests/Types/Dictionary.test.js.map +0 -1
  555. package/build/dist/Tests/Types/Domain.test.js +0 -54
  556. package/build/dist/Tests/Types/Domain.test.js.map +0 -1
  557. package/build/dist/Tests/Types/Email/Email.test.js +0 -51
  558. package/build/dist/Tests/Types/Email/Email.test.js.map +0 -1
  559. package/build/dist/Tests/Types/EmailWithName.test.js +0 -36
  560. package/build/dist/Tests/Types/EmailWithName.test.js.map +0 -1
  561. package/build/dist/Tests/Types/EncryptionAlgorithm.test.js +0 -7
  562. package/build/dist/Tests/Types/EncryptionAlgorithm.test.js.map +0 -1
  563. package/build/dist/Tests/Types/Exception/ApiException.test.js +0 -10
  564. package/build/dist/Tests/Types/Exception/ApiException.test.js.map +0 -1
  565. package/build/dist/Tests/Types/Exception/BadDataException.test.js +0 -12
  566. package/build/dist/Tests/Types/Exception/BadDataException.test.js.map +0 -1
  567. package/build/dist/Tests/Types/Exception/BadOperationException.test.js +0 -10
  568. package/build/dist/Tests/Types/Exception/BadOperationException.test.js.map +0 -1
  569. package/build/dist/Tests/Types/Exception/BadRequestException.test.js +0 -12
  570. package/build/dist/Tests/Types/Exception/BadRequestException.test.js.map +0 -1
  571. package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js +0 -10
  572. package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js.map +0 -1
  573. package/build/dist/Tests/Types/Exception/Exception.test.js +0 -15
  574. package/build/dist/Tests/Types/Exception/Exception.test.js.map +0 -1
  575. package/build/dist/Tests/Types/Exception/NotImplementedException.test.js +0 -12
  576. package/build/dist/Tests/Types/Exception/NotImplementedException.test.js.map +0 -1
  577. package/build/dist/Tests/Types/File.test.js +0 -22
  578. package/build/dist/Tests/Types/File.test.js.map +0 -1
  579. package/build/dist/Tests/Types/HashedString.test.js +0 -51
  580. package/build/dist/Tests/Types/HashedString.test.js.map +0 -1
  581. package/build/dist/Tests/Types/Html.test.js +0 -8
  582. package/build/dist/Tests/Types/Html.test.js.map +0 -1
  583. package/build/dist/Tests/Types/IP/IP.test.js +0 -65
  584. package/build/dist/Tests/Types/IP/IP.test.js.map +0 -1
  585. package/build/dist/Tests/Types/IP/IPType.test.js +0 -10
  586. package/build/dist/Tests/Types/IP/IPType.test.js.map +0 -1
  587. package/build/dist/Tests/Types/IP/IPv4.test.js +0 -17
  588. package/build/dist/Tests/Types/IP/IPv4.test.js.map +0 -1
  589. package/build/dist/Tests/Types/IP/IPv6.test.js +0 -17
  590. package/build/dist/Tests/Types/IP/IPv6.test.js.map +0 -1
  591. package/build/dist/Tests/Types/JSON.test.js +0 -37
  592. package/build/dist/Tests/Types/JSON.test.js.map +0 -1
  593. package/build/dist/Tests/Types/JSONFunctions.test.js +0 -38
  594. package/build/dist/Tests/Types/JSONFunctions.test.js.map +0 -1
  595. package/build/dist/Tests/Types/ListData.test.js +0 -34
  596. package/build/dist/Tests/Types/ListData.test.js.map +0 -1
  597. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js +0 -121
  598. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js.map +0 -1
  599. package/build/dist/Tests/Types/Name.test.js +0 -26
  600. package/build/dist/Tests/Types/Name.test.js.map +0 -1
  601. package/build/dist/Tests/Types/ObjectID.test.js +0 -12
  602. package/build/dist/Tests/Types/ObjectID.test.js.map +0 -1
  603. package/build/dist/Tests/Types/OnCallDutyPolicy/LayerUtil.test.js +0 -530
  604. package/build/dist/Tests/Types/OnCallDutyPolicy/LayerUtil.test.js.map +0 -1
  605. package/build/dist/Tests/Types/Permission.test.js +0 -99
  606. package/build/dist/Tests/Types/Permission.test.js.map +0 -1
  607. package/build/dist/Tests/Types/Phone.test.js +0 -37
  608. package/build/dist/Tests/Types/Phone.test.js.map +0 -1
  609. package/build/dist/Tests/Types/Port.test.js +0 -35
  610. package/build/dist/Tests/Types/Port.test.js.map +0 -1
  611. package/build/dist/Tests/Types/PositiveNumber.test.js +0 -101
  612. package/build/dist/Tests/Types/PositiveNumber.test.js.map +0 -1
  613. package/build/dist/Tests/Types/SecuritySeverity.test.js +0 -16
  614. package/build/dist/Tests/Types/SecuritySeverity.test.js.map +0 -1
  615. package/build/dist/Tests/Types/SerializableObject.test.js +0 -37
  616. package/build/dist/Tests/Types/SerializableObject.test.js.map +0 -1
  617. package/build/dist/Tests/Types/Sleep.test.js +0 -14
  618. package/build/dist/Tests/Types/Sleep.test.js.map +0 -1
  619. package/build/dist/Tests/Types/Text.test.js +0 -8
  620. package/build/dist/Tests/Types/Text.test.js.map +0 -1
  621. package/build/dist/Tests/Types/Timezone.test.js +0 -596
  622. package/build/dist/Tests/Types/Timezone.test.js.map +0 -1
  623. package/build/dist/Tests/Types/Typeof.test.js +0 -16
  624. package/build/dist/Tests/Types/Typeof.test.js.map +0 -1
  625. package/build/dist/Tests/Types/UserType.test.js +0 -16
  626. package/build/dist/Tests/Types/UserType.test.js.map +0 -1
  627. package/build/dist/Tests/Types/Version.test.js +0 -35
  628. package/build/dist/Tests/Types/Version.test.js.map +0 -1
  629. package/build/dist/Tests/Types/XML.test.js +0 -35
  630. package/build/dist/Tests/Types/XML.test.js.map +0 -1
  631. package/build/dist/Tests/UI/Components/404.test.js +0 -59
  632. package/build/dist/Tests/UI/Components/404.test.js.map +0 -1
  633. package/build/dist/Tests/UI/Components/Alert.test.js +0 -83
  634. package/build/dist/Tests/UI/Components/Alert.test.js.map +0 -1
  635. package/build/dist/Tests/UI/Components/Badge.test.js +0 -59
  636. package/build/dist/Tests/UI/Components/Badge.test.js.map +0 -1
  637. package/build/dist/Tests/UI/Components/BasicForm.test.js +0 -92
  638. package/build/dist/Tests/UI/Components/BasicForm.test.js.map +0 -1
  639. package/build/dist/Tests/UI/Components/Breadcrumbs.test.js +0 -69
  640. package/build/dist/Tests/UI/Components/Breadcrumbs.test.js.map +0 -1
  641. package/build/dist/Tests/UI/Components/Button.test.js +0 -104
  642. package/build/dist/Tests/UI/Components/Button.test.js.map +0 -1
  643. package/build/dist/Tests/UI/Components/Card.test.js +0 -81
  644. package/build/dist/Tests/UI/Components/Card.test.js.map +0 -1
  645. package/build/dist/Tests/UI/Components/ColorViewer.test.js +0 -42
  646. package/build/dist/Tests/UI/Components/ColorViewer.test.js.map +0 -1
  647. package/build/dist/Tests/UI/Components/ComponentsModal.test.js +0 -233
  648. package/build/dist/Tests/UI/Components/ComponentsModal.test.js.map +0 -1
  649. package/build/dist/Tests/UI/Components/ConfirmModal.test.js +0 -57
  650. package/build/dist/Tests/UI/Components/ConfirmModal.test.js.map +0 -1
  651. package/build/dist/Tests/UI/Components/DictionaryOfStrings.test.js +0 -84
  652. package/build/dist/Tests/UI/Components/DictionaryOfStrings.test.js.map +0 -1
  653. package/build/dist/Tests/UI/Components/Dropdown.test.js +0 -146
  654. package/build/dist/Tests/UI/Components/Dropdown.test.js.map +0 -1
  655. package/build/dist/Tests/UI/Components/DuplicateModel.test.js +0 -229
  656. package/build/dist/Tests/UI/Components/DuplicateModel.test.js.map +0 -1
  657. package/build/dist/Tests/UI/Components/EmptyState/EmptyState.test.js +0 -26
  658. package/build/dist/Tests/UI/Components/EmptyState/EmptyState.test.js.map +0 -1
  659. package/build/dist/Tests/UI/Components/ErrorBoundary.test.js +0 -32
  660. package/build/dist/Tests/UI/Components/ErrorBoundary.test.js.map +0 -1
  661. package/build/dist/Tests/UI/Components/FilePicker.test.js +0 -342
  662. package/build/dist/Tests/UI/Components/FilePicker.test.js.map +0 -1
  663. package/build/dist/Tests/UI/Components/HiddenText.test.js +0 -50
  664. package/build/dist/Tests/UI/Components/HiddenText.test.js.map +0 -1
  665. package/build/dist/Tests/UI/Components/Input.test.js +0 -223
  666. package/build/dist/Tests/UI/Components/Input.test.js.map +0 -1
  667. package/build/dist/Tests/UI/Components/Item.test.js +0 -58
  668. package/build/dist/Tests/UI/Components/Item.test.js.map +0 -1
  669. package/build/dist/Tests/UI/Components/List.test.js +0 -83
  670. package/build/dist/Tests/UI/Components/List.test.js.map +0 -1
  671. package/build/dist/Tests/UI/Components/Loader.test.js +0 -19
  672. package/build/dist/Tests/UI/Components/Loader.test.js.map +0 -1
  673. package/build/dist/Tests/UI/Components/MarkdownEditor.test.js +0 -85
  674. package/build/dist/Tests/UI/Components/MarkdownEditor.test.js.map +0 -1
  675. package/build/dist/Tests/UI/Components/MasterPage.test.js +0 -46
  676. package/build/dist/Tests/UI/Components/MasterPage.test.js.map +0 -1
  677. package/build/dist/Tests/UI/Components/Modal.test.js +0 -127
  678. package/build/dist/Tests/UI/Components/Modal.test.js.map +0 -1
  679. package/build/dist/Tests/UI/Components/NavBar.test.js +0 -52
  680. package/build/dist/Tests/UI/Components/NavBar.test.js.map +0 -1
  681. package/build/dist/Tests/UI/Components/OrderedStatesList.test.js +0 -86
  682. package/build/dist/Tests/UI/Components/OrderedStatesList.test.js.map +0 -1
  683. package/build/dist/Tests/UI/Components/Pagination.test.js +0 -137
  684. package/build/dist/Tests/UI/Components/Pagination.test.js.map +0 -1
  685. package/build/dist/Tests/UI/Components/Pill.test.js +0 -55
  686. package/build/dist/Tests/UI/Components/Pill.test.js.map +0 -1
  687. package/build/dist/Tests/UI/Components/Probe.test.js +0 -52
  688. package/build/dist/Tests/UI/Components/Probe.test.js.map +0 -1
  689. package/build/dist/Tests/UI/Components/ProgressBar.test.js +0 -41
  690. package/build/dist/Tests/UI/Components/ProgressBar.test.js.map +0 -1
  691. package/build/dist/Tests/UI/Components/RadioButtons.test.js +0 -66
  692. package/build/dist/Tests/UI/Components/RadioButtons.test.js.map +0 -1
  693. package/build/dist/Tests/UI/Components/SideMenuItem.test.js +0 -99
  694. package/build/dist/Tests/UI/Components/SideMenuItem.test.js.map +0 -1
  695. package/build/dist/Tests/UI/Components/SideOver.test.js +0 -77
  696. package/build/dist/Tests/UI/Components/SideOver.test.js.map +0 -1
  697. package/build/dist/Tests/UI/Components/Tabs.test.js +0 -56
  698. package/build/dist/Tests/UI/Components/Tabs.test.js.map +0 -1
  699. package/build/dist/Tests/UI/Components/Template/Template.test.js +0 -15
  700. package/build/dist/Tests/UI/Components/Template/Template.test.js.map +0 -1
  701. package/build/dist/Tests/UI/Components/TextArea.test.js +0 -112
  702. package/build/dist/Tests/UI/Components/TextArea.test.js.map +0 -1
  703. package/build/dist/Tests/UI/Components/TimePicker/TimePicker.test.js +0 -352
  704. package/build/dist/Tests/UI/Components/TimePicker/TimePicker.test.js.map +0 -1
  705. package/build/dist/Tests/UI/Components/Toast.test.js +0 -48
  706. package/build/dist/Tests/UI/Components/Toast.test.js.map +0 -1
  707. package/build/dist/Tests/UI/Components/Toggle.test.js +0 -95
  708. package/build/dist/Tests/UI/Components/Toggle.test.js.map +0 -1
  709. package/build/dist/Tests/UI/Components/TopSection.test.js +0 -33
  710. package/build/dist/Tests/UI/Components/TopSection.test.js.map +0 -1
  711. package/build/dist/Tests/UI/Components/XAxis.test.js +0 -21
  712. package/build/dist/Tests/UI/Components/XAxis.test.js.map +0 -1
  713. package/build/dist/Tests/UI/Index.js +0 -2
  714. package/build/dist/Tests/UI/Index.js.map +0 -1
  715. package/build/dist/Tests/UI/Mocks/FileMock.js +0 -3
  716. package/build/dist/Tests/UI/Mocks/FileMock.js.map +0 -1
  717. package/build/dist/Tests/Utils/API.test.js +0 -399
  718. package/build/dist/Tests/Utils/API.test.js.map +0 -1
  719. package/build/dist/Tests/Utils/Analytics.test.js +0 -67
  720. package/build/dist/Tests/Utils/Analytics.test.js.map +0 -1
  721. package/build/dist/Tests/Utils/CronTime.test.js +0 -22
  722. package/build/dist/Tests/Utils/CronTime.test.js.map +0 -1
  723. package/build/dist/Tests/Utils/Faker.test.js +0 -27
  724. package/build/dist/Tests/Utils/Faker.test.js.map +0 -1
  725. package/build/dist/Tests/Utils/MetricUnitUtil.test.js +0 -187
  726. package/build/dist/Tests/Utils/MetricUnitUtil.test.js.map +0 -1
  727. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js +0 -224
  728. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js.map +0 -1
  729. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js +0 -180
  730. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js.map +0 -1
  731. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js +0 -142
  732. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js.map +0 -1
  733. package/build/dist/Tests/Utils/Slug.test.js +0 -20
  734. package/build/dist/Tests/Utils/Slug.test.js.map +0 -1
  735. package/build/dist/Tests/Utils/UUID.test.js +0 -48
  736. package/build/dist/Tests/Utils/UUID.test.js.map +0 -1
  737. package/build/dist/Tests/jest.setup.js +0 -30
  738. package/build/dist/Tests/jest.setup.js.map +0 -1
  739. package/build/dist/Types/Profile/ProfileMetricType.js +0 -17
  740. package/build/dist/Types/Profile/ProfileMetricType.js.map +0 -1
@@ -1,193 +0,0 @@
1
- import AlertEpisode from "../../../Models/DatabaseModels/AlertEpisode";
2
- import AlertState from "../../../Models/DatabaseModels/AlertState";
3
- import ObjectID from "../../../Types/ObjectID";
4
- import { describe, expect, test, beforeEach } from "@jest/globals";
5
- describe("AlertEpisodeService", () => {
6
- const projectId = ObjectID.generate();
7
- const episodeId = ObjectID.generate();
8
- let mockEpisode;
9
- let mockResolvedState;
10
- let mockAcknowledgedState;
11
- beforeEach(() => {
12
- mockEpisode = new AlertEpisode();
13
- mockEpisode._id = episodeId.toString();
14
- mockEpisode.id = episodeId;
15
- mockEpisode.projectId = projectId;
16
- mockEpisode.title = "Test Episode";
17
- mockEpisode.alertCount = 5;
18
- mockResolvedState = new AlertState();
19
- mockResolvedState._id = ObjectID.generate().toString();
20
- mockResolvedState.order = 100;
21
- mockResolvedState.isResolvedState = true;
22
- mockAcknowledgedState = new AlertState();
23
- mockAcknowledgedState._id = ObjectID.generate().toString();
24
- mockAcknowledgedState.order = 50;
25
- mockAcknowledgedState.isAcknowledgedState = true;
26
- });
27
- describe("AlertEpisode Model", () => {
28
- test("should create a new AlertEpisode instance", () => {
29
- const episode = new AlertEpisode();
30
- expect(episode).toBeInstanceOf(AlertEpisode);
31
- });
32
- test("should create AlertEpisode with an ID", () => {
33
- const id = ObjectID.generate();
34
- const episode = new AlertEpisode(id);
35
- expect(episode.id).toEqual(id);
36
- });
37
- test("should set and get title correctly", () => {
38
- const episode = new AlertEpisode();
39
- episode.title = "CPU Alert Episode";
40
- expect(episode.title).toBe("CPU Alert Episode");
41
- });
42
- test("should set and get description correctly", () => {
43
- const episode = new AlertEpisode();
44
- episode.description = "Multiple CPU alerts grouped together";
45
- expect(episode.description).toBe("Multiple CPU alerts grouped together");
46
- });
47
- test("should set and get alertCount correctly", () => {
48
- const episode = new AlertEpisode();
49
- episode.alertCount = 10;
50
- expect(episode.alertCount).toBe(10);
51
- });
52
- test("should set and get projectId correctly", () => {
53
- const episode = new AlertEpisode();
54
- const projectId = ObjectID.generate();
55
- episode.projectId = projectId;
56
- expect(episode.projectId).toEqual(projectId);
57
- });
58
- test("should set and get isManuallyCreated correctly", () => {
59
- const episode = new AlertEpisode();
60
- episode.isManuallyCreated = true;
61
- expect(episode.isManuallyCreated).toBe(true);
62
- });
63
- test("should set and get titleTemplate correctly", () => {
64
- const episode = new AlertEpisode();
65
- episode.titleTemplate = "{{alertTitle}} - {{alertCount}} alerts";
66
- expect(episode.titleTemplate).toBe("{{alertTitle}} - {{alertCount}} alerts");
67
- });
68
- test("should set and get descriptionTemplate correctly", () => {
69
- const episode = new AlertEpisode();
70
- episode.descriptionTemplate = "Episode with {{alertCount}} alerts";
71
- expect(episode.descriptionTemplate).toBe("Episode with {{alertCount}} alerts");
72
- });
73
- test("should set and get groupingKey correctly", () => {
74
- const episode = new AlertEpisode();
75
- episode.groupingKey = "monitor:abc123|severity:critical";
76
- expect(episode.groupingKey).toBe("monitor:abc123|severity:critical");
77
- });
78
- test("should set and get rootCause correctly", () => {
79
- const episode = new AlertEpisode();
80
- episode.rootCause = "Database connection pool exhausted";
81
- expect(episode.rootCause).toBe("Database connection pool exhausted");
82
- });
83
- test("should set and get lastAlertAddedAt correctly", () => {
84
- const episode = new AlertEpisode();
85
- const date = new Date();
86
- episode.lastAlertAddedAt = date;
87
- expect(episode.lastAlertAddedAt).toEqual(date);
88
- });
89
- test("should set and get resolvedAt correctly", () => {
90
- const episode = new AlertEpisode();
91
- const date = new Date();
92
- episode.resolvedAt = date;
93
- expect(episode.resolvedAt).toEqual(date);
94
- });
95
- test("should set and get assignedToUserId correctly", () => {
96
- const episode = new AlertEpisode();
97
- const userId = ObjectID.generate();
98
- episode.assignedToUserId = userId;
99
- expect(episode.assignedToUserId).toEqual(userId);
100
- });
101
- test("should set and get assignedToTeamId correctly", () => {
102
- const episode = new AlertEpisode();
103
- const teamId = ObjectID.generate();
104
- episode.assignedToTeamId = teamId;
105
- expect(episode.assignedToTeamId).toEqual(teamId);
106
- });
107
- });
108
- describe("Episode with full data", () => {
109
- test("should handle complete episode record", () => {
110
- const id = ObjectID.generate();
111
- const projectId = ObjectID.generate();
112
- const userId = ObjectID.generate();
113
- const teamId = ObjectID.generate();
114
- const ruleId = ObjectID.generate();
115
- const severityId = ObjectID.generate();
116
- const episode = new AlertEpisode(id);
117
- episode.projectId = projectId;
118
- episode.title = "Database Connection Issues";
119
- episode.description = "Multiple connection timeout alerts";
120
- episode.alertCount = 15;
121
- episode.isManuallyCreated = false;
122
- episode.groupingKey = "monitor:db-server|severity:critical";
123
- episode.titleTemplate = "DB Issues ({{alertCount}})";
124
- episode.descriptionTemplate = "{{alertCount}} connection alerts";
125
- episode.rootCause = "Network congestion";
126
- episode.assignedToUserId = userId;
127
- episode.assignedToTeamId = teamId;
128
- episode.alertGroupingRuleId = ruleId;
129
- episode.alertSeverityId = severityId;
130
- expect(episode.id).toEqual(id);
131
- expect(episode.projectId).toEqual(projectId);
132
- expect(episode.title).toBe("Database Connection Issues");
133
- expect(episode.description).toBe("Multiple connection timeout alerts");
134
- expect(episode.alertCount).toBe(15);
135
- expect(episode.isManuallyCreated).toBe(false);
136
- expect(episode.groupingKey).toBe("monitor:db-server|severity:critical");
137
- expect(episode.titleTemplate).toBe("DB Issues ({{alertCount}})");
138
- expect(episode.descriptionTemplate).toBe("{{alertCount}} connection alerts");
139
- expect(episode.rootCause).toBe("Network congestion");
140
- expect(episode.assignedToUserId).toEqual(userId);
141
- expect(episode.assignedToTeamId).toEqual(teamId);
142
- expect(episode.alertGroupingRuleId).toEqual(ruleId);
143
- expect(episode.alertSeverityId).toEqual(severityId);
144
- });
145
- });
146
- describe("Template rendering helper", () => {
147
- test("should replace {{alertCount}} in title template", () => {
148
- const template = "CPU Issues - {{alertCount}} alerts";
149
- const alertCount = 5;
150
- const result = template.replace(/\{\{alertCount\}\}/g, alertCount.toString());
151
- expect(result).toBe("CPU Issues - 5 alerts");
152
- });
153
- test("should replace multiple occurrences of {{alertCount}}", () => {
154
- const template = "{{alertCount}} alerts ({{alertCount}} total)";
155
- const alertCount = 7;
156
- const result = template.replace(/\{\{alertCount\}\}/g, alertCount.toString());
157
- expect(result).toBe("7 alerts (7 total)");
158
- });
159
- test("should handle template without placeholders", () => {
160
- const template = "Static Episode Title";
161
- const alertCount = 10;
162
- const result = template.replace(/\{\{alertCount\}\}/g, alertCount.toString());
163
- expect(result).toBe("Static Episode Title");
164
- });
165
- test("should handle empty template", () => {
166
- const template = "";
167
- const alertCount = 3;
168
- const result = template.replace(/\{\{alertCount\}\}/g, alertCount.toString());
169
- expect(result).toBe("");
170
- });
171
- });
172
- describe("AlertState comparison", () => {
173
- test("should correctly compare state orders for resolution check", () => {
174
- const currentOrder = 100;
175
- const resolvedOrder = 100;
176
- const isResolved = currentOrder >= resolvedOrder;
177
- expect(isResolved).toBe(true);
178
- });
179
- test("should correctly identify unresolved state", () => {
180
- const currentOrder = 50;
181
- const resolvedOrder = 100;
182
- const isResolved = currentOrder >= resolvedOrder;
183
- expect(isResolved).toBe(false);
184
- });
185
- test("should correctly identify acknowledged state", () => {
186
- const currentOrder = 50;
187
- const acknowledgedOrder = 50;
188
- const isAcknowledged = currentOrder >= acknowledgedOrder;
189
- expect(isAcknowledged).toBe(true);
190
- });
191
- });
192
- });
193
- //# sourceMappingURL=AlertEpisodeService.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AlertEpisodeService.test.js","sourceRoot":"","sources":["../../../../../Tests/Server/Services/AlertEpisodeService.test.ts"],"names":[],"mappings":"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"}
@@ -1,435 +0,0 @@
1
- import Alert from "../../../Models/DatabaseModels/Alert";
2
- import AlertEpisode from "../../../Models/DatabaseModels/AlertEpisode";
3
- import AlertGroupingRule from "../../../Models/DatabaseModels/AlertGroupingRule";
4
- import Monitor from "../../../Models/DatabaseModels/Monitor";
5
- import AlertSeverity from "../../../Models/DatabaseModels/AlertSeverity";
6
- import ObjectID from "../../../Types/ObjectID";
7
- import { describe, expect, test, beforeEach } from "@jest/globals";
8
- /**
9
- * These tests focus on model-level testing for alert grouping components.
10
- * Service integration tests require database connections and are covered
11
- * in E2E tests.
12
- */
13
- describe("AlertGroupingEngineService Models", () => {
14
- const projectId = ObjectID.generate();
15
- const alertId = ObjectID.generate();
16
- const monitorId = ObjectID.generate();
17
- const severityId = ObjectID.generate();
18
- const ruleId = ObjectID.generate();
19
- const episodeId = ObjectID.generate();
20
- let mockAlert;
21
- let mockMonitor;
22
- let mockSeverity;
23
- let mockRule;
24
- let mockEpisode;
25
- beforeEach(() => {
26
- // Setup mock monitor
27
- mockMonitor = new Monitor();
28
- mockMonitor._id = monitorId.toString();
29
- mockMonitor.name = "Test Monitor";
30
- // Setup mock severity
31
- mockSeverity = new AlertSeverity();
32
- mockSeverity._id = severityId.toString();
33
- mockSeverity.name = "Critical";
34
- // Setup mock alert
35
- mockAlert = new Alert();
36
- mockAlert._id = alertId.toString();
37
- mockAlert.id = alertId;
38
- mockAlert.projectId = projectId;
39
- mockAlert.title = "CPU Usage High";
40
- mockAlert.description = "CPU usage exceeded 90%";
41
- mockAlert.monitor = mockMonitor;
42
- mockAlert.monitorId = monitorId;
43
- mockAlert.alertSeverity = mockSeverity;
44
- mockAlert.alertSeverityId = severityId;
45
- // Setup mock rule
46
- mockRule = new AlertGroupingRule();
47
- mockRule._id = ruleId.toString();
48
- mockRule.id = ruleId;
49
- mockRule.name = "Critical Alerts Rule";
50
- mockRule.isEnabled = true;
51
- mockRule.priority = 1;
52
- mockRule.groupByMonitor = true;
53
- mockRule.enableTimeWindow = true;
54
- mockRule.timeWindowMinutes = 30;
55
- // Setup mock episode
56
- mockEpisode = new AlertEpisode();
57
- mockEpisode._id = episodeId.toString();
58
- mockEpisode.id = episodeId;
59
- mockEpisode.projectId = projectId;
60
- mockEpisode.title = "Test Episode";
61
- });
62
- describe("Alert Model for Grouping", () => {
63
- test("should have alertEpisodeId field", () => {
64
- const alert = new Alert();
65
- const episodeId = ObjectID.generate();
66
- alert.alertEpisodeId = episodeId;
67
- expect(alert.alertEpisodeId).toEqual(episodeId);
68
- });
69
- test("should store title and description for template variables", () => {
70
- expect(mockAlert.title).toBe("CPU Usage High");
71
- expect(mockAlert.description).toBe("CPU usage exceeded 90%");
72
- });
73
- test("should reference monitor for template variables", () => {
74
- var _a;
75
- expect((_a = mockAlert.monitor) === null || _a === void 0 ? void 0 : _a.name).toBe("Test Monitor");
76
- });
77
- test("should reference alert severity for template variables", () => {
78
- var _a;
79
- expect((_a = mockAlert.alertSeverity) === null || _a === void 0 ? void 0 : _a.name).toBe("Critical");
80
- });
81
- });
82
- describe("AlertGroupingRule Matching Criteria", () => {
83
- describe("Monitor Matching", () => {
84
- test("should support array of monitors for matching", () => {
85
- mockRule.monitors = [mockMonitor];
86
- expect(mockRule.monitors).toHaveLength(1);
87
- expect(mockRule.monitors[0]).toBe(mockMonitor);
88
- });
89
- test("should check if monitor exists in rule monitors", () => {
90
- const otherMonitor = new Monitor();
91
- otherMonitor._id = ObjectID.generate().toString();
92
- mockRule.monitors = [mockMonitor, otherMonitor];
93
- const monitorIds = mockRule.monitors.map((m) => {
94
- return m._id;
95
- });
96
- expect(monitorIds).toContain(mockMonitor._id);
97
- expect(monitorIds).toContain(otherMonitor._id);
98
- });
99
- });
100
- describe("Severity Matching", () => {
101
- test("should support array of severities for matching", () => {
102
- mockRule.alertSeverities = [mockSeverity];
103
- expect(mockRule.alertSeverities).toHaveLength(1);
104
- expect(mockRule.alertSeverities[0]).toBe(mockSeverity);
105
- });
106
- });
107
- describe("Pattern Matching", () => {
108
- test("should store title pattern for regex matching", () => {
109
- mockRule.alertTitlePattern = "CPU.*High";
110
- expect(mockRule.alertTitlePattern).toBe("CPU.*High");
111
- });
112
- test("should match alert title against pattern", () => {
113
- mockRule.alertTitlePattern = "CPU.*High";
114
- const pattern = new RegExp(mockRule.alertTitlePattern, "i");
115
- expect(pattern.test(mockAlert.title)).toBe(true);
116
- });
117
- test("should not match when pattern doesn't match", () => {
118
- mockRule.alertTitlePattern = "Memory.*Low";
119
- const pattern = new RegExp(mockRule.alertTitlePattern, "i");
120
- expect(pattern.test(mockAlert.title)).toBe(false);
121
- });
122
- test("should store description pattern for regex matching", () => {
123
- mockRule.alertDescriptionPattern = "CPU usage exceeded.*";
124
- expect(mockRule.alertDescriptionPattern).toBe("CPU usage exceeded.*");
125
- });
126
- test("should match alert description against pattern", () => {
127
- mockRule.alertDescriptionPattern = "CPU usage exceeded.*";
128
- const pattern = new RegExp(mockRule.alertDescriptionPattern, "i");
129
- expect(pattern.test(mockAlert.description)).toBe(true);
130
- });
131
- });
132
- });
133
- describe("Grouping Key Generation Logic", () => {
134
- test("should generate grouping key with monitor when groupByMonitor is true", () => {
135
- mockRule.groupByMonitor = true;
136
- mockRule.groupBySeverity = false;
137
- mockRule.groupByAlertTitle = false;
138
- const parts = [`rule:${mockRule._id}`];
139
- if (mockRule.groupByMonitor && mockAlert.monitorId) {
140
- parts.push(`monitor:${mockAlert.monitorId.toString()}`);
141
- }
142
- if (mockRule.groupBySeverity && mockAlert.alertSeverityId) {
143
- parts.push(`severity:${mockAlert.alertSeverityId.toString()}`);
144
- }
145
- if (mockRule.groupByAlertTitle && mockAlert.title) {
146
- parts.push(`title:${mockAlert.title}`);
147
- }
148
- const groupingKey = parts.join("|");
149
- expect(groupingKey).toContain(`rule:${mockRule._id}`);
150
- expect(groupingKey).toContain(`monitor:${mockAlert.monitorId.toString()}`);
151
- expect(groupingKey).not.toContain("severity:");
152
- expect(groupingKey).not.toContain("title:");
153
- });
154
- test("should generate grouping key with severity when groupBySeverity is true", () => {
155
- mockRule.groupByMonitor = false;
156
- mockRule.groupBySeverity = true;
157
- mockRule.groupByAlertTitle = false;
158
- const parts = [`rule:${mockRule._id}`];
159
- if (mockRule.groupByMonitor && mockAlert.monitorId) {
160
- parts.push(`monitor:${mockAlert.monitorId.toString()}`);
161
- }
162
- if (mockRule.groupBySeverity && mockAlert.alertSeverityId) {
163
- parts.push(`severity:${mockAlert.alertSeverityId.toString()}`);
164
- }
165
- if (mockRule.groupByAlertTitle && mockAlert.title) {
166
- parts.push(`title:${mockAlert.title}`);
167
- }
168
- const groupingKey = parts.join("|");
169
- expect(groupingKey).toContain(`rule:${mockRule._id}`);
170
- expect(groupingKey).not.toContain("monitor:");
171
- expect(groupingKey).toContain(`severity:${mockAlert.alertSeverityId.toString()}`);
172
- expect(groupingKey).not.toContain("title:");
173
- });
174
- test("should generate grouping key with all dimensions", () => {
175
- mockRule.groupByMonitor = true;
176
- mockRule.groupBySeverity = true;
177
- mockRule.groupByAlertTitle = true;
178
- const parts = [`rule:${mockRule._id}`];
179
- if (mockRule.groupByMonitor && mockAlert.monitorId) {
180
- parts.push(`monitor:${mockAlert.monitorId.toString()}`);
181
- }
182
- if (mockRule.groupBySeverity && mockAlert.alertSeverityId) {
183
- parts.push(`severity:${mockAlert.alertSeverityId.toString()}`);
184
- }
185
- if (mockRule.groupByAlertTitle && mockAlert.title) {
186
- parts.push(`title:${mockAlert.title}`);
187
- }
188
- const groupingKey = parts.join("|");
189
- expect(groupingKey).toContain(`rule:${mockRule._id}`);
190
- expect(groupingKey).toContain(`monitor:${mockAlert.monitorId.toString()}`);
191
- expect(groupingKey).toContain(`severity:${mockAlert.alertSeverityId.toString()}`);
192
- expect(groupingKey).toContain(`title:${mockAlert.title}`);
193
- });
194
- test("should produce identical label key regardless of label order (exact set match)", () => {
195
- // Simulates buildGroupingKey's label-sorting logic.
196
- const labelIdsA = ["lbl-c", "lbl-a", "lbl-b"];
197
- const labelIdsB = ["lbl-b", "lbl-c", "lbl-a"];
198
- const keyA = `alertLabels:${[...labelIdsA].sort().join(",")}`;
199
- const keyB = `alertLabels:${[...labelIdsB].sort().join(",")}`;
200
- expect(keyA).toBe(keyB);
201
- expect(keyA).toBe("alertLabels:lbl-a,lbl-b,lbl-c");
202
- });
203
- test("should produce different label keys for different label sets (exact set match)", () => {
204
- // Alerts with [A,B] and [A,C] must NOT group together under exact set match.
205
- const keyAB = `alertLabels:${["lbl-a", "lbl-b"].sort().join(",")}`;
206
- const keyAC = `alertLabels:${["lbl-a", "lbl-c"].sort().join(",")}`;
207
- expect(keyAB).not.toBe(keyAC);
208
- });
209
- test("should emit empty label key when alert has no labels", () => {
210
- // Alerts with no labels should produce the same (empty) label key.
211
- const labelIds = [];
212
- const key = `alertLabels:${[...labelIds].sort().join(",")}`;
213
- expect(key).toBe("alertLabels:");
214
- });
215
- });
216
- describe("Time Window Configuration", () => {
217
- test("should store enableTimeWindow flag", () => {
218
- mockRule.enableTimeWindow = true;
219
- expect(mockRule.enableTimeWindow).toBe(true);
220
- });
221
- test("should store timeWindowMinutes", () => {
222
- mockRule.timeWindowMinutes = 60;
223
- expect(mockRule.timeWindowMinutes).toBe(60);
224
- });
225
- test("should store enableReopenWindow flag", () => {
226
- mockRule.enableReopenWindow = true;
227
- expect(mockRule.enableReopenWindow).toBe(true);
228
- });
229
- test("should store reopenWindowMinutes", () => {
230
- mockRule.reopenWindowMinutes = 30;
231
- expect(mockRule.reopenWindowMinutes).toBe(30);
232
- });
233
- test("should calculate if episode is within time window", () => {
234
- const windowMinutes = 30;
235
- const episodeCreatedAt = new Date(Date.now() - 15 * 60 * 1000); // 15 minutes ago
236
- const windowStart = new Date(Date.now() - windowMinutes * 60 * 1000);
237
- const isWithinWindow = episodeCreatedAt >= windowStart;
238
- expect(isWithinWindow).toBe(true);
239
- });
240
- test("should calculate if episode is outside time window", () => {
241
- const windowMinutes = 30;
242
- const episodeCreatedAt = new Date(Date.now() - 45 * 60 * 1000); // 45 minutes ago
243
- const windowStart = new Date(Date.now() - windowMinutes * 60 * 1000);
244
- const isWithinWindow = episodeCreatedAt >= windowStart;
245
- expect(isWithinWindow).toBe(false);
246
- });
247
- });
248
- describe("Reopen Window Logic", () => {
249
- test("should identify recently resolved episode for reopening", () => {
250
- const reopenWindowMinutes = 30;
251
- const resolvedAt = new Date(Date.now() - 10 * 60 * 1000); // 10 minutes ago
252
- const reopenWindowStart = new Date(Date.now() - reopenWindowMinutes * 60 * 1000);
253
- mockEpisode.resolvedAt = resolvedAt;
254
- const canReopen = mockEpisode.resolvedAt >= reopenWindowStart;
255
- expect(canReopen).toBe(true);
256
- });
257
- test("should not reopen episode outside reopen window", () => {
258
- const reopenWindowMinutes = 30;
259
- const resolvedAt = new Date(Date.now() - 45 * 60 * 1000); // 45 minutes ago
260
- const reopenWindowStart = new Date(Date.now() - reopenWindowMinutes * 60 * 1000);
261
- mockEpisode.resolvedAt = resolvedAt;
262
- const canReopen = mockEpisode.resolvedAt >= reopenWindowStart;
263
- expect(canReopen).toBe(false);
264
- });
265
- });
266
- describe("Rule Priority", () => {
267
- test("should sort rules by priority", () => {
268
- const rule1 = new AlertGroupingRule();
269
- rule1.priority = 10;
270
- const rule2 = new AlertGroupingRule();
271
- rule2.priority = 1;
272
- const rule3 = new AlertGroupingRule();
273
- rule3.priority = 5;
274
- const rules = [rule1, rule2, rule3];
275
- rules.sort((a, b) => {
276
- return (a.priority || 0) - (b.priority || 0);
277
- });
278
- expect(rules[0].priority).toBe(1);
279
- expect(rules[1].priority).toBe(5);
280
- expect(rules[2].priority).toBe(10);
281
- });
282
- });
283
- });
284
- describe("Template Variable Replacement Logic", () => {
285
- const alertId = ObjectID.generate();
286
- const monitorId = ObjectID.generate();
287
- const severityId = ObjectID.generate();
288
- let mockAlert;
289
- let mockMonitor;
290
- let mockSeverity;
291
- beforeEach(() => {
292
- mockMonitor = new Monitor();
293
- mockMonitor._id = monitorId.toString();
294
- mockMonitor.name = "API Server";
295
- mockSeverity = new AlertSeverity();
296
- mockSeverity._id = severityId.toString();
297
- mockSeverity.name = "Critical";
298
- mockAlert = new Alert();
299
- mockAlert._id = alertId.toString();
300
- mockAlert.id = alertId;
301
- mockAlert.title = "High CPU Usage";
302
- mockAlert.description = "CPU usage is above threshold";
303
- mockAlert.monitor = mockMonitor;
304
- mockAlert.alertSeverity = mockSeverity;
305
- });
306
- describe("Static Variable Replacement", () => {
307
- test("should replace {{alertTitle}} with alert title", () => {
308
- const template = "Episode: {{alertTitle}}";
309
- const result = template.replace(/\{\{alertTitle\}\}/g, mockAlert.title);
310
- expect(result).toBe("Episode: High CPU Usage");
311
- });
312
- test("should replace {{alertDescription}} with alert description", () => {
313
- const template = "Details: {{alertDescription}}";
314
- const result = template.replace(/\{\{alertDescription\}\}/g, mockAlert.description);
315
- expect(result).toBe("Details: CPU usage is above threshold");
316
- });
317
- test("should replace {{monitorName}} with monitor name", () => {
318
- var _a;
319
- const template = "Alert on {{monitorName}}";
320
- const result = template.replace(/\{\{monitorName\}\}/g, ((_a = mockAlert.monitor) === null || _a === void 0 ? void 0 : _a.name) || "");
321
- expect(result).toBe("Alert on API Server");
322
- });
323
- test("should replace {{alertSeverity}} with severity name", () => {
324
- var _a;
325
- const template = "{{alertSeverity}} Alert Episode";
326
- const result = template.replace(/\{\{alertSeverity\}\}/g, ((_a = mockAlert.alertSeverity) === null || _a === void 0 ? void 0 : _a.name) || "");
327
- expect(result).toBe("Critical Alert Episode");
328
- });
329
- test("should replace multiple variables in same template", () => {
330
- var _a, _b;
331
- let template = "{{alertSeverity}}: {{alertTitle}} on {{monitorName}}";
332
- template = template.replace(/\{\{alertTitle\}\}/g, mockAlert.title);
333
- template = template.replace(/\{\{alertSeverity\}\}/g, ((_a = mockAlert.alertSeverity) === null || _a === void 0 ? void 0 : _a.name) || "");
334
- template = template.replace(/\{\{monitorName\}\}/g, ((_b = mockAlert.monitor) === null || _b === void 0 ? void 0 : _b.name) || "");
335
- expect(template).toBe("Critical: High CPU Usage on API Server");
336
- });
337
- });
338
- describe("Dynamic Variable Replacement", () => {
339
- test("should replace {{alertCount}} with count", () => {
340
- const template = "Episode ({{alertCount}} alerts)";
341
- const alertCount = 5;
342
- const result = template.replace(/\{\{alertCount\}\}/g, alertCount.toString());
343
- expect(result).toBe("Episode (5 alerts)");
344
- });
345
- test("should preserve {{alertCount}} placeholder in preprocessed template", () => {
346
- let template = "{{alertTitle}} - {{alertCount}} alerts";
347
- // Preprocess: replace static variables only
348
- template = template.replace(/\{\{alertTitle\}\}/g, mockAlert.title);
349
- // {{alertCount}} should still be present
350
- expect(template).toBe("High CPU Usage - {{alertCount}} alerts");
351
- expect(template).toContain("{{alertCount}}");
352
- });
353
- test("should render final title with dynamic values", () => {
354
- // Start with preprocessed template (static vars already replaced)
355
- const preprocessedTemplate = "High CPU Usage - {{alertCount}} alerts";
356
- const alertCount = 10;
357
- // Render dynamic values
358
- const finalTitle = preprocessedTemplate.replace(/\{\{alertCount\}\}/g, alertCount.toString());
359
- expect(finalTitle).toBe("High CPU Usage - 10 alerts");
360
- });
361
- });
362
- describe("Unknown Placeholder Handling", () => {
363
- test("should remove unknown placeholders", () => {
364
- let template = "{{alertTitle}} {{unknownVar}} Episode";
365
- template = template.replace(/\{\{alertTitle\}\}/g, mockAlert.title);
366
- // Remove any remaining placeholders
367
- template = template.replace(/\{\{[^}]+\}\}/g, "");
368
- // Clean up extra spaces
369
- template = template.replace(/\s+/g, " ").trim();
370
- expect(template).toBe("High CPU Usage Episode");
371
- });
372
- });
373
- describe("Default Title Generation", () => {
374
- test("should use monitor name when no template provided", () => {
375
- var _a;
376
- const defaultTitle = ((_a = mockAlert.monitor) === null || _a === void 0 ? void 0 : _a.name) || mockAlert.title || "Untitled Episode";
377
- expect(defaultTitle).toBe("API Server");
378
- });
379
- test("should use alert title when no monitor", () => {
380
- var _a;
381
- // Create alert without monitor
382
- const alertNoMonitor = new Alert();
383
- alertNoMonitor._id = alertId.toString();
384
- alertNoMonitor.id = alertId;
385
- alertNoMonitor.title = "High CPU Usage";
386
- // monitor is intentionally not set
387
- const defaultTitle = ((_a = alertNoMonitor.monitor) === null || _a === void 0 ? void 0 : _a.name) ||
388
- alertNoMonitor.title ||
389
- "Untitled Episode";
390
- expect(defaultTitle).toBe("High CPU Usage");
391
- });
392
- test("should use generic title when no monitor and no alert title", () => {
393
- var _a;
394
- // Create minimal alert without monitor and title
395
- const alertMinimal = new Alert();
396
- alertMinimal._id = alertId.toString();
397
- alertMinimal.id = alertId;
398
- // monitor and title are intentionally not set
399
- const defaultTitle = ((_a = alertMinimal.monitor) === null || _a === void 0 ? void 0 : _a.name) || alertMinimal.title || "Untitled Episode";
400
- expect(defaultTitle).toBe("Untitled Episode");
401
- });
402
- });
403
- });
404
- describe("AlertEpisode Template Storage", () => {
405
- test("should store titleTemplate for dynamic re-rendering", () => {
406
- const episode = new AlertEpisode();
407
- episode.titleTemplate = "High CPU Usage - {{alertCount}} alerts";
408
- expect(episode.titleTemplate).toBe("High CPU Usage - {{alertCount}} alerts");
409
- });
410
- test("should store descriptionTemplate for dynamic re-rendering", () => {
411
- const episode = new AlertEpisode();
412
- episode.descriptionTemplate =
413
- "Episode contains {{alertCount}} related alerts";
414
- expect(episode.descriptionTemplate).toBe("Episode contains {{alertCount}} related alerts");
415
- });
416
- test("should store both title and titleTemplate", () => {
417
- const episode = new AlertEpisode();
418
- episode.title = "High CPU Usage - 1 alerts";
419
- episode.titleTemplate = "High CPU Usage - {{alertCount}} alerts";
420
- expect(episode.title).toBe("High CPU Usage - 1 alerts");
421
- expect(episode.titleTemplate).toBe("High CPU Usage - {{alertCount}} alerts");
422
- });
423
- test("should re-render title from template when alert count changes", () => {
424
- const episode = new AlertEpisode();
425
- episode.titleTemplate = "High CPU Usage - {{alertCount}} alerts";
426
- episode.alertCount = 1;
427
- episode.title = episode.titleTemplate.replace(/\{\{alertCount\}\}/g, episode.alertCount.toString());
428
- expect(episode.title).toBe("High CPU Usage - 1 alerts");
429
- // Simulate adding more alerts
430
- episode.alertCount = 5;
431
- episode.title = episode.titleTemplate.replace(/\{\{alertCount\}\}/g, episode.alertCount.toString());
432
- expect(episode.title).toBe("High CPU Usage - 5 alerts");
433
- });
434
- });
435
- //# sourceMappingURL=AlertGroupingEngineService.test.js.map