Releases: go-goyave/goyave
Releases · go-goyave/goyave
Release v5.11.3
*errors.Error:NewandNewSkipnow returnnilif the given reason is an empty slice.nilvalues are now also excluded if the given reason is of type[]*errors.Error.
Release v5.11.2
- Validation: fixed missing data in the
validation.Contextgiven to theRequiredIfvalidator when checking for the field's absence.
Release v5.11.1
Release v5.11.0
Changes
- Authentication (#282)
- Added
auth.SchemeAuthenticatorinterface that authenticators can implement to indicate the scheme they are using. On authentication failure, the auth middleware adds theWWW-Authenticateheader to the response if the authenticator implementsauth.SchemeAuthenticator. - Added
auth.MiddlewareWithRealmto provide custom realm description for theWWW-Authenticateheader.
- Added
- Added an explicit error message when
server.RegisterRoutesis called more than once. - Static file serving: fixed an issue on Windows which resulted in 404 errors if the filesystem was embedded and the requested path contained slashes. #281
New Contributors
Full Changelog: v5.10.0...v5.11.0
Release v5.10.0
- Validation:
UniqueArray/ExistsArrayimprovements- This validator was previously using a naive dialect detection based on the config
database.connection. This didn't work with custom dialectors. It now detects the dialect and generate the corresponding query based on thegorm.Dialector's name. - Fixed query generation for BigQuery.
- Validation middleware now checks if server database is not
nilinstead of relying on configdatabase.connection. This improves support for servers where the database connection has been setup manually.
- This validator was previously using a naive dialect detection based on the config
- Added
server.HasDB()to check if the server's database connection is setup or not without having to rely on configdatabase.connection. - Added
*Options.ListenConfig(typenet.ListenConfig). This option let developers customize the network listener settings and keep-alives to better accomodate large traffic scenarios. (@supakornn #280)
Full Changelog: v5.9.0...v5.10.0
Release v5.9.0
- Added
CommonWriter.Writer()to retrieve the underlying writer. - Compression:
- Fixed an error raised in case of no content responses (HTTP
204notably) when using the compress middleware. - Added the header
Vary: Accept-Encodingif a response is compressed. - Set the
Content-Encodingheader only if the response is compressed. The header won't be added anymore for no content responses.
- Fixed an error raised in case of no content responses (HTTP
- Prevent
Response.JSON()andResponse.String()from overriding the response status after the headers have been written, which could lead to incorrect information given to other components such as the access logger. - Error handling edge cases improvements:
- The panic status handler (
500) is now executed too if an error happens after writing to the response. Previously, the panic status handler was executed just like any other status handler: only if the response is empty. This allows better error handling in scenarios such as streaming, SSE, etc. - The panic status handler (
500) doesn't attempt to write to the response body anymore if a non-500 header has already been written. - The recovery middleware doesn't override the status if header has already been written. This avoids inconsistencies between real response and logged response.
- The panic status handler (
Full Changelog: v5.8.1...v5.9.0
Release v5.8.1
- Better IPv6 support:
- Fixed an error when starting the server when
server.hostwas an IPv6. server.Host(),server.BaseURL()andserver.ProxyBaseURL()properly format IPv6 hosts with enclosing square brackets, which also fixesroute.BuildURL()androute.BuildProxyURL()when the host is an IPv6.server.BaseURL()now converts::to::1(IPv6 loopback).
- Fixed an error when starting the server when
Full Changelog: v5.8.0...v5.8.1
Release v5.8.0
- Added HTTP 2 configuration to
goyave.Options.
Full Changelog: v5.7.0...v5.8.0
Release v5.7.0
util/walkpackagewalk.Path:Pathnow support escaping characters (.,[,],*,\) using a backslash. ( #236 by @achimoraites )Path.String()outputs the path with the escape characters.- Improved illegal path syntax error to make it easier for developers to troubleshoot.
- New methods:
Path.IsWildcard: returns true if the path has unescaped "*" as Name.Path.UnescapedString: returns a string representation of the path without the escape characters.
- New function
Unescape: remove escape characters from a path without parsing it.
- Validation:
- field paths in rule sets now support escaping characters using a backslash.
- validating both the the literal object fields and the wildcard (
*) isn't allowed anymore. This goes with the same logic as the repeated paths rule introduced in v5.6.0. - minor optimizations.
- Added support for bigquery database dialect. You must disable prepared statements for the dialect to work, as this is not supported by this driver. ( #238 by @pn03 )
- Upgraded to golangci-lint v2. New rules and changes to the configuration were made. Minor changes to the codebase were made to fix the newly reported lint issues.
- Updated dependencies.
Full Changelog: v5.6.1...v5.7.0
Release v5.6.1
- Fixed default language entry for the validation error message of the
KeysInvalidator. KeysInvalidator now accepts any concrete type string. This allows the use of type aliases.
Full Changelog: v5.6.0...v5.6.1