Release workflow now triggers on push to main and auto-generates
date-based version tags (v2026.02.09, v2026.02.09.1, etc.).
Manual dispatch and explicit v* tags still work.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Acceptance tests require a running UniFi controller and are too
heavyweight to run on every PR. They still run on push to main,
daily schedule, and manual workflow_dispatch.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- CI: run gofmt, go vet, and golangci-lint on PRs; full build on merge to main
- Release: checkout go-unifi alongside provider, add manual dispatch trigger,
make GPG signing optional
Both workflows now checkout shadyeip/go-unifi to satisfy the replace directive
in go.mod.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Switch go-unifi dependency from remote fork to local module which includes
the fix for empty string fields (firewall_zone_id, etc.) being sent in
network API requests, causing all zone policies to disappear from the UI.
Also updates Makefile with cross-compile and deploy targets, and README
with self-contained build/install instructions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add NetworkIDs and MatchOppositeNetworks to destination model
- Add network_ids schema attribute to destination block
- Handle NETWORK matching target in AsUnifiModel and mergeDestination
- Update go.mod to use shadyeip/go-unifi fork with destination network support
- Add NetworkIDs and MatchOppositeNetworks to destination model
- Add schema attributes for destination.network_ids
- Handle NETWORK matching target in AsUnifiModel and mergeDestination
- Fix Port type conversion (int32 to string) for API compatibility
- Update go.mod to use local go-unifi with destination network support
Fixes: destination.network_ids silently ignored on update
WAN networks return empty values for these fields from the API, causing
perpetual drift against schema defaults. Now explicitly set defaults
when API returns empty for WAN networks.
The UniFi API ignores index on create/update - ordering is controlled
via a separate batch-reorder endpoint. Making index computed-only
prevents "Provider produced inconsistent result after apply" errors.
* feat: support customizing guest portal logo and background with `unifi_portal_file` and `unifi_setting_guest_access` resources
* ci: run acceptance tests on go.mod changes
* f
* feat: support Guest Access settings with `resource_setting_guest_access`
* feat: add support for redirect after authentication in guest access settings
* feat: add support for Facebook authentication in guest access settings
* feat: add support for Google authentication in guest access settings
* feat: add support for RADIUS authentication in guest access settings
* feat: add support for Wechat authentication in guest access settings
* feat: add support for Facebook Wifi authentication in guest access settings
* feat: add support for restricted DNS servers
* feat: add support for guest portal UI customization
* feat: add support for restricted subnet in guest portal
* feat: retry client action on HTTP 401, but first attempt relogging in
* require controllr version 7.4 for several portal customization attributes
* enable acceptance tests workflow concurrency
* feat: add support for Intrution Prevention System (IPS) settings with `unifi_setting_ips` resource
* require IPS features enabled on controller
* require version 7.4
* require version 7.5 for advanced_filtering_preference
* feat: use Remember Me to prolong session for user/pass authentication
* run some setting mgmt tests on 7.0+ due to auto_upgrade_hour not working until device is adopted and auto upgrade logic is different and not supported
* feat: completely support for all site-wide management settings in resource_setting_mgmt
* require controller version minimum 7.3 for debug_tools_enabled
* feat: add support for Remote Syslog settings with `unifi_setting_rsyslog` resource
* set controller version constraint on 8.5 for rsyslogd
* require controller version 7.2 for teleport
* fix: use dedicated site for USG setting tests to not interfere with other resources
* feat: add support for UPNP and Geo IP filtering to USG settings resource
* feat: support complete USG settings resource
* fix messages in required_together_if.go
* improve docs of USG resource
* tests: require version at least 9.0 for unbind_wan_monitors
* feat: require version at least 8.5 for dns_verification
* fix: use go-unifi 1.5.2 to fix NTP
* require 7.0 or later for timeout preference
* require 7.0 or later for geo IP filtering
* feat: add magic site-to-site VPN setting resource support with `unifi_setting_magic_site_to_site_vpn` resource
* do not use default
* require controller version >=7.4 for magic site to site vpn tests
* feat: add automatic speedtest setting resource support with `unifi_setting_auto_speedtest` resource
* restore lowered test paralellism
* refactoring and fixes
* fix speedtest after refactor
* run speedtest test on versions [7.2,7.4.156), cause later it was removed from USG which is used in tests