@oneuptime/common 11.6.1 → 11.7.0
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.
- package/Models/AnalyticsModels/Index.ts +4 -0
- package/Models/AnalyticsModels/KubernetesCostAllocation.ts +842 -0
- package/Models/AnalyticsModels/NetworkFlow.ts +54 -0
- package/Models/AnalyticsModels/SloHistory.ts +243 -0
- package/Models/DatabaseModels/Index.ts +20 -0
- package/Models/DatabaseModels/NetworkDevice.ts +453 -6
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +7 -6
- package/Models/DatabaseModels/NetworkEndpoint.ts +753 -0
- package/Models/DatabaseModels/NetworkSite.ts +1155 -0
- package/Models/DatabaseModels/NetworkSiteAssignmentRule.ts +517 -0
- package/Models/DatabaseModels/NetworkSiteLink.ts +611 -0
- package/Models/DatabaseModels/NetworkSiteStatusTimeline.ts +520 -0
- package/Models/DatabaseModels/NetworkSiteType.ts +499 -0
- package/Models/DatabaseModels/ServiceLevelObjective.ts +1115 -0
- package/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.ts +762 -0
- package/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.ts +444 -0
- package/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.ts +443 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.ts +359 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.ts +48 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.ts +65 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.ts +88 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.ts +391 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785066759532-MigrationName.ts +30 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
- package/Server/Services/AnalyticsDatabaseService.ts +25 -9
- package/Server/Services/Index.ts +24 -0
- package/Server/Services/KubernetesCostAllocationService.ts +14 -0
- package/Server/Services/MetricService.ts +21 -2
- package/Server/Services/MonitorService.ts +22 -0
- package/Server/Services/NetworkDeviceService.ts +438 -2
- package/Server/Services/NetworkEndpointService.ts +414 -0
- package/Server/Services/NetworkSiteAssignmentRuleService.ts +98 -0
- package/Server/Services/NetworkSiteLinkService.ts +10 -0
- package/Server/Services/NetworkSiteService.ts +1254 -0
- package/Server/Services/NetworkSiteStatusTimelineService.ts +10 -0
- package/Server/Services/NetworkSiteTypeService.ts +10 -0
- package/Server/Services/ProjectService.ts +122 -2
- package/Server/Services/ServiceLevelObjectiveBurnRateRuleService.ts +457 -0
- package/Server/Services/ServiceLevelObjectiveOwnerTeamService.ts +10 -0
- package/Server/Services/ServiceLevelObjectiveOwnerUserService.ts +10 -0
- package/Server/Services/ServiceLevelObjectiveService.ts +685 -0
- package/Server/Services/SloHistoryService.ts +101 -0
- package/Server/Services/UserNotificationSettingService.ts +37 -0
- package/Server/Types/AnalyticsDatabase/AggregateBy.ts +9 -0
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +15 -0
- package/Server/Utils/AnalyticsDatabase/Statement.ts +39 -3
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +87 -48
- package/Server/Utils/Memory.ts +9 -1
- package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +190 -12
- package/Server/Utils/Monitor/Data/OuiVendors.json +6920 -0
- package/Server/Utils/Monitor/DnsResolutionCache.ts +129 -0
- package/Server/Utils/Monitor/MonitorResource.ts +4 -30
- package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +214 -39
- package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +343 -0
- package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +251 -0
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +176 -142
- package/Server/Utils/Monitor/OuiLookupUtil.ts +49 -0
- package/Server/Utils/Monitor/SnmpInterfaceRateUtil.ts +17 -13
- package/Server/Utils/WhatsAppTemplateUtil.ts +7 -3
- package/Tests/Models/AnalyticsModels/KubernetesCostAllocation.test.ts +135 -0
- package/Tests/Models/NetworkSiteHierarchy.test.ts +134 -0
- package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +239 -0
- package/Tests/Server/Services/KubernetesCostAllocationAggregate.test.ts +338 -0
- package/Tests/Server/Services/MetricServiceAggregate.test.ts +142 -0
- package/Tests/Server/Services/NetworkDeviceSiteAssignment.test.ts +484 -0
- package/Tests/Server/Services/NetworkEndpointServiceUpsert.test.ts +686 -0
- package/Tests/Server/Services/NetworkSiteAssignmentRuleService.test.ts +185 -0
- package/Tests/Server/Services/NetworkSiteService.test.ts +1354 -0
- package/Tests/Server/Services/ServiceLevelObjectiveBurnRateRuleService.test.ts +1313 -0
- package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +1988 -0
- package/Tests/Server/Utils/AnalyticsDatabase/Statement.test.ts +22 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +404 -0
- package/Tests/Server/Utils/Encryption.test.ts +70 -0
- package/Tests/Server/Utils/FileAttachmentMarkdownUtil.test.ts +225 -0
- package/Tests/Server/Utils/JsonWebToken.test.ts +175 -0
- package/Tests/Server/Utils/LocalFile.test.ts +258 -0
- package/Tests/Server/Utils/Memory.test.ts +213 -0
- package/Tests/Server/Utils/Monitor/Criteria/LogMonitorCriteria.test.ts +30 -0
- package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +385 -0
- package/Tests/Server/Utils/Monitor/DnsResolutionCache.test.ts +194 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +155 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +600 -0
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +151 -124
- package/Tests/Server/Utils/Monitor/SnmpInterfaceRateUtil.test.ts +496 -0
- package/Tests/Server/Utils/MonitorCriteriaDataExtractor.test.ts +175 -0
- package/Tests/Server/Utils/MonitorCriteriaMessageFormatter.test.ts +282 -0
- package/Tests/Server/Utils/OuiLookupUtil.test.ts +59 -0
- package/Tests/Server/Utils/SeriesResourceLabels.test.ts +117 -0
- package/Tests/Server/Utils/StackTraceParser.test.ts +370 -0
- package/Tests/Server/Utils/Stream.test.ts +87 -0
- package/Tests/Server/Utils/ValidateGlobalProviderProjectTeams.test.ts +221 -0
- package/Tests/Server/Utils/WhatsAppTemplateUtil.test.ts +199 -0
- package/Tests/Types/Database/CompareOperatorWireSerialization.test.ts +33 -0
- package/Tests/Types/Email.test.ts +198 -0
- package/Tests/Types/Kubernetes/KubernetesObjectParser.test.ts +177 -0
- package/Tests/Types/Log/LogQueryToFilter.test.ts +111 -0
- package/Tests/Types/Monitor/MonitorCriteria.test.ts +155 -0
- package/Tests/Types/Monitor/MonitorCriteriaInstance.test.ts +465 -0
- package/Tests/Types/Monitor/MonitorStep.test.ts +183 -0
- package/Tests/Types/Monitor/MonitorStepNetworkDeviceMonitor.test.ts +141 -1
- package/Tests/Types/Monitor/MonitorSteps.test.ts +183 -0
- package/Tests/Types/Monitor/MonitorType.test.ts +59 -1
- package/Tests/Types/Monitor/NetworkDeviceAlertPack.test.ts +97 -0
- package/Tests/Types/Monitor/SnmpEndpointDiscovery.test.ts +151 -0
- package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +110 -6
- package/Tests/Types/NetworkSite/DefaultNetworkSiteType.test.ts +129 -0
- package/Tests/Types/SerializableObjectDictionary.test.ts +166 -0
- package/Tests/Types/Time/RangeStartAndEndDateTime.test.ts +98 -0
- package/Tests/Types/WebsiteRequest.test.ts +230 -0
- package/Tests/UI/Components/EntityFilterRoundTrip.test.tsx +103 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableUrlState.test.tsx +612 -0
- package/Tests/UI/Components/ModelTable/FilterDataToQuery.test.ts +275 -0
- package/Tests/UI/Utils/LogExport.test.ts +159 -0
- package/Tests/UI/Utils/Navigation.test.ts +183 -0
- package/Tests/UI/Utils/TableFilterUrlState.test.ts +539 -0
- package/Tests/UI/Utils/TableViewUrlState.test.ts +272 -0
- package/Tests/Utils/Base64.test.ts +51 -0
- package/Tests/Utils/Boolean.test.ts +76 -0
- package/Tests/Utils/Crypto.test.ts +48 -0
- package/Tests/Utils/Dashboard/DashboardSloComponent.test.ts +259 -0
- package/Tests/Utils/Dashboard/ModelQueryVariableInterpolation.test.ts +162 -0
- package/Tests/Utils/Enum.test.ts +54 -0
- package/Tests/Utils/IpCanonicalUtil.test.ts +85 -0
- package/Tests/Utils/Memory.test.ts +44 -0
- package/Tests/Utils/Metrics/MetricSeriesFingerprint.test.ts +160 -0
- package/Tests/Utils/Monitor/EndpointAttachmentUtil.test.ts +836 -0
- package/Tests/Utils/Monitor/MonitorMetricType.test.ts +218 -0
- package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +447 -0
- package/Tests/Utils/NetworkSite/CidrMatchUtil.test.ts +440 -0
- package/Tests/Utils/NetworkSite/MaterializedPathUtil.test.ts +205 -0
- package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +221 -0
- package/Tests/Utils/NetworkSite/SiteUptimeUtil.test.ts +283 -0
- package/Tests/Utils/ObjectUtil.test.ts +30 -0
- package/Tests/Utils/Slo/SloBurnRateRuleState.test.ts +124 -0
- package/Tests/Utils/Slo/SloDuration.test.ts +148 -0
- package/Tests/Utils/Slo/SloHealth.test.ts +334 -0
- package/Tests/Utils/Slo/SloStatusColor.test.ts +89 -0
- package/Tests/Utils/Slo/SloUtil.test.ts +1980 -0
- package/Tests/Utils/Slo/SloWidgetFormat.test.ts +605 -0
- package/Tests/Utils/TechStack.test.ts +50 -0
- package/Tests/Utils/Traces/CriticalPath.test.ts +178 -0
- package/Types/AnalyticsDatabase/AnalyticsTableName.ts +10 -0
- package/Types/BaseDatabase/EqualTo.ts +9 -1
- package/Types/BaseDatabase/EqualToOrNull.ts +9 -1
- package/Types/BaseDatabase/NotEqual.ts +9 -1
- package/Types/Dashboard/DashboardComponentType.ts +1 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
- package/Types/Dashboard/DashboardComponents/DashboardSloComponent.ts +42 -0
- package/Types/Dashboard/DashboardTemplates.ts +214 -0
- package/Types/Email/EmailTemplateType.ts +2 -0
- package/Types/Kubernetes/KubernetesCostIngest.ts +79 -0
- package/Types/Monitor/CriteriaFilter.ts +9 -0
- package/Types/Monitor/MonitorStep.ts +5 -8
- package/Types/Monitor/MonitorStepNetworkDeviceMonitor.ts +27 -5
- package/Types/Monitor/MonitorType.ts +15 -5
- package/Types/Monitor/SnmpMonitor/ArpEntry.ts +14 -0
- package/Types/Monitor/SnmpMonitor/FdbEntry.ts +18 -0
- package/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.ts +10 -3
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +31 -5
- package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +12 -0
- package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +231 -3
- package/Types/NetworkSite/DefaultNetworkSiteType.ts +20 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
- package/Types/Permission.ts +449 -0
- package/Types/ServiceLevelObjective/SliType.ts +6 -0
- package/Types/ServiceLevelObjective/SloMultiMonitorMode.ts +6 -0
- package/Types/ServiceLevelObjective/SloStatus.ts +9 -0
- package/Types/ServiceLevelObjective/SloWindowType.ts +6 -0
- package/Types/Telemetry/ServiceType.ts +1 -0
- package/UI/Components/Filters/EntityFilter.tsx +16 -0
- package/UI/Components/Filters/FilterViewer.tsx +22 -5
- package/UI/Components/List/List.tsx +8 -0
- package/UI/Components/ModelTable/BaseModelTable.tsx +309 -106
- package/UI/Components/ModelTable/FilterDataToQuery.ts +172 -0
- package/UI/Components/Navbar/NavBar.tsx +16 -2
- package/UI/Components/Navbar/NavBarMenuModal.tsx +3 -3
- package/UI/Utils/Navigation.ts +10 -0
- package/UI/Utils/TableFilterUrlState.ts +204 -17
- package/UI/Utils/TableViewUrlState.ts +165 -0
- package/Utils/Dashboard/Components/DashboardSloComponent.ts +114 -0
- package/Utils/Dashboard/Components/Index.ts +7 -0
- package/Utils/IpCanonicalUtil.ts +134 -0
- package/Utils/Monitor/EndpointAttachmentUtil.ts +508 -0
- package/Utils/Monitor/NetworkTopologyUtil.ts +157 -5
- package/Utils/NetworkSite/CidrMatchUtil.ts +296 -0
- package/Utils/NetworkSite/MaterializedPathUtil.ts +115 -0
- package/Utils/NetworkSite/SiteStatusRollupUtil.ts +97 -0
- package/Utils/NetworkSite/SiteUptimeUtil.ts +111 -0
- package/Utils/Slo/SloBurnRateRuleState.ts +91 -0
- package/Utils/Slo/SloDuration.ts +165 -0
- package/Utils/Slo/SloEvaluation.ts +22 -0
- package/Utils/Slo/SloHealth.ts +302 -0
- package/Utils/Slo/SloStatusColor.ts +54 -0
- package/Utils/Slo/SloUtil.ts +637 -0
- package/Utils/Slo/SloWidgetFormat.ts +383 -0
- package/build/dist/Models/AnalyticsModels/Index.js +4 -0
- package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js +713 -0
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/NetworkFlow.js +44 -0
- package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/SloHistory.js +218 -0
- package/build/dist/Models/AnalyticsModels/SloHistory.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Index.js +20 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +458 -6
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +0 -6
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkEndpoint.js +779 -0
- package/build/dist/Models/DatabaseModels/NetworkEndpoint.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSite.js +1180 -0
- package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js +534 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteLink.js +629 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteLink.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js +538 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteType.js +522 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteType.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js +1134 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.js +769 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js +460 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js +459 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.js +130 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.js +31 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.js +36 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.js +49 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.js +140 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785066759532-MigrationName.js +21 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785066759532-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +23 -6
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +24 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/KubernetesCostAllocationService.js +12 -0
- package/build/dist/Server/Services/KubernetesCostAllocationService.js.map +1 -0
- package/build/dist/Server/Services/MetricService.js +21 -3
- package/build/dist/Server/Services/MetricService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +19 -0
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceService.js +351 -1
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
- package/build/dist/Server/Services/NetworkEndpointService.js +319 -0
- package/build/dist/Server/Services/NetworkEndpointService.js.map +1 -0
- package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js +90 -0
- package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js.map +1 -0
- package/build/dist/Server/Services/NetworkSiteLinkService.js +9 -0
- package/build/dist/Server/Services/NetworkSiteLinkService.js.map +1 -0
- package/build/dist/Server/Services/NetworkSiteService.js +1038 -0
- package/build/dist/Server/Services/NetworkSiteService.js.map +1 -0
- package/build/dist/Server/Services/NetworkSiteStatusTimelineService.js +9 -0
- package/build/dist/Server/Services/NetworkSiteStatusTimelineService.js.map +1 -0
- package/build/dist/Server/Services/NetworkSiteTypeService.js +9 -0
- package/build/dist/Server/Services/NetworkSiteTypeService.js.map +1 -0
- package/build/dist/Server/Services/ProjectService.js +98 -2
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ServiceLevelObjectiveBurnRateRuleService.js +358 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveBurnRateRuleService.js.map +1 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveOwnerUserService.js +9 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveService.js +588 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveService.js.map +1 -0
- package/build/dist/Server/Services/SloHistoryService.js +77 -0
- package/build/dist/Server/Services/SloHistoryService.js.map +1 -0
- package/build/dist/Server/Services/UserNotificationSettingService.js +20 -0
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +9 -0
- package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +15 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +31 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +76 -48
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/Memory.js +9 -1
- package/build/dist/Server/Utils/Memory.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +132 -10
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Data/OuiVendors.json +6920 -0
- package/build/dist/Server/Utils/Monitor/DnsResolutionCache.js +77 -0
- package/build/dist/Server/Utils/Monitor/DnsResolutionCache.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +21 -41
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +152 -40
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +262 -0
- package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +201 -0
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +152 -120
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/OuiLookupUtil.js +44 -0
- package/build/dist/Server/Utils/Monitor/OuiLookupUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/SnmpInterfaceRateUtil.js +10 -10
- package/build/dist/Server/Utils/Monitor/SnmpInterfaceRateUtil.js.map +1 -1
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +5 -0
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +10 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
- package/build/dist/Types/BaseDatabase/EqualTo.js +9 -1
- package/build/dist/Types/BaseDatabase/EqualTo.js.map +1 -1
- package/build/dist/Types/BaseDatabase/EqualToOrNull.js +9 -1
- package/build/dist/Types/BaseDatabase/EqualToOrNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/NotEqual.js +9 -1
- package/build/dist/Types/BaseDatabase/NotEqual.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardSloComponent.js +23 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardSloComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js +205 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/Kubernetes/KubernetesCostIngest.js +21 -0
- package/build/dist/Types/Kubernetes/KubernetesCostIngest.js.map +1 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js +1 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +5 -5
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepNetworkDeviceMonitor.js +8 -0
- package/build/dist/Types/Monitor/MonitorStepNetworkDeviceMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +15 -5
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/ArpEntry.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/ArpEntry.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/FdbEntry.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/FdbEntry.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js +9 -3
- package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +217 -3
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
- package/build/dist/Types/NetworkSite/DefaultNetworkSiteType.js +21 -0
- package/build/dist/Types/NetworkSite/DefaultNetworkSiteType.js.map +1 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/Permission.js +409 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/ServiceLevelObjective/SliType.js +7 -0
- package/build/dist/Types/ServiceLevelObjective/SliType.js.map +1 -0
- package/build/dist/Types/ServiceLevelObjective/SloMultiMonitorMode.js +7 -0
- package/build/dist/Types/ServiceLevelObjective/SloMultiMonitorMode.js.map +1 -0
- package/build/dist/Types/ServiceLevelObjective/SloStatus.js +10 -0
- package/build/dist/Types/ServiceLevelObjective/SloStatus.js.map +1 -0
- package/build/dist/Types/ServiceLevelObjective/SloWindowType.js +7 -0
- package/build/dist/Types/ServiceLevelObjective/SloWindowType.js.map +1 -0
- package/build/dist/Types/Telemetry/ServiceType.js +1 -0
- package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
- package/build/dist/UI/Components/Filters/EntityFilter.js +15 -0
- package/build/dist/UI/Components/Filters/EntityFilter.js.map +1 -1
- package/build/dist/UI/Components/Filters/FilterViewer.js +19 -4
- package/build/dist/UI/Components/Filters/FilterViewer.js.map +1 -1
- package/build/dist/UI/Components/List/List.js +1 -1
- package/build/dist/UI/Components/List/List.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +235 -89
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/FilterDataToQuery.js +96 -0
- package/build/dist/UI/Components/ModelTable/FilterDataToQuery.js.map +1 -0
- package/build/dist/UI/Components/Navbar/NavBar.js +14 -2
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +3 -2
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
- package/build/dist/UI/Utils/Navigation.js +9 -0
- package/build/dist/UI/Utils/Navigation.js.map +1 -1
- package/build/dist/UI/Utils/TableFilterUrlState.js +159 -15
- package/build/dist/UI/Utils/TableFilterUrlState.js.map +1 -1
- package/build/dist/UI/Utils/TableViewUrlState.js +103 -0
- package/build/dist/UI/Utils/TableViewUrlState.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardSloComponent.js +93 -0
- package/build/dist/Utils/Dashboard/Components/DashboardSloComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/IpCanonicalUtil.js +110 -0
- package/build/dist/Utils/IpCanonicalUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/EndpointAttachmentUtil.js +311 -0
- package/build/dist/Utils/Monitor/EndpointAttachmentUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +98 -5
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/NetworkSite/CidrMatchUtil.js +222 -0
- package/build/dist/Utils/NetworkSite/CidrMatchUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/MaterializedPathUtil.js +89 -0
- package/build/dist/Utils/NetworkSite/MaterializedPathUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +60 -0
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js +76 -0
- package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js.map +1 -0
- package/build/dist/Utils/Slo/SloBurnRateRuleState.js +35 -0
- package/build/dist/Utils/Slo/SloBurnRateRuleState.js.map +1 -0
- package/build/dist/Utils/Slo/SloDuration.js +87 -0
- package/build/dist/Utils/Slo/SloDuration.js.map +1 -0
- package/build/dist/Utils/Slo/SloEvaluation.js +21 -0
- package/build/dist/Utils/Slo/SloEvaluation.js.map +1 -0
- package/build/dist/Utils/Slo/SloHealth.js +179 -0
- package/build/dist/Utils/Slo/SloHealth.js.map +1 -0
- package/build/dist/Utils/Slo/SloStatusColor.js +18 -0
- package/build/dist/Utils/Slo/SloStatusColor.js.map +1 -0
- package/build/dist/Utils/Slo/SloUtil.js +393 -0
- package/build/dist/Utils/Slo/SloUtil.js.map +1 -0
- package/build/dist/Utils/Slo/SloWidgetFormat.js +174 -0
- package/build/dist/Utils/Slo/SloWidgetFormat.js.map +1 -0
- package/package.json +2 -2
- package/Types/Dashboard/DashboardComponents/Index.ts +0 -7
- package/build/dist/Types/Dashboard/DashboardComponents/Index.js +0 -8
- 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.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
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
|
|
41
|
-
*
|
|
42
|
-
*
|
|
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
|
|
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
|
|
92
|
-
* policies are left for the
|
|
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
|
-
|
|
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
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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
|
-
|
|
13
|
-
|
|
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,
|
|
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
|
-
|
|
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",
|