Skip to main content

Network Topology

D3.js-compatible graph API for visualizing device network relationships.

Source: src/network-topology/

API Endpoints

MethodEndpointDescription
GET/network-topology/topologyFull graph (nodes + links)
GET/network-topology/nodesList nodes with filters
GET/network-topology/nodes/:idNode details with metrics
GET/network-topology/connectionsList connections with filters
GET/network-topology/statisticsNetwork-wide statistics

Data Model

Nodes

Built from Device records. Each node contains:

  • id, label, type (display, hub, controller, sensor)
  • status, ipAddress, location
  • metadata: model, version, lastSeen, screenEnabled

Built from device configuration.network.parentDeviceId relationships:

  • source, target, type (wifi, ethernet, mqtt)
  • strength (signal quality 0-100), bandwidth
  • Devices without explicit parents connect to the nearest hub node

Graph Structure

         ┌─── Display A
Hub ─────┼─── Display B
└─── Controller ─── Sensor

The service determines node types via determineNodeType() and connection types via determineConnectionType() based on device configuration metadata.

Filtering

NetworkFilterDto supports filtering by:

  • Device type
  • Status (online/offline)
  • Location
  • DevicesModule — Source device data
  • DeviceMetricsModule — Latest metrics for node details