Problem
unifi_get_traffic_flow_statistics returns DPI application_id and category_id, but leaves application_name and category_name null. Current controllers expose the required names through the official Integration API.
Traffic-flow rows carry the application and category IDs separately, while the application catalogue uses the compound key:
(category_id << 16) | application_id
Proposed solution
- Fetch and cache the complete DPI application/category catalogue.
- Follow controller pagination rather than assuming the requested page size is honoured.
- Best-effort enrich traffic-flow Top Applications with names.
- Keep names null if the catalogue is unavailable or lacks a match; the statistics call should still succeed.
- Apply the shared manager behaviour consistently to MCP, REST and GraphQL.
Validation
Verified read-only against a current UniFi controller: the Integration API returned complete application/category catalogues and resolved live flow rows including GitHub, SSL/TLS, HTTP, Spotify and ChatGPT.
Problem
unifi_get_traffic_flow_statisticsreturns DPIapplication_idandcategory_id, but leavesapplication_nameandcategory_namenull. Current controllers expose the required names through the official Integration API.Traffic-flow rows carry the application and category IDs separately, while the application catalogue uses the compound key:
Proposed solution
Validation
Verified read-only against a current UniFi controller: the Integration API returned complete application/category catalogues and resolved live flow rows including GitHub, SSL/TLS, HTTP, Spotify and ChatGPT.