@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
@@ -3,6 +3,7 @@ import User from "./User";
3
3
  import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
4
4
  import Route from "../../Types/API/Route";
5
5
  import TelemetrySavedViewState from "../../Types/Telemetry/TelemetrySavedViewState";
6
+ import TelemetrySavedViewType from "../../Types/Telemetry/TelemetrySavedViewType";
6
7
  import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
7
8
  import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
8
9
  import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
@@ -331,4 +332,37 @@ export default class MetricSavedView extends BaseModel {
331
332
  default: false,
332
333
  })
333
334
  public isDefault?: boolean = undefined;
335
+
336
+ @ColumnAccessControl({
337
+ create: [
338
+ Permission.ProjectOwner,
339
+ Permission.ProjectAdmin,
340
+ Permission.ProjectMember,
341
+ ],
342
+ read: [
343
+ Permission.ProjectOwner,
344
+ Permission.ProjectAdmin,
345
+ Permission.ProjectMember,
346
+ Permission.Viewer,
347
+ ],
348
+ update: [
349
+ Permission.ProjectOwner,
350
+ Permission.ProjectAdmin,
351
+ Permission.ProjectMember,
352
+ ],
353
+ })
354
+ @TableColumn({
355
+ required: false,
356
+ type: TableColumnType.ShortText,
357
+ canReadOnRelationQuery: true,
358
+ title: "View Type",
359
+ description:
360
+ "Which surface this saved view belongs to ('list' or 'explorer'). Null means 'list' — rows created before this column existed all came from the metric list page.",
361
+ })
362
+ @Column({
363
+ nullable: true,
364
+ type: ColumnType.ShortText,
365
+ length: ColumnLength.ShortText,
366
+ })
367
+ public viewType?: TelemetrySavedViewType = undefined;
334
368
  }
@@ -28,6 +28,7 @@ import {
28
28
  } from "typeorm";
29
29
  import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
30
30
  import Service from "./Service";
31
+ import { AggregationTemporality } from "../AnalyticsModels/Metric";
31
32
 
32
33
  @EnableDocumentation()
33
34
  @TenantColumn("projectId")
@@ -318,6 +319,79 @@ export default class MetricType extends BaseModel {
318
319
  })
319
320
  public unit?: string = undefined;
320
321
 
322
+ @ColumnAccessControl({
323
+ create: [
324
+ Permission.ProjectOwner,
325
+ Permission.ProjectAdmin,
326
+ Permission.CreateTelemetryServiceMetrics,
327
+ ],
328
+ read: [
329
+ Permission.ProjectOwner,
330
+ Permission.ProjectAdmin,
331
+ Permission.ProjectMember,
332
+ Permission.Viewer,
333
+ Permission.TelemetryAdmin,
334
+ Permission.TelemetryMember,
335
+ Permission.TelemetryViewer,
336
+ Permission.ReadTelemetryServiceMetrics,
337
+ ],
338
+ update: [
339
+ Permission.ProjectOwner,
340
+ Permission.ProjectAdmin,
341
+ Permission.EditTelemetryServiceMetrics,
342
+ ],
343
+ })
344
+ @TableColumn({
345
+ required: false,
346
+ type: TableColumnType.Boolean,
347
+ canReadOnRelationQuery: true,
348
+ title: "Is Monotonic",
349
+ description:
350
+ "Whether this metric is a monotonic counter (only ever increases), as reported by OpenTelemetry at ingest. Null when the instrument type does not carry monotonicity (e.g. gauges).",
351
+ })
352
+ @Column({
353
+ nullable: true,
354
+ type: ColumnType.Boolean,
355
+ })
356
+ public isMonotonic?: boolean = undefined;
357
+
358
+ @ColumnAccessControl({
359
+ create: [
360
+ Permission.ProjectOwner,
361
+ Permission.ProjectAdmin,
362
+ Permission.CreateTelemetryServiceMetrics,
363
+ ],
364
+ read: [
365
+ Permission.ProjectOwner,
366
+ Permission.ProjectAdmin,
367
+ Permission.ProjectMember,
368
+ Permission.Viewer,
369
+ Permission.TelemetryAdmin,
370
+ Permission.TelemetryMember,
371
+ Permission.TelemetryViewer,
372
+ Permission.ReadTelemetryServiceMetrics,
373
+ ],
374
+ update: [
375
+ Permission.ProjectOwner,
376
+ Permission.ProjectAdmin,
377
+ Permission.EditTelemetryServiceMetrics,
378
+ ],
379
+ })
380
+ @TableColumn({
381
+ required: false,
382
+ type: TableColumnType.ShortText,
383
+ canReadOnRelationQuery: true,
384
+ title: "Aggregation Temporality",
385
+ description:
386
+ "OpenTelemetry aggregation temporality of this metric (Delta or Cumulative), as reported at ingest. Null when unknown.",
387
+ })
388
+ @Column({
389
+ nullable: true,
390
+ type: ColumnType.ShortText,
391
+ length: ColumnLength.ShortText,
392
+ })
393
+ public aggregationTemporality?: AggregationTemporality = undefined;
394
+
321
395
  @ColumnAccessControl({
322
396
  create: [
323
397
  Permission.ProjectOwner,
@@ -5,6 +5,7 @@ import User from "./User";
5
5
  import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
6
6
  import Route from "../../Types/API/Route";
7
7
  import LldpNeighbor from "../../Types/Monitor/SnmpMonitor/LldpNeighbor";
8
+ import CdpNeighbor from "../../Types/Monitor/SnmpMonitor/CdpNeighbor";
8
9
  import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
9
10
  import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
10
11
  import AccessControlColumn from "../../Types/Database/AccessControlColumn";
@@ -902,6 +903,337 @@ export default class NetworkDevice extends BaseModel {
902
903
  })
903
904
  public sysName?: string = undefined;
904
905
 
906
+ @ColumnAccessControl({
907
+ create: [],
908
+ read: [
909
+ Permission.ProjectOwner,
910
+ Permission.ProjectAdmin,
911
+ Permission.ProjectMember,
912
+ Permission.Viewer,
913
+ Permission.SettingsAdmin,
914
+ Permission.SettingsMember,
915
+ Permission.SettingsViewer,
916
+ Permission.ReadNetworkDevice,
917
+ ],
918
+ update: [
919
+ Permission.ProjectOwner,
920
+ Permission.ProjectAdmin,
921
+ Permission.EditNetworkDevice,
922
+ ],
923
+ })
924
+ @TableColumn({
925
+ required: false,
926
+ type: TableColumnType.ShortText,
927
+ canReadOnRelationQuery: true,
928
+ title: "System Object ID",
929
+ description:
930
+ "sysObjectID — the vendor's registered OID for this device model, enriched from SNMP walks. Used to fingerprint the vendor and suggest an OID template.",
931
+ example: "1.3.6.1.4.1.9.1.1208",
932
+ })
933
+ @Column({
934
+ nullable: true,
935
+ type: ColumnType.ShortText,
936
+ length: ColumnLength.ShortText,
937
+ })
938
+ public sysObjectId?: string = undefined;
939
+
940
+ @ColumnAccessControl({
941
+ create: [],
942
+ read: [
943
+ Permission.ProjectOwner,
944
+ Permission.ProjectAdmin,
945
+ Permission.ProjectMember,
946
+ Permission.Viewer,
947
+ Permission.SettingsAdmin,
948
+ Permission.SettingsMember,
949
+ Permission.SettingsViewer,
950
+ Permission.ReadNetworkDevice,
951
+ ],
952
+ update: [
953
+ Permission.ProjectOwner,
954
+ Permission.ProjectAdmin,
955
+ Permission.EditNetworkDevice,
956
+ ],
957
+ })
958
+ @TableColumn({
959
+ required: false,
960
+ type: TableColumnType.ShortText,
961
+ canReadOnRelationQuery: true,
962
+ title: "System Location",
963
+ description:
964
+ "System location (sysLocation) enriched from SNMP walks of this device",
965
+ example: "DC1, Rack 14",
966
+ })
967
+ @Column({
968
+ nullable: true,
969
+ type: ColumnType.ShortText,
970
+ length: ColumnLength.ShortText,
971
+ })
972
+ public sysLocation?: string = undefined;
973
+
974
+ @ColumnAccessControl({
975
+ create: [],
976
+ read: [
977
+ Permission.ProjectOwner,
978
+ Permission.ProjectAdmin,
979
+ Permission.ProjectMember,
980
+ Permission.Viewer,
981
+ Permission.SettingsAdmin,
982
+ Permission.SettingsMember,
983
+ Permission.SettingsViewer,
984
+ Permission.ReadNetworkDevice,
985
+ ],
986
+ update: [
987
+ Permission.ProjectOwner,
988
+ Permission.ProjectAdmin,
989
+ Permission.EditNetworkDevice,
990
+ ],
991
+ })
992
+ @TableColumn({
993
+ required: false,
994
+ type: TableColumnType.ShortText,
995
+ title: "System Contact",
996
+ description:
997
+ "System contact (sysContact) enriched from SNMP walks of this device",
998
+ example: "netops@example.com",
999
+ })
1000
+ @Column({
1001
+ nullable: true,
1002
+ type: ColumnType.ShortText,
1003
+ length: ColumnLength.ShortText,
1004
+ })
1005
+ public sysContact?: string = undefined;
1006
+
1007
+ @ColumnAccessControl({
1008
+ create: [],
1009
+ read: [
1010
+ Permission.ProjectOwner,
1011
+ Permission.ProjectAdmin,
1012
+ Permission.ProjectMember,
1013
+ Permission.Viewer,
1014
+ Permission.SettingsAdmin,
1015
+ Permission.SettingsMember,
1016
+ Permission.SettingsViewer,
1017
+ Permission.ReadNetworkDevice,
1018
+ ],
1019
+ update: [
1020
+ Permission.ProjectOwner,
1021
+ Permission.ProjectAdmin,
1022
+ Permission.EditNetworkDevice,
1023
+ ],
1024
+ })
1025
+ @TableColumn({
1026
+ required: false,
1027
+ type: TableColumnType.ShortText,
1028
+ canReadOnRelationQuery: true,
1029
+ title: "Vendor",
1030
+ description:
1031
+ "Hardware vendor, from ENTITY-MIB or derived from sysObjectID. Managed by the probe.",
1032
+ example: "Cisco",
1033
+ })
1034
+ @Column({
1035
+ nullable: true,
1036
+ type: ColumnType.ShortText,
1037
+ length: ColumnLength.ShortText,
1038
+ })
1039
+ public vendor?: string = undefined;
1040
+
1041
+ @ColumnAccessControl({
1042
+ create: [],
1043
+ read: [
1044
+ Permission.ProjectOwner,
1045
+ Permission.ProjectAdmin,
1046
+ Permission.ProjectMember,
1047
+ Permission.Viewer,
1048
+ Permission.SettingsAdmin,
1049
+ Permission.SettingsMember,
1050
+ Permission.SettingsViewer,
1051
+ Permission.ReadNetworkDevice,
1052
+ ],
1053
+ update: [
1054
+ Permission.ProjectOwner,
1055
+ Permission.ProjectAdmin,
1056
+ Permission.EditNetworkDevice,
1057
+ ],
1058
+ })
1059
+ @TableColumn({
1060
+ required: false,
1061
+ type: TableColumnType.ShortText,
1062
+ canReadOnRelationQuery: true,
1063
+ title: "Model",
1064
+ description:
1065
+ "Hardware model from ENTITY-MIB (entPhysicalModelName). Managed by the probe.",
1066
+ example: "WS-C2960X-48TS-L",
1067
+ })
1068
+ @Column({
1069
+ nullable: true,
1070
+ type: ColumnType.ShortText,
1071
+ length: ColumnLength.ShortText,
1072
+ })
1073
+ public deviceModel?: string = undefined;
1074
+
1075
+ @ColumnAccessControl({
1076
+ create: [],
1077
+ read: [
1078
+ Permission.ProjectOwner,
1079
+ Permission.ProjectAdmin,
1080
+ Permission.ProjectMember,
1081
+ Permission.Viewer,
1082
+ Permission.SettingsAdmin,
1083
+ Permission.SettingsMember,
1084
+ Permission.SettingsViewer,
1085
+ Permission.ReadNetworkDevice,
1086
+ ],
1087
+ update: [
1088
+ Permission.ProjectOwner,
1089
+ Permission.ProjectAdmin,
1090
+ Permission.EditNetworkDevice,
1091
+ ],
1092
+ })
1093
+ @TableColumn({
1094
+ required: false,
1095
+ type: TableColumnType.ShortText,
1096
+ title: "Serial Number",
1097
+ description:
1098
+ "Chassis serial number from ENTITY-MIB (entPhysicalSerialNum). Managed by the probe.",
1099
+ example: "FOC1932X0K1",
1100
+ })
1101
+ @Column({
1102
+ nullable: true,
1103
+ type: ColumnType.ShortText,
1104
+ length: ColumnLength.ShortText,
1105
+ })
1106
+ public serialNumber?: string = undefined;
1107
+
1108
+ @ColumnAccessControl({
1109
+ create: [],
1110
+ read: [
1111
+ Permission.ProjectOwner,
1112
+ Permission.ProjectAdmin,
1113
+ Permission.ProjectMember,
1114
+ Permission.Viewer,
1115
+ Permission.SettingsAdmin,
1116
+ Permission.SettingsMember,
1117
+ Permission.SettingsViewer,
1118
+ Permission.ReadNetworkDevice,
1119
+ ],
1120
+ update: [
1121
+ Permission.ProjectOwner,
1122
+ Permission.ProjectAdmin,
1123
+ Permission.EditNetworkDevice,
1124
+ ],
1125
+ })
1126
+ @TableColumn({
1127
+ required: false,
1128
+ type: TableColumnType.ShortText,
1129
+ title: "Firmware Version",
1130
+ description:
1131
+ "Firmware revision from ENTITY-MIB (entPhysicalFirmwareRev). Managed by the probe.",
1132
+ example: "15.2(2)E7",
1133
+ })
1134
+ @Column({
1135
+ nullable: true,
1136
+ type: ColumnType.ShortText,
1137
+ length: ColumnLength.ShortText,
1138
+ })
1139
+ public firmwareVersion?: string = undefined;
1140
+
1141
+ @ColumnAccessControl({
1142
+ create: [],
1143
+ read: [
1144
+ Permission.ProjectOwner,
1145
+ Permission.ProjectAdmin,
1146
+ Permission.ProjectMember,
1147
+ Permission.Viewer,
1148
+ Permission.SettingsAdmin,
1149
+ Permission.SettingsMember,
1150
+ Permission.SettingsViewer,
1151
+ Permission.ReadNetworkDevice,
1152
+ ],
1153
+ update: [
1154
+ Permission.ProjectOwner,
1155
+ Permission.ProjectAdmin,
1156
+ Permission.EditNetworkDevice,
1157
+ ],
1158
+ })
1159
+ @TableColumn({
1160
+ required: false,
1161
+ type: TableColumnType.ShortText,
1162
+ title: "Software Version",
1163
+ description:
1164
+ "Operating system / software revision from ENTITY-MIB (entPhysicalSoftwareRev). Managed by the probe.",
1165
+ example: "15.2(2)E7",
1166
+ })
1167
+ @Column({
1168
+ nullable: true,
1169
+ type: ColumnType.ShortText,
1170
+ length: ColumnLength.ShortText,
1171
+ })
1172
+ public softwareVersion?: string = undefined;
1173
+
1174
+ @ColumnAccessControl({
1175
+ create: [],
1176
+ read: [
1177
+ Permission.ProjectOwner,
1178
+ Permission.ProjectAdmin,
1179
+ Permission.ProjectMember,
1180
+ Permission.Viewer,
1181
+ Permission.SettingsAdmin,
1182
+ Permission.SettingsMember,
1183
+ Permission.SettingsViewer,
1184
+ Permission.ReadNetworkDevice,
1185
+ ],
1186
+ update: [
1187
+ Permission.ProjectOwner,
1188
+ Permission.ProjectAdmin,
1189
+ Permission.EditNetworkDevice,
1190
+ ],
1191
+ })
1192
+ @TableColumn({
1193
+ required: false,
1194
+ type: TableColumnType.Date,
1195
+ canReadOnRelationQuery: true,
1196
+ title: "Last Rebooted At",
1197
+ description:
1198
+ "Device boot time computed from sysUpTime on each walk. Managed by the probe.",
1199
+ })
1200
+ @Column({
1201
+ nullable: true,
1202
+ type: ColumnType.Date,
1203
+ })
1204
+ public lastRebootedAt?: Date = undefined;
1205
+
1206
+ @ColumnAccessControl({
1207
+ create: [],
1208
+ read: [
1209
+ Permission.ProjectOwner,
1210
+ Permission.ProjectAdmin,
1211
+ Permission.ProjectMember,
1212
+ Permission.Viewer,
1213
+ Permission.SettingsAdmin,
1214
+ Permission.SettingsMember,
1215
+ Permission.SettingsViewer,
1216
+ Permission.ReadNetworkDevice,
1217
+ ],
1218
+ update: [
1219
+ Permission.ProjectOwner,
1220
+ Permission.ProjectAdmin,
1221
+ Permission.EditNetworkDevice,
1222
+ ],
1223
+ })
1224
+ @TableColumn({
1225
+ required: false,
1226
+ type: TableColumnType.JSON,
1227
+ title: "CDP Neighbors",
1228
+ description:
1229
+ "CDP neighbors discovered on the last SNMP walk, complementing LLDP for the topology graph. Managed by the probe.",
1230
+ })
1231
+ @Column({
1232
+ nullable: true,
1233
+ type: ColumnType.JSON,
1234
+ })
1235
+ public cdpNeighbors?: Array<CdpNeighbor> = undefined;
1236
+
905
1237
  @ColumnAccessControl({
906
1238
  create: [],
907
1239
  read: [
@@ -789,6 +789,119 @@ export default class NetworkDeviceDiscoveryScan extends BaseModel {
789
789
  })
790
790
  public completedAt?: Date = undefined;
791
791
 
792
+ @ColumnAccessControl({
793
+ create: [
794
+ Permission.ProjectOwner,
795
+ Permission.ProjectAdmin,
796
+ Permission.ProjectMember,
797
+ Permission.SettingsAdmin,
798
+ Permission.SettingsMember,
799
+ Permission.CreateNetworkDeviceDiscoveryScan,
800
+ ],
801
+ read: [
802
+ Permission.ProjectOwner,
803
+ Permission.ProjectAdmin,
804
+ Permission.ProjectMember,
805
+ Permission.Viewer,
806
+ Permission.SettingsAdmin,
807
+ Permission.SettingsMember,
808
+ Permission.SettingsViewer,
809
+ Permission.ReadNetworkDeviceDiscoveryScan,
810
+ ],
811
+ update: [
812
+ Permission.ProjectOwner,
813
+ Permission.ProjectAdmin,
814
+ Permission.ProjectMember,
815
+ Permission.SettingsAdmin,
816
+ Permission.SettingsMember,
817
+ Permission.EditNetworkDeviceDiscoveryScan,
818
+ ],
819
+ })
820
+ @TableColumn({
821
+ isDefaultValueColumn: true,
822
+ required: false,
823
+ type: TableColumnType.Boolean,
824
+ title: "Is Recurring",
825
+ description:
826
+ "Re-run this scan automatically every Rescan Interval minutes to keep discovery continuous.",
827
+ defaultValue: false,
828
+ })
829
+ @Column({
830
+ type: ColumnType.Boolean,
831
+ nullable: false,
832
+ default: false,
833
+ })
834
+ public isRecurring?: boolean = undefined;
835
+
836
+ @ColumnAccessControl({
837
+ create: [
838
+ Permission.ProjectOwner,
839
+ Permission.ProjectAdmin,
840
+ Permission.ProjectMember,
841
+ Permission.SettingsAdmin,
842
+ Permission.SettingsMember,
843
+ Permission.CreateNetworkDeviceDiscoveryScan,
844
+ ],
845
+ read: [
846
+ Permission.ProjectOwner,
847
+ Permission.ProjectAdmin,
848
+ Permission.ProjectMember,
849
+ Permission.Viewer,
850
+ Permission.SettingsAdmin,
851
+ Permission.SettingsMember,
852
+ Permission.SettingsViewer,
853
+ Permission.ReadNetworkDeviceDiscoveryScan,
854
+ ],
855
+ update: [
856
+ Permission.ProjectOwner,
857
+ Permission.ProjectAdmin,
858
+ Permission.ProjectMember,
859
+ Permission.SettingsAdmin,
860
+ Permission.SettingsMember,
861
+ Permission.EditNetworkDeviceDiscoveryScan,
862
+ ],
863
+ })
864
+ @TableColumn({
865
+ required: false,
866
+ type: TableColumnType.Number,
867
+ title: "Rescan Interval (Minutes)",
868
+ description:
869
+ "How often a recurring scan re-runs, in minutes. Ignored unless Is Recurring is on.",
870
+ example: "1440",
871
+ })
872
+ @Column({
873
+ nullable: true,
874
+ type: ColumnType.Number,
875
+ })
876
+ public rescanIntervalInMinutes?: number = undefined;
877
+
878
+ @ColumnAccessControl({
879
+ create: [],
880
+ read: [
881
+ Permission.ProjectOwner,
882
+ Permission.ProjectAdmin,
883
+ Permission.ProjectMember,
884
+ Permission.Viewer,
885
+ Permission.SettingsAdmin,
886
+ Permission.SettingsMember,
887
+ Permission.SettingsViewer,
888
+ Permission.ReadNetworkDeviceDiscoveryScan,
889
+ ],
890
+ update: [],
891
+ })
892
+ @TableColumn({
893
+ required: false,
894
+ type: TableColumnType.Date,
895
+ title: "Next Scan At",
896
+ description:
897
+ "When a recurring scan is next due to run. Managed by the server.",
898
+ })
899
+ @Column({
900
+ nullable: true,
901
+ type: ColumnType.Date,
902
+ })
903
+ public nextScanAt?: Date = undefined;
904
+
792
905
  @ColumnAccessControl({
793
906
  create: [
794
907
  Permission.ProjectOwner,
@@ -300,6 +300,64 @@ export default class NetworkInterface extends BaseModel {
300
300
  })
301
301
  public alias?: string = undefined;
302
302
 
303
+ @ColumnAccessControl({
304
+ create: [],
305
+ read: [
306
+ Permission.ProjectOwner,
307
+ Permission.ProjectAdmin,
308
+ Permission.ProjectMember,
309
+ Permission.Viewer,
310
+ Permission.SettingsAdmin,
311
+ Permission.SettingsMember,
312
+ Permission.SettingsViewer,
313
+ Permission.ReadNetworkDevice,
314
+ ],
315
+ update: [],
316
+ })
317
+ @TableColumn({
318
+ required: false,
319
+ type: TableColumnType.ShortText,
320
+ canReadOnRelationQuery: true,
321
+ title: "MAC Address",
322
+ description:
323
+ "Physical address (ifPhysAddress) from SNMP, colon-separated hex",
324
+ example: "aa:bb:cc:dd:ee:ff",
325
+ })
326
+ @Column({
327
+ nullable: true,
328
+ type: ColumnType.ShortText,
329
+ length: ColumnLength.ShortText,
330
+ })
331
+ public macAddress?: string = undefined;
332
+
333
+ @ColumnAccessControl({
334
+ create: [],
335
+ read: [
336
+ Permission.ProjectOwner,
337
+ Permission.ProjectAdmin,
338
+ Permission.ProjectMember,
339
+ Permission.Viewer,
340
+ Permission.SettingsAdmin,
341
+ Permission.SettingsMember,
342
+ Permission.SettingsViewer,
343
+ Permission.ReadNetworkDevice,
344
+ ],
345
+ update: [],
346
+ })
347
+ @TableColumn({
348
+ required: false,
349
+ type: TableColumnType.Number,
350
+ title: "Interface Type",
351
+ description:
352
+ "IANAifType number (ifType) from SNMP — 6 = ethernetCsmacd, 24 = softwareLoopback",
353
+ example: "6",
354
+ })
355
+ @Column({
356
+ nullable: true,
357
+ type: ColumnType.Number,
358
+ })
359
+ public interfaceType?: number = undefined;
360
+
303
361
  @ColumnAccessControl({
304
362
  create: [],
305
363
  read: [
@@ -24,6 +24,7 @@ import TableMetadata from "../../Types/Database/TableMetadata";
24
24
  import TenantColumn from "../../Types/Database/TenantColumn";
25
25
  import Email from "../../Types/Email";
26
26
  import IconProp from "../../Types/Icon/IconProp";
27
+ import { JSONObject } from "../../Types/JSON";
27
28
  import Name from "../../Types/Name";
28
29
  import ObjectID from "../../Types/ObjectID";
29
30
  import Permission from "../../Types/Permission";
@@ -2078,6 +2079,42 @@ export default class Project extends TenantModel {
2078
2079
  })
2079
2080
  public utmUrl?: string = undefined;
2080
2081
 
2082
+ @ColumnAccessControl({
2083
+ create: [Permission.User],
2084
+ read: [],
2085
+ update: [],
2086
+ })
2087
+ @TableColumn({
2088
+ type: TableColumnType.JSON,
2089
+ hideColumnInDocumentation: true,
2090
+ title: "Ad Click IDs",
2091
+ description:
2092
+ "Ad platform click identifiers (gclid, fbclid, msclkid, etc.) copied from the user who created this project. Used for offline conversion uploads to ad platforms.",
2093
+ })
2094
+ @Column({
2095
+ type: ColumnType.JSON,
2096
+ nullable: true,
2097
+ })
2098
+ public clickIds?: JSONObject = undefined;
2099
+
2100
+ @ColumnAccessControl({
2101
+ create: [Permission.User],
2102
+ read: [],
2103
+ update: [],
2104
+ })
2105
+ @TableColumn({
2106
+ type: TableColumnType.JSON,
2107
+ hideColumnInDocumentation: true,
2108
+ title: "First Touch Attribution",
2109
+ description:
2110
+ "First-touch attribution (UTM parameters, click IDs, landing URL, referrer) copied from the user who created this project. The utm* columns hold last-touch values.",
2111
+ })
2112
+ @Column({
2113
+ type: ColumnType.JSON,
2114
+ nullable: true,
2115
+ })
2116
+ public firstTouchAttribution?: JSONObject = undefined;
2117
+
2081
2118
  @ColumnAccessControl({
2082
2119
  create: [Permission.User],
2083
2120
  read: [],