frostfs-http-gw/CHANGELOG.md
Denis Kirillov 1776db289c [#50] go.mod: Update min go version to 1.19
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-05-23 17:48:46 +03:00

8.8 KiB

Changelog

This document outlines major changes between releases.

Unreleased

Added

  • Multiple configs support (TrueCloudLab#12)
  • Support dump metrics descriptions (#29)
  • Support impersonate bearer token (#40)

Changed

  • Update prometheus to v1.15.0 (#35)
  • Update go version to 1.18 (TrueCloudLab#9)
  • Update go version to 1.19 (#50)
  • Update neo-go to v0.101.0 (#8)
  • Update viper to v1.15.0 (#8)
  • Errors have become more detailed (#18)
  • Update system attribute names (#22)
  • Separate integration tests with build tags (#24)
  • Changed values for frostfs_http_gw_state_health metric (#32)

Updating from v0.26.0

To set system attributes use updated headers (you can use old ones for now, but their support will be dropped in the future releases):

  • X-Attribute-Neofs-* -> X-Attribute-System-*
  • X-Attribute-NEOFS-* -> X-Attribute-SYSTEM-*
  • X-Attribute-neofs-* -> X-Attribute-system-*

0.26.0 - 2022-12-28

Fixed

  • ENV config example (#236)

Added

  • Support the Date header on upload (#214)
  • Available routes specification (#216)
  • Mention caching strategy in docs (#215)
  • Add error response on attribute duplicates (#221)
  • Multiple server listeners (#228)

Removed

  • Deprecated linters (#239)

Updating from v0.25.1

Make sure your configuration is valid:

If you configure application using environment variables change:

  • HTTP_GW_LISTEN_ADDRESS -> HTTP_GW_SERVER_0_ADDRESS
  • HTTP_GW_TLS_CERT_FILE -> HTTP_GW_SERVER_0_TLS_CERT_FILE (and set HTTP_GW_SERVER_0_TLS_ENABLED=true)
  • HTTP_GW_TLS_KEY_FILE -> HTTP_GW_SERVER_0_TLS_KEY_FILE (and set HTTP_GW_SERVER_0_TLS_ENABLED=true)

If you configure application using .yaml file change:

  • listen_address -> server.0.address
  • tls.cert_file -> server.0.tls.cert_file (and set server.0.tls.enabled: true)
  • tls.key_file -> server.0.tls.key_file (and set server.0.tls.enabled: true)

0.25.1 - 2022-11-30

Fixed

  • Download zip archive when FilePath is invalid (#222)
  • Only one peer must be healthy to init pool (#233)

Added

  • Debian packaging (#223)
  • Timeout for individual operations in streaming RPC (#234)

0.25.0 - 2022-10-31

Added

  • Config reloading on SIGHUP (#200, #208)
  • Stop pool dial on SIGINT (#212)
  • Makefile help (#213)

Changed

  • Update NeoFS error handling (#206)
  • GitHub actions updates (#205, #209)
  • Unified system attribute format for GET and HEAD (#213)

0.24.0 - 2022-09-14

Fixed

  • Fix expiration epoch calculation (#198)
  • Fix panic on go1.19 (#188)

Added

  • Exposure of pool metrics (#179, #194)

Changed

  • Help doesn't print empty parameters (#186)
  • Update version calculation (#190, #199)
  • Update neofs-sdk-go (#196)
  • Update go version in CI and docker (#197, #202)

0.23.0 - 2022-08-02

Added

  • New param to configure pool error threshold (#184)

Changed

  • Pprof and prometheus metrics configuration (#171)
  • Drop GO111MODULES from builds (#182)

Updating from v0.22.0

  1. To enable pprof use pprof.enabled instead of pprof in config. To enable prometheus metrics use prometheus.enabled instead of metrics in config. If you are using the command line flags you can skip this step.

0.22.0 - 2022-07-25

Added

  • Default params documentation (#172)
  • Health metric (#175)

Changed

  • Version output (#169)
  • Updated SDK Version (#178)

0.21.0 - 2022-06-20

Fixed

  • Downloading ZIP archive using streaming (#163)

Added

  • New make target to build app in docker (#159)

Changed

  • Increased buffer size for file uploading (#148)
  • Updated linter version to v1.46.2 (#161)
  • Updated CodeQL version to v2 (#158)

0.20.0 - 2022-04-29

Fixed

  • Get rid of data race on server shutdown (#145)
  • Improved English in docs and comments (#153)
  • Use FilePath to download zip (#150)

Added

  • Support container name NNS resolving (#142)

Changed

  • Updated docs (#133, #140)
  • Increased default read/write timeouts (#154)
  • Updated SDK (#137, #139)
  • Updated go version to 1.17 (#143)
  • Improved error messages (#144)

0.19.0 - 2022-03-16

Fixed

  • Uploading object with zero payload (#122)
  • Different headers format in GET and HEAD (#125)
  • Fixed project name in docs (#120)

Added

  • Support object attributes with spaces (#123)

Changed

  • Updated fasthttp to v1.34.0 (#129)
  • Updated NeoFS SDK to v1.0.0-rc.3 (#126, #132)
  • Refactored content type detecting (#128)

0.18.0 - 2021-12-10

Fixed

  • System headers format (#111)

Added

  • Different formats to set object's expiration: in epoch, duration, timestamp, RFC3339 (#108)
  • Support of nodes priority (#115)

Changed

  • Updated testcontainers dependency (#100)

0.17.0 - 2021-11-15

Support of bulk file download with zip streams and various bug fixes.

Fixed

  • Allow canonical X-Attribute-Neofs-* headers (#87)
  • Responses with error message now end with \n character (#105)
  • Application does not require all neofs endpoints to be healthy at start now (#103)
  • Application now tracks session token errors and recreates tokens in runtime (#95)

Added

  • Integration tests with all-in-one test containers (#85, #94)
  • Bulk download support with zip streams (#92, #96)

0.16.1 (28 Jul 2021)

New features:

  • logging requests (#77)
  • HEAD methods for download routes (#76)

Improvements:

  • updated sdk-go dependency (#82)

Bugs fixed:

  • wrong NotFound status was used (#30)

0.16.0 (29 Jun 2021)

We update HTTP gateway with NEP-6 wallets support, YAML configuration files and small fixes.

New features:

  • YAML configuration file (#71)

Behavior changes:

  • gateway key needs to be stored in a proper NEP-6 wallet now, -k option is no longer available, see -w and -a (#68)

Bugs fixed:

  • downloads were not streamed leading to excessive memory usage (#67)
  • Last-Modified header incorrectly used local time (#75)

0.15.2 (22 Jun 2021)

New features:

  • Content-Type returned for object GET requests can now be taken from attributes (overriding autodetection, #65)

Behavior changes:

  • grpc keepalive options can no longer be changed (#60)

Improvements:

  • code refactoring (more reuse between different gateways, moved some code to sdk-go, #47, #46, #51, #62, #63)
  • documentation updates and fixes (#53, #49, #55, #59)
  • updated api-go dependency (#57)

Bugs fixed:

  • -k option wasn't accepted for key although it was documented (#50)

0.15.1 (24 May 2021)

This important release makes HTTP gateway compatible with NeoFS node version 0.20.0.

Behavior changes:

  • neofs-api-go was updated to 1.26.1, which contains some incompatible changes in underlying components (#39, #44)
  • neofs-http-gw is consistently used now for repository, binary and image names (#43)

Improvements:

  • minor code cleanups based on stricter set of linters (#41)
  • updated README (#42)

0.15.0 (30 Apr 2021)

This is the first public release incorporating latest NeoFS protocol support and fixing some bugs.

New features:

  • upload support (#14, #13, #29)
  • ephemeral keys (#26)
  • TLS server support (#28)

Behavior changes:

  • node weights can now be specified as simple numbers instead of percentages and gateway will calculate the proportion automatically (#27)
  • attributes are converted now to X-Attribute-* headers when retrieving object from gate instead of X-* (#29)

Improvements:

  • better Makefile (#16, #24, #33, #34)
  • updated documentation (#16, #29, #35, #36)
  • updated neofs-api-go to v1.25.0 (#17, #20)
  • updated fasthttp to v1.23.0+ (#17, #29)
  • refactoring, eliminating some dependencies (#20, #29)

Bugs fixed:

  • gateway attempted to work with no NeoFS peers configured (#29)
  • some invalid headers could be sent for attributes using non-ASCII or non-printable characters (#29)

Older versions

Please refer to Github releases for older releases.