@oneuptime/common 11.6.1 → 11.6.2

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 (397) hide show
  1. package/Models/AnalyticsModels/Index.ts +4 -0
  2. package/Models/AnalyticsModels/KubernetesCostAllocation.ts +842 -0
  3. package/Models/AnalyticsModels/NetworkFlow.ts +54 -0
  4. package/Models/AnalyticsModels/SloHistory.ts +240 -0
  5. package/Models/DatabaseModels/Index.ts +20 -0
  6. package/Models/DatabaseModels/NetworkDevice.ts +453 -6
  7. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +7 -6
  8. package/Models/DatabaseModels/NetworkEndpoint.ts +753 -0
  9. package/Models/DatabaseModels/NetworkSite.ts +1155 -0
  10. package/Models/DatabaseModels/NetworkSiteAssignmentRule.ts +517 -0
  11. package/Models/DatabaseModels/NetworkSiteLink.ts +611 -0
  12. package/Models/DatabaseModels/NetworkSiteStatusTimeline.ts +520 -0
  13. package/Models/DatabaseModels/NetworkSiteType.ts +499 -0
  14. package/Models/DatabaseModels/ServiceLevelObjective.ts +1106 -0
  15. package/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.ts +762 -0
  16. package/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.ts +444 -0
  17. package/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.ts +443 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.ts +359 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.ts +48 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.ts +65 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.ts +88 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.ts +391 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
  24. package/Server/Services/AnalyticsDatabaseService.ts +25 -9
  25. package/Server/Services/Index.ts +24 -0
  26. package/Server/Services/KubernetesCostAllocationService.ts +14 -0
  27. package/Server/Services/MetricService.ts +21 -2
  28. package/Server/Services/MonitorService.ts +22 -0
  29. package/Server/Services/NetworkDeviceService.ts +438 -2
  30. package/Server/Services/NetworkEndpointService.ts +414 -0
  31. package/Server/Services/NetworkSiteAssignmentRuleService.ts +98 -0
  32. package/Server/Services/NetworkSiteLinkService.ts +10 -0
  33. package/Server/Services/NetworkSiteService.ts +1254 -0
  34. package/Server/Services/NetworkSiteStatusTimelineService.ts +10 -0
  35. package/Server/Services/NetworkSiteTypeService.ts +10 -0
  36. package/Server/Services/ProjectService.ts +122 -2
  37. package/Server/Services/ServiceLevelObjectiveBurnRateRuleService.ts +457 -0
  38. package/Server/Services/ServiceLevelObjectiveOwnerTeamService.ts +10 -0
  39. package/Server/Services/ServiceLevelObjectiveOwnerUserService.ts +10 -0
  40. package/Server/Services/ServiceLevelObjectiveService.ts +677 -0
  41. package/Server/Services/SloHistoryService.ts +101 -0
  42. package/Server/Services/UserNotificationSettingService.ts +37 -0
  43. package/Server/Types/AnalyticsDatabase/AggregateBy.ts +9 -0
  44. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +15 -0
  45. package/Server/Utils/AnalyticsDatabase/Statement.ts +39 -3
  46. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +87 -48
  47. package/Server/Utils/Memory.ts +9 -1
  48. package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +190 -12
  49. package/Server/Utils/Monitor/Data/OuiVendors.json +6920 -0
  50. package/Server/Utils/Monitor/DnsResolutionCache.ts +129 -0
  51. package/Server/Utils/Monitor/MonitorResource.ts +4 -30
  52. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +214 -39
  53. package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +343 -0
  54. package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +251 -0
  55. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +176 -142
  56. package/Server/Utils/Monitor/OuiLookupUtil.ts +49 -0
  57. package/Server/Utils/Monitor/SnmpInterfaceRateUtil.ts +17 -13
  58. package/Server/Utils/WhatsAppTemplateUtil.ts +7 -3
  59. package/Tests/Models/AnalyticsModels/KubernetesCostAllocation.test.ts +135 -0
  60. package/Tests/Models/NetworkSiteHierarchy.test.ts +134 -0
  61. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +239 -0
  62. package/Tests/Server/Services/KubernetesCostAllocationAggregate.test.ts +338 -0
  63. package/Tests/Server/Services/MetricServiceAggregate.test.ts +142 -0
  64. package/Tests/Server/Services/NetworkDeviceSiteAssignment.test.ts +484 -0
  65. package/Tests/Server/Services/NetworkEndpointServiceUpsert.test.ts +686 -0
  66. package/Tests/Server/Services/NetworkSiteAssignmentRuleService.test.ts +185 -0
  67. package/Tests/Server/Services/NetworkSiteService.test.ts +1354 -0
  68. package/Tests/Server/Services/ServiceLevelObjectiveBurnRateRuleService.test.ts +1313 -0
  69. package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +1988 -0
  70. package/Tests/Server/Utils/AnalyticsDatabase/Statement.test.ts +22 -0
  71. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +404 -0
  72. package/Tests/Server/Utils/Encryption.test.ts +70 -0
  73. package/Tests/Server/Utils/FileAttachmentMarkdownUtil.test.ts +225 -0
  74. package/Tests/Server/Utils/JsonWebToken.test.ts +175 -0
  75. package/Tests/Server/Utils/LocalFile.test.ts +258 -0
  76. package/Tests/Server/Utils/Memory.test.ts +213 -0
  77. package/Tests/Server/Utils/Monitor/Criteria/LogMonitorCriteria.test.ts +30 -0
  78. package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +385 -0
  79. package/Tests/Server/Utils/Monitor/DnsResolutionCache.test.ts +194 -0
  80. package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +155 -0
  81. package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +600 -0
  82. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +151 -124
  83. package/Tests/Server/Utils/Monitor/SnmpInterfaceRateUtil.test.ts +496 -0
  84. package/Tests/Server/Utils/MonitorCriteriaDataExtractor.test.ts +175 -0
  85. package/Tests/Server/Utils/MonitorCriteriaMessageFormatter.test.ts +282 -0
  86. package/Tests/Server/Utils/OuiLookupUtil.test.ts +59 -0
  87. package/Tests/Server/Utils/SeriesResourceLabels.test.ts +117 -0
  88. package/Tests/Server/Utils/StackTraceParser.test.ts +370 -0
  89. package/Tests/Server/Utils/Stream.test.ts +87 -0
  90. package/Tests/Server/Utils/ValidateGlobalProviderProjectTeams.test.ts +221 -0
  91. package/Tests/Server/Utils/WhatsAppTemplateUtil.test.ts +199 -0
  92. package/Tests/Types/Database/CompareOperatorWireSerialization.test.ts +33 -0
  93. package/Tests/Types/Email.test.ts +198 -0
  94. package/Tests/Types/Kubernetes/KubernetesObjectParser.test.ts +177 -0
  95. package/Tests/Types/Log/LogQueryToFilter.test.ts +111 -0
  96. package/Tests/Types/Monitor/MonitorStepNetworkDeviceMonitor.test.ts +141 -1
  97. package/Tests/Types/Monitor/MonitorType.test.ts +59 -1
  98. package/Tests/Types/Monitor/NetworkDeviceAlertPack.test.ts +97 -0
  99. package/Tests/Types/Monitor/SnmpEndpointDiscovery.test.ts +151 -0
  100. package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +110 -6
  101. package/Tests/Types/NetworkSite/DefaultNetworkSiteType.test.ts +129 -0
  102. package/Tests/Types/SerializableObjectDictionary.test.ts +166 -0
  103. package/Tests/Types/Time/RangeStartAndEndDateTime.test.ts +98 -0
  104. package/Tests/Types/WebsiteRequest.test.ts +230 -0
  105. package/Tests/UI/Components/EntityFilterRoundTrip.test.tsx +103 -0
  106. package/Tests/UI/Components/ModelTable/BaseModelTableUrlState.test.tsx +612 -0
  107. package/Tests/UI/Components/ModelTable/FilterDataToQuery.test.ts +275 -0
  108. package/Tests/UI/Utils/LogExport.test.ts +159 -0
  109. package/Tests/UI/Utils/Navigation.test.ts +183 -0
  110. package/Tests/UI/Utils/TableFilterUrlState.test.ts +539 -0
  111. package/Tests/UI/Utils/TableViewUrlState.test.ts +272 -0
  112. package/Tests/Utils/Base64.test.ts +51 -0
  113. package/Tests/Utils/Boolean.test.ts +76 -0
  114. package/Tests/Utils/Crypto.test.ts +48 -0
  115. package/Tests/Utils/Dashboard/DashboardSloComponent.test.ts +259 -0
  116. package/Tests/Utils/Dashboard/ModelQueryVariableInterpolation.test.ts +162 -0
  117. package/Tests/Utils/Enum.test.ts +54 -0
  118. package/Tests/Utils/IpCanonicalUtil.test.ts +85 -0
  119. package/Tests/Utils/Metrics/MetricSeriesFingerprint.test.ts +160 -0
  120. package/Tests/Utils/Monitor/EndpointAttachmentUtil.test.ts +836 -0
  121. package/Tests/Utils/Monitor/MonitorMetricType.test.ts +218 -0
  122. package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +447 -0
  123. package/Tests/Utils/NetworkSite/CidrMatchUtil.test.ts +440 -0
  124. package/Tests/Utils/NetworkSite/MaterializedPathUtil.test.ts +205 -0
  125. package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +221 -0
  126. package/Tests/Utils/NetworkSite/SiteUptimeUtil.test.ts +283 -0
  127. package/Tests/Utils/ObjectUtil.test.ts +30 -0
  128. package/Tests/Utils/Slo/SloStatusColor.test.ts +89 -0
  129. package/Tests/Utils/Slo/SloUtil.test.ts +1980 -0
  130. package/Tests/Utils/Slo/SloWidgetFormat.test.ts +605 -0
  131. package/Tests/Utils/TechStack.test.ts +50 -0
  132. package/Tests/Utils/Traces/CriticalPath.test.ts +178 -0
  133. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +10 -0
  134. package/Types/BaseDatabase/EqualTo.ts +9 -1
  135. package/Types/BaseDatabase/EqualToOrNull.ts +9 -1
  136. package/Types/BaseDatabase/NotEqual.ts +9 -1
  137. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  138. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  139. package/Types/Dashboard/DashboardComponents/DashboardSloComponent.ts +42 -0
  140. package/Types/Dashboard/DashboardTemplates.ts +214 -0
  141. package/Types/Email/EmailTemplateType.ts +2 -0
  142. package/Types/Kubernetes/KubernetesCostIngest.ts +79 -0
  143. package/Types/Monitor/CriteriaFilter.ts +9 -0
  144. package/Types/Monitor/MonitorStep.ts +5 -8
  145. package/Types/Monitor/MonitorStepNetworkDeviceMonitor.ts +27 -5
  146. package/Types/Monitor/MonitorType.ts +15 -5
  147. package/Types/Monitor/SnmpMonitor/ArpEntry.ts +14 -0
  148. package/Types/Monitor/SnmpMonitor/FdbEntry.ts +18 -0
  149. package/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.ts +10 -3
  150. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +31 -5
  151. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +12 -0
  152. package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +231 -3
  153. package/Types/NetworkSite/DefaultNetworkSiteType.ts +20 -0
  154. package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
  155. package/Types/Permission.ts +449 -0
  156. package/Types/ServiceLevelObjective/SliType.ts +6 -0
  157. package/Types/ServiceLevelObjective/SloMultiMonitorMode.ts +6 -0
  158. package/Types/ServiceLevelObjective/SloStatus.ts +9 -0
  159. package/Types/ServiceLevelObjective/SloWindowType.ts +6 -0
  160. package/Types/Telemetry/ServiceType.ts +1 -0
  161. package/UI/Components/Filters/EntityFilter.tsx +16 -0
  162. package/UI/Components/Filters/FilterViewer.tsx +22 -5
  163. package/UI/Components/List/List.tsx +8 -0
  164. package/UI/Components/ModelTable/BaseModelTable.tsx +309 -106
  165. package/UI/Components/ModelTable/FilterDataToQuery.ts +172 -0
  166. package/UI/Components/Navbar/NavBar.tsx +16 -2
  167. package/UI/Components/Navbar/NavBarMenuModal.tsx +3 -3
  168. package/UI/Utils/Navigation.ts +10 -0
  169. package/UI/Utils/TableFilterUrlState.ts +204 -17
  170. package/UI/Utils/TableViewUrlState.ts +165 -0
  171. package/Utils/Dashboard/Components/DashboardSloComponent.ts +114 -0
  172. package/Utils/Dashboard/Components/Index.ts +7 -0
  173. package/Utils/IpCanonicalUtil.ts +134 -0
  174. package/Utils/Monitor/EndpointAttachmentUtil.ts +508 -0
  175. package/Utils/Monitor/NetworkTopologyUtil.ts +157 -5
  176. package/Utils/NetworkSite/CidrMatchUtil.ts +296 -0
  177. package/Utils/NetworkSite/MaterializedPathUtil.ts +115 -0
  178. package/Utils/NetworkSite/SiteStatusRollupUtil.ts +97 -0
  179. package/Utils/NetworkSite/SiteUptimeUtil.ts +111 -0
  180. package/Utils/Slo/SloStatusColor.ts +54 -0
  181. package/Utils/Slo/SloUtil.ts +637 -0
  182. package/Utils/Slo/SloWidgetFormat.ts +383 -0
  183. package/build/dist/Models/AnalyticsModels/Index.js +4 -0
  184. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  185. package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js +713 -0
  186. package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js.map +1 -0
  187. package/build/dist/Models/AnalyticsModels/NetworkFlow.js +44 -0
  188. package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -1
  189. package/build/dist/Models/AnalyticsModels/SloHistory.js +215 -0
  190. package/build/dist/Models/AnalyticsModels/SloHistory.js.map +1 -0
  191. package/build/dist/Models/DatabaseModels/Index.js +20 -0
  192. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  193. package/build/dist/Models/DatabaseModels/NetworkDevice.js +458 -6
  194. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  195. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +0 -6
  196. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  197. package/build/dist/Models/DatabaseModels/NetworkEndpoint.js +779 -0
  198. package/build/dist/Models/DatabaseModels/NetworkEndpoint.js.map +1 -0
  199. package/build/dist/Models/DatabaseModels/NetworkSite.js +1180 -0
  200. package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -0
  201. package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js +534 -0
  202. package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js.map +1 -0
  203. package/build/dist/Models/DatabaseModels/NetworkSiteLink.js +629 -0
  204. package/build/dist/Models/DatabaseModels/NetworkSiteLink.js.map +1 -0
  205. package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js +538 -0
  206. package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js.map +1 -0
  207. package/build/dist/Models/DatabaseModels/NetworkSiteType.js +522 -0
  208. package/build/dist/Models/DatabaseModels/NetworkSiteType.js.map +1 -0
  209. package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js +1124 -0
  210. package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js.map +1 -0
  211. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.js +769 -0
  212. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.js.map +1 -0
  213. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js +460 -0
  214. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js.map +1 -0
  215. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js +459 -0
  216. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js.map +1 -0
  217. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.js +130 -0
  218. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.js.map +1 -0
  219. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.js +31 -0
  220. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.js.map +1 -0
  221. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.js +36 -0
  222. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.js.map +1 -0
  223. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.js +49 -0
  224. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.js.map +1 -0
  225. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.js +140 -0
  226. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.js.map +1 -0
  227. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  228. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  229. package/build/dist/Server/Services/AnalyticsDatabaseService.js +23 -6
  230. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  231. package/build/dist/Server/Services/Index.js +24 -0
  232. package/build/dist/Server/Services/Index.js.map +1 -1
  233. package/build/dist/Server/Services/KubernetesCostAllocationService.js +12 -0
  234. package/build/dist/Server/Services/KubernetesCostAllocationService.js.map +1 -0
  235. package/build/dist/Server/Services/MetricService.js +21 -3
  236. package/build/dist/Server/Services/MetricService.js.map +1 -1
  237. package/build/dist/Server/Services/MonitorService.js +19 -0
  238. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  239. package/build/dist/Server/Services/NetworkDeviceService.js +351 -1
  240. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  241. package/build/dist/Server/Services/NetworkEndpointService.js +319 -0
  242. package/build/dist/Server/Services/NetworkEndpointService.js.map +1 -0
  243. package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js +90 -0
  244. package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js.map +1 -0
  245. package/build/dist/Server/Services/NetworkSiteLinkService.js +9 -0
  246. package/build/dist/Server/Services/NetworkSiteLinkService.js.map +1 -0
  247. package/build/dist/Server/Services/NetworkSiteService.js +1038 -0
  248. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -0
  249. package/build/dist/Server/Services/NetworkSiteStatusTimelineService.js +9 -0
  250. package/build/dist/Server/Services/NetworkSiteStatusTimelineService.js.map +1 -0
  251. package/build/dist/Server/Services/NetworkSiteTypeService.js +9 -0
  252. package/build/dist/Server/Services/NetworkSiteTypeService.js.map +1 -0
  253. package/build/dist/Server/Services/ProjectService.js +98 -2
  254. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  255. package/build/dist/Server/Services/ServiceLevelObjectiveBurnRateRuleService.js +358 -0
  256. package/build/dist/Server/Services/ServiceLevelObjectiveBurnRateRuleService.js.map +1 -0
  257. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerTeamService.js +9 -0
  258. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerTeamService.js.map +1 -0
  259. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerUserService.js +9 -0
  260. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerUserService.js.map +1 -0
  261. package/build/dist/Server/Services/ServiceLevelObjectiveService.js +582 -0
  262. package/build/dist/Server/Services/ServiceLevelObjectiveService.js.map +1 -0
  263. package/build/dist/Server/Services/SloHistoryService.js +77 -0
  264. package/build/dist/Server/Services/SloHistoryService.js.map +1 -0
  265. package/build/dist/Server/Services/UserNotificationSettingService.js +20 -0
  266. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  267. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +9 -0
  268. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
  269. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +15 -0
  270. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  271. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +31 -0
  272. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
  273. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +76 -48
  274. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  275. package/build/dist/Server/Utils/Memory.js +9 -1
  276. package/build/dist/Server/Utils/Memory.js.map +1 -1
  277. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +132 -10
  278. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
  279. package/build/dist/Server/Utils/Monitor/Data/OuiVendors.json +6920 -0
  280. package/build/dist/Server/Utils/Monitor/DnsResolutionCache.js +77 -0
  281. package/build/dist/Server/Utils/Monitor/DnsResolutionCache.js.map +1 -0
  282. package/build/dist/Server/Utils/Monitor/MonitorResource.js +21 -41
  283. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  284. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +152 -40
  285. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  286. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +262 -0
  287. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -0
  288. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +201 -0
  289. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -0
  290. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +152 -120
  291. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  292. package/build/dist/Server/Utils/Monitor/OuiLookupUtil.js +44 -0
  293. package/build/dist/Server/Utils/Monitor/OuiLookupUtil.js.map +1 -0
  294. package/build/dist/Server/Utils/Monitor/SnmpInterfaceRateUtil.js +10 -10
  295. package/build/dist/Server/Utils/Monitor/SnmpInterfaceRateUtil.js.map +1 -1
  296. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +5 -0
  297. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
  298. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +10 -0
  299. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  300. package/build/dist/Types/BaseDatabase/EqualTo.js +9 -1
  301. package/build/dist/Types/BaseDatabase/EqualTo.js.map +1 -1
  302. package/build/dist/Types/BaseDatabase/EqualToOrNull.js +9 -1
  303. package/build/dist/Types/BaseDatabase/EqualToOrNull.js.map +1 -1
  304. package/build/dist/Types/BaseDatabase/NotEqual.js +9 -1
  305. package/build/dist/Types/BaseDatabase/NotEqual.js.map +1 -1
  306. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  307. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  308. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  309. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  310. package/build/dist/Types/Dashboard/DashboardComponents/DashboardSloComponent.js +23 -0
  311. package/build/dist/Types/Dashboard/DashboardComponents/DashboardSloComponent.js.map +1 -0
  312. package/build/dist/Types/Dashboard/DashboardTemplates.js +205 -0
  313. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  314. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  315. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  316. package/build/dist/Types/Kubernetes/KubernetesCostIngest.js +21 -0
  317. package/build/dist/Types/Kubernetes/KubernetesCostIngest.js.map +1 -0
  318. package/build/dist/Types/Monitor/CriteriaFilter.js +1 -0
  319. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  320. package/build/dist/Types/Monitor/MonitorStep.js +5 -5
  321. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  322. package/build/dist/Types/Monitor/MonitorStepNetworkDeviceMonitor.js +8 -0
  323. package/build/dist/Types/Monitor/MonitorStepNetworkDeviceMonitor.js.map +1 -1
  324. package/build/dist/Types/Monitor/MonitorType.js +15 -5
  325. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  326. package/build/dist/Types/Monitor/SnmpMonitor/ArpEntry.js +2 -0
  327. package/build/dist/Types/Monitor/SnmpMonitor/ArpEntry.js.map +1 -0
  328. package/build/dist/Types/Monitor/SnmpMonitor/FdbEntry.js +2 -0
  329. package/build/dist/Types/Monitor/SnmpMonitor/FdbEntry.js.map +1 -0
  330. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js +9 -3
  331. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js.map +1 -1
  332. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +217 -3
  333. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
  334. package/build/dist/Types/NetworkSite/DefaultNetworkSiteType.js +21 -0
  335. package/build/dist/Types/NetworkSite/DefaultNetworkSiteType.js.map +1 -0
  336. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
  337. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  338. package/build/dist/Types/Permission.js +409 -0
  339. package/build/dist/Types/Permission.js.map +1 -1
  340. package/build/dist/Types/ServiceLevelObjective/SliType.js +7 -0
  341. package/build/dist/Types/ServiceLevelObjective/SliType.js.map +1 -0
  342. package/build/dist/Types/ServiceLevelObjective/SloMultiMonitorMode.js +7 -0
  343. package/build/dist/Types/ServiceLevelObjective/SloMultiMonitorMode.js.map +1 -0
  344. package/build/dist/Types/ServiceLevelObjective/SloStatus.js +10 -0
  345. package/build/dist/Types/ServiceLevelObjective/SloStatus.js.map +1 -0
  346. package/build/dist/Types/ServiceLevelObjective/SloWindowType.js +7 -0
  347. package/build/dist/Types/ServiceLevelObjective/SloWindowType.js.map +1 -0
  348. package/build/dist/Types/Telemetry/ServiceType.js +1 -0
  349. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  350. package/build/dist/UI/Components/Filters/EntityFilter.js +15 -0
  351. package/build/dist/UI/Components/Filters/EntityFilter.js.map +1 -1
  352. package/build/dist/UI/Components/Filters/FilterViewer.js +19 -4
  353. package/build/dist/UI/Components/Filters/FilterViewer.js.map +1 -1
  354. package/build/dist/UI/Components/List/List.js +1 -1
  355. package/build/dist/UI/Components/List/List.js.map +1 -1
  356. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +235 -89
  357. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  358. package/build/dist/UI/Components/ModelTable/FilterDataToQuery.js +96 -0
  359. package/build/dist/UI/Components/ModelTable/FilterDataToQuery.js.map +1 -0
  360. package/build/dist/UI/Components/Navbar/NavBar.js +14 -2
  361. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  362. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +3 -2
  363. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  364. package/build/dist/UI/Utils/Navigation.js +9 -0
  365. package/build/dist/UI/Utils/Navigation.js.map +1 -1
  366. package/build/dist/UI/Utils/TableFilterUrlState.js +159 -15
  367. package/build/dist/UI/Utils/TableFilterUrlState.js.map +1 -1
  368. package/build/dist/UI/Utils/TableViewUrlState.js +103 -0
  369. package/build/dist/UI/Utils/TableViewUrlState.js.map +1 -0
  370. package/build/dist/Utils/Dashboard/Components/DashboardSloComponent.js +93 -0
  371. package/build/dist/Utils/Dashboard/Components/DashboardSloComponent.js.map +1 -0
  372. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  373. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  374. package/build/dist/Utils/IpCanonicalUtil.js +110 -0
  375. package/build/dist/Utils/IpCanonicalUtil.js.map +1 -0
  376. package/build/dist/Utils/Monitor/EndpointAttachmentUtil.js +311 -0
  377. package/build/dist/Utils/Monitor/EndpointAttachmentUtil.js.map +1 -0
  378. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +98 -5
  379. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  380. package/build/dist/Utils/NetworkSite/CidrMatchUtil.js +222 -0
  381. package/build/dist/Utils/NetworkSite/CidrMatchUtil.js.map +1 -0
  382. package/build/dist/Utils/NetworkSite/MaterializedPathUtil.js +89 -0
  383. package/build/dist/Utils/NetworkSite/MaterializedPathUtil.js.map +1 -0
  384. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +60 -0
  385. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -0
  386. package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js +76 -0
  387. package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js.map +1 -0
  388. package/build/dist/Utils/Slo/SloStatusColor.js +18 -0
  389. package/build/dist/Utils/Slo/SloStatusColor.js.map +1 -0
  390. package/build/dist/Utils/Slo/SloUtil.js +393 -0
  391. package/build/dist/Utils/Slo/SloUtil.js.map +1 -0
  392. package/build/dist/Utils/Slo/SloWidgetFormat.js +174 -0
  393. package/build/dist/Utils/Slo/SloWidgetFormat.js.map +1 -0
  394. package/package.json +2 -2
  395. package/Types/Dashboard/DashboardComponents/Index.ts +0 -7
  396. package/build/dist/Types/Dashboard/DashboardComponents/Index.js +0 -8
  397. package/build/dist/Types/Dashboard/DashboardComponents/Index.js.map +0 -1
@@ -734,18 +734,15 @@ export default class MonitorStep extends DatabaseProperty {
734
734
  return "Port is required";
735
735
  }
736
736
 
737
+ /*
738
+ * A Network Device monitor only needs to know WHICH device to alert
739
+ * on. What gets collected (interface walks, endpoint discovery, health
740
+ * OIDs) is configured on the NetworkDevice resource itself, not here.
741
+ */
737
742
  if (monitorType === MonitorType.NetworkDevice) {
738
743
  if (!value.data.networkDeviceMonitor?.networkDeviceId) {
739
744
  return "Network Device is required";
740
745
  }
741
-
742
- if (
743
- !value.data.networkDeviceMonitor.monitorInterfaces &&
744
- (!value.data.networkDeviceMonitor.oids ||
745
- value.data.networkDeviceMonitor.oids.length === 0)
746
- ) {
747
- return "Enable interface monitoring or configure at least one OID";
748
- }
749
746
  }
750
747
 
751
748
  if (monitorType === MonitorType.DNS) {
@@ -2,15 +2,29 @@ import { JSONObject } from "../JSON";
2
2
  import SnmpOid from "./SnmpMonitor/SnmpOid";
3
3
 
4
4
  /*
5
- * Step configuration for Network Device monitors. Unlike the retired SNMP
6
- * monitor type, the step carries no connection details — it references a
7
- * NetworkDevice resource which owns the hostname, credentials, and
8
- * interface inventory. The server hydrates the device's SNMP config into
9
- * the step (as `snmpMonitor`) when handing work to probes.
5
+ * Step configuration for Network Device monitors. The step is purely a
6
+ * device reference: the NetworkDevice resource owns the hostname,
7
+ * credentials, polling schedule, interface walks, endpoint discovery, and
8
+ * health OIDs. The monitor is the alerting layer it is evaluated
9
+ * server-side against the device's walk results and traps.
10
10
  */
11
11
  export default interface MonitorStepNetworkDeviceMonitor {
12
12
  networkDeviceId: string | undefined;
13
+ /*
14
+ * DEPRECATED: interface walking is now configured on the NetworkDevice
15
+ * (walkInterfaces). Retained so steps saved before the move still parse;
16
+ * never written by the dashboard anymore.
17
+ */
13
18
  monitorInterfaces: boolean;
19
+ /*
20
+ * DEPRECATED: endpoint collection is now configured on the NetworkDevice
21
+ * (collectEndpoints). Retained for parsing legacy steps only.
22
+ */
23
+ collectEndpoints?: boolean | undefined;
24
+ /*
25
+ * DEPRECATED: health OIDs are now configured on the NetworkDevice
26
+ * (snmpOids). Retained for parsing legacy steps only.
27
+ */
14
28
  oids: Array<SnmpOid>;
15
29
  }
16
30
 
@@ -19,6 +33,8 @@ export class MonitorStepNetworkDeviceMonitorUtil {
19
33
  return {
20
34
  networkDeviceId: undefined,
21
35
  monitorInterfaces: true,
36
+ // Off by default; the form renders it as an explicit opt-in switch.
37
+ collectEndpoints: false,
22
38
  oids: [],
23
39
  };
24
40
  }
@@ -27,6 +43,11 @@ export class MonitorStepNetworkDeviceMonitorUtil {
27
43
  return {
28
44
  networkDeviceId: (json["networkDeviceId"] as string) || undefined,
29
45
  monitorInterfaces: json["monitorInterfaces"] !== false,
46
+ /*
47
+ * Unlike monitorInterfaces, this is default-FALSE: only an explicit
48
+ * true opts in, so steps saved before the flag existed stay off.
49
+ */
50
+ collectEndpoints: json["collectEndpoints"] === true,
30
51
  oids: ((json["oids"] as Array<JSONObject>) || []).map(
31
52
  (oid: JSONObject) => {
32
53
  return {
@@ -43,6 +64,7 @@ export class MonitorStepNetworkDeviceMonitorUtil {
43
64
  return {
44
65
  networkDeviceId: monitor.networkDeviceId,
45
66
  monitorInterfaces: monitor.monitorInterfaces,
67
+ collectEndpoints: monitor.collectEndpoints,
46
68
  oids: monitor.oids.map((oid: SnmpOid) => {
47
69
  return {
48
70
  oid: oid.oid,
@@ -37,9 +37,11 @@ enum MonitorType {
37
37
 
38
38
  /*
39
39
  * Network device monitoring (SNMP-based). Replaced the retired SNMP
40
- * monitor type: instead of inline SNMP config, the monitor references a
41
- * NetworkDevice resource that owns the credentials and interface
42
- * inventory.
40
+ * monitor type. The referenced NetworkDevice resource owns everything
41
+ * about data collection credentials, polling schedule, interface
42
+ * walks, endpoint discovery, and health OIDs. The monitor is purely the
43
+ * alerting layer: it picks a device and evaluates criteria against the
44
+ * device's walk results and traps, server-side.
43
45
  */
44
46
  NetworkDevice = "Network Device",
45
47
 
@@ -354,7 +356,7 @@ export class MonitorTypeHelper {
354
356
  monitorType: MonitorType.NetworkDevice,
355
357
  title: "Network Device",
356
358
  description:
357
- "This monitor type lets you monitor a registered Network Device (switch, router, firewall, or access point) via SNMP — availability, interface status, bandwidth, and traps.",
359
+ "This monitor type alerts on a registered Network Device (switch, router, firewall, or access point) — availability, interface status, bandwidth, health OIDs, and traps. The device itself is polled by its assigned probe; the monitor chooses what to alert on.",
358
360
  icon: IconProp.Signal,
359
361
  },
360
362
  {
@@ -420,6 +422,15 @@ export class MonitorTypeHelper {
420
422
  return monitorTypeProps[0].title;
421
423
  }
422
424
 
425
+ /*
426
+ * Monitor types the probe executes on a schedule via MonitorProbe rows.
427
+ *
428
+ * NetworkDevice is deliberately NOT probeable: the NetworkDevice resource
429
+ * owns its own polling (the device's assigned probe walks it on the
430
+ * device's schedule), and Network Device monitors are evaluated
431
+ * server-side against each walk result and incoming trap — like
432
+ * IncomingRequest monitors, they never appear in a probe's work list.
433
+ */
423
434
  public static isProbableMonitor(monitorType: MonitorType): boolean {
424
435
  const isProbeableMonitor: boolean =
425
436
  monitorType === MonitorType.API ||
@@ -430,7 +441,6 @@ export class MonitorTypeHelper {
430
441
  monitorType === MonitorType.SSLCertificate ||
431
442
  monitorType === MonitorType.SyntheticMonitor ||
432
443
  monitorType === MonitorType.CustomJavaScriptCode ||
433
- monitorType === MonitorType.NetworkDevice ||
434
444
  monitorType === MonitorType.DNS ||
435
445
  monitorType === MonitorType.DNSSEC ||
436
446
  monitorType === MonitorType.Domain ||
@@ -0,0 +1,14 @@
1
+ /*
2
+ * One entry from a device's ARP / IP-to-media table (IP-MIB
3
+ * ipNetToMediaTable). Captured by the probe alongside the interface walk
4
+ * when endpoint collection is enabled; the server joins these against FDB
5
+ * entries by MAC address to give discovered endpoints an IP address on the
6
+ * topology graph.
7
+ */
8
+ export default interface ArpEntry {
9
+ ipAddress: string;
10
+ macAddress: string;
11
+ interfaceIndex: number;
12
+ // ipNetToMediaType, decoded: e.g. "dynamic", "static", "invalid".
13
+ entryType?: string | undefined;
14
+ }
@@ -0,0 +1,18 @@
1
+ /*
2
+ * One entry from a switch's forwarding database (BRIDGE-MIB dot1dTpFdbTable
3
+ * or Q-BRIDGE-MIB dot1qTpFdbTable). Each row says "this MAC address was
4
+ * learned on this bridge port" — the raw material for endpoint discovery.
5
+ * The probe resolves bridgePort to an ifIndex via dot1dBasePortIfIndex when
6
+ * the device implements it; the server turns MACs learned on leaf ports
7
+ * into endpoint nodes on the topology graph.
8
+ */
9
+ export default interface FdbEntry {
10
+ macAddress: string;
11
+ bridgePort: number;
12
+ // ifIndex the bridge port maps to, when dot1dBasePortIfIndex resolved it.
13
+ interfaceIndex?: number | undefined;
14
+ // From Q-BRIDGE-MIB walks; undefined when only dot1d data was available.
15
+ vlanId?: number | undefined;
16
+ // dot1dTpFdbStatus, decoded: e.g. "learned", "self", "mgmt".
17
+ status?: string | undefined;
18
+ }
@@ -88,8 +88,9 @@ export default class NetworkDeviceAlertPackUtil {
88
88
 
89
89
  /*
90
90
  * Builds ready-to-append MonitorCriteriaInstances from the pack. Each is
91
- * enabled and set to change monitor status; severities and on-call
92
- * policies are left for the user to fill in.
91
+ * enabled; incident-creating items also change the monitor status to the
92
+ * context's down status. Severities and on-call policies are left for the
93
+ * user to fill in.
93
94
  */
94
95
  public static buildCriteriaInstances(
95
96
  context?: NetworkDeviceAlertPackContext,
@@ -105,7 +106,13 @@ export default class NetworkDeviceAlertPackUtil {
105
106
  alerts: [],
106
107
  createAlerts: item.createAlerts,
107
108
  createIncidents: item.createIncidents,
108
- changeMonitorStatus: item.createIncidents,
109
+ /*
110
+ * Never claim to change monitor status without a status to change
111
+ * to — a caller that passes no context would otherwise produce
112
+ * criteria that "change" the monitor to an undefined status.
113
+ */
114
+ changeMonitorStatus:
115
+ item.createIncidents && Boolean(context?.downMonitorStatusId),
109
116
  isEnabled: true,
110
117
  name: item.name,
111
118
  description: item.description,
@@ -1,16 +1,30 @@
1
1
  /*
2
2
  * A derived view of the network topology for one project, built server-side
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.
3
+ * from the LLDP and CDP neighbor data each device reports (and, when
4
+ * endpoint collection is enabled, the ARP/FDB endpoint data). Nodes are
5
+ * devices; unmanaged neighbors (discovery-protocol peers with no matching
6
+ * NetworkDevice) appear as lightweight nodes so the graph doesn't dead-end,
7
+ * and discovered endpoints appear as "endpoint" nodes attached via "fdb"
8
+ * links.
6
9
  * Edges are physical links — one per device pair even when both ends (or
7
10
  * both protocols) report it — annotated with the operational state of the
8
11
  * interface at each end when the neighbor entry identifies it.
9
12
  */
10
13
  export type NetworkTopologyNodeStatus = "up" | "down" | "unknown";
11
14
 
12
- // Which discovery protocol(s) reported a link.
13
- export type NetworkTopologyLinkProtocol = "lldp" | "cdp";
15
+ /*
16
+ * Which source(s) reported a link — a discovery protocol, or the bridge
17
+ * forwarding database (endpoint attachment).
18
+ */
19
+ export type NetworkTopologyLinkProtocol = "lldp" | "cdp" | "fdb";
20
+
21
+ /*
22
+ * What a node represents. Older payloads carry no kind — readers should
23
+ * derive it from isManaged ("device" when true, "unmanaged" otherwise).
24
+ * "endpoint" nodes are non-network hosts (POS terminals, cameras, kiosks)
25
+ * discovered from ARP/FDB data.
26
+ */
27
+ export type NetworkTopologyNodeKind = "device" | "unmanaged" | "endpoint";
14
28
 
15
29
  export interface NetworkTopologyNode {
16
30
  // Device id for managed nodes; a synthetic "unmanaged:<key>" id otherwise.
@@ -18,6 +32,8 @@ export interface NetworkTopologyNode {
18
32
  name: string;
19
33
  isManaged: boolean;
20
34
  status: NetworkTopologyNodeStatus;
35
+ // Missing on older payloads — derive from isManaged.
36
+ kind?: NetworkTopologyNodeKind | undefined;
21
37
  interfacesUp?: number | undefined;
22
38
  interfacesDown?: number | undefined;
23
39
  // Extra device identity for search and the detail panel (managed nodes).
@@ -25,6 +41,16 @@ export interface NetworkTopologyNode {
25
41
  vendor?: string | undefined;
26
42
  // For unmanaged CDP peers this carries the reported platform string.
27
43
  deviceModel?: string | undefined;
44
+ /*
45
+ * Endpoint identity (endpoint nodes only), all best-effort: MAC from the
46
+ * FDB, IP from the ARP join, classification from OUI/heuristics (e.g.
47
+ * "pos-terminal", "camera", "printer"), VLAN from the FDB entry that
48
+ * learned the MAC. Optional so older payloads stay valid.
49
+ */
50
+ macAddress?: string | undefined;
51
+ ipAddress?: string | undefined;
52
+ classification?: string | undefined;
53
+ vlanId?: number | undefined;
28
54
  }
29
55
 
30
56
  /*
@@ -3,6 +3,8 @@ import SnmpDataType from "./SnmpDataType";
3
3
  import SnmpInterface from "./SnmpInterface";
4
4
  import LldpNeighbor from "./LldpNeighbor";
5
5
  import CdpNeighbor from "./CdpNeighbor";
6
+ import ArpEntry from "./ArpEntry";
7
+ import FdbEntry from "./FdbEntry";
6
8
  import SnmpSystemInfo from "./SnmpSystemInfo";
7
9
  import SnmpEntityInfo from "./SnmpEntityInfo";
8
10
 
@@ -49,4 +51,14 @@ export default interface SnmpMonitorResponse {
49
51
  * Undefined on older probes and non-CDP devices.
50
52
  */
51
53
  cdpNeighbors?: Array<CdpNeighbor> | undefined;
54
+ /*
55
+ * ARP / IP-to-media entries, walked when endpoint collection is enabled
56
+ * on the monitor step. Undefined on older probes.
57
+ */
58
+ arpEntries?: Array<ArpEntry> | undefined;
59
+ /*
60
+ * Bridge forwarding-database entries — MAC addresses learned per bridge
61
+ * port. Undefined on older probes and non-bridge devices.
62
+ */
63
+ fdbEntries?: Array<FdbEntry> | undefined;
52
64
  }
@@ -41,6 +41,205 @@ const CISCO: SnmpVendorTemplate = {
41
41
  name: "Temperature (C)",
42
42
  description: "ciscoEnvMonTemperatureValue — first temperature sensor.",
43
43
  },
44
+ {
45
+ /*
46
+ * First row of ciscoEnvMonFanStatusTable. State is an enum, not a
47
+ * gauge — criteria should alert when the value is anything but 1.
48
+ */
49
+ oid: "1.3.6.1.4.1.9.9.13.1.4.1.3.1",
50
+ name: "Fan State",
51
+ description: "ciscoEnvMonFanState — first fan; 1 = normal.",
52
+ },
53
+ {
54
+ // First row of ciscoEnvMonSupplyStatusTable — same enum as fan state.
55
+ oid: "1.3.6.1.4.1.9.9.13.1.5.1.3.1",
56
+ name: "PSU State",
57
+ description: "ciscoEnvMonSupplyState — first power supply; 1 = normal.",
58
+ },
59
+ ],
60
+ };
61
+
62
+ const JUNIPER: SnmpVendorTemplate = {
63
+ id: "juniper-junos",
64
+ label: "Juniper Junos",
65
+ description:
66
+ "Routing Engine CPU, memory buffer, and temperature from the Juniper jnxOperatingTable (Junos routers, switches, and firewalls).",
67
+ oids: [
68
+ {
69
+ /*
70
+ * jnxOperatingTable rows are indexed by chassis position; 9.1.0.0 is
71
+ * the documented first Routing Engine (RE0) row on most Junos
72
+ * platforms. Adjust the index for multi-RE chassis.
73
+ */
74
+ oid: "1.3.6.1.4.1.2636.3.1.13.1.8.9.1.0.0",
75
+ name: "CPU %",
76
+ description: "jnxOperatingCPU — Routing Engine CPU utilization.",
77
+ },
78
+ {
79
+ oid: "1.3.6.1.4.1.2636.3.1.13.1.11.9.1.0.0",
80
+ name: "Memory Buffer %",
81
+ description: "jnxOperatingBuffer — Routing Engine memory utilization.",
82
+ },
83
+ {
84
+ oid: "1.3.6.1.4.1.2636.3.1.13.1.7.9.1.0.0",
85
+ name: "Temperature (C)",
86
+ description: "jnxOperatingTemp — Routing Engine temperature.",
87
+ },
88
+ ],
89
+ };
90
+
91
+ const ARISTA: SnmpVendorTemplate = {
92
+ id: "arista-eos",
93
+ label: "Arista EOS",
94
+ description:
95
+ "CPU load, load average, and memory via the standard Host Resources and UCD MIBs — Arista EOS exposes these rather than a vendor-specific CPU/memory MIB.",
96
+ oids: [
97
+ {
98
+ oid: "1.3.6.1.2.1.25.3.3.1.2.1",
99
+ name: "CPU Load %",
100
+ description: "hrProcessorLoad — first processor.",
101
+ },
102
+ {
103
+ oid: "1.3.6.1.4.1.2021.10.1.3.1",
104
+ name: "Load Average (1 min)",
105
+ description: "laLoad.1 — UCD-SNMP-MIB.",
106
+ },
107
+ {
108
+ oid: "1.3.6.1.4.1.2021.4.5.0",
109
+ name: "Total RAM (KB)",
110
+ description: "memTotalReal — UCD-SNMP-MIB.",
111
+ },
112
+ {
113
+ oid: "1.3.6.1.4.1.2021.4.6.0",
114
+ name: "Available RAM (KB)",
115
+ description: "memAvailReal — UCD-SNMP-MIB.",
116
+ },
117
+ ],
118
+ };
119
+
120
+ const HPE_PROCURVE: SnmpVendorTemplate = {
121
+ id: "hpe-procurve",
122
+ label: "HPE / Aruba ProCurve",
123
+ description:
124
+ "CPU and global memory from the HP switch STATISTICS and NETSWITCH MIBs on ProCurve / ArubaOS-Switch devices.",
125
+ oids: [
126
+ {
127
+ oid: "1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0",
128
+ name: "CPU %",
129
+ description: "hpSwitchCpuStat — CPU utilization.",
130
+ },
131
+ {
132
+ // hpGlobalMemTable rows are per memory slot; index 1 is the first slot.
133
+ oid: "1.3.6.1.4.1.11.2.14.11.5.1.1.2.2.1.1.5.1",
134
+ name: "Memory Total (bytes)",
135
+ description: "hpGlobalMemTotalBytes — first memory slot.",
136
+ },
137
+ {
138
+ oid: "1.3.6.1.4.1.11.2.14.11.5.1.1.2.2.1.1.6.1",
139
+ name: "Memory Free (bytes)",
140
+ description: "hpGlobalMemFreeBytes — first memory slot.",
141
+ },
142
+ ],
143
+ };
144
+
145
+ const FORTINET: SnmpVendorTemplate = {
146
+ id: "fortinet-fortigate",
147
+ label: "Fortinet FortiGate",
148
+ description:
149
+ "System CPU, memory, and disk utilization percentages from the FORTINET-FORTIGATE-MIB fgSystemInfo scalars.",
150
+ oids: [
151
+ {
152
+ oid: "1.3.6.1.4.1.12356.101.4.1.3.0",
153
+ name: "CPU %",
154
+ description: "fgSysCpuUsage — overall CPU utilization.",
155
+ },
156
+ {
157
+ oid: "1.3.6.1.4.1.12356.101.4.1.4.0",
158
+ name: "Memory %",
159
+ description: "fgSysMemUsage — memory utilization.",
160
+ },
161
+ {
162
+ oid: "1.3.6.1.4.1.12356.101.4.1.6.0",
163
+ name: "Disk %",
164
+ description: "fgSysDiskUsage — disk utilization.",
165
+ },
166
+ ],
167
+ };
168
+
169
+ const PALO_ALTO: SnmpVendorTemplate = {
170
+ id: "paloalto-panos",
171
+ label: "Palo Alto PAN-OS",
172
+ description:
173
+ "Management-plane CPU via the standard HOST-RESOURCES-MIB — Palo Alto's documented monitoring practice, PAN-OS has no vendor CPU OID — plus session load from PAN-COMMON-MIB.",
174
+ oids: [
175
+ {
176
+ /*
177
+ * PAN-OS exposes CPU only through hrProcessorLoad; index 1 is the
178
+ * management plane on the platforms Palo Alto documents.
179
+ */
180
+ oid: "1.3.6.1.2.1.25.3.3.1.2.1",
181
+ name: "Mgmt CPU %",
182
+ description: "hrProcessorLoad — management-plane CPU.",
183
+ },
184
+ {
185
+ oid: "1.3.6.1.4.1.25461.2.1.2.3.1.0",
186
+ name: "Session Utilization %",
187
+ description: "panSessionUtilization — session table utilization.",
188
+ },
189
+ {
190
+ oid: "1.3.6.1.4.1.25461.2.1.2.3.3.0",
191
+ name: "Active Sessions",
192
+ description: "panSessionActive — total active sessions.",
193
+ },
194
+ ],
195
+ };
196
+
197
+ const HUAWEI: SnmpVendorTemplate = {
198
+ id: "huawei-vrp",
199
+ label: "Huawei VRP",
200
+ description:
201
+ "Mainboard CPU, memory, and temperature from the HUAWEI-ENTITY-EXTENT-MIB hwEntityStateTable.",
202
+ oids: [
203
+ {
204
+ /*
205
+ * hwEntityStateTable is indexed by ENTITY-MIB entPhysicalIndex;
206
+ * 67108867 is the conventional mainboard index on most VRP devices —
207
+ * walk the table and adjust if the device numbers entities differently.
208
+ */
209
+ oid: "1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.67108867",
210
+ name: "CPU %",
211
+ description: "hwEntityCpuUsage — mainboard CPU utilization.",
212
+ },
213
+ {
214
+ oid: "1.3.6.1.4.1.2011.5.25.31.1.1.1.1.7.67108867",
215
+ name: "Memory %",
216
+ description: "hwEntityMemUsage — mainboard memory utilization.",
217
+ },
218
+ {
219
+ oid: "1.3.6.1.4.1.2011.5.25.31.1.1.1.1.11.67108867",
220
+ name: "Temperature (C)",
221
+ description: "hwEntityTemperature — mainboard temperature.",
222
+ },
223
+ ],
224
+ };
225
+
226
+ const DELL_FORCE10: SnmpVendorTemplate = {
227
+ id: "dell-force10",
228
+ label: "Dell Force10 / OS9",
229
+ description:
230
+ "Stack-unit CPU and memory utilization from the Dell Force10 S-series chassis MIB.",
231
+ oids: [
232
+ {
233
+ // chStackUnitUtilTable first stack unit (index 1).
234
+ oid: "1.3.6.1.4.1.6027.3.10.1.2.9.1.2.1",
235
+ name: "CPU 5-sec %",
236
+ description: "chStackUnitCpuUtil5Sec — first stack unit.",
237
+ },
238
+ {
239
+ oid: "1.3.6.1.4.1.6027.3.10.1.2.9.1.5.1",
240
+ name: "Memory %",
241
+ description: "chStackUnitMemUsageUtil — first stack unit.",
242
+ },
44
243
  ],
45
244
  };
46
245
 
@@ -71,9 +270,9 @@ const MIKROTIK: SnmpVendorTemplate = {
71
270
 
72
271
  const UBIQUITI: SnmpVendorTemplate = {
73
272
  id: "ubiquiti-edgeos",
74
- label: "Ubiquiti EdgeOS / UniFi",
273
+ label: "Ubiquiti EdgeOS / EdgeSwitch / UniFi",
75
274
  description:
76
- "CPU load and memory usage via the standard Host Resources MIB, which Ubiquiti EdgeOS and UniFi expose.",
275
+ "CPU load and memory usage via the standard Host Resources and UCD MIBs — Ubiquiti publishes no vendor health MIB, but EdgeOS, EdgeSwitch, and UniFi devices answer these.",
77
276
  oids: [
78
277
  {
79
278
  oid: "1.3.6.1.2.1.25.3.3.1.2.1",
@@ -122,10 +321,18 @@ const HOST_RESOURCES: SnmpVendorTemplate = {
122
321
  ],
123
322
  };
124
323
 
324
+ // Generic first (the safe default), then vendors alphabetically.
125
325
  export const SnmpVendorTemplates: Array<SnmpVendorTemplate> = [
126
326
  HOST_RESOURCES,
327
+ ARISTA,
127
328
  CISCO,
329
+ DELL_FORCE10,
330
+ FORTINET,
331
+ HPE_PROCURVE,
332
+ HUAWEI,
333
+ JUNIPER,
128
334
  MIKROTIK,
335
+ PALO_ALTO,
129
336
  UBIQUITI,
130
337
  ];
131
338
 
@@ -150,6 +357,8 @@ const ENTERPRISE_VENDOR_NAMES: Record<number, string> = {
150
357
  2636: "Juniper",
151
358
  3224: "NetScreen",
152
359
  3375: "F5",
360
+ // Ubiquiti EdgeSwitch firmware (Broadcom FASTPATH based) reports this arc.
361
+ 4413: "Broadcom",
153
362
  4526: "Netgear",
154
363
  6027: "Force10",
155
364
  6486: "Alcatel-Lucent",
@@ -174,10 +383,29 @@ const ENTERPRISE_VENDOR_NAMES: Record<number, string> = {
174
383
  47196: "OPNsense",
175
384
  };
176
385
 
177
- // sysObjectID template routing: enterprise number → vendor template id.
386
+ /*
387
+ * sysObjectID template routing: enterprise number → vendor template id.
388
+ * Name-only vendors (e.g. Dell 674, F5 3375) deliberately have no entry —
389
+ * their platforms need MIBs we do not ship a template for yet, and callers
390
+ * fall back to the generic Host Resources template.
391
+ */
178
392
  const ENTERPRISE_TEMPLATE_IDS: Record<number, string> = {
179
393
  9: "cisco-ios",
394
+ 11: "hpe-procurve",
395
+ 2011: "huawei-vrp",
396
+ 2636: "juniper-junos",
397
+ /*
398
+ * Ubiquiti EdgeSwitch firmware reports Broadcom's FASTPATH arc (4413)
399
+ * rather than Ubiquiti's own 41112. The template only contains standard
400
+ * Host Resources / UCD OIDs, so routing the whole arc there is safe for
401
+ * other FASTPATH-based switches too.
402
+ */
403
+ 4413: "ubiquiti-edgeos",
404
+ 6027: "dell-force10",
405
+ 12356: "fortinet-fortigate",
180
406
  14988: "mikrotik-routeros",
407
+ 25461: "paloalto-panos",
408
+ 30065: "arista-eos",
181
409
  41112: "ubiquiti-edgeos",
182
410
  };
183
411
 
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Site types are no longer a fixed enum: they are a per-project configurable
3
+ * lookup table (the NetworkSiteType database model), so a project can rename
4
+ * "Unit" to "Store" or add its own levels. This enum survives ONLY as the list
5
+ * of default type names seeded into every project (and re-used by the backfill
6
+ * data migration for existing projects). Never compare a site's type against
7
+ * these values to decide behaviour — use the NetworkSiteType row's
8
+ * `isUnitLevel` flag instead, since the names are user-editable.
9
+ */
10
+ export enum DefaultNetworkSiteType {
11
+ AccountType = "Account Type",
12
+ Region = "Region",
13
+ Franchisee = "Franchisee",
14
+ Market = "Market",
15
+ Unit = "Unit",
16
+ DataCenter = "Data Center",
17
+ Other = "Other",
18
+ }
19
+
20
+ export default DefaultNetworkSiteType;
@@ -58,6 +58,10 @@ enum NotificationSettingEventType {
58
58
  SEND_AI_AGENT_STATUS_CHANGED_OWNER_NOTIFICATION = "Send AI agent status changed notification when I am the owner of the AI agent",
59
59
  SEND_AI_AGENT_OWNER_ADDED_NOTIFICATION = "Send notification when I am added as a owner to the AI agent",
60
60
 
61
+ // SLO
62
+ SEND_SLO_OWNER_STATUS_CHANGE_NOTIFICATION = "Send SLO status change notification when I am the owner of the SLO",
63
+ SEND_SLO_OWNER_ADDED_NOTIFICATION = "Send notification when I am added as a owner to the SLO",
64
+
61
65
  // On Call Notifications
62
66
  SEND_WHEN_USER_IS_ON_CALL_ROSTER = "When user is on-call roster",
63
67
  SEND_WHEN_USER_IS_NEXT_ON_CALL_ROSTER = "When user is next on-call roster",