fix/feat: UX polish, security fixes, groups #2

Merged
lerko merged 3 commits from fix/polish-ux-safety into develop 2026-05-15 01:17:59 +00:00
Owner

Summary

  • Delete confirmation: d now prompts y/n instead of immediate removal
  • Input validation: all numeric form fields validated with range checks
  • Status page XSS fix: user-supplied data escaped in JavaScript render
  • History persistence: new check_history table, sparklines survive restarts
  • Row counter: # column replaces database ID, no gaps from deleted records
  • Monitor groups: collapsible tree view, aggregated status, parent group selector

Test plan

  • Create group, assign monitors, verify tree rendering
  • Collapse/expand with Space
  • Delete monitor — confirm dialog appears
  • Invalid form values — validation rejects
  • Restart app — sparklines persist
  • Status page XSS test with script tag monitor name
## Summary - Delete confirmation: d now prompts y/n instead of immediate removal - Input validation: all numeric form fields validated with range checks - Status page XSS fix: user-supplied data escaped in JavaScript render - History persistence: new check_history table, sparklines survive restarts - Row counter: # column replaces database ID, no gaps from deleted records - Monitor groups: collapsible tree view, aggregated status, parent group selector ## Test plan - [x] Create group, assign monitors, verify tree rendering - [x] Collapse/expand with Space - [x] Delete monitor — confirm dialog appears - [x] Invalid form values — validation rejects - [x] Restart app — sparklines persist - [ ] Status page XSS test with script tag monitor name
lerko added 3 commits 2026-05-15 01:17:14 +00:00
Prevent accidental deletes with y/n confirmation dialog. Validate all
numeric form inputs (interval, port, timeout, threshold, retries) with
range checks instead of silently defaulting to zero. Escape user-supplied
data in status page JavaScript to close XSS via monitor names. Persist
check history to new check_history table so sparklines and uptime
percentages survive restarts.
Display sequential # instead of internal database IDs in sites, alerts,
and users tables for a cleaner view without gaps from deleted records.
Groups act as visual organizers in the sites table. Monitors can be
assigned to a parent group via the form. Group rows show aggregated
worst-child status, children render with tree chars (├/└), and Space
toggles collapse/expand. Group form hides irrelevant connection and
advanced sections.
lerko merged commit 41a8a90bed into develop 2026-05-15 01:17:59 +00:00
lerko deleted branch fix/polish-ux-safety 2026-05-15 01:17:59 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lerkolabs/uptop#2