v3.31.0
passteque/gluetunv3.31.0Aug 24, 2022by qdm12
AI Summary
This release introduces support for SlickVPN and VPNsecure.me, refactors the control server API, and updates internal data structures for OpenVPN credentials.
Key Highlights
- Added SlickVPN and VPNsecure.me support
- Control server API updates with new `/vpn` route and experimental PUT settings
- Updated OpenVPN settings struct fields (ClientKey -> Key, ClientCrt -> Cert)
Breaking Changes
- Control server: replaced response status code 404 with 401 for unsupported routes and methods
- Control server: no longer redacts openvpn credentials from JSON response
- Environment variable `OPENVPN_CLIENTCRT` -> `OPENVPN_CERT` (undocumented change)
- Environment variable `OPENVPN_CLIENTKEY` -> `OPENVPN_KEY` (undocumented change)
New Features
- SlickVPN Support
- VPNsecure.me support
- Control server: add `/vpn` route to replace `/openvpn`
- Control server: patch VPN settings using HTTP PUT at `/v1/vpn/settings`
Full Release Notes
## Features - SlickVPN Support (#961) - VPNsecure.me support (#848) - Update servers data built-in for ExpressVPN, Surfshark - Control server: add `/vpn` route 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 `sercice` to `service` (#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 `404` with `401` for 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:generate` comments and outdated mocks - Linting: - upgrade golangci-lint to v1.49.0 - config: remove duplicate `predeclared` and commented `varnamelen`, `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 `ShutdownTimeout` to `time.Duration` since 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/ioutil` import - 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)