2322 cleanup fix device details page #2683
No reviewers
Labels
No labels
1week
2weeks
Failed compliance check
IP cameras
NATS
Possible security concern
Review effort 1/5
Review effort 2/5
Review effort 3/5
Review effort 4/5
Review effort 5/5
UI
aardvark
accessibility
amd64
api
arm64
auth
back-end
bgp
blog
bug
build
checkers
ci-cd
cleanup
cnpg
codex
core
dependencies
device-management
documentation
duplicate
dusk
ebpf
enhancement
eta 1d
eta 1hr
eta 3d
eta 3hr
feature
fieldsurvey
github_actions
go
good first issue
help wanted
invalid
javascript
k8s
log-collector
mapper
mtr
needs-triage
netflow
network-sweep
observability
oracle
otel
plug-in
proton
python
question
reddit
redhat
research
rperf
rperf-checker
rust
sdk
security
serviceradar-agent
serviceradar-agent-gateway
serviceradar-web
serviceradar-web-ng
siem
snmp
sysmon
topology
ubiquiti
wasm
wontfix
zen-engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
carverauto/serviceradar!2683
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "refs/pull/2683/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Imported from GitHub pull request.
Original GitHub pull request: #2324
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/pull/2324
Original created: 2026-01-17T22:04:21Z
Original updated: 2026-01-17T23:38:31Z
Original head: carverauto/serviceradar:2322-cleanup-fix-device-details-page
Original base: staging
Original merged: 2026-01-17T23:38:24Z by @mfreeman451
User description
IMPORTANT: Please sign the Developer Certificate of Origin
Thank you for your contribution to ServiceRadar. Please note, when contributing, the developer must include
a DCO sign-off statement indicating the DCO acceptance in one commit message. Here
is an example DCO Signed-off-by line in a commit message:
Describe your changes
Issue ticket number and link
Code checklist before requesting a review
PR Type
Enhancement, Bug fix
Description
Gate sysmon metrics panels to only show for devices with sysmon data
Render sysmon CPU/memory/disk metrics as graphs instead of tables
Remove low-value auto-generated category visualizations
Improve device identity detection using agent_id and device_uid
Add timeseries inference support for metric visualization fallback
Diagram Walkthrough
File Walkthrough
timeseries.ex
Add timeseries inference support for resultsweb-ng/lib/serviceradar_web_ng_web/dashboard/plugins/timeseries.ex
Viz.infer/1alias import for visualization inferencesupports?/1clause to detect timeseries from raw resultsbuild/1clause to handle results without explicit viz suggestionsinfer_timeseries_spec/1helper to infer timeseries structureshow.ex
Refactor sysmon metrics gating and visualization renderingweb-ng/lib/serviceradar_web_ng_web/live/device_live/show.ex
agent_id)
device_uid
index.ex
Minor whitespace formatting fixweb-ng/lib/serviceradar_web_ng_web/live/settings/networks_live/index.ex
proposal.md
Add change proposal documentationopenspec/changes/fix-device-details-ui/proposal.md
and poor table rendering
removing low-value visualizations
spec.md
Add formal specification requirementsopenspec/changes/fix-device-details-ui/specs/build-web-ui/spec.md
tasks.md
Add implementation and validation tasksopenspec/changes/fix-device-details-ui/tasks.md
Imported GitHub PR comment.
Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/2324#issuecomment-3764394799
Original created: 2026-01-17T22:05:07Z
PR Compliance Guide 🔍
Below is a summary of compliance checks for this PR:
Query injection risk
Description: SRQL query strings are built by concatenating user/device-sourced identity fields (e.g.,
agent_idanddevice_uid) into tokens viasysmon_filter_tokens/1, but escaping only handlesbackslashes and quotes, so crafted values containing spaces or SRQL operators (e.g.,
agent_idlikefoo" time:last_7d in:secrets) could potentially alter the query semantics. show.ex [1225-1244]Referred Code
🎫 #2322
(e.g., the referenced non-sysmon device).
table).
table).
table).
device details page.
Codebase context is not defined
Follow the guide to enable codebase context checks.
Generic: Comprehensive Audit Trails
Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.
Status: Passed
Generic: Meaningful Naming and Self-Documenting Code
Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting
Status: Passed
Generic: Secure Logging Practices
Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.
Status: Passed
Generic: Secure Error Handling
Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.
Status:
Leaky error messages: The new error strings embed
inspect(other)/format_error(reason)which can exposeinternal response structures or sensitive details to end-users if rendered in the UI.
Referred Code
Generic: Robust Error Handling and Edge Case Management
Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation
Status:
Error handling context: The new SRQL error paths convert failures into user-consumable strings and it is unclear
from the diff whether these errors are logged/monitored or handled in a way that provides
actionable internal context without leaking details.
Referred Code
Generic: Security-First Input Validation and Data Handling
Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities
Status:
Query injection risk: The PR builds SRQL query fragments by string concatenation from
device_uid/agent_idusingescape_value/1, but it is not verifiable from the diff alone that this escaping issufficient to prevent SRQL injection across all parser edge-cases.
Referred Code
Compliance status legend
🟢 - Fully Compliant🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label
Imported GitHub PR comment.
Original author: @qodo-code-review[bot]
Original URL: https://github.com/carverauto/serviceradar/pull/2324#issuecomment-3764396206
Original created: 2026-01-17T22:06:50Z
PR Code Suggestions ✨
Explore these optional code suggestions:
Refine query logic for correctness
Refactor
sysmon_filter_tokens/1to build a more accurate query using anORfordevice identifiers (
device_idoruid) and anANDfor theagent_id, improvingquery correctness.
web-ng/lib/serviceradar_web_ng_web/live/device_live/show.ex [1227-1244]
Suggestion importance[1-10]: 8
__
Why: The suggestion correctly identifies a logic flaw where the generated query is too restrictive and does not match the filtering logic in
row_matches_identity?/2, which the PR relies on.Use Enum.find for first map
Replace
List.first(Enum.filter(results, &is_map/1))withEnum.find(results,&is_map/1)to simplify finding the first map in the list.web-ng/lib/serviceradar_web_ng_web/live/device_live/show.ex [114]
Suggestion importance[1-10]: 2
__
Why: The suggestion offers a minor improvement by replacing
List.first(Enum.filter(...))with the more direct and slightly more efficientEnum.find/2.