@oneuptime/common 11.5.9 → 11.5.11

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 (379) hide show
  1. package/Models/AnalyticsModels/Index.ts +13 -0
  2. package/Models/AnalyticsModels/MetricItemAggMV1mByContainer.ts +178 -0
  3. package/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.ts +179 -0
  4. package/Models/AnalyticsModels/MetricItemAggMV1mByService.ts +179 -0
  5. package/Models/AnalyticsModels/NetworkFlow.ts +397 -0
  6. package/Models/DatabaseModels/EnterpriseLicenseInstance.ts +18 -0
  7. package/Models/DatabaseModels/GlobalConfig.ts +36 -0
  8. package/Models/DatabaseModels/Index.ts +2 -0
  9. package/Models/DatabaseModels/MarketingConversion.ts +198 -0
  10. package/Models/DatabaseModels/MetricSavedView.ts +34 -0
  11. package/Models/DatabaseModels/MetricType.ts +74 -0
  12. package/Models/DatabaseModels/NetworkDevice.ts +332 -0
  13. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +113 -0
  14. package/Models/DatabaseModels/NetworkInterface.ts +58 -0
  15. package/Models/DatabaseModels/Project.ts +37 -0
  16. package/Models/DatabaseModels/User.ts +37 -0
  17. package/Server/API/BaseAnalyticsAPI.ts +23 -0
  18. package/Server/API/EnterpriseLicenseAPI.ts +14 -0
  19. package/Server/EnvironmentConfig.ts +84 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.ts +38 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.ts +28 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.ts +108 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.ts +31 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.ts +29 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.ts +35 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1784401962564-MigrationName.ts +101 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +14 -0
  28. package/Server/Services/AnalyticsDatabaseService.ts +70 -1
  29. package/Server/Services/IncidentService.ts +13 -0
  30. package/Server/Services/Index.ts +10 -0
  31. package/Server/Services/MarketingConversionService.ts +10 -0
  32. package/Server/Services/MetricItemAggMV1mByContainerService.ts +31 -0
  33. package/Server/Services/MetricItemAggMV1mByK8sClusterService.ts +31 -0
  34. package/Server/Services/MetricItemAggMV1mByServiceService.ts +31 -0
  35. package/Server/Services/MetricService.ts +970 -122
  36. package/Server/Services/MonitorService.ts +14 -0
  37. package/Server/Services/NetworkDeviceOwnerTeamService.ts +42 -0
  38. package/Server/Services/NetworkDeviceOwnerUserService.ts +106 -0
  39. package/Server/Services/NetworkFlowService.ts +11 -0
  40. package/Server/Services/OnCallDutyPolicyService.ts +11 -1
  41. package/Server/Services/ProjectService.ts +136 -0
  42. package/Server/Services/SpanService.ts +13 -9
  43. package/Server/Services/StatusPageService.ts +10 -0
  44. package/Server/Services/TeamMemberService.ts +11 -0
  45. package/Server/Services/UserService.ts +59 -0
  46. package/Server/Types/AnalyticsDatabase/AggregateBy.ts +37 -7
  47. package/Server/Utils/Attribution.ts +99 -0
  48. package/Server/Utils/Marketing/ConversionUploadProvider.ts +103 -0
  49. package/Server/Utils/Marketing/ConversionUploadProviders.ts +22 -0
  50. package/Server/Utils/Marketing/Providers/GoogleAds.ts +270 -0
  51. package/Server/Utils/Marketing/Providers/LinkedIn.ts +147 -0
  52. package/Server/Utils/Marketing/Providers/Meta.ts +148 -0
  53. package/Server/Utils/Marketing/Providers/MicrosoftAds.ts +196 -0
  54. package/Server/Utils/Marketing/Providers/Reddit.ts +178 -0
  55. package/Server/Utils/Monitor/MonitorAlert.ts +71 -7
  56. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +31 -19
  57. package/Server/Utils/Monitor/MonitorIncident.ts +71 -7
  58. package/Server/Utils/Monitor/MonitorMetricUtil.ts +57 -0
  59. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +94 -0
  60. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +15 -0
  61. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +125 -14
  62. package/Server/Utils/ProductAnalytics.ts +133 -0
  63. package/Server/Utils/Telemetry/Telemetry.ts +39 -0
  64. package/Server/Utils/Telemetry/TelemetryEntity.ts +21 -0
  65. package/Tests/Server/API/BaseAnalyticsAPI.test.ts +72 -0
  66. package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +9 -1
  67. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +21 -2
  68. package/Tests/Server/Services/MetricEntityMVKeyParity.test.ts +173 -0
  69. package/Tests/Server/Services/MetricServiceAggregate.test.ts +1391 -0
  70. package/Tests/Server/Services/NetworkDeviceOwnerServices.test.ts +260 -0
  71. package/Tests/Server/Utils/Monitor/MonitorTemplateUtilNetworkDevice.test.ts +389 -0
  72. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +764 -0
  73. package/Tests/Types/BaseDatabase/AggregationIntervalUtil.test.ts +111 -2
  74. package/Tests/Types/Database/EndsWith.test.ts +64 -0
  75. package/Tests/Types/Database/GreaterThan.test.ts +62 -0
  76. package/Tests/Types/Database/GreaterThanOrEqual.test.ts +65 -0
  77. package/Tests/Types/Database/GreaterThanOrNull.test.ts +63 -0
  78. package/Tests/Types/Database/Includes.test.ts +65 -0
  79. package/Tests/Types/Database/IncludesAll.test.ts +65 -0
  80. package/Tests/Types/Database/IncludesNone.test.ts +65 -0
  81. package/Tests/Types/Database/IsNull.test.ts +44 -0
  82. package/Tests/Types/Database/LessThan.test.ts +62 -0
  83. package/Tests/Types/Database/LessThanOrEqual.test.ts +62 -0
  84. package/Tests/Types/Database/LessThanOrNull.test.ts +62 -0
  85. package/Tests/Types/Database/MultiSearch.test.ts +81 -0
  86. package/Tests/Types/Database/NotContains.test.ts +64 -0
  87. package/Tests/Types/Database/NotNull.test.ts +44 -0
  88. package/Tests/Types/Database/StartsWith.test.ts +64 -0
  89. package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +83 -1
  90. package/Tests/Types/Monitor/SnmpV3EnumParsing.test.ts +247 -0
  91. package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +263 -0
  92. package/Tests/UI/Components/XAxis.test.ts +5 -3
  93. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +76 -0
  94. package/Tests/Utils/Metrics/MetricExplorerUrl.test.ts +622 -0
  95. package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +474 -0
  96. package/Tests/Utils/Telemetry/HeartbeatAvailability.test.ts +52 -4
  97. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +11 -0
  98. package/Types/BaseDatabase/AggregateBy.ts +31 -2
  99. package/Types/BaseDatabase/AggregatedResult.ts +22 -0
  100. package/Types/BaseDatabase/AggregationInterval.ts +11 -0
  101. package/Types/BaseDatabase/AggregationIntervalUtil.ts +30 -5
  102. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +16 -0
  103. package/Types/Email/EmailTemplateType.ts +3 -0
  104. package/Types/Marketing/MarketingConversion.ts +11 -0
  105. package/Types/Metrics/MetricQueryConfigData.ts +21 -0
  106. package/Types/Metrics/MetricQueryData.ts +8 -0
  107. package/Types/Metrics/MetricViewData.ts +8 -0
  108. package/Types/Monitor/MonitorMetricType.ts +8 -0
  109. package/Types/Monitor/MonitorStep.ts +9 -0
  110. package/Types/Monitor/MonitorStepSqlMonitor.ts +12 -0
  111. package/Types/Monitor/MonitorType.ts +2 -1
  112. package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +17 -12
  113. package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +13 -0
  114. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +37 -3
  115. package/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.ts +46 -0
  116. package/Types/Monitor/SnmpMonitor/SnmpEntityInfo.ts +15 -0
  117. package/Types/Monitor/SnmpMonitor/SnmpInterface.ts +8 -0
  118. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +17 -8
  119. package/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.ts +53 -0
  120. package/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.ts +43 -0
  121. package/Types/Monitor/SnmpMonitor/SnmpSystemInfo.ts +16 -0
  122. package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +119 -3
  123. package/Types/NetFlow/NetworkFlowRecord.ts +25 -0
  124. package/Types/Syslog/SyslogMessage.ts +18 -0
  125. package/Types/Telemetry/TelemetrySavedViewState.ts +9 -0
  126. package/Types/Telemetry/TelemetrySavedViewType.ts +12 -0
  127. package/UI/Components/Charts/Area/AreaChart.tsx +51 -0
  128. package/UI/Components/Charts/Bar/BarChart.tsx +51 -1
  129. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +97 -26
  130. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +328 -1
  131. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +115 -0
  132. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +328 -1
  133. package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +7 -0
  134. package/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.ts +15 -0
  135. package/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.ts +13 -0
  136. package/UI/Components/Charts/Line/LineChart.tsx +51 -0
  137. package/UI/Components/Charts/Types/ReferenceRegionProps.ts +12 -0
  138. package/UI/Components/Charts/Types/TimeReferenceLineProps.ts +12 -0
  139. package/UI/Components/Charts/Types/XAxis/XAxisPrecision.ts +1 -0
  140. package/UI/Components/Charts/Utils/DataPoint.ts +0 -0
  141. package/UI/Components/Charts/Utils/TimeAnnotation.ts +169 -0
  142. package/UI/Components/Charts/Utils/XAxis.ts +28 -4
  143. package/UI/Components/Icon/Icon.tsx +33 -13
  144. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +9 -0
  145. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +67 -0
  146. package/UI/Components/Page/ModelPage.tsx +6 -1
  147. package/UI/Components/TelemetryViewer/components/SavedViewsDropdown.tsx +33 -4
  148. package/UI/Styles/Theme.css +10 -0
  149. package/UI/Utils/User.ts +41 -2
  150. package/Utils/Analytics.ts +8 -6
  151. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +74 -0
  152. package/Utils/Metrics/MetricExplorerUrl.ts +771 -0
  153. package/Utils/Metrics/MetricFormulaEvaluator.ts +410 -46
  154. package/Utils/Monitor/NetworkTopologyUtil.ts +261 -49
  155. package/Utils/ValueFormatter.ts +22 -1
  156. package/build/dist/Models/AnalyticsModels/Index.js +13 -0
  157. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  158. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js +159 -0
  159. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js.map +1 -0
  160. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js +158 -0
  161. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js.map +1 -0
  162. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js +160 -0
  163. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js.map +1 -0
  164. package/build/dist/Models/AnalyticsModels/NetworkFlow.js +351 -0
  165. package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -0
  166. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js +19 -0
  167. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js.map +1 -1
  168. package/build/dist/Models/DatabaseModels/GlobalConfig.js +38 -0
  169. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  170. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  171. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  172. package/build/dist/Models/DatabaseModels/MarketingConversion.js +219 -0
  173. package/build/dist/Models/DatabaseModels/MarketingConversion.js.map +1 -0
  174. package/build/dist/Models/DatabaseModels/MetricSavedView.js +35 -0
  175. package/build/dist/Models/DatabaseModels/MetricSavedView.js.map +1 -1
  176. package/build/dist/Models/DatabaseModels/MetricType.js +76 -0
  177. package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
  178. package/build/dist/Models/DatabaseModels/NetworkDevice.js +341 -0
  179. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  180. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +116 -0
  181. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  182. package/build/dist/Models/DatabaseModels/NetworkInterface.js +60 -0
  183. package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
  184. package/build/dist/Models/DatabaseModels/Project.js +38 -0
  185. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  186. package/build/dist/Models/DatabaseModels/User.js +38 -0
  187. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  188. package/build/dist/Server/API/BaseAnalyticsAPI.js +19 -0
  189. package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
  190. package/build/dist/Server/API/EnterpriseLicenseAPI.js +8 -0
  191. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  192. package/build/dist/Server/EnvironmentConfig.js +51 -0
  193. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  194. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js +27 -0
  195. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js.map +1 -0
  196. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js +21 -0
  197. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js.map +1 -0
  198. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js +47 -0
  199. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js.map +1 -0
  200. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js +16 -0
  201. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js.map +1 -0
  202. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js +18 -0
  203. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js.map +1 -0
  204. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js +20 -0
  205. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js.map +1 -0
  206. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784401962564-MigrationName.js +40 -0
  207. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784401962564-MigrationName.js.map +1 -0
  208. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +14 -0
  209. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  210. package/build/dist/Server/Services/AnalyticsDatabaseService.js +58 -4
  211. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  212. package/build/dist/Server/Services/IncidentService.js +12 -0
  213. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  214. package/build/dist/Server/Services/Index.js +10 -0
  215. package/build/dist/Server/Services/Index.js.map +1 -1
  216. package/build/dist/Server/Services/MarketingConversionService.js +9 -0
  217. package/build/dist/Server/Services/MarketingConversionService.js.map +1 -0
  218. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js +29 -0
  219. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js.map +1 -0
  220. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js +29 -0
  221. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js.map +1 -0
  222. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js +29 -0
  223. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js.map +1 -0
  224. package/build/dist/Server/Services/MetricService.js +761 -125
  225. package/build/dist/Server/Services/MetricService.js.map +1 -1
  226. package/build/dist/Server/Services/MonitorService.js +18 -5
  227. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  228. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js +44 -0
  229. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js.map +1 -1
  230. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js +88 -0
  231. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js.map +1 -1
  232. package/build/dist/Server/Services/NetworkFlowService.js +9 -0
  233. package/build/dist/Server/Services/NetworkFlowService.js.map +1 -0
  234. package/build/dist/Server/Services/OnCallDutyPolicyService.js +15 -6
  235. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  236. package/build/dist/Server/Services/ProjectService.js +107 -6
  237. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  238. package/build/dist/Server/Services/SpanService.js +8 -6
  239. package/build/dist/Server/Services/SpanService.js.map +1 -1
  240. package/build/dist/Server/Services/StatusPageService.js +10 -0
  241. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  242. package/build/dist/Server/Services/TeamMemberService.js +11 -0
  243. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  244. package/build/dist/Server/Services/UserService.js +52 -0
  245. package/build/dist/Server/Services/UserService.js.map +1 -1
  246. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +33 -7
  247. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
  248. package/build/dist/Server/Utils/Attribution.js +74 -0
  249. package/build/dist/Server/Utils/Attribution.js.map +1 -0
  250. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js +40 -0
  251. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js.map +1 -0
  252. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js +20 -0
  253. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js.map +1 -0
  254. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js +177 -0
  255. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js.map +1 -0
  256. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js +113 -0
  257. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js.map +1 -0
  258. package/build/dist/Server/Utils/Marketing/Providers/Meta.js +109 -0
  259. package/build/dist/Server/Utils/Marketing/Providers/Meta.js.map +1 -0
  260. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js +130 -0
  261. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js.map +1 -0
  262. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js +126 -0
  263. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js.map +1 -0
  264. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +53 -9
  265. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  266. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -10
  267. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  268. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +54 -11
  269. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  270. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +43 -3
  271. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  272. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +68 -0
  273. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  274. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +15 -0
  275. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  276. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +100 -15
  277. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  278. package/build/dist/Server/Utils/ProductAnalytics.js +111 -0
  279. package/build/dist/Server/Utils/ProductAnalytics.js.map +1 -0
  280. package/build/dist/Server/Utils/Telemetry/Telemetry.js +32 -5
  281. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  282. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -0
  283. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  284. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +11 -0
  285. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  286. package/build/dist/Types/BaseDatabase/AggregationInterval.js +11 -0
  287. package/build/dist/Types/BaseDatabase/AggregationInterval.js.map +1 -1
  288. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +33 -5
  289. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
  290. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  291. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  292. package/build/dist/Types/Marketing/MarketingConversion.js +13 -0
  293. package/build/dist/Types/Marketing/MarketingConversion.js.map +1 -0
  294. package/build/dist/Types/Monitor/MonitorMetricType.js +7 -0
  295. package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
  296. package/build/dist/Types/Monitor/MonitorStep.js +6 -0
  297. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  298. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +3 -0
  299. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
  300. package/build/dist/Types/Monitor/MonitorType.js +2 -1
  301. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  302. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js +2 -0
  303. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js.map +1 -0
  304. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js +41 -0
  305. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js.map +1 -1
  306. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js +2 -0
  307. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js.map +1 -0
  308. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js +48 -0
  309. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js.map +1 -1
  310. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js +38 -0
  311. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js.map +1 -1
  312. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js +2 -0
  313. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js.map +1 -0
  314. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +96 -3
  315. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
  316. package/build/dist/Types/NetFlow/NetworkFlowRecord.js +2 -0
  317. package/build/dist/Types/NetFlow/NetworkFlowRecord.js.map +1 -0
  318. package/build/dist/Types/Syslog/SyslogMessage.js +2 -0
  319. package/build/dist/Types/Syslog/SyslogMessage.js.map +1 -0
  320. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js +0 -7
  321. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js.map +1 -1
  322. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js +13 -0
  323. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js.map +1 -0
  324. package/build/dist/UI/Components/Charts/Area/AreaChart.js +25 -1
  325. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  326. package/build/dist/UI/Components/Charts/Bar/BarChart.js +26 -2
  327. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  328. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +36 -12
  329. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  330. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +208 -6
  331. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  332. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +52 -3
  333. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  334. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +208 -6
  335. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  336. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +6 -1
  337. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -1
  338. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js +2 -0
  339. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js.map +1 -0
  340. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js +2 -0
  341. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js.map +1 -0
  342. package/build/dist/UI/Components/Charts/Line/LineChart.js +25 -1
  343. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  344. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js +2 -0
  345. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js.map +1 -0
  346. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js +2 -0
  347. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js.map +1 -0
  348. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js +1 -0
  349. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js.map +1 -1
  350. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +0 -0
  351. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
  352. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +121 -0
  353. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -0
  354. package/build/dist/UI/Components/Charts/Utils/XAxis.js +27 -4
  355. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  356. package/build/dist/UI/Components/Icon/Icon.js +15 -8
  357. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  358. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  359. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +58 -0
  360. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  361. package/build/dist/UI/Components/Page/ModelPage.js +7 -1
  362. package/build/dist/UI/Components/Page/ModelPage.js.map +1 -1
  363. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js +10 -4
  364. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js.map +1 -1
  365. package/build/dist/UI/Utils/User.js +35 -2
  366. package/build/dist/UI/Utils/User.js.map +1 -1
  367. package/build/dist/Utils/Analytics.js +8 -5
  368. package/build/dist/Utils/Analytics.js.map +1 -1
  369. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +57 -0
  370. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  371. package/build/dist/Utils/Metrics/MetricExplorerUrl.js +418 -0
  372. package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -0
  373. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +296 -37
  374. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -1
  375. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +176 -40
  376. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  377. package/build/dist/Utils/ValueFormatter.js +20 -1
  378. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  379. package/package.json +4 -3
@@ -0,0 +1,62 @@
1
+ import LessThan from "../../../Types/BaseDatabase/LessThan";
2
+ import BadDataException from "../../../Types/Exception/BadDataException";
3
+ import { JSONObject } from "../../../Types/JSON";
4
+ import { describe, expect, it } from "@jest/globals";
5
+
6
+ describe("LessThan", () => {
7
+ it("should create a LessThan object with a valid value", () => {
8
+ const value: number = 42;
9
+ const obj: LessThan<number> = new LessThan<number>(value);
10
+ expect(obj.value).toBe(value);
11
+ });
12
+
13
+ it("should get and set the value property", () => {
14
+ const obj: LessThan<number> = new LessThan<number>(1);
15
+ obj.value = 2;
16
+ expect(obj.value).toBe(2);
17
+ });
18
+
19
+ it("should return the correct string representation using toString", () => {
20
+ const obj: LessThan<number> = new LessThan<number>(42);
21
+ expect(obj.toString()).toBe("42");
22
+ });
23
+
24
+ it("should generate the correct JSON representation using toJSON", () => {
25
+ const obj: LessThan<number> = new LessThan<number>(42);
26
+ const expectedJSON: JSONObject = {
27
+ _type: "LessThan",
28
+ value: "42",
29
+ };
30
+ expect(obj.toJSON()).toEqual(expectedJSON);
31
+ });
32
+
33
+ it("should create a LessThan object from valid JSON input", () => {
34
+ const jsonInput: JSONObject = {
35
+ _type: "LessThan",
36
+ value: "42",
37
+ };
38
+ const obj: LessThan<number> = LessThan.fromJSON(jsonInput);
39
+ expect(obj.value).toBe("42");
40
+ });
41
+
42
+ it("should throw a BadDataException when using invalid JSON input", () => {
43
+ const jsonInput: JSONObject = {
44
+ _type: "InvalidType",
45
+ value: "42",
46
+ };
47
+ expect(() => {
48
+ return LessThan.fromJSON(jsonInput);
49
+ }).toThrow(BadDataException);
50
+ });
51
+
52
+ it("should be an instance of LessThan", () => {
53
+ const obj: LessThan<number> = new LessThan<number>(42);
54
+ expect(obj).toBeInstanceOf(LessThan);
55
+ });
56
+
57
+ it("should handle date values", () => {
58
+ const value: Date = new Date("2023-01-01");
59
+ const obj: LessThan<Date> = new LessThan<Date>(value);
60
+ expect(obj.value).toBe(value);
61
+ });
62
+ });
@@ -0,0 +1,62 @@
1
+ import LessThanOrEqual from "../../../Types/BaseDatabase/LessThanOrEqual";
2
+ import BadDataException from "../../../Types/Exception/BadDataException";
3
+ import { JSONObject } from "../../../Types/JSON";
4
+ import { describe, expect, it } from "@jest/globals";
5
+
6
+ describe("LessThanOrEqual", () => {
7
+ it("should create a LessThanOrEqual object with a valid value", () => {
8
+ const value: number = 42;
9
+ const obj: LessThanOrEqual<number> = new LessThanOrEqual<number>(value);
10
+ expect(obj.value).toBe(value);
11
+ });
12
+
13
+ it("should get and set the value property", () => {
14
+ const obj: LessThanOrEqual<number> = new LessThanOrEqual<number>(1);
15
+ obj.value = 2;
16
+ expect(obj.value).toBe(2);
17
+ });
18
+
19
+ it("should return the correct string representation using toString", () => {
20
+ const obj: LessThanOrEqual<number> = new LessThanOrEqual<number>(42);
21
+ expect(obj.toString()).toBe("42");
22
+ });
23
+
24
+ it("should generate the correct JSON representation using toJSON", () => {
25
+ const obj: LessThanOrEqual<number> = new LessThanOrEqual<number>(42);
26
+ const expectedJSON: JSONObject = {
27
+ _type: "LessThanOrEqual",
28
+ value: "42",
29
+ };
30
+ expect(obj.toJSON()).toEqual(expectedJSON);
31
+ });
32
+
33
+ it("should create a LessThanOrEqual object from valid JSON input", () => {
34
+ const jsonInput: JSONObject = {
35
+ _type: "LessThanOrEqual",
36
+ value: "42",
37
+ };
38
+ const obj: LessThanOrEqual<number> = LessThanOrEqual.fromJSON(jsonInput);
39
+ expect(obj.value).toBe("42");
40
+ });
41
+
42
+ it("should throw a BadDataException when using invalid JSON input", () => {
43
+ const jsonInput: JSONObject = {
44
+ _type: "InvalidType",
45
+ value: "42",
46
+ };
47
+ expect(() => {
48
+ return LessThanOrEqual.fromJSON(jsonInput);
49
+ }).toThrow(BadDataException);
50
+ });
51
+
52
+ it("should be an instance of LessThanOrEqual", () => {
53
+ const obj: LessThanOrEqual<number> = new LessThanOrEqual<number>(42);
54
+ expect(obj).toBeInstanceOf(LessThanOrEqual);
55
+ });
56
+
57
+ it("should handle date values", () => {
58
+ const value: Date = new Date("2023-01-01");
59
+ const obj: LessThanOrEqual<Date> = new LessThanOrEqual<Date>(value);
60
+ expect(obj.value).toBe(value);
61
+ });
62
+ });
@@ -0,0 +1,62 @@
1
+ import LessThanOrNull from "../../../Types/BaseDatabase/LessThanOrNull";
2
+ import BadDataException from "../../../Types/Exception/BadDataException";
3
+ import { JSONObject } from "../../../Types/JSON";
4
+ import { describe, expect, it } from "@jest/globals";
5
+
6
+ describe("LessThanOrNull", () => {
7
+ it("should create a LessThanOrNull object with a valid value", () => {
8
+ const value: number = 42;
9
+ const obj: LessThanOrNull<number> = new LessThanOrNull<number>(value);
10
+ expect(obj.value).toBe(value);
11
+ });
12
+
13
+ it("should get and set the value property", () => {
14
+ const obj: LessThanOrNull<number> = new LessThanOrNull<number>(1);
15
+ obj.value = 2;
16
+ expect(obj.value).toBe(2);
17
+ });
18
+
19
+ it("should return the correct string representation using toString", () => {
20
+ const obj: LessThanOrNull<number> = new LessThanOrNull<number>(42);
21
+ expect(obj.toString()).toBe("42");
22
+ });
23
+
24
+ it("should generate the correct JSON representation using toJSON", () => {
25
+ const obj: LessThanOrNull<number> = new LessThanOrNull<number>(42);
26
+ const expectedJSON: JSONObject = {
27
+ _type: "LessThanOrNull",
28
+ value: "42",
29
+ };
30
+ expect(obj.toJSON()).toEqual(expectedJSON);
31
+ });
32
+
33
+ it("should create a LessThanOrNull object from valid JSON input", () => {
34
+ const jsonInput: JSONObject = {
35
+ _type: "LessThanOrNull",
36
+ value: "42",
37
+ };
38
+ const obj: LessThanOrNull<number> = LessThanOrNull.fromJSON(jsonInput);
39
+ expect(obj.value).toBe("42");
40
+ });
41
+
42
+ it("should throw a BadDataException when using invalid JSON input", () => {
43
+ const jsonInput: JSONObject = {
44
+ _type: "InvalidType",
45
+ value: "42",
46
+ };
47
+ expect(() => {
48
+ return LessThanOrNull.fromJSON(jsonInput);
49
+ }).toThrow(BadDataException);
50
+ });
51
+
52
+ it("should be an instance of LessThanOrNull", () => {
53
+ const obj: LessThanOrNull<number> = new LessThanOrNull<number>(42);
54
+ expect(obj).toBeInstanceOf(LessThanOrNull);
55
+ });
56
+
57
+ it("should handle date values", () => {
58
+ const value: Date = new Date("2023-01-01");
59
+ const obj: LessThanOrNull<Date> = new LessThanOrNull<Date>(value);
60
+ expect(obj.value).toBe(value);
61
+ });
62
+ });
@@ -0,0 +1,81 @@
1
+ import MultiSearch from "../../../Types/BaseDatabase/MultiSearch";
2
+ import BadDataException from "../../../Types/Exception/BadDataException";
3
+ import { JSONObject } from "../../../Types/JSON";
4
+ import { describe, expect, it } from "@jest/globals";
5
+
6
+ describe("MultiSearch", () => {
7
+ it("should create a MultiSearch object with fields and value", () => {
8
+ const obj: MultiSearch = new MultiSearch({
9
+ fields: ["name", "email"],
10
+ value: "demo",
11
+ });
12
+ expect(obj.fields).toEqual(["name", "email"]);
13
+ expect(obj.value).toBe("demo");
14
+ });
15
+
16
+ it("should get and set the fields and value properties", () => {
17
+ const obj: MultiSearch = new MultiSearch({ fields: ["a"], value: "x" });
18
+ obj.fields = ["b", "c"];
19
+ obj.value = "y";
20
+ expect(obj.fields).toEqual(["b", "c"]);
21
+ expect(obj.value).toBe("y");
22
+ });
23
+
24
+ it("should return the value using toString", () => {
25
+ const obj: MultiSearch = new MultiSearch({
26
+ fields: ["name"],
27
+ value: "demo",
28
+ });
29
+ expect(obj.toString()).toBe("demo");
30
+ });
31
+
32
+ it("should generate the correct JSON representation using toJSON", () => {
33
+ const obj: MultiSearch = new MultiSearch({
34
+ fields: ["name"],
35
+ value: "demo",
36
+ });
37
+ const expectedJSON: JSONObject = {
38
+ _type: "MultiSearch",
39
+ value: "demo",
40
+ fields: ["name"],
41
+ };
42
+ expect(obj.toJSON()).toEqual(expectedJSON);
43
+ });
44
+
45
+ it("should create a MultiSearch object from valid JSON input", () => {
46
+ const jsonInput: JSONObject = {
47
+ _type: "MultiSearch",
48
+ value: "demo",
49
+ fields: ["name"],
50
+ };
51
+ const obj: MultiSearch = MultiSearch.fromJSON(jsonInput);
52
+ expect(obj.value).toBe("demo");
53
+ expect(obj.fields).toEqual(["name"]);
54
+ });
55
+
56
+ it("should default fields and value when missing in the JSON input", () => {
57
+ const jsonInput: JSONObject = {
58
+ _type: "MultiSearch",
59
+ };
60
+ const obj: MultiSearch = MultiSearch.fromJSON(jsonInput);
61
+ expect(obj.fields).toEqual([]);
62
+ expect(obj.value).toBe("");
63
+ });
64
+
65
+ it("should throw a BadDataException when using invalid JSON input", () => {
66
+ const jsonInput: JSONObject = {
67
+ _type: "InvalidType",
68
+ };
69
+ expect(() => {
70
+ return MultiSearch.fromJSON(jsonInput);
71
+ }).toThrow(BadDataException);
72
+ });
73
+
74
+ it("should be an instance of MultiSearch", () => {
75
+ const obj: MultiSearch = new MultiSearch({
76
+ fields: ["name"],
77
+ value: "demo",
78
+ });
79
+ expect(obj).toBeInstanceOf(MultiSearch);
80
+ });
81
+ });
@@ -0,0 +1,64 @@
1
+ import NotContains from "../../../Types/BaseDatabase/NotContains";
2
+ import BadDataException from "../../../Types/Exception/BadDataException";
3
+ import { JSONObject } from "../../../Types/JSON";
4
+ import { describe, expect, it } from "@jest/globals";
5
+
6
+ describe("NotContains", () => {
7
+ it("should create a NotContains object with a valid value", () => {
8
+ const value: string = "oneuptime";
9
+ const obj: NotContains<string> = new NotContains<string>(value);
10
+ expect(obj.value).toBe(value);
11
+ });
12
+
13
+ it("should get and set the value property", () => {
14
+ const obj: NotContains<string> = new NotContains<string>("oldValue");
15
+ obj.value = "newValue";
16
+ expect(obj.value).toBe("newValue");
17
+ });
18
+
19
+ it("should return the value using toString", () => {
20
+ const obj: NotContains<string> = new NotContains<string>("oneuptime");
21
+ expect(obj.toString()).toBe("oneuptime");
22
+ });
23
+
24
+ it("should generate the correct JSON representation using toJSON", () => {
25
+ const obj: NotContains<string> = new NotContains<string>("oneuptime");
26
+ const expectedJSON: JSONObject = {
27
+ _type: "NotContains",
28
+ value: "oneuptime",
29
+ };
30
+ expect(obj.toJSON()).toEqual(expectedJSON);
31
+ });
32
+
33
+ it("should create a NotContains object from valid JSON input", () => {
34
+ const jsonInput: JSONObject = {
35
+ _type: "NotContains",
36
+ value: "oneuptime",
37
+ };
38
+ const obj: NotContains<string> = NotContains.fromJSON(jsonInput);
39
+ expect(obj.value).toBe("oneuptime");
40
+ });
41
+
42
+ it("should default to an empty string when the JSON value is missing", () => {
43
+ const jsonInput: JSONObject = {
44
+ _type: "NotContains",
45
+ };
46
+ const obj: NotContains<string> = NotContains.fromJSON(jsonInput);
47
+ expect(obj.value).toBe("");
48
+ });
49
+
50
+ it("should throw a BadDataException when using invalid JSON input", () => {
51
+ const jsonInput: JSONObject = {
52
+ _type: "InvalidType",
53
+ value: "oneuptime",
54
+ };
55
+ expect(() => {
56
+ return NotContains.fromJSON(jsonInput);
57
+ }).toThrow(BadDataException);
58
+ });
59
+
60
+ it("should be an instance of NotContains", () => {
61
+ const obj: NotContains<string> = new NotContains<string>("oneuptime");
62
+ expect(obj).toBeInstanceOf(NotContains);
63
+ });
64
+ });
@@ -0,0 +1,44 @@
1
+ import NotNull from "../../../Types/BaseDatabase/NotNull";
2
+ import BadDataException from "../../../Types/Exception/BadDataException";
3
+ import { JSONObject } from "../../../Types/JSON";
4
+ import { describe, expect, it } from "@jest/globals";
5
+
6
+ describe("NotNull", () => {
7
+ it("should create a NotNull object", () => {
8
+ const obj: NotNull = new NotNull();
9
+ expect(obj).toBeInstanceOf(NotNull);
10
+ });
11
+
12
+ it("should return an empty string using toString", () => {
13
+ const obj: NotNull = new NotNull();
14
+ expect(obj.toString()).toBe("");
15
+ });
16
+
17
+ it("should generate the correct JSON representation using toJSON", () => {
18
+ const obj: NotNull = new NotNull();
19
+ const expectedJSON: JSONObject = {
20
+ _type: "NotNull",
21
+ value: null,
22
+ };
23
+ expect(obj.toJSON()).toEqual(expectedJSON);
24
+ });
25
+
26
+ it("should create a NotNull object from valid JSON input", () => {
27
+ const jsonInput: JSONObject = {
28
+ _type: "NotNull",
29
+ value: null,
30
+ };
31
+ const obj: NotNull = NotNull.fromJSON(jsonInput);
32
+ expect(obj).toBeInstanceOf(NotNull);
33
+ });
34
+
35
+ it("should throw a BadDataException when using invalid JSON input", () => {
36
+ const jsonInput: JSONObject = {
37
+ _type: "InvalidType",
38
+ value: null,
39
+ };
40
+ expect(() => {
41
+ return NotNull.fromJSON(jsonInput);
42
+ }).toThrow(BadDataException);
43
+ });
44
+ });
@@ -0,0 +1,64 @@
1
+ import StartsWith from "../../../Types/BaseDatabase/StartsWith";
2
+ import BadDataException from "../../../Types/Exception/BadDataException";
3
+ import { JSONObject } from "../../../Types/JSON";
4
+ import { describe, expect, it } from "@jest/globals";
5
+
6
+ describe("StartsWith", () => {
7
+ it("should create a StartsWith object with a valid value", () => {
8
+ const value: string = "oneuptime";
9
+ const obj: StartsWith<string> = new StartsWith<string>(value);
10
+ expect(obj.value).toBe(value);
11
+ });
12
+
13
+ it("should get and set the value property", () => {
14
+ const obj: StartsWith<string> = new StartsWith<string>("oldValue");
15
+ obj.value = "newValue";
16
+ expect(obj.value).toBe("newValue");
17
+ });
18
+
19
+ it("should return the value using toString", () => {
20
+ const obj: StartsWith<string> = new StartsWith<string>("oneuptime");
21
+ expect(obj.toString()).toBe("oneuptime");
22
+ });
23
+
24
+ it("should generate the correct JSON representation using toJSON", () => {
25
+ const obj: StartsWith<string> = new StartsWith<string>("oneuptime");
26
+ const expectedJSON: JSONObject = {
27
+ _type: "StartsWith",
28
+ value: "oneuptime",
29
+ };
30
+ expect(obj.toJSON()).toEqual(expectedJSON);
31
+ });
32
+
33
+ it("should create a StartsWith object from valid JSON input", () => {
34
+ const jsonInput: JSONObject = {
35
+ _type: "StartsWith",
36
+ value: "oneuptime",
37
+ };
38
+ const obj: StartsWith<string> = StartsWith.fromJSON(jsonInput);
39
+ expect(obj.value).toBe("oneuptime");
40
+ });
41
+
42
+ it("should default to an empty string when the JSON value is missing", () => {
43
+ const jsonInput: JSONObject = {
44
+ _type: "StartsWith",
45
+ };
46
+ const obj: StartsWith<string> = StartsWith.fromJSON(jsonInput);
47
+ expect(obj.value).toBe("");
48
+ });
49
+
50
+ it("should throw a BadDataException when using invalid JSON input", () => {
51
+ const jsonInput: JSONObject = {
52
+ _type: "InvalidType",
53
+ value: "oneuptime",
54
+ };
55
+ expect(() => {
56
+ return StartsWith.fromJSON(jsonInput);
57
+ }).toThrow(BadDataException);
58
+ });
59
+
60
+ it("should be an instance of StartsWith", () => {
61
+ const obj: StartsWith<string> = new StartsWith<string>("oneuptime");
62
+ expect(obj).toBeInstanceOf(StartsWith);
63
+ });
64
+ });
@@ -12,6 +12,33 @@ import MonitorStepSqlMonitor, {
12
12
  } from "../../../Types/Monitor/MonitorStepSqlMonitor";
13
13
  import SqlDatabaseType from "../../../Types/Monitor/SqlDatabaseType";
14
14
  import { JSONObject } from "../../../Types/JSON";
15
+ import MonitorStep from "../../../Types/Monitor/MonitorStep";
16
+ import MonitorType from "../../../Types/Monitor/MonitorType";
17
+ import ObjectID from "../../../Types/ObjectID";
18
+
19
+ const getSqlMonitorStep: (
20
+ overrides?: Partial<MonitorStepSqlMonitor>,
21
+ ) => MonitorStep = (
22
+ overrides: Partial<MonitorStepSqlMonitor> = {},
23
+ ): MonitorStep => {
24
+ const id: ObjectID = ObjectID.generate();
25
+ const monitorStep: MonitorStep = MonitorStep.getDefaultMonitorStep({
26
+ monitorName: "SQL monitor",
27
+ monitorType: MonitorType.SQLQuery,
28
+ onlineMonitorStatusId: id,
29
+ offlineMonitorStatusId: id,
30
+ defaultIncidentSeverityId: id,
31
+ defaultAlertSeverityId: id,
32
+ });
33
+
34
+ return monitorStep.setSqlMonitor({
35
+ ...MonitorStepSqlMonitorUtil.getDefault(),
36
+ host: "sql.internal",
37
+ databaseName: "orders",
38
+ query: "SELECT 1",
39
+ ...overrides,
40
+ });
41
+ };
15
42
 
16
43
  describe("MonitorStepSqlMonitorUtil", () => {
17
44
  describe("getDefault", () => {
@@ -20,6 +47,7 @@ describe("MonitorStepSqlMonitorUtil", () => {
20
47
  expect(def.databaseType).toBe(SqlDatabaseType.PostgreSQL);
21
48
  expect(def.port).toBe(5432);
22
49
  expect(def.useSsl).toBe(false);
50
+ expect(def.useWindowsIntegratedAuthentication).toBe(false);
23
51
  expect(def.rejectUnauthorizedSsl).toBe(true);
24
52
  expect(def.statementTimeoutInMs).toBe(
25
53
  DEFAULT_SQL_STATEMENT_TIMEOUT_IN_MS,
@@ -62,12 +90,13 @@ describe("MonitorStepSqlMonitorUtil", () => {
62
90
  describe("fromJSON/toJSON round-trip", () => {
63
91
  test("preserves values and clamps out-of-range inputs", () => {
64
92
  const json: JSONObject = {
65
- databaseType: SqlDatabaseType.PostgreSQL,
93
+ databaseType: SqlDatabaseType.MicrosoftSqlServer,
66
94
  host: "db.internal",
67
95
  port: 5433,
68
96
  databaseName: "orders",
69
97
  username: "readonly",
70
98
  password: "{{monitorSecrets.dbPass}}",
99
+ useWindowsIntegratedAuthentication: true,
71
100
  useSsl: true,
72
101
  rejectUnauthorizedSsl: false,
73
102
  query: "SELECT COUNT(*) FROM orders",
@@ -82,6 +111,7 @@ describe("MonitorStepSqlMonitorUtil", () => {
82
111
  expect(parsed.host).toBe("db.internal");
83
112
  expect(parsed.port).toBe(5433);
84
113
  expect(parsed.password).toBe("{{monitorSecrets.dbPass}}");
114
+ expect(parsed.useWindowsIntegratedAuthentication).toBe(true);
85
115
  expect(parsed.useSsl).toBe(true);
86
116
  expect(parsed.rejectUnauthorizedSsl).toBe(false);
87
117
  // clamped
@@ -105,6 +135,58 @@ describe("MonitorStepSqlMonitorUtil", () => {
105
135
  });
106
136
  expect(parsed.rejectUnauthorizedSsl).toBe(true);
107
137
  expect(parsed.useSsl).toBe(false);
138
+ expect(parsed.useWindowsIntegratedAuthentication).toBe(false);
139
+ });
140
+
141
+ test("serializes an explicit false value for older SQL monitor configurations", () => {
142
+ const json: JSONObject = MonitorStepSqlMonitorUtil.toJSON(
143
+ MonitorStepSqlMonitorUtil.getDefault(),
144
+ );
145
+
146
+ expect(json["useWindowsIntegratedAuthentication"]).toBe(false);
147
+ });
148
+ });
149
+
150
+ describe("MonitorStep validation", () => {
151
+ test("accepts integrated authentication for Microsoft SQL Server", () => {
152
+ const monitorStep: MonitorStep = getSqlMonitorStep({
153
+ databaseType: SqlDatabaseType.MicrosoftSqlServer,
154
+ port: 1433,
155
+ username: "",
156
+ password: "",
157
+ useWindowsIntegratedAuthentication: true,
158
+ });
159
+
160
+ expect(
161
+ MonitorStep.getValidationError(monitorStep, MonitorType.SQLQuery),
162
+ ).toBeNull();
163
+ });
164
+
165
+ test.each([SqlDatabaseType.PostgreSQL, SqlDatabaseType.MySQL])(
166
+ "rejects integrated authentication for %s",
167
+ (databaseType: SqlDatabaseType) => {
168
+ const monitorStep: MonitorStep = getSqlMonitorStep({
169
+ databaseType,
170
+ useWindowsIntegratedAuthentication: true,
171
+ });
172
+
173
+ expect(
174
+ MonitorStep.getValidationError(monitorStep, MonitorType.SQLQuery),
175
+ ).toBe(
176
+ "Windows Integrated Authentication is only supported for Microsoft SQL Server",
177
+ );
178
+ },
179
+ );
180
+
181
+ test("preserves validation compatibility for SQL-login monitors", () => {
182
+ const monitorStep: MonitorStep = getSqlMonitorStep({
183
+ databaseType: SqlDatabaseType.PostgreSQL,
184
+ useWindowsIntegratedAuthentication: false,
185
+ });
186
+
187
+ expect(
188
+ MonitorStep.getValidationError(monitorStep, MonitorType.SQLQuery),
189
+ ).toBeNull();
108
190
  });
109
191
  });
110
192
  });