Features
- SlickVPN Support (#961)
- VPNsecure.me support (#848)
- Update servers data built-in for ExpressVPN, Surfshark
- Control server: add
/vpnroute to replace/openvpn(in future v4.0.0) - Control server: patch VPN settings using HTTP PUT at
/v1/vpn/settings(undocumented, experimental)
Fixes
- Surfshark: remove no longer valid retro server data
- Bump github.com/breml/rootcerts from 0.2.3 to 0.2.6 (#1033, #1058)
Documentation
- Fix readme typo
sercicetoservice(#1067)
Undocumented breaking changes
- Environment variable
OPENVPN_CLIENTCRT->OPENVPN_CERT(No breaking change since this was undocumented) - Environment variable
OPENVPN_CLIENTKEY->OPENVPN_KEY(No breaking change since this was undocumented) - Control server: replace response status code
404with401for unsupported routes and methods - Control server: do not redact openvpn credentials from JSON response
- Read base64 encoded data from environment variables (OpenVPN cert, key and encrypted key) instead of PEM encoded data
Maintenance
- Add mocks check to check for missing
//go:generatecomments and outdated mocks - Linting:
- upgrade golangci-lint to v1.49.0
- config: remove duplicate
predeclaredand commentedvarnamelen,wrapcheck - config: remove deprecated linters
ifshort - config: add linters
asasalint,usestdlibvars,interfacebloat,reassign - Fix Slowloris attacks on HTTP servers
- Force set default of 5 minutes for pprof read timeout
- Change
ShutdownTimeouttotime.Durationsince it cannot be set to 0
- Use common mocks for ivpn and ipvanish
- OpenVPN user and password as nullable (they can be an empty string for custom provider)
- OpenVPN settings struct field
ClientKey->Key - OpenVPN settings struct field
ClientCrt->Cert - Remove deprecated
io/ioutilimport - Fix labels workflow:
- Limit labels workflow to run on commits coming from not-forked repositories
- Fix permissions to write for labels
- Bump docker/build-push-action from 3.0.0 to 3.1.1 (#1073, #1098)
- Bump github.com/stretchr/testify from 1.7.2 to 1.8.0 (#1042, #1052)