@oneuptime/common 11.5.8 → 11.5.10

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 (542) 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/AIAgentTaskPullRequest.ts +15 -6
  7. package/Models/DatabaseModels/AIRun.ts +37 -0
  8. package/Models/DatabaseModels/AIRunEvent.ts +34 -1
  9. package/Models/DatabaseModels/EnterpriseLicenseInstance.ts +18 -0
  10. package/Models/DatabaseModels/GlobalConfig.ts +36 -0
  11. package/Models/DatabaseModels/Index.ts +2 -0
  12. package/Models/DatabaseModels/MarketingConversion.ts +198 -0
  13. package/Models/DatabaseModels/MetricSavedView.ts +34 -0
  14. package/Models/DatabaseModels/MetricType.ts +74 -0
  15. package/Models/DatabaseModels/NetworkDevice.ts +332 -0
  16. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +328 -0
  17. package/Models/DatabaseModels/NetworkInterface.ts +58 -0
  18. package/Models/DatabaseModels/Project.ts +62 -0
  19. package/Models/DatabaseModels/StatusPage.ts +42 -0
  20. package/Models/DatabaseModels/User.ts +37 -0
  21. package/Server/API/AIAgentTaskAPI.ts +38 -12
  22. package/Server/API/AIAgentTaskLogAPI.ts +49 -0
  23. package/Server/API/AIChatAPI.ts +16 -0
  24. package/Server/API/AIReadinessAPI.ts +84 -0
  25. package/Server/API/BaseAnalyticsAPI.ts +23 -0
  26. package/Server/API/CodeFixRunAPI.ts +182 -0
  27. package/Server/API/EnterpriseLicenseAPI.ts +14 -0
  28. package/Server/API/TelemetryExceptionAPI.ts +6 -1
  29. package/Server/EnvironmentConfig.ts +84 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.ts +95 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.ts +52 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.ts +30 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.ts +38 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.ts +28 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.ts +49 -0
  36. package/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.ts +108 -0
  37. package/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.ts +31 -0
  38. package/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.ts +29 -0
  39. package/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.ts +35 -0
  40. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +20 -0
  41. package/Server/Services/AIRunEventService.ts +15 -1
  42. package/Server/Services/AIRunService.ts +38 -1
  43. package/Server/Services/AnalyticsDatabaseService.ts +70 -1
  44. package/Server/Services/IncidentService.ts +13 -0
  45. package/Server/Services/Index.ts +10 -0
  46. package/Server/Services/LlmProviderService.ts +2 -0
  47. package/Server/Services/MarketingConversionService.ts +10 -0
  48. package/Server/Services/MetricItemAggMV1mByContainerService.ts +31 -0
  49. package/Server/Services/MetricItemAggMV1mByK8sClusterService.ts +31 -0
  50. package/Server/Services/MetricItemAggMV1mByServiceService.ts +31 -0
  51. package/Server/Services/MetricService.ts +970 -122
  52. package/Server/Services/MonitorService.ts +14 -0
  53. package/Server/Services/NetworkDeviceOwnerTeamService.ts +42 -0
  54. package/Server/Services/NetworkDeviceOwnerUserService.ts +106 -0
  55. package/Server/Services/NetworkFlowService.ts +11 -0
  56. package/Server/Services/OnCallDutyPolicyService.ts +11 -1
  57. package/Server/Services/ProjectService.ts +178 -0
  58. package/Server/Services/SpanService.ts +13 -9
  59. package/Server/Services/StatusPageService.ts +97 -0
  60. package/Server/Services/TeamMemberService.ts +11 -0
  61. package/Server/Services/TelemetryExceptionService.ts +19 -90
  62. package/Server/Services/UserService.ts +59 -0
  63. package/Server/Types/AnalyticsDatabase/AggregateBy.ts +37 -7
  64. package/Server/Types/Markdown.ts +9 -9
  65. package/Server/Types/MarkdownSlugify.ts +47 -0
  66. package/Server/Utils/AI/AIRunTranscript.ts +240 -0
  67. package/Server/Utils/AI/Chat/ChatAgentRunner.ts +9 -0
  68. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +119 -5
  69. package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +75 -0
  70. package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +235 -0
  71. package/Server/Utils/AI/SRE/Insights/FixRouting.ts +2 -3
  72. package/Server/Utils/AI/Toolbox/CodeTools.ts +883 -0
  73. package/Server/Utils/AI/Toolbox/CodeWriteTools.ts +519 -0
  74. package/Server/Utils/AI/Toolbox/Index.ts +27 -0
  75. package/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.ts +279 -0
  76. package/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.ts +19 -1
  77. package/Server/Utils/Attribution.ts +99 -0
  78. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +600 -0
  79. package/Server/Utils/CodeRepository/StackTraceRepoResolver.ts +7 -2
  80. package/Server/Utils/LLM/LLMService.ts +397 -18
  81. package/Server/Utils/Marketing/ConversionUploadProvider.ts +103 -0
  82. package/Server/Utils/Marketing/ConversionUploadProviders.ts +22 -0
  83. package/Server/Utils/Marketing/Providers/GoogleAds.ts +270 -0
  84. package/Server/Utils/Marketing/Providers/LinkedIn.ts +147 -0
  85. package/Server/Utils/Marketing/Providers/Meta.ts +148 -0
  86. package/Server/Utils/Marketing/Providers/MicrosoftAds.ts +196 -0
  87. package/Server/Utils/Marketing/Providers/Reddit.ts +178 -0
  88. package/Server/Utils/Monitor/MonitorAlert.ts +71 -7
  89. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +31 -19
  90. package/Server/Utils/Monitor/MonitorIncident.ts +71 -7
  91. package/Server/Utils/Monitor/MonitorMetricUtil.ts +57 -0
  92. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +94 -0
  93. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +19 -11
  94. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +125 -14
  95. package/Server/Utils/ProductAnalytics.ts +133 -0
  96. package/Server/Utils/Telemetry/Telemetry.ts +39 -0
  97. package/Server/Utils/Telemetry/TelemetryEntity.ts +21 -0
  98. package/Tests/Models/StatusPageEnableMcpServer.test.ts +125 -0
  99. package/Tests/Server/API/BaseAnalyticsAPI.test.ts +72 -0
  100. package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +9 -1
  101. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +21 -2
  102. package/Tests/Server/Services/MetricEntityMVKeyParity.test.ts +173 -0
  103. package/Tests/Server/Services/MetricServiceAggregate.test.ts +1391 -0
  104. package/Tests/Server/Services/NetworkDeviceOwnerServices.test.ts +260 -0
  105. package/Tests/Server/Services/StatusPageServiceMcp.test.ts +223 -0
  106. package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +26 -3
  107. package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +12 -0
  108. package/Tests/Server/Types/Markdown.test.ts +106 -0
  109. package/Tests/Server/Utils/AI/AIRunTranscript.test.ts +182 -0
  110. package/Tests/Server/Utils/AI/CodeFixReadiness.test.ts +411 -0
  111. package/Tests/Server/Utils/AI/CodeTools.test.ts +596 -0
  112. package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +475 -0
  113. package/Tests/Server/Utils/AI/LLMServiceModelCompatibility.test.ts +548 -0
  114. package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +142 -0
  115. package/Tests/Server/Utils/AI/ScheduledMaintenanceTools.test.ts +176 -0
  116. package/Tests/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.test.ts +63 -0
  117. package/Tests/Server/Utils/GitHubGetFileContent.test.ts +197 -0
  118. package/Tests/Server/Utils/Monitor/MonitorTemplateUtilNetworkDevice.test.ts +389 -0
  119. package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +502 -0
  120. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +764 -0
  121. package/Tests/Types/AI/AIAgentTaskStatus.test.ts +7 -6
  122. package/Tests/Types/AI/AIChatPageContext.test.ts +0 -0
  123. package/Tests/Types/AI/AIRunStatus.test.ts +42 -0
  124. package/Tests/Types/BaseDatabase/AggregationIntervalUtil.test.ts +111 -2
  125. package/Tests/Types/Database/EndsWith.test.ts +64 -0
  126. package/Tests/Types/Database/GreaterThan.test.ts +62 -0
  127. package/Tests/Types/Database/GreaterThanOrEqual.test.ts +65 -0
  128. package/Tests/Types/Database/GreaterThanOrNull.test.ts +63 -0
  129. package/Tests/Types/Database/Includes.test.ts +65 -0
  130. package/Tests/Types/Database/IncludesAll.test.ts +65 -0
  131. package/Tests/Types/Database/IncludesNone.test.ts +65 -0
  132. package/Tests/Types/Database/IsNull.test.ts +44 -0
  133. package/Tests/Types/Database/LessThan.test.ts +62 -0
  134. package/Tests/Types/Database/LessThanOrEqual.test.ts +62 -0
  135. package/Tests/Types/Database/LessThanOrNull.test.ts +62 -0
  136. package/Tests/Types/Database/MultiSearch.test.ts +81 -0
  137. package/Tests/Types/Database/NotContains.test.ts +64 -0
  138. package/Tests/Types/Database/NotNull.test.ts +44 -0
  139. package/Tests/Types/Database/StartsWith.test.ts +64 -0
  140. package/Tests/Types/Log/LogSeverity.test.ts +78 -0
  141. package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +83 -1
  142. package/Tests/Types/Monitor/SnmpV3EnumParsing.test.ts +247 -0
  143. package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +263 -0
  144. package/Tests/UI/Components/BasicFormDropdownNormalization.test.tsx +167 -0
  145. package/Tests/UI/Components/Charts/AxisTickColor.test.tsx +66 -0
  146. package/Tests/UI/Components/XAxis.test.ts +5 -3
  147. package/Tests/UI/Utils/AIChatExport/ChatWidgetData.test.ts +319 -0
  148. package/Tests/UI/Utils/AIChatExport/ChatWidgetMarkdown.test.ts +188 -0
  149. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +76 -0
  150. package/Tests/Utils/Metrics/MetricExplorerUrl.test.ts +622 -0
  151. package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +474 -0
  152. package/Tests/Utils/Telemetry/HeartbeatAvailability.test.ts +52 -4
  153. package/Types/AI/AIAgentTaskStatus.ts +13 -0
  154. package/Types/AI/AIChatPageContext.ts +137 -0
  155. package/Types/AI/AIChatTypes.ts +44 -0
  156. package/Types/AI/AIFixReadiness.ts +46 -0
  157. package/Types/AI/AIRunStatus.ts +11 -0
  158. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +11 -0
  159. package/Types/BaseDatabase/AggregateBy.ts +31 -2
  160. package/Types/BaseDatabase/AggregatedResult.ts +22 -0
  161. package/Types/BaseDatabase/AggregationInterval.ts +11 -0
  162. package/Types/BaseDatabase/AggregationIntervalUtil.ts +30 -5
  163. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +16 -0
  164. package/Types/Email/EmailTemplateType.ts +3 -0
  165. package/Types/Log/LogSeverity.ts +61 -0
  166. package/Types/Marketing/MarketingConversion.ts +11 -0
  167. package/Types/Metrics/MetricQueryConfigData.ts +21 -0
  168. package/Types/Metrics/MetricQueryData.ts +8 -0
  169. package/Types/Metrics/MetricViewData.ts +8 -0
  170. package/Types/Monitor/MonitorMetricType.ts +8 -0
  171. package/Types/Monitor/MonitorStep.ts +9 -0
  172. package/Types/Monitor/MonitorStepSqlMonitor.ts +12 -0
  173. package/Types/Monitor/MonitorType.ts +2 -1
  174. package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +17 -12
  175. package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +13 -0
  176. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +37 -3
  177. package/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.ts +46 -0
  178. package/Types/Monitor/SnmpMonitor/SnmpEntityInfo.ts +15 -0
  179. package/Types/Monitor/SnmpMonitor/SnmpInterface.ts +8 -0
  180. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +17 -8
  181. package/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.ts +53 -0
  182. package/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.ts +43 -0
  183. package/Types/Monitor/SnmpMonitor/SnmpSystemInfo.ts +16 -0
  184. package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +119 -3
  185. package/Types/Monitor/SnmpMonitor/SnmpVersion.ts +40 -0
  186. package/Types/NetFlow/NetworkFlowRecord.ts +25 -0
  187. package/Types/Syslog/SyslogMessage.ts +18 -0
  188. package/Types/Telemetry/TelemetrySavedViewState.ts +9 -0
  189. package/Types/Telemetry/TelemetrySavedViewType.ts +12 -0
  190. package/UI/Components/Charts/Area/AreaChart.tsx +51 -0
  191. package/UI/Components/Charts/Bar/BarChart.tsx +51 -1
  192. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +97 -26
  193. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +336 -3
  194. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +118 -1
  195. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +336 -3
  196. package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +7 -0
  197. package/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.ts +15 -0
  198. package/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.ts +13 -0
  199. package/UI/Components/Charts/Line/LineChart.tsx +51 -0
  200. package/UI/Components/Charts/Types/ReferenceRegionProps.ts +12 -0
  201. package/UI/Components/Charts/Types/TimeReferenceLineProps.ts +12 -0
  202. package/UI/Components/Charts/Types/XAxis/XAxisPrecision.ts +1 -0
  203. package/UI/Components/Charts/Utils/DataPoint.ts +0 -0
  204. package/UI/Components/Charts/Utils/TimeAnnotation.ts +169 -0
  205. package/UI/Components/Charts/Utils/XAxis.ts +28 -4
  206. package/UI/Components/Forms/BasicForm.tsx +26 -8
  207. package/UI/Components/Icon/Icon.tsx +33 -13
  208. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +9 -0
  209. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +67 -0
  210. package/UI/Components/Page/ModelPage.tsx +6 -1
  211. package/UI/Components/TelemetryViewer/components/SavedViewsDropdown.tsx +33 -4
  212. package/UI/Styles/Theme.css +1324 -0
  213. package/UI/Utils/AIChatExport/ChatWidgetData.ts +316 -0
  214. package/UI/Utils/AIChatExport/ChatWidgetMarkdown.ts +349 -0
  215. package/UI/Utils/AIChatExport/ConversationMarkdown.ts +177 -0
  216. package/UI/Utils/AIChatExport/MarkdownBlocks.ts +327 -0
  217. package/UI/Utils/AIChatExport/MarkdownSafety.ts +215 -0
  218. package/UI/Utils/DownloadFile.ts +54 -0
  219. package/UI/Utils/User.ts +41 -2
  220. package/Utils/Analytics.ts +8 -6
  221. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +74 -0
  222. package/Utils/Metrics/MetricExplorerUrl.ts +771 -0
  223. package/Utils/Metrics/MetricFormulaEvaluator.ts +410 -46
  224. package/Utils/Monitor/NetworkTopologyUtil.ts +261 -49
  225. package/Utils/ValueFormatter.ts +22 -1
  226. package/build/dist/Models/AnalyticsModels/Index.js +13 -0
  227. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  228. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js +159 -0
  229. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js.map +1 -0
  230. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js +158 -0
  231. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js.map +1 -0
  232. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js +160 -0
  233. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js.map +1 -0
  234. package/build/dist/Models/AnalyticsModels/NetworkFlow.js +351 -0
  235. package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -0
  236. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +15 -7
  237. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
  238. package/build/dist/Models/DatabaseModels/AIRun.js +38 -0
  239. package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
  240. package/build/dist/Models/DatabaseModels/AIRunEvent.js +31 -0
  241. package/build/dist/Models/DatabaseModels/AIRunEvent.js.map +1 -1
  242. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js +19 -0
  243. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js.map +1 -1
  244. package/build/dist/Models/DatabaseModels/GlobalConfig.js +38 -0
  245. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  246. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  247. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  248. package/build/dist/Models/DatabaseModels/MarketingConversion.js +219 -0
  249. package/build/dist/Models/DatabaseModels/MarketingConversion.js.map +1 -0
  250. package/build/dist/Models/DatabaseModels/MetricSavedView.js +35 -0
  251. package/build/dist/Models/DatabaseModels/MetricSavedView.js.map +1 -1
  252. package/build/dist/Models/DatabaseModels/MetricType.js +76 -0
  253. package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
  254. package/build/dist/Models/DatabaseModels/NetworkDevice.js +341 -0
  255. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  256. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +341 -0
  257. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  258. package/build/dist/Models/DatabaseModels/NetworkInterface.js +60 -0
  259. package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
  260. package/build/dist/Models/DatabaseModels/Project.js +65 -0
  261. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  262. package/build/dist/Models/DatabaseModels/StatusPage.js +43 -0
  263. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  264. package/build/dist/Models/DatabaseModels/User.js +38 -0
  265. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  266. package/build/dist/Server/API/AIAgentTaskAPI.js +37 -11
  267. package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
  268. package/build/dist/Server/API/AIAgentTaskLogAPI.js +32 -7
  269. package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
  270. package/build/dist/Server/API/AIChatAPI.js +9 -0
  271. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  272. package/build/dist/Server/API/AIReadinessAPI.js +57 -0
  273. package/build/dist/Server/API/AIReadinessAPI.js.map +1 -0
  274. package/build/dist/Server/API/BaseAnalyticsAPI.js +19 -0
  275. package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
  276. package/build/dist/Server/API/CodeFixRunAPI.js +142 -0
  277. package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -1
  278. package/build/dist/Server/API/EnterpriseLicenseAPI.js +8 -0
  279. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  280. package/build/dist/Server/API/TelemetryExceptionAPI.js +4 -0
  281. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  282. package/build/dist/Server/EnvironmentConfig.js +51 -0
  283. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  284. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.js +80 -0
  285. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.js.map +1 -0
  286. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.js +37 -0
  287. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.js.map +1 -0
  288. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.js +23 -0
  289. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.js.map +1 -0
  290. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js +27 -0
  291. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js.map +1 -0
  292. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js +21 -0
  293. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js.map +1 -0
  294. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.js +22 -0
  295. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.js.map +1 -0
  296. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js +47 -0
  297. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js.map +1 -0
  298. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js +16 -0
  299. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js.map +1 -0
  300. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js +18 -0
  301. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js.map +1 -0
  302. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js +20 -0
  303. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js.map +1 -0
  304. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +20 -0
  305. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  306. package/build/dist/Server/Services/AIRunEventService.js +8 -0
  307. package/build/dist/Server/Services/AIRunEventService.js.map +1 -1
  308. package/build/dist/Server/Services/AIRunService.js +29 -0
  309. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  310. package/build/dist/Server/Services/AnalyticsDatabaseService.js +58 -4
  311. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  312. package/build/dist/Server/Services/IncidentService.js +12 -0
  313. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  314. package/build/dist/Server/Services/Index.js +10 -0
  315. package/build/dist/Server/Services/Index.js.map +1 -1
  316. package/build/dist/Server/Services/LlmProviderService.js +2 -0
  317. package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
  318. package/build/dist/Server/Services/MarketingConversionService.js +9 -0
  319. package/build/dist/Server/Services/MarketingConversionService.js.map +1 -0
  320. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js +29 -0
  321. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js.map +1 -0
  322. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js +29 -0
  323. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js.map +1 -0
  324. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js +29 -0
  325. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js.map +1 -0
  326. package/build/dist/Server/Services/MetricService.js +761 -125
  327. package/build/dist/Server/Services/MetricService.js.map +1 -1
  328. package/build/dist/Server/Services/MonitorService.js +18 -5
  329. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  330. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js +44 -0
  331. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js.map +1 -1
  332. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js +88 -0
  333. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js.map +1 -1
  334. package/build/dist/Server/Services/NetworkFlowService.js +9 -0
  335. package/build/dist/Server/Services/NetworkFlowService.js.map +1 -0
  336. package/build/dist/Server/Services/OnCallDutyPolicyService.js +15 -6
  337. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  338. package/build/dist/Server/Services/ProjectService.js +146 -6
  339. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  340. package/build/dist/Server/Services/SpanService.js +8 -6
  341. package/build/dist/Server/Services/SpanService.js.map +1 -1
  342. package/build/dist/Server/Services/StatusPageService.js +91 -0
  343. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  344. package/build/dist/Server/Services/TeamMemberService.js +11 -0
  345. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  346. package/build/dist/Server/Services/TelemetryExceptionService.js +14 -61
  347. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  348. package/build/dist/Server/Services/UserService.js +52 -0
  349. package/build/dist/Server/Services/UserService.js.map +1 -1
  350. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +33 -7
  351. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
  352. package/build/dist/Server/Types/Markdown.js +8 -8
  353. package/build/dist/Server/Types/Markdown.js.map +1 -1
  354. package/build/dist/Server/Types/MarkdownSlugify.js +47 -0
  355. package/build/dist/Server/Types/MarkdownSlugify.js.map +1 -0
  356. package/build/dist/Server/Utils/AI/AIRunTranscript.js +180 -0
  357. package/build/dist/Server/Utils/AI/AIRunTranscript.js.map +1 -0
  358. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +1 -0
  359. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
  360. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +103 -5
  361. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
  362. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +55 -0
  363. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
  364. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +211 -0
  365. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -0
  366. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -1
  367. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js +654 -0
  368. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js.map +1 -0
  369. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js +389 -0
  370. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js.map +1 -0
  371. package/build/dist/Server/Utils/AI/Toolbox/Index.js +19 -0
  372. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  373. package/build/dist/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.js +239 -0
  374. package/build/dist/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.js.map +1 -0
  375. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js +19 -1
  376. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js.map +1 -1
  377. package/build/dist/Server/Utils/Attribution.js +74 -0
  378. package/build/dist/Server/Utils/Attribution.js.map +1 -0
  379. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +439 -0
  380. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  381. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js +1 -1
  382. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js.map +1 -1
  383. package/build/dist/Server/Utils/LLM/LLMService.js +275 -19
  384. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  385. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js +40 -0
  386. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js.map +1 -0
  387. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js +20 -0
  388. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js.map +1 -0
  389. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js +177 -0
  390. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js.map +1 -0
  391. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js +113 -0
  392. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js.map +1 -0
  393. package/build/dist/Server/Utils/Marketing/Providers/Meta.js +109 -0
  394. package/build/dist/Server/Utils/Marketing/Providers/Meta.js.map +1 -0
  395. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js +130 -0
  396. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js.map +1 -0
  397. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js +126 -0
  398. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js.map +1 -0
  399. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +53 -9
  400. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  401. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -10
  402. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  403. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +54 -11
  404. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  405. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +43 -3
  406. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  407. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +68 -0
  408. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  409. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +17 -11
  410. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  411. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +100 -15
  412. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  413. package/build/dist/Server/Utils/ProductAnalytics.js +111 -0
  414. package/build/dist/Server/Utils/ProductAnalytics.js.map +1 -0
  415. package/build/dist/Server/Utils/Telemetry/Telemetry.js +32 -5
  416. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  417. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -0
  418. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  419. package/build/dist/Types/AI/AIAgentTaskStatus.js +12 -0
  420. package/build/dist/Types/AI/AIAgentTaskStatus.js.map +1 -1
  421. package/build/dist/Types/AI/AIChatPageContext.js +101 -0
  422. package/build/dist/Types/AI/AIChatPageContext.js.map +1 -0
  423. package/build/dist/Types/AI/AIChatTypes.js +2 -0
  424. package/build/dist/Types/AI/AIChatTypes.js.map +1 -1
  425. package/build/dist/Types/AI/AIFixReadiness.js +9 -0
  426. package/build/dist/Types/AI/AIFixReadiness.js.map +1 -0
  427. package/build/dist/Types/AI/AIRunStatus.js +11 -0
  428. package/build/dist/Types/AI/AIRunStatus.js.map +1 -1
  429. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +11 -0
  430. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  431. package/build/dist/Types/BaseDatabase/AggregationInterval.js +11 -0
  432. package/build/dist/Types/BaseDatabase/AggregationInterval.js.map +1 -1
  433. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +33 -5
  434. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
  435. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  436. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  437. package/build/dist/Types/Log/LogSeverity.js +56 -0
  438. package/build/dist/Types/Log/LogSeverity.js.map +1 -1
  439. package/build/dist/Types/Marketing/MarketingConversion.js +13 -0
  440. package/build/dist/Types/Marketing/MarketingConversion.js.map +1 -0
  441. package/build/dist/Types/Monitor/MonitorMetricType.js +7 -0
  442. package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
  443. package/build/dist/Types/Monitor/MonitorStep.js +6 -0
  444. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  445. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +3 -0
  446. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
  447. package/build/dist/Types/Monitor/MonitorType.js +2 -1
  448. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  449. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js +2 -0
  450. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js.map +1 -0
  451. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js +41 -0
  452. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js.map +1 -1
  453. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js +2 -0
  454. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js.map +1 -0
  455. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js +48 -0
  456. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js.map +1 -1
  457. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js +38 -0
  458. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js.map +1 -1
  459. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js +2 -0
  460. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js.map +1 -0
  461. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +96 -3
  462. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
  463. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js +38 -0
  464. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js.map +1 -1
  465. package/build/dist/Types/NetFlow/NetworkFlowRecord.js +2 -0
  466. package/build/dist/Types/NetFlow/NetworkFlowRecord.js.map +1 -0
  467. package/build/dist/Types/Syslog/SyslogMessage.js +2 -0
  468. package/build/dist/Types/Syslog/SyslogMessage.js.map +1 -0
  469. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js +0 -7
  470. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js.map +1 -1
  471. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js +13 -0
  472. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js.map +1 -0
  473. package/build/dist/UI/Components/Charts/Area/AreaChart.js +25 -1
  474. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  475. package/build/dist/UI/Components/Charts/Bar/BarChart.js +26 -2
  476. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  477. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +36 -12
  478. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  479. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +217 -8
  480. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  481. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +55 -4
  482. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  483. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +217 -8
  484. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  485. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +6 -1
  486. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -1
  487. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js +2 -0
  488. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js.map +1 -0
  489. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js +2 -0
  490. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js.map +1 -0
  491. package/build/dist/UI/Components/Charts/Line/LineChart.js +25 -1
  492. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  493. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js +2 -0
  494. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js.map +1 -0
  495. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js +2 -0
  496. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js.map +1 -0
  497. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js +1 -0
  498. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js.map +1 -1
  499. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +0 -0
  500. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
  501. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +121 -0
  502. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -0
  503. package/build/dist/UI/Components/Charts/Utils/XAxis.js +27 -4
  504. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  505. package/build/dist/UI/Components/Forms/BasicForm.js +24 -6
  506. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  507. package/build/dist/UI/Components/Icon/Icon.js +15 -8
  508. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  509. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  510. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +58 -0
  511. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  512. package/build/dist/UI/Components/Page/ModelPage.js +7 -1
  513. package/build/dist/UI/Components/Page/ModelPage.js.map +1 -1
  514. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js +10 -4
  515. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js.map +1 -1
  516. package/build/dist/UI/Utils/AIChatExport/ChatWidgetData.js +217 -0
  517. package/build/dist/UI/Utils/AIChatExport/ChatWidgetData.js.map +1 -0
  518. package/build/dist/UI/Utils/AIChatExport/ChatWidgetMarkdown.js +234 -0
  519. package/build/dist/UI/Utils/AIChatExport/ChatWidgetMarkdown.js.map +1 -0
  520. package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js +111 -0
  521. package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js.map +1 -0
  522. package/build/dist/UI/Utils/AIChatExport/MarkdownBlocks.js +233 -0
  523. package/build/dist/UI/Utils/AIChatExport/MarkdownBlocks.js.map +1 -0
  524. package/build/dist/UI/Utils/AIChatExport/MarkdownSafety.js +134 -0
  525. package/build/dist/UI/Utils/AIChatExport/MarkdownSafety.js.map +1 -0
  526. package/build/dist/UI/Utils/DownloadFile.js +41 -0
  527. package/build/dist/UI/Utils/DownloadFile.js.map +1 -0
  528. package/build/dist/UI/Utils/User.js +35 -2
  529. package/build/dist/UI/Utils/User.js.map +1 -1
  530. package/build/dist/Utils/Analytics.js +8 -5
  531. package/build/dist/Utils/Analytics.js.map +1 -1
  532. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +57 -0
  533. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  534. package/build/dist/Utils/Metrics/MetricExplorerUrl.js +418 -0
  535. package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -0
  536. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +296 -37
  537. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -1
  538. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +176 -40
  539. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  540. package/build/dist/Utils/ValueFormatter.js +20 -1
  541. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  542. package/package.json +6 -2
@@ -64,6 +64,12 @@ export default interface MonitorStepSqlMonitor {
64
64
  username: string;
65
65
  // Raw password OR a {{monitorSecrets.name}} reference resolved server-side.
66
66
  password: string;
67
+ /*
68
+ * Microsoft SQL Server only: authenticate with the identity under which the
69
+ * probe is running (SSPI on Windows, Kerberos on Linux/macOS). Username and
70
+ * password are ignored when this is enabled.
71
+ */
72
+ useWindowsIntegratedAuthentication: boolean;
67
73
  useSsl: boolean;
68
74
  /*
69
75
  * When SSL is on, whether the server certificate chain must validate. Users
@@ -87,6 +93,7 @@ export class MonitorStepSqlMonitorUtil {
87
93
  databaseName: "",
88
94
  username: "",
89
95
  password: "",
96
+ useWindowsIntegratedAuthentication: false,
90
97
  useSsl: false,
91
98
  rejectUnauthorizedSsl: true,
92
99
  query: "",
@@ -105,6 +112,9 @@ export class MonitorStepSqlMonitorUtil {
105
112
  databaseName: (json["databaseName"] as string) || "",
106
113
  username: (json["username"] as string) || "",
107
114
  password: (json["password"] as string) || "",
115
+ useWindowsIntegratedAuthentication: Boolean(
116
+ json["useWindowsIntegratedAuthentication"],
117
+ ),
108
118
  useSsl: Boolean(json["useSsl"]),
109
119
  rejectUnauthorizedSsl:
110
120
  json["rejectUnauthorizedSsl"] === undefined ||
@@ -130,6 +140,8 @@ export class MonitorStepSqlMonitorUtil {
130
140
  databaseName: monitor.databaseName,
131
141
  username: monitor.username,
132
142
  password: monitor.password,
143
+ useWindowsIntegratedAuthentication:
144
+ monitor.useWindowsIntegratedAuthentication,
133
145
  useSsl: monitor.useSsl,
134
146
  rejectUnauthorizedSsl: monitor.rejectUnauthorizedSsl,
135
147
  query: monitor.query,
@@ -480,7 +480,8 @@ export class MonitorTypeHelper {
480
480
  return (
481
481
  monitorType === MonitorType.IncomingRequest ||
482
482
  monitorType === MonitorType.IncomingEmail ||
483
- monitorType === MonitorType.Server
483
+ monitorType === MonitorType.Server ||
484
+ monitorType === MonitorType.NetworkDevice
484
485
  );
485
486
  }
486
487
 
@@ -1,14 +1,19 @@
1
+ /*
2
+ * Every field is optional AND explicitly undefined-able: a certificate need
3
+ * not carry any given subject field, and under exactOptionalPropertyTypes the
4
+ * probe cannot assign a "may be absent" value into a bare optional property.
5
+ */
1
6
  export default interface SslMonitorResponse {
2
- isSelfSigned?: boolean;
3
- createdAt?: Date;
4
- expiresAt?: Date;
5
- commonName?: string;
6
- organizationalUnit?: string;
7
- organization?: string;
8
- locality?: string;
9
- state?: string;
10
- country?: string;
11
- serialNumber?: string;
12
- fingerprint?: string;
13
- fingerprint256?: string;
7
+ isSelfSigned?: boolean | undefined;
8
+ createdAt?: Date | undefined;
9
+ expiresAt?: Date | undefined;
10
+ commonName?: string | undefined;
11
+ organizationalUnit?: string | undefined;
12
+ organization?: string | undefined;
13
+ locality?: string | undefined;
14
+ state?: string | undefined;
15
+ country?: string | undefined;
16
+ serialNumber?: string | undefined;
17
+ fingerprint?: string | undefined;
18
+ fingerprint256?: string | undefined;
14
19
  }
@@ -0,0 +1,13 @@
1
+ /*
2
+ * One neighbor entry from a Cisco device's CDP cache (CISCO-CDP-MIB
3
+ * cdpCacheTable). Collected as a fallback/complement to LLDP — plenty of
4
+ * Cisco estates run CDP only, and without it their topology is empty. The
5
+ * server matches remoteDeviceId against known NetworkDevices the same way it
6
+ * matches LLDP remoteSysName.
7
+ */
8
+ export default interface CdpNeighbor {
9
+ localInterfaceIndex?: number | undefined;
10
+ remoteDeviceId?: string | undefined;
11
+ remotePortId?: string | undefined;
12
+ remotePlatform?: string | undefined;
13
+ }
@@ -1,11 +1,17 @@
1
1
  /*
2
2
  * A derived view of the network topology for one project, built server-side
3
- * from the LLDP neighbor data each device reports. Nodes are devices;
4
- * unmanaged neighbors (LLDP peers with no matching NetworkDevice) appear as
5
- * lightweight nodes so the graph doesn't dead-end. Edges are LLDP links.
3
+ * from the LLDP and CDP neighbor data each device reports. Nodes are devices;
4
+ * unmanaged neighbors (discovery-protocol peers with no matching
5
+ * NetworkDevice) appear as lightweight nodes so the graph doesn't dead-end.
6
+ * Edges are physical links — one per device pair even when both ends (or
7
+ * both protocols) report it — annotated with the operational state of the
8
+ * interface at each end when the neighbor entry identifies it.
6
9
  */
7
10
  export type NetworkTopologyNodeStatus = "up" | "down" | "unknown";
8
11
 
12
+ // Which discovery protocol(s) reported a link.
13
+ export type NetworkTopologyLinkProtocol = "lldp" | "cdp";
14
+
9
15
  export interface NetworkTopologyNode {
10
16
  // Device id for managed nodes; a synthetic "unmanaged:<key>" id otherwise.
11
17
  id: string;
@@ -14,6 +20,27 @@ export interface NetworkTopologyNode {
14
20
  status: NetworkTopologyNodeStatus;
15
21
  interfacesUp?: number | undefined;
16
22
  interfacesDown?: number | undefined;
23
+ // Extra device identity for search and the detail panel (managed nodes).
24
+ sysName?: string | undefined;
25
+ vendor?: string | undefined;
26
+ // For unmanaged CDP peers this carries the reported platform string.
27
+ deviceModel?: string | undefined;
28
+ }
29
+
30
+ /*
31
+ * Operational state of one end of a link, resolved from the NetworkInterface
32
+ * row for that (device, interfaceIndex) pair when the neighbor entry carries
33
+ * enough to identify it. All fields optional — enrichment is best-effort.
34
+ */
35
+ export interface NetworkTopologyEdgeEndpoint {
36
+ interfaceIndex?: number | undefined;
37
+ interfaceName?: string | undefined;
38
+ isOperationallyUp?: boolean | undefined;
39
+ isAdministrativelyUp?: boolean | undefined;
40
+ utilizationPercent?: number | undefined;
41
+ inRateMbps?: number | undefined;
42
+ outRateMbps?: number | undefined;
43
+ errorsPerSecond?: number | undefined;
17
44
  }
18
45
 
19
46
  export interface NetworkTopologyEdge {
@@ -21,9 +48,16 @@ export interface NetworkTopologyEdge {
21
48
  toNodeId: string;
22
49
  fromPort?: string | undefined;
23
50
  toPort?: string | undefined;
51
+ // Discovery protocols that reported this link (deduped union).
52
+ protocols?: Array<NetworkTopologyLinkProtocol> | undefined;
53
+ // Operational data at each end, when the endpoint interface is known.
54
+ fromInterface?: NetworkTopologyEdgeEndpoint | undefined;
55
+ toInterface?: NetworkTopologyEdgeEndpoint | undefined;
24
56
  }
25
57
 
26
58
  export default interface NetworkTopology {
27
59
  nodes: Array<NetworkTopologyNode>;
28
60
  edges: Array<NetworkTopologyEdge>;
61
+ // True when the device query hit its per-project cap — graph may be partial.
62
+ isTruncated?: boolean | undefined;
29
63
  }
@@ -5,4 +5,50 @@ enum SnmpAuthProtocol {
5
5
  SHA512 = "SHA512",
6
6
  }
7
7
 
8
+ /*
9
+ * Same free-text column problem as SnmpPrivProtocol: snmpV3AuthProtocol has no
10
+ * check constraint, and reading it by casting the raw string to this enum
11
+ * silently drops to the probe's default of MD5 — the weakest digest — when the
12
+ * spelling does not match exactly. "SHA-256" is what the form labels that
13
+ * option, so it is a realistic thing to find in a hand-written row.
14
+ *
15
+ * This protocol also selects the hash used to localize the *privacy* key
16
+ * (RFC 3414 section 2.6), so getting it wrong corrupts the DES/AES key as well
17
+ * as the authentication digest. Both ends then disagree and the device simply
18
+ * stops answering.
19
+ *
20
+ * See SnmpPrivProtocol for why parse() returns undefined instead of a default.
21
+ * SHA here is SHA-1, the original RFC 3414 algorithm.
22
+ */
23
+ export class SnmpAuthProtocolUtil {
24
+ public static parse(
25
+ value: string | undefined | null,
26
+ ): SnmpAuthProtocol | undefined {
27
+ switch ((value || "").trim().toLowerCase()) {
28
+ case "md5":
29
+ return SnmpAuthProtocol.MD5;
30
+ case "sha":
31
+ case "sha1":
32
+ case "sha-1":
33
+ return SnmpAuthProtocol.SHA;
34
+ case "sha256":
35
+ case "sha-256":
36
+ return SnmpAuthProtocol.SHA256;
37
+ case "sha512":
38
+ case "sha-512":
39
+ return SnmpAuthProtocol.SHA512;
40
+ default:
41
+ return undefined;
42
+ }
43
+ }
44
+
45
+ public static isUnrecognized(value: string | undefined | null): boolean {
46
+ if (!(value || "").trim()) {
47
+ return false;
48
+ }
49
+
50
+ return SnmpAuthProtocolUtil.parse(value) === undefined;
51
+ }
52
+ }
53
+
8
54
  export default SnmpAuthProtocol;
@@ -0,0 +1,15 @@
1
+ /*
2
+ * Hardware identity from ENTITY-MIB entPhysicalTable (1.3.6.1.2.1.47.1.1.1).
3
+ * The probe picks the chassis row (entPhysicalClass == 3), falling back to
4
+ * the lowest-indexed row that carries a serial number, since stacked or
5
+ * modular devices expose one row per component. All fields are best-effort —
6
+ * many low-end devices do not implement ENTITY-MIB at all.
7
+ */
8
+ export default interface SnmpEntityInfo {
9
+ manufacturer?: string | undefined;
10
+ model?: string | undefined;
11
+ serialNumber?: string | undefined;
12
+ hardwareRevision?: string | undefined;
13
+ firmwareVersion?: string | undefined;
14
+ softwareVersion?: string | undefined;
15
+ }
@@ -15,6 +15,14 @@ export default interface SnmpInterface {
15
15
  alias?: string | undefined;
16
16
  isOperationallyUp: boolean;
17
17
  isAdministrativelyUp: boolean;
18
+ /*
19
+ * ifPhysAddress formatted as lowercase colon-separated hex
20
+ * ("aa:bb:cc:dd:ee:ff"); undefined for interfaces with no MAC (loopbacks,
21
+ * tunnels) or when the device returns an empty octet string.
22
+ */
23
+ macAddress?: string | undefined;
24
+ // IANAifType number (ifType column) — 6 = ethernetCsmacd, 24 = loopback...
25
+ interfaceType?: number | undefined;
18
26
  speedInBitsPerSecond?: number | undefined;
19
27
  inOctets?: number | undefined;
20
28
  outOctets?: number | undefined;
@@ -2,6 +2,9 @@ import ProbeAttempt from "../../Probe/ProbeAttempt";
2
2
  import SnmpDataType from "./SnmpDataType";
3
3
  import SnmpInterface from "./SnmpInterface";
4
4
  import LldpNeighbor from "./LldpNeighbor";
5
+ import CdpNeighbor from "./CdpNeighbor";
6
+ import SnmpSystemInfo from "./SnmpSystemInfo";
7
+ import SnmpEntityInfo from "./SnmpEntityInfo";
5
8
 
6
9
  export interface SnmpOidResponse {
7
10
  oid: string;
@@ -26,18 +29,24 @@ export default interface SnmpMonitorResponse {
26
29
  interfaces?: Array<SnmpInterface> | undefined;
27
30
  interfaceWalkFailure?: string | undefined;
28
31
  /*
29
- * System-group identity (sysDescr / sysName), collected alongside the
30
- * interface walk. Used to enrich the NetworkDevice resource.
32
+ * System-group identity, collected alongside the interface walk. Used to
33
+ * enrich the NetworkDevice resource. Older probes send only
34
+ * sysDescr/sysName.
31
35
  */
32
- systemInfo?:
33
- | {
34
- sysDescr?: string | undefined;
35
- sysName?: string | undefined;
36
- }
37
- | undefined;
36
+ systemInfo?: SnmpSystemInfo | undefined;
37
+ /*
38
+ * ENTITY-MIB hardware identity (manufacturer/model/serial/firmware),
39
+ * collected alongside the interface walk on devices that implement it.
40
+ */
41
+ entityInfo?: SnmpEntityInfo | undefined;
38
42
  /*
39
43
  * LLDP neighbors discovered during the walk (when interface monitoring is
40
44
  * enabled). Used to build the network topology graph.
41
45
  */
42
46
  lldpNeighbors?: Array<LldpNeighbor> | undefined;
47
+ /*
48
+ * CDP neighbors, walked as a complement to LLDP for Cisco estates.
49
+ * Undefined on older probes and non-CDP devices.
50
+ */
51
+ cdpNeighbors?: Array<CdpNeighbor> | undefined;
43
52
  }
@@ -4,4 +4,57 @@ enum SnmpPrivProtocol {
4
4
  AES256 = "AES256",
5
5
  }
6
6
 
7
+ /*
8
+ * The snmpV3PrivProtocol column is free text (character varying, no check
9
+ * constraint), so what lands in it is only as good as whoever wrote it. The
10
+ * forms write these enum values, but a direct API call, a hand-edited row or
11
+ * a restored backup can put anything there.
12
+ *
13
+ * parse() is the only correct way to read that column. Reading it by casting
14
+ * the raw string to this enum type compiles fine and then silently misses:
15
+ * an "AES-256" (the label the form shows) or "aes" is not === any member, so
16
+ * the probe's protocol switch falls to its default and encrypts with DES —
17
+ * the weakest option — against a device that expects AES. The poll then fails
18
+ * in a way that looks like a timeout rather than a config error.
19
+ *
20
+ * Returning undefined rather than a default member is deliberate: "unset" and
21
+ * "unreadable" are different problems, and only the caller knows whether it is
22
+ * safe to fall back. isUnrecognized() names the second case so the probe can
23
+ * refuse to poll rather than guess a cipher.
24
+ *
25
+ * The accepted spellings cover case, surrounding whitespace, and the hyphen
26
+ * the UI labels use. AES here is AES-128, per RFC 3826.
27
+ */
28
+ export class SnmpPrivProtocolUtil {
29
+ public static parse(
30
+ value: string | undefined | null,
31
+ ): SnmpPrivProtocol | undefined {
32
+ switch ((value || "").trim().toLowerCase()) {
33
+ case "des":
34
+ return SnmpPrivProtocol.DES;
35
+ case "aes":
36
+ case "aes128":
37
+ case "aes-128":
38
+ return SnmpPrivProtocol.AES;
39
+ case "aes256":
40
+ case "aes-256":
41
+ return SnmpPrivProtocol.AES256;
42
+ default:
43
+ return undefined;
44
+ }
45
+ }
46
+
47
+ /*
48
+ * True only when something is stored and none of the spellings match — an
49
+ * empty or absent column is "unset", not "unrecognized".
50
+ */
51
+ public static isUnrecognized(value: string | undefined | null): boolean {
52
+ if (!(value || "").trim()) {
53
+ return false;
54
+ }
55
+
56
+ return SnmpPrivProtocolUtil.parse(value) === undefined;
57
+ }
58
+ }
59
+
7
60
  export default SnmpPrivProtocol;
@@ -4,4 +4,47 @@ enum SnmpSecurityLevel {
4
4
  AuthPriv = "authPriv",
5
5
  }
6
6
 
7
+ /*
8
+ * This is the most consequential of the v3 enums to misread, because the
9
+ * fallback is not merely a weaker algorithm — it is no security at all.
10
+ *
11
+ * The snmpV3SecurityLevel column is free text. Casting it straight to this
12
+ * enum and letting an unmatched value fall through to NoAuthNoPriv means a
13
+ * device configured for authPriv gets polled with its authentication and
14
+ * privacy material dropped: the username goes out in cleartext and nothing is
15
+ * encrypted. The device rejects it, so the visible symptom is a dead monitor
16
+ * rather than a config error, and the downgrade itself is invisible.
17
+ *
18
+ * The keys ("AuthPriv") and values ("authPriv") differ only by the case of the
19
+ * first letter, which is exactly the kind of drift a hand-written row or an
20
+ * API caller reading the docs will produce. Lowercasing collapses the two
21
+ * spellings onto each other, so parse() accepts both by construction.
22
+ *
23
+ * See SnmpPrivProtocol for why parse() returns undefined rather than a default.
24
+ */
25
+ export class SnmpSecurityLevelUtil {
26
+ public static parse(
27
+ value: string | undefined | null,
28
+ ): SnmpSecurityLevel | undefined {
29
+ switch ((value || "").trim().toLowerCase()) {
30
+ case "noauthnopriv":
31
+ return SnmpSecurityLevel.NoAuthNoPriv;
32
+ case "authnopriv":
33
+ return SnmpSecurityLevel.AuthNoPriv;
34
+ case "authpriv":
35
+ return SnmpSecurityLevel.AuthPriv;
36
+ default:
37
+ return undefined;
38
+ }
39
+ }
40
+
41
+ public static isUnrecognized(value: string | undefined | null): boolean {
42
+ if (!(value || "").trim()) {
43
+ return false;
44
+ }
45
+
46
+ return SnmpSecurityLevelUtil.parse(value) === undefined;
47
+ }
48
+ }
49
+
7
50
  export default SnmpSecurityLevel;
@@ -0,0 +1,16 @@
1
+ /*
2
+ * The SNMPv2 system group (1.3.6.1.2.1.1), read by the probe alongside the
3
+ * interface walk and by subnet discovery. sysObjectId is the vendor's
4
+ * registered enterprise OID — the canonical device fingerprint used to
5
+ * suggest a vendor OID template and derive the vendor name without MIBs.
6
+ * sysUpTimeSeconds is converted from TimeTicks (hundredths of a second) on
7
+ * the probe.
8
+ */
9
+ export default interface SnmpSystemInfo {
10
+ sysDescr?: string | undefined;
11
+ sysName?: string | undefined;
12
+ sysObjectId?: string | undefined;
13
+ sysLocation?: string | undefined;
14
+ sysContact?: string | undefined;
15
+ sysUpTimeSeconds?: number | undefined;
16
+ }
@@ -48,7 +48,7 @@ const MIKROTIK: SnmpVendorTemplate = {
48
48
  id: "mikrotik-routeros",
49
49
  label: "MikroTik RouterOS",
50
50
  description:
51
- "CPU load, CPU temperature, and voltage from the MikroTik health MIB, plus standard Host Resources CPU.",
51
+ "CPU load, board temperature, and voltage from the MikroTik health MIB, plus standard Host Resources CPU.",
52
52
  oids: [
53
53
  {
54
54
  oid: "1.3.6.1.2.1.25.3.3.1.2.1",
@@ -56,9 +56,10 @@ const MIKROTIK: SnmpVendorTemplate = {
56
56
  description: "hrProcessorLoad — first processor.",
57
57
  },
58
58
  {
59
+ // .10.0 is mtxrHlTemperature (board temp); processor temp is .11.0.
59
60
  oid: "1.3.6.1.4.1.14988.1.1.3.10.0",
60
- name: "CPU Temperature (C)",
61
- description: "mtxrHlProcessorTemperature.",
61
+ name: "Temperature (C)",
62
+ description: "mtxrHlTemperature — system/board temperature.",
62
63
  },
63
64
  {
64
65
  oid: "1.3.6.1.4.1.14988.1.1.3.8.0",
@@ -128,6 +129,58 @@ export const SnmpVendorTemplates: Array<SnmpVendorTemplate> = [
128
129
  UBIQUITI,
129
130
  ];
130
131
 
132
+ /*
133
+ * IANA private-enterprise numbers → vendor display names, for the vendors
134
+ * that actually show up on monitored networks. Used to derive a vendor from
135
+ * sysObjectID (1.3.6.1.4.1.<enterprise>...) when the device does not
136
+ * implement ENTITY-MIB. Not exhaustive by design — unknown enterprises just
137
+ * leave the vendor blank.
138
+ */
139
+ const ENTERPRISE_VENDOR_NAMES: Record<number, string> = {
140
+ 9: "Cisco",
141
+ 11: "HPE",
142
+ 43: "3Com",
143
+ 171: "D-Link",
144
+ 207: "Allied Telesis",
145
+ 674: "Dell",
146
+ 1588: "Brocade",
147
+ 1916: "Extreme Networks",
148
+ 2011: "Huawei",
149
+ 2021: "Net-SNMP",
150
+ 2636: "Juniper",
151
+ 3224: "NetScreen",
152
+ 3375: "F5",
153
+ 4526: "Netgear",
154
+ 6027: "Force10",
155
+ 6486: "Alcatel-Lucent",
156
+ 6574: "Synology",
157
+ 8072: "Net-SNMP",
158
+ 9303: "PacketFront",
159
+ 10002: "Frogfoot",
160
+ 11863: "TP-Link",
161
+ 12325: "pfSense",
162
+ 12356: "Fortinet",
163
+ 14823: "Aruba",
164
+ 14988: "MikroTik",
165
+ 17163: "Riverbed",
166
+ 22610: "Vyatta",
167
+ 24681: "QNAP",
168
+ 25461: "Palo Alto Networks",
169
+ 25506: "H3C",
170
+ 26543: "Yamaha",
171
+ 30065: "Arista",
172
+ 35098: "PICA8",
173
+ 41112: "Ubiquiti",
174
+ 47196: "OPNsense",
175
+ };
176
+
177
+ // sysObjectID template routing: enterprise number → vendor template id.
178
+ const ENTERPRISE_TEMPLATE_IDS: Record<number, string> = {
179
+ 9: "cisco-ios",
180
+ 14988: "mikrotik-routeros",
181
+ 41112: "ubiquiti-edgeos",
182
+ };
183
+
131
184
  export default class SnmpVendorTemplateUtil {
132
185
  public static getAll(): Array<SnmpVendorTemplate> {
133
186
  return SnmpVendorTemplates;
@@ -139,6 +192,69 @@ export default class SnmpVendorTemplateUtil {
139
192
  });
140
193
  }
141
194
 
195
+ /*
196
+ * Extracts the IANA private-enterprise number from a sysObjectID value
197
+ * ("1.3.6.1.4.1.<enterprise>...", with or without a leading dot). Returns
198
+ * undefined for OIDs outside the enterprises arc (e.g. the mib-2 values
199
+ * some appliances report).
200
+ */
201
+ public static getEnterpriseNumber(
202
+ sysObjectId: string | undefined,
203
+ ): number | undefined {
204
+ if (!sysObjectId) {
205
+ return undefined;
206
+ }
207
+
208
+ const normalized: string = sysObjectId.trim().replace(/^\./, "");
209
+ const enterprisesPrefix: string = "1.3.6.1.4.1.";
210
+
211
+ if (!normalized.startsWith(enterprisesPrefix)) {
212
+ return undefined;
213
+ }
214
+
215
+ const enterprisePart: string | undefined = normalized
216
+ .substring(enterprisesPrefix.length)
217
+ .split(".")[0];
218
+
219
+ const enterpriseNumber: number = parseInt(enterprisePart || "", 10);
220
+ return isNaN(enterpriseNumber) ? undefined : enterpriseNumber;
221
+ }
222
+
223
+ public static getVendorNameBySysObjectId(
224
+ sysObjectId: string | undefined,
225
+ ): string | undefined {
226
+ const enterpriseNumber: number | undefined =
227
+ SnmpVendorTemplateUtil.getEnterpriseNumber(sysObjectId);
228
+
229
+ if (enterpriseNumber === undefined) {
230
+ return undefined;
231
+ }
232
+
233
+ return ENTERPRISE_VENDOR_NAMES[enterpriseNumber];
234
+ }
235
+
236
+ /*
237
+ * Suggests the vendor OID template matching a device's sysObjectID.
238
+ * Returns undefined when no vendor-specific template exists — callers can
239
+ * fall back to the generic Host Resources template, which most
240
+ * Linux-based appliances answer.
241
+ */
242
+ public static matchBySysObjectId(
243
+ sysObjectId: string | undefined,
244
+ ): SnmpVendorTemplate | undefined {
245
+ const enterpriseNumber: number | undefined =
246
+ SnmpVendorTemplateUtil.getEnterpriseNumber(sysObjectId);
247
+
248
+ if (enterpriseNumber === undefined) {
249
+ return undefined;
250
+ }
251
+
252
+ const templateId: string | undefined =
253
+ ENTERPRISE_TEMPLATE_IDS[enterpriseNumber];
254
+
255
+ return templateId ? SnmpVendorTemplateUtil.getById(templateId) : undefined;
256
+ }
257
+
142
258
  /*
143
259
  * Merges a template's OIDs into an existing list, skipping any OID already
144
260
  * present so applying a template twice (or applying two overlapping ones)
@@ -4,4 +4,44 @@ enum SnmpVersion {
4
4
  V3 = "3",
5
5
  }
6
6
 
7
+ /*
8
+ * Two spellings exist, and they belong to two different layers:
9
+ *
10
+ * - These enum VALUES ("1"/"2c"/"3") are the probe-contract spelling.
11
+ * MonitorStepSnmpMonitor.snmpVersion is typed as this enum, and
12
+ * SnmpMonitor branches on it to pick the session type.
13
+ * - The KEYS ("V1"/"V2c"/"V3") are the stored spelling. The free-text
14
+ * snmpVersion column on NetworkDevice / NetworkDeviceDiscoveryScan holds
15
+ * these: it is what every form writes, what the column default is, and
16
+ * what the public API reference documents as the allowed values.
17
+ *
18
+ * parse() is the conversion at that seam, and it is the only correct way to
19
+ * read the column. Comparing the raw column against an enum member instead
20
+ * silently takes the wrong branch — a stored "V3" is not === SnmpVersion.V3
21
+ * ("3"), so a v3 device reads as v2c and gets polled in cleartext.
22
+ *
23
+ * parse() also accepts the value spelling and mixed case, so a row written by
24
+ * hand (direct API call, manual DB edit) can't strand a device in the wrong
25
+ * branch. No product path writes that spelling — the tolerance is a guard, not
26
+ * a sign that the column is expected to hold both.
27
+ */
28
+ export class SnmpVersionUtil {
29
+ public static parse(value: string | undefined | null): SnmpVersion {
30
+ switch ((value || "").trim().toLowerCase()) {
31
+ case "1":
32
+ case "v1":
33
+ return SnmpVersion.V1;
34
+ case "3":
35
+ case "v3":
36
+ return SnmpVersion.V3;
37
+ default:
38
+ return SnmpVersion.V2c;
39
+ }
40
+ }
41
+
42
+ public static isV3(value: string | undefined | null): boolean {
43
+ return SnmpVersionUtil.parse(value) === SnmpVersion.V3;
44
+ }
45
+ }
46
+
7
47
  export default SnmpVersion;
@@ -0,0 +1,25 @@
1
+ /*
2
+ * One network flow parsed from a NetFlow v5 record, forwarded by a probe's
3
+ * NetFlow receiver to the server, where it is correlated to a NetworkDevice
4
+ * by the EXPORTER's IP address (the router/switch that sent the datagram)
5
+ * and written into the ClickHouse NetworkFlow table. Source/destination
6
+ * describe the traffic itself; exporterIpAddress identifies the device that
7
+ * observed it. Flow timestamps are converted to wall-clock time by the
8
+ * probe from the datagram's sysUptime/unixSecs header fields.
9
+ */
10
+ export default interface NetworkFlowRecord {
11
+ exporterIpAddress: string;
12
+ sourceIpAddress: string;
13
+ destinationIpAddress: string;
14
+ sourcePort: number;
15
+ destinationPort: number;
16
+ protocolNumber: number;
17
+ octets: number;
18
+ packets: number;
19
+ flowStartAt: Date;
20
+ flowEndAt: Date;
21
+ inputInterfaceIndex?: number | undefined;
22
+ outputInterfaceIndex?: number | undefined;
23
+ tcpFlags?: number | undefined;
24
+ tos?: number | undefined;
25
+ }
@@ -0,0 +1,18 @@
1
+ /*
2
+ * A syslog message received by a probe's syslog receiver and forwarded to
3
+ * the server, where it is correlated to a NetworkDevice by source IP and
4
+ * written into the telemetry Logs pipeline. Facility and severity are the
5
+ * RFC 5424 numerical codes decoded from the message's <PRI> prefix
6
+ * (facility 0-23, severity 0-7). The timestamp comes from the message
7
+ * itself when parseable, otherwise it equals receivedAt.
8
+ */
9
+ export default interface SyslogMessage {
10
+ sourceIpAddress: string;
11
+ facility: number;
12
+ severity: number;
13
+ timestamp: Date;
14
+ hostname?: string | undefined;
15
+ appName?: string | undefined;
16
+ message: string;
17
+ receivedAt: Date;
18
+ }
@@ -1,3 +1,5 @@
1
+ import { JSONObject } from "../JSON";
2
+
1
3
  /*
2
4
  * Serializable view state for the Metrics and Traces explorers. Stored in the
3
5
  * `query` JSONB column of MetricSavedView / TraceSavedView. This is the same
@@ -25,4 +27,11 @@ export default interface TelemetrySavedViewState {
25
27
  pageSize?: number | undefined;
26
28
  // Traces explorer: root-spans-only toggle (defaults to true when absent).
27
29
  rootOnly?: boolean | undefined;
30
+ /*
31
+ * Metrics explorer: the full chart-builder state — MetricsViewConfig-
32
+ * shaped { queryConfigs, formulaConfigs } plus a time-range token.
33
+ * Kept loosely typed like the rest of this state: the explorer owns
34
+ * serialization and must deserialize defensively.
35
+ */
36
+ explorerConfig?: JSONObject | undefined;
28
37
  }