Changes for version 2.113000 - 2026-10-18

  • NEW FEATURES
    • #1740 workers.queues can be used to reserve workers for some actions, so that a backlog of one kind of job (say discover) cannot keep another (say portcontrol) waiting. each queue is { tasks: N, actions: [...] } and its actions are run only by its own workers
  • ENHANCEMENTS
    • #1735 System Information on the homepage starts expanded
    • #1751 upgrade the vendored Swagger UI from 5.32.12 to 5.33.3
    • #1753 upgrade the vendored DataTables from 3.0.3 to 3.1.4
    • #1754 with web_theme set to auto, the user menu has a light / same as computer / dark switch. the choice is remembered in that browser
  • BUG FIXES
    • #1752 a row deleted from an API token's ACL no longer stays in force until the web worker restarts, and the token's ACL group no longer grows with every API request
    • #1750 deleting a manual topology link resets its two ports only when a manual link was deleted. naming the two ends of a discovered uplink no longer clears its is_uplink flag, which let portctl_uplinks pass for it
    • #1749 portctl_topology now switches manual topology off for port_control users at the Manual Device Topology page and its routes, not only the shortcut on device ports. admins are unaffected
    • #1748 a port_control user updating custom fields through the API is now held to their port control role, as the web interface has held them since #1691: a device outside the role is refused with 403
    • #1747 port name changes are no longer refused by the backend when the device ports view offered them: under portctl_nameonly, on portctl_no or portctl_only devices, and on uplink, phone and WAP ports, the portname job checked the port status ACL instead of the port name ACL. as documented, only portctl_by_role can refuse a port name change
    • offline (snapshot) jobs no longer log "not in cache" for lldp_v2_sys_cap, which SNMP::Info 3.980000 reads when LLDP-MIB is empty

Documentation

Create DB Schema Versions for Netdisco
Import a Nedisco 1.x Manual Topology File
Job Control Daemon for Netdisco
Job Control for Netdisco
Database deployment for Netdisco
Database, OUI and MIB deployment for Netdisco
Run any Netdisco job from the command-line.
DEPRECATED!
Web Application Server for Netdisco
Web Application for Netdisco

Modules

An open source web-based network management tool.
Request NetBIOS node status with AnyEvent
Support for PostgreSQL Lock Modes
find site-local files broken by shipped changes
Netdisco Web UI components
Generate rancid Configuration

Provides

in lib/App/Netdisco/Backend/Job.pm
in lib/App/Netdisco/Backend/Role/Manager.pm
in lib/App/Netdisco/Backend/Role/Poller.pm
in lib/App/Netdisco/Backend/Role/Scheduler.pm
in lib/App/Netdisco/Builder.pm
in lib/App/Netdisco/Configuration.pm
in lib/App/Netdisco/DB.pm
in lib/App/Netdisco/DB/Result.pm
in lib/App/Netdisco/DB/Result/Admin.pm
in lib/App/Netdisco/DB/Result/Community.pm
in lib/App/Netdisco/DB/Result/Device.pm
in lib/App/Netdisco/DB/Result/DeviceBrowser.pm
in lib/App/Netdisco/DB/Result/DeviceIp.pm
in lib/App/Netdisco/DB/Result/DeviceModule.pm
in lib/App/Netdisco/DB/Result/DevicePort.pm
in lib/App/Netdisco/DB/Result/DevicePortLog.pm
in lib/App/Netdisco/DB/Result/DevicePortPower.pm
in lib/App/Netdisco/DB/Result/DevicePortProperties.pm
in lib/App/Netdisco/DB/Result/DevicePortSsid.pm
in lib/App/Netdisco/DB/Result/DevicePortVlan.pm
in lib/App/Netdisco/DB/Result/DevicePortWireless.pm
in lib/App/Netdisco/DB/Result/DevicePower.pm
in lib/App/Netdisco/DB/Result/DeviceSkip.pm
in lib/App/Netdisco/DB/Result/DeviceVlan.pm
in lib/App/Netdisco/DB/Result/Enterprise.pm
in lib/App/Netdisco/DB/Result/Log.pm
in lib/App/Netdisco/DB/Result/Manufacturer.pm
in lib/App/Netdisco/DB/Result/NetmapPositions.pm
in lib/App/Netdisco/DB/Result/Node.pm
in lib/App/Netdisco/DB/Result/NodeIp.pm
in lib/App/Netdisco/DB/Result/NodeMonitor.pm
in lib/App/Netdisco/DB/Result/NodeNbt.pm
in lib/App/Netdisco/DB/Result/NodeWireless.pm
in lib/App/Netdisco/DB/Result/Oui.pm
in lib/App/Netdisco/DB/Result/Process.pm
in lib/App/Netdisco/DB/Result/Product.pm
in lib/App/Netdisco/DB/Result/SNMPFilter.pm
in lib/App/Netdisco/DB/Result/SNMPObject.pm
in lib/App/Netdisco/DB/Result/Session.pm
in lib/App/Netdisco/DB/Result/Statistics.pm
in lib/App/Netdisco/DB/Result/Subnet.pm
in lib/App/Netdisco/DB/Result/Topology.pm
in lib/App/Netdisco/DB/Result/User.pm
in lib/App/Netdisco/DB/Result/UserLog.pm
in lib/App/Netdisco/DB/Result/Virtual/ACLEntriesWithDNS.pm
in lib/App/Netdisco/DB/Result/Virtual/ActiveNode.pm
in lib/App/Netdisco/DB/Result/Virtual/ActiveNodeWithAge.pm
in lib/App/Netdisco/DB/Result/Virtual/ApRadioChannelPower.pm
in lib/App/Netdisco/DB/Result/Virtual/CidrIps.pm
in lib/App/Netdisco/DB/Result/Virtual/DeviceDnsMismatch.pm
in lib/App/Netdisco/DB/Result/Virtual/DeviceLinks.pm
in lib/App/Netdisco/DB/Result/Virtual/DevicePlatforms.pm
in lib/App/Netdisco/DB/Result/Virtual/DevicePoeStatus.pm
in lib/App/Netdisco/DB/Result/Virtual/DevicePortSpeed.pm
in lib/App/Netdisco/DB/Result/Virtual/DuplexMismatch.pm
in lib/App/Netdisco/DB/Result/Virtual/FilteredSNMPObject.pm
in lib/App/Netdisco/DB/Result/Virtual/GenericReport.pm
in lib/App/Netdisco/DB/Result/Virtual/LastNode.pm
in lib/App/Netdisco/DB/Result/Virtual/NodeIp4.pm
in lib/App/Netdisco/DB/Result/Virtual/NodeIp6.pm
in lib/App/Netdisco/DB/Result/Virtual/NodeMonitor.pm
in lib/App/Netdisco/DB/Result/Virtual/NodeWithAge.pm
in lib/App/Netdisco/DB/Result/Virtual/NodesDiscovered.pm
in lib/App/Netdisco/DB/Result/Virtual/OrphanedDevices.pm
in lib/App/Netdisco/DB/Result/Virtual/PollerPerformance.pm
in lib/App/Netdisco/DB/Result/Virtual/PortMacs.pm
in lib/App/Netdisco/DB/Result/Virtual/PortUtilization.pm
in lib/App/Netdisco/DB/Result/Virtual/PortVLANMismatch.pm
in lib/App/Netdisco/DB/Result/Virtual/SlowDevices.pm
in lib/App/Netdisco/DB/Result/Virtual/SubnetUtilization.pm
in lib/App/Netdisco/DB/Result/Virtual/TastyJobs.pm
in lib/App/Netdisco/DB/Result/Virtual/UnDirEdgesAgg.pm
in lib/App/Netdisco/DB/Result/Virtual/UndiscoveredNeighbors.pm
in lib/App/Netdisco/DB/Result/Virtual/UserRole.pm
in lib/App/Netdisco/DB/Result/Virtual/WalkJobs.pm
in lib/App/Netdisco/DB/ResultSet.pm
in lib/App/Netdisco/DB/ResultSet/AccessControlListMap.pm
in lib/App/Netdisco/DB/ResultSet/AccessControlListName.pm
in lib/App/Netdisco/DB/ResultSet/Admin.pm
in lib/App/Netdisco/DB/ResultSet/Device.pm
in lib/App/Netdisco/DB/ResultSet/DeviceBrowser.pm
in lib/App/Netdisco/DB/ResultSet/DeviceIp.pm
in lib/App/Netdisco/DB/ResultSet/DeviceModule.pm
in lib/App/Netdisco/DB/ResultSet/DevicePort.pm
in lib/App/Netdisco/DB/ResultSet/DevicePortLog.pm
in lib/App/Netdisco/DB/ResultSet/DevicePortSsid.pm
in lib/App/Netdisco/DB/ResultSet/DevicePower.pm
in lib/App/Netdisco/DB/ResultSet/DeviceSkip.pm
in lib/App/Netdisco/DB/ResultSet/Node.pm
in lib/App/Netdisco/DB/ResultSet/NodeIp.pm
in lib/App/Netdisco/DB/ResultSet/NodeNbt.pm
in lib/App/Netdisco/DB/ResultSet/NodeWireless.pm
in lib/App/Netdisco/DB/ResultSet/Subnet.pm
in lib/App/Netdisco/DB/SchemaVersioned.pm
in lib/App/Netdisco/DB/SetOperations.pm
in lib/App/Netdisco/Environment.pm
in lib/App/Netdisco/GenericDB.pm
in lib/App/Netdisco/GenericDB/Result/Virtual/GenericReport.pm
in lib/App/Netdisco/JobQueue/PostgreSQL.pm
in lib/App/Netdisco/Util/Configuration.pm
in lib/App/Netdisco/Util/CustomFields.pm
in lib/App/Netdisco/Util/MCE.pm
in lib/App/Netdisco/Util/NodeMonitor.pm
in lib/App/Netdisco/Util/Noop.pm
in lib/App/Netdisco/Util/Python.pm
in lib/App/Netdisco/Util/Worker.pm
in lib/App/Netdisco/Web.pm
in lib/App/Netdisco/Web/API/Objects.pm
in lib/App/Netdisco/Web/API/Queue.pm
in lib/App/Netdisco/Web/API/Statistics.pm
in lib/App/Netdisco/Web/API/User.pm
in lib/App/Netdisco/Web/AdminTask.pm
in lib/App/Netdisco/Web/Auth/Provider/DBIC.pm
in lib/App/Netdisco/Web/AuthN.pm
in lib/App/Netdisco/Web/CustomFields.pm
in lib/App/Netdisco/Web/Device.pm
in lib/App/Netdisco/Web/GenericReport.pm
in lib/App/Netdisco/Web/Health.pm
in lib/App/Netdisco/Web/Metrics.pm
in lib/App/Netdisco/Web/Password.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/ACLEditor.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/ACLManager.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/Divider.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/DuplicateDevices.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/JobQueue.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/NodeMonitor.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/OrphanedDevices.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/PollerPerformance.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/PseudoDevice.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/SlowDevices.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/TimedOutDevices.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/Topology.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/UndiscoveredNeighbors.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/UserLog.pm
in lib/App/Netdisco/Web/Plugin/AdminTask/Users.pm
in lib/App/Netdisco/Web/Plugin/Device/Addresses.pm
in lib/App/Netdisco/Web/Plugin/Device/Details.pm
in lib/App/Netdisco/Web/Plugin/Device/Modules.pm
in lib/App/Netdisco/Web/Plugin/Device/Neighbors.pm
in lib/App/Netdisco/Web/Plugin/Device/Ports.pm
in lib/App/Netdisco/Web/Plugin/Device/SNMP.pm
in lib/App/Netdisco/Web/Plugin/Device/Vlans.pm
in lib/App/Netdisco/Web/Plugin/Inventory.pm
in lib/App/Netdisco/Web/Plugin/Report/ApChannelDist.pm
in lib/App/Netdisco/Web/Plugin/Report/ApClients.pm
in lib/App/Netdisco/Web/Plugin/Report/ApRadioChannelPower.pm
in lib/App/Netdisco/Web/Plugin/Report/DeviceAddrNoDNS.pm
in lib/App/Netdisco/Web/Plugin/Report/DeviceByLocation.pm
in lib/App/Netdisco/Web/Plugin/Report/DeviceDnsMismatch.pm
in lib/App/Netdisco/Web/Plugin/Report/DevicePoeStatus.pm
in lib/App/Netdisco/Web/Plugin/Report/DuplexMismatch.pm
in lib/App/Netdisco/Web/Plugin/Report/HalfDuplex.pm
in lib/App/Netdisco/Web/Plugin/Report/InventoryByModelByOS.pm
in lib/App/Netdisco/Web/Plugin/Report/IpInventory.pm
in lib/App/Netdisco/Web/Plugin/Report/ModuleInventory.pm
in lib/App/Netdisco/Web/Plugin/Report/Netbios.pm
in lib/App/Netdisco/Web/Plugin/Report/NodeMultiIPs.pm
in lib/App/Netdisco/Web/Plugin/Report/NodeVendor.pm
in lib/App/Netdisco/Web/Plugin/Report/NodesDiscovered.pm
in lib/App/Netdisco/Web/Plugin/Report/PortAdminDown.pm
in lib/App/Netdisco/Web/Plugin/Report/PortBlocking.pm
in lib/App/Netdisco/Web/Plugin/Report/PortLog.pm
in lib/App/Netdisco/Web/Plugin/Report/PortMultiNodes.pm
in lib/App/Netdisco/Web/Plugin/Report/PortSsid.pm
in lib/App/Netdisco/Web/Plugin/Report/PortUtilization.pm
in lib/App/Netdisco/Web/Plugin/Report/PortVLANMismatch.pm
in lib/App/Netdisco/Web/Plugin/Report/SsidInventory.pm
in lib/App/Netdisco/Web/Plugin/Report/SubnetUtilization.pm
in lib/App/Netdisco/Web/Plugin/Report/VlanInventory.pm
in lib/App/Netdisco/Web/Plugin/Search/Device.pm
in lib/App/Netdisco/Web/Plugin/Search/Node.pm
in lib/App/Netdisco/Web/Plugin/Search/Port.pm
in lib/App/Netdisco/Web/Plugin/Search/VLAN.pm
in lib/App/Netdisco/Web/PortControl.pm
in lib/App/Netdisco/Web/Report.pm
in lib/App/Netdisco/Web/Search.pm
in lib/App/Netdisco/Web/Static.pm
in lib/App/Netdisco/Web/Statistics.pm
in lib/App/Netdisco/Web/Theme.pm
in lib/App/Netdisco/Web/TypeAhead.pm
in lib/App/Netdisco/Worker/Loader.pm
in lib/App/Netdisco/Worker/Plugin/AddPseudoDevice.pm
in lib/App/Netdisco/Worker/Plugin/Arpnip.pm
in lib/App/Netdisco/Worker/Plugin/Arpnip/Hooks.pm
in lib/App/Netdisco/Worker/Plugin/Arpnip/Nodes.pm
in lib/App/Netdisco/Worker/Plugin/Arpnip/Subnets.pm
in lib/App/Netdisco/Worker/Plugin/Arpwalk.pm
in lib/App/Netdisco/Worker/Plugin/CheckSiteLocal.pm
in lib/App/Netdisco/Worker/Plugin/Contact.pm
in lib/App/Netdisco/Worker/Plugin/Delete.pm
in lib/App/Netdisco/Worker/Plugin/Delete/Hooks.pm
in lib/App/Netdisco/Worker/Plugin/Discover.pm
in lib/App/Netdisco/Worker/Plugin/Discover/CanonicalIP.pm
in lib/App/Netdisco/Worker/Plugin/Discover/Entities.pm
in lib/App/Netdisco/Worker/Plugin/Discover/Hooks.pm
in lib/App/Netdisco/Worker/Plugin/Discover/Neighbors.pm
in lib/App/Netdisco/Worker/Plugin/Discover/Neighbors/DOCSIS.pm
in lib/App/Netdisco/Worker/Plugin/Discover/NextHopNeighbors.pm
in lib/App/Netdisco/Worker/Plugin/Discover/PortPower.pm
in lib/App/Netdisco/Worker/Plugin/Discover/PortProperties.pm
in lib/App/Netdisco/Worker/Plugin/Discover/Properties.pm
in lib/App/Netdisco/Worker/Plugin/Discover/Properties/Tags.pm
in lib/App/Netdisco/Worker/Plugin/Discover/VLANs.pm
in lib/App/Netdisco/Worker/Plugin/Discover/Wireless.pm
in lib/App/Netdisco/Worker/Plugin/DiscoverAll.pm
in lib/App/Netdisco/Worker/Plugin/DumpConfig.pm
in lib/App/Netdisco/Worker/Plugin/DumpInfoCache.pm
in lib/App/Netdisco/Worker/Plugin/Expire.pm
in lib/App/Netdisco/Worker/Plugin/ExpireNodes.pm
in lib/App/Netdisco/Worker/Plugin/GetAPIKey.pm
in lib/App/Netdisco/Worker/Plugin/Graph.pm
in lib/App/Netdisco/Worker/Plugin/Hook.pm
in lib/App/Netdisco/Worker/Plugin/Hook/Exec.pm
in lib/App/Netdisco/Worker/Plugin/Hook/HTTP.pm
in lib/App/Netdisco/Worker/Plugin/Internal/BackendFQDN.pm
in lib/App/Netdisco/Worker/Plugin/Internal/SNMPFastDiscover.pm
in lib/App/Netdisco/Worker/Plugin/Linter.pm
in lib/App/Netdisco/Worker/Plugin/LoadMIBs.pm
in lib/App/Netdisco/Worker/Plugin/LoadMIBsFromOIDs.pm
in lib/App/Netdisco/Worker/Plugin/Location.pm
in lib/App/Netdisco/Worker/Plugin/Macsuck.pm
in lib/App/Netdisco/Worker/Plugin/Macsuck/Hooks.pm
in lib/App/Netdisco/Worker/Plugin/Macsuck/InterfacesStatus.pm
in lib/App/Netdisco/Worker/Plugin/Macsuck/Nodes.pm
in lib/App/Netdisco/Worker/Plugin/Macsuck/PortAccessEntity.pm
in lib/App/Netdisco/Worker/Plugin/Macsuck/WirelessNodes.pm
in lib/App/Netdisco/Worker/Plugin/Macwalk.pm
in lib/App/Netdisco/Worker/Plugin/Nbtstat.pm
in lib/App/Netdisco/Worker/Plugin/Nbtstat/Core.pm
in lib/App/Netdisco/Worker/Plugin/Nbtwalk.pm
in lib/App/Netdisco/Worker/Plugin/NodeMonitor.pm
in lib/App/Netdisco/Worker/Plugin/Noop.pm
in lib/App/Netdisco/Worker/Plugin/PingSweep.pm
in lib/App/Netdisco/Worker/Plugin/PortControl.pm
in lib/App/Netdisco/Worker/Plugin/PortName.pm
in lib/App/Netdisco/Worker/Plugin/Power.pm
in lib/App/Netdisco/Worker/Plugin/PrimeSkiplist.pm
in lib/App/Netdisco/Worker/Plugin/Psql.pm
in lib/App/Netdisco/Worker/Plugin/PythonShim.pm
in lib/App/Netdisco/Worker/Plugin/Renumber.pm
in lib/App/Netdisco/Worker/Plugin/Scheduler.pm
in lib/App/Netdisco/Worker/Plugin/Show.pm
in lib/App/Netdisco/Worker/Plugin/Snapshot.pm
in lib/App/Netdisco/Worker/Plugin/Stats.pm
in lib/App/Netdisco/Worker/Plugin/TastyJobs.pm
in lib/App/Netdisco/Worker/Plugin/Vlan.pm
in lib/App/Netdisco/Worker/Plugin/Vlan/Core.pm
in lib/App/Netdisco/Worker/Runner.pm
in lib/App/Netdisco/Worker/Status.pm
in lib/Dancer/Template/NetdiscoTemplateToolkit.pm
in lib/App/Netdisco/Transport/SSH.pm