Skip to content

v2.1.0 — Settings Redesign, Configurable Retention & Mobile Support

Choose a tag to compare

@jmasarweh jmasarweh released this 17 Feb 17:19
· 413 commits to main since this release

What's New

Settings Redesign

  • Sidebar navigation — Settings page restructured into three sections: WAN & Networks, Firewall, and Data & Backups
  • Gateway device image — Shows your UniFi gateway model image alongside connection status
  • Extracted settings into dedicated components for cleaner architecture

Configurable Retention

  • Retention slider — Adjust log retention from 60 to 365 days via Settings > Data & Backups
  • DNS retention — Separate configurable retention for DNS logs (default 10 days)
  • Environment variablesRETENTION_DAYS and DNS_RETENTION_DAYS for Docker-level configuration
  • Estimated log counts displayed per retention tier

Config Backup & Restore

  • Export all settings (WAN, network labels, UniFi connection, retention) as a downloadable JSON file
  • Import configuration on the same or a new instance with preview and confirmation flow
  • Option to include or exclude UniFi API key from exports

Mobile Responsive

  • Collapsible filter panel on mobile with active filter count badge
  • Hidden stats bar (AbuseIPDB, MaxMind, logs count) on small screens
  • Full-width log table — removed truncation on mobile so cells aren't cut off

Dashboard & Filters

  • Extended time ranges — Dashboard and Log Stream now support 90d, 180d, and 365d ranges
  • Dynamic range filtering — Time range options auto-adjust based on available data and retention setting
  • Shared utility — Extracted filterVisibleRanges to eliminate duplicated logic

Bug Fixes

  • Fixed NAT direction icon rendering as emoji with gray background on iOS
  • Fixed zone matrix horizontal scrollbar in Settings (container width restored to max-w-6xl)
  • Fixed time range filter gap when maxFilterDays fell between available range options
  • Fixed 60-day stats bucketing (uses day bucket instead of unsupported value)
  • Improved schema migration safety with IF NOT EXISTS for indexes

Key Files Modified

  • ui/src/components/SettingsOverlay.jsx — Refactored into sidebar layout with three sections
  • ui/src/components/SettingsDataBackups.jsx — New component for retention slider and backup/restore
  • ui/src/components/SettingsWanNetworks.jsx — New component for WAN and network display
  • ui/src/components/FilterBar.jsx — Collapsible mobile filters, dynamic time ranges
  • ui/src/components/Dashboard.jsx — Extended time ranges with dynamic filtering
  • receiver/routes/setup.py — Config export/import and retention endpoints
  • receiver/routes/stats.py — Extended bucket map for longer time ranges
  • receiver/db.py — Configurable retention support in cleanup task