Skip to content

Release v0.13.0

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Nov 03:39

unifly 0.13.0 adds UniFi Network 11 support across the CLI, TUI, and Rust library, while retaining legacy statistics support on Network 10.

Network 11 support

  • Read site, device, client, and gateway statistics through the modern time-series API. Reports retain native bucket durations and monthly resolution; charts calculate rates from the actual duration.
  • Read paginated system-log history and dashboard critical alerts, including acknowledgement. Legacy fallback applies only when the modern endpoint is absent.
  • Inspect LAGs, MC-LAG domains, and switch stacks with devices lags, devices mc-lag-domains, and devices switch-stacks.
  • Configure firewall flow reporting and the WiFi 2.4 GHz channel and DTIM locks. Updates preserve fields you did not change.
  • Create gateway- and switch-managed networks with validated IPv4 and DHCP settings. Switch creation requires its owning Integration device UUID.

Fixes

Network and firewall writes resolve names consistently, preserve Network 11 filters, and reject changes that would discard an unfamiliar filter. Native WiFi bindings and site deletion use the controller's expected wire formats. DHCP create and update share range validation.

CLI and TUI startup share configuration resolution, including cloud host discovery. Config edits preserve comments and unknown keys. Explicit API-key overrides select API-key authentication, raw Integration calls work with hybrid and cloud profiles, and malformed URL passwords remain masked.

Network forms submit only edited fields and retain invalid drafts. Client kicks require confirmation. Event timestamps use local time, topology labels stay inside their boxes, and successful historical charts update even when DPI is unavailable.

Unrelated Session reads no longer hold a shared lock across network requests. Port-array updates remain atomic per switch. Event retention is bounded, pagination handles continuation flags, and optional inventory failures retain previously loaded data with a warning.

Upgrade notes

  • Five unsupported Integration NAT methods are removed from unifly-api. Use Session NAT methods or controller commands.
  • Library site creation takes one display name. CLI sites create --description is an alias for --name.
  • CreateNetworkRequest gains device_id; switch-managed creation requires an Integration device UUID. Gateway and switch creation require an IPv4 host/prefix even with DHCP disabled. Event and firewall-filter types also gain fields or variants; see the library migration guide.
  • New allow policies and block-to-allow edits default mirrored return traffic to false. Pass --allow-return-traffic true when required and supported by the destination zone.
  • Firewall block events are hidden by default. Use events list --include-firewall to include them; intrusion-prevention events remain visible.

Validation

The full local gate passed 1,218 tests with one ignored test. CI passed Linux checks, dependency policy, Windows builds and configuration tests, and controller E2E.

A disposable UniFi OS lab running Network 11.0.99 passed all 29 E2E tests, including all four Integration API tests. Additional live checks covered DHCP lifecycle, native WiFi bindings, firewall fields and filters, site lifecycle, populated statistics, and acknowledgement of a generated WAN-down critical alert. The legacy Docker lane passed all 25 Session tests, with four expected API-key skips. Read-only checks on Network 10.6.109 returned populated legacy history.

Switch-owned network creation and populated LAG/MC-LAG/stack details remain schema or fixture coverage without physical L3 switching hardware. The fresh lab cannot establish aged monthly history or populated DPI classification. No production controller was upgraded or mutated.

Full changelog · Implementation and review receipts