forked from TrueCloudLab/frostfs-s3-gw
The Access Denied status may be received from APE due to exceeding the quota. In this situation, you need to return the appropriate error. The Conflict status is used because this error was made based on the LimitExceeded error from aws iam error https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html#API_CreateUser_Errors. Signed-off-by: Roman Loginov <r.loginov@yadro.com>
389 lines
No EOL
15 KiB
Markdown
389 lines
No EOL
15 KiB
Markdown
# Changelog
|
|
|
|
This document outlines major changes between releases.
|
|
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
- Add LimitExceeded error (#589)
|
|
|
|
## [0.32.0] - Khumbu - 2024-12-20
|
|
|
|
### Added
|
|
- Metric of dropped logs by log sampler (#502)
|
|
- SigV4A signature algorithm (#339)
|
|
- TLS Termination header for SSE-C (#562)
|
|
- Kludge profile support (#147)
|
|
- Netmap support in tree pool (#577)
|
|
|
|
### Changed
|
|
- Improved multipart removal speed (#559)
|
|
- Updated tree service pool without api-go dependency (#570)
|
|
|
|
## [0.31.3] - 2024-12-17
|
|
|
|
### Fixed
|
|
- Return BucketAlreadyExists when global domain taken (#584)
|
|
- Fix list-buckets vhs routing (#583)
|
|
- Skip port when matching listen domains (#586)
|
|
|
|
## [0.31.2] - 2024-12-13
|
|
|
|
### Fixed
|
|
- Unable to remove EC object (#576)
|
|
|
|
## [0.31.1] - 2024-11-28
|
|
|
|
### Fixed
|
|
- Ignore precondition headers with invalid date format (#563)
|
|
- MD5 calculation of object-part with SSE-C (#543)
|
|
|
|
## [0.31.0] - Rongbuk - 2024-11-20
|
|
|
|
### Fixed
|
|
- Docker warnings during image build (#421)
|
|
- `PartNumberMarker` in ListMultipart response (#451)
|
|
- PostObject handling (#456)
|
|
- Tag logging errors (#452)
|
|
- Removing of duplicated parts in tree service during split brain (#448)
|
|
- Container resolving (#482)
|
|
- FrostFS to S3 error transformation (#488)
|
|
- Default bucket routing (#507)
|
|
- encoding-type in ListBucketObjectVersions (#404)
|
|
- SIGHUP support for `tracing.enabled` config parameter (#520)
|
|
- `trace_id` parameter in logs (#501)
|
|
- Listing marker processing (#539)
|
|
- Content-MD5 header check (#540)
|
|
- Precondition check (#538)
|
|
- Bucket name check during all S3 operations (#556)
|
|
|
|
### Added
|
|
- Support for separate container for all CORS settings (#422)
|
|
- `X-Amz-Force-Delete-Bucket` header for forced bucket removal (#31)
|
|
- `Location` support in CompleteMultipart response (#451)
|
|
- Tree pool request duration metric (#447)
|
|
- Expiration lifecycle configuration support (#42, #412, #459, #460, #516, #536)
|
|
- Add support for virtual hosted style addressing (#446, #449, #493)
|
|
- Support `frostfs.graceful_close_on_switch_timeout` (#475)
|
|
- Vulnerability report document (#413)
|
|
- Support patch object method (#462, #473, #466, #479)
|
|
- Enhanced logging and request reproducer (#369)
|
|
- Root CA configuration for tracing (#484)
|
|
- Log sampling policy configuration (#461)
|
|
- `sign` command to `frostfs-s3-authmate` (#467)
|
|
- Support custom aws credentials (#509)
|
|
- Source IP binding configuration for FrostFS requests (#521)
|
|
- Tracing attributes (#549)
|
|
|
|
### Changed
|
|
- Split `FrostFS` interface into separate read methods (#427)
|
|
- golangci-lint v1.60 support (#474)
|
|
- Updated Go version to 1.22 (#470)
|
|
- Container removal after failed bucket creation (#434)
|
|
- Explicit check for `.` symbol in bucket name (#506)
|
|
- Transaction waiter in contract clients (#522)
|
|
- Avoid maintenance mode storage node during object operations (#524)
|
|
- Content-Type does not include in Presigned URL of s3-authmate (#505)
|
|
- Check owner ID before deleting bucket (#528)
|
|
- S3-Authmate now uses APE instead basic-ACL (#553)
|
|
|
|
### Removed
|
|
- Reduce using mutex when update app settings (#329)
|
|
|
|
## [0.30.9] - 2024-12-13
|
|
|
|
### Fixed
|
|
- Unable to remove EC object (#576)
|
|
|
|
## [0.30.8] - 2024-10-18
|
|
|
|
### Fixed
|
|
- Error handling for correct connection switch in SDK Pool (#517)
|
|
|
|
## [0.30.7] - 2024-10-03
|
|
|
|
### Fixed
|
|
- Correct aws-chunk encoding size handling (#511)
|
|
|
|
|
|
## [0.30.6] - 2024-09-17
|
|
|
|
### Fixed
|
|
- Object size of objects upload with aws-chunked encoding (#450)
|
|
- Object size of objects upload with negative Content-Length (#486)
|
|
|
|
## [0.30.5] - 2024-09-16
|
|
|
|
### Fixed
|
|
- Panic catchers for fuzzing tests (#492)
|
|
|
|
## [0.30.4] - 2024-09-03
|
|
|
|
### Added
|
|
- Fuzzing tests (#480)
|
|
|
|
## [0.30.3] - 2024-08-27
|
|
|
|
### Fixed
|
|
- Empty listing when multipart upload contains more than 1000 parts (#471)
|
|
|
|
## [0.30.2] - 2024-08-20
|
|
|
|
### Fixed
|
|
- Error counting in pool component before connection switch (#468)
|
|
|
|
### Added
|
|
- Log of endpoint address during tree pool errors (#468)
|
|
|
|
## [0.30.1] - 2024-07-25
|
|
|
|
### Fixed
|
|
- Redundant system node removal in tree service (#437)
|
|
|
|
### Added
|
|
- Log details on SDK Pool health status change (#439)
|
|
|
|
## [0.30.0] - Kangshung -2024-07-19
|
|
|
|
### Fixed
|
|
- Fix HTTP/2 requests (#341)
|
|
- Fix Decoder.CharsetReader is nil (#379)
|
|
- Fix flaky ACL encode test (#340)
|
|
- Docs grammar (#432)
|
|
|
|
### Added
|
|
- Add new `reconnect_interval` config param for server rebinding (#291)
|
|
- Support `GetBucketPolicyStatus` (#301)
|
|
- Support request IP filter with policy (#371, #377)
|
|
- Support tag checks in policies (#357, #365, #392, #403, #411)
|
|
- Support IAM-MFA checks (#367)
|
|
- More docs (#334, #353)
|
|
- Add `register-user` command to `authmate` (#414)
|
|
- `User` field in request log (#396)
|
|
- Erasure coding support in placement policy (#400)
|
|
- Improved test coverage (#402)
|
|
|
|
### Changed
|
|
- Update dependencies noted by govulncheck (#368)
|
|
- Improve test coverage (#380, #387)
|
|
- Support updated naming in native policy JSON (#385)
|
|
- Improve determining AccessBox latest version (#335)
|
|
- Don't set full_control policy for bucket owner (#407)
|
|
|
|
### Removed
|
|
- Remove control api (#406)
|
|
- Remove notifications (#401)
|
|
- Remove `layer.Client` interface (#410)
|
|
- Remove extended ACL related code (#372)
|
|
|
|
## [0.29.3] - 2024-07-19
|
|
|
|
### Fixed
|
|
- Support tree split environment when multiple nodes
|
|
may be part of the same sub path (#430)
|
|
- Collision of multipart name and system data in the tree (#430)
|
|
- Workaround for removal of multiple null versions in unversioned bucket (#430)
|
|
|
|
## [0.29.2] - 2024-07-03
|
|
|
|
### Fixed
|
|
- Parsing of put-bucket-setting retry configuration (#398)
|
|
|
|
## [0.29.1] - 2024-06-20
|
|
|
|
### Fixed
|
|
- OPTIONS request processing for object operations (#399)
|
|
|
|
### Added
|
|
- Retries of put-bucket-setting operation during container creation (#398)
|
|
|
|
## [0.29.0] - Zemu - 2024-05-27
|
|
|
|
### Fixed
|
|
- Fix marshaling errors in `DeleteObjects` method (#222)
|
|
- Fix status code in GET/HEAD delete marker (#226)
|
|
- Fix `NextVersionIDMarker` in `list-object-versions` (#248)
|
|
- Fix possibility of panic during SIGHUP (#288)
|
|
- Fix flaky `TestErrorTimeoutChecking` (`make test` sometimes failed) (#290)
|
|
- Fix log-level change on SIGHUP (#313)
|
|
- Fix anonymous put request (#311)
|
|
- Fix routine leak from nns resolver (#324)
|
|
- Fix svace errors (#325, #328)
|
|
|
|
### Added
|
|
- Add new `frostfs.buffer_max_size_for_put` config param and sync TZ hash for PUT operations (#197)
|
|
- Add `X-Amz-Version-Id` header after complete multipart upload (#227)
|
|
- Add handling of `X-Amz-Copy-Source-Server-Side-Encryption-Customer-*` headers during copy (#217)
|
|
- Add new `logger.destination` config param (#236)
|
|
- Add `X-Amz-Content-Sha256` header validation (#218)
|
|
- Support frostfsid contract. See `frostfsid` config section (#260)
|
|
- Support per namespace placement policies configuration (see `namespaces.config` config param) (#266)
|
|
- Support control api to manage policies. See `control` config section (#258)
|
|
- Add `namespace` label to billing metrics (#271)
|
|
- Support policy-engine (#257, #259, #282, #283, #302, #307, #345, #351, #358, #360, #362, #383, #354)
|
|
- Support `proxy` contract (#287)
|
|
- Authmate: support custom attributes (#292)
|
|
- Add FrostfsID cache (#269)
|
|
|
|
### Changed
|
|
- Generalise config param `use_default_xmlns_for_complete_multipart` to `use_default_xmlns` so that use default xmlns for all requests (#221)
|
|
- Set server IdleTimeout and ReadHeaderTimeout to `30s` and allow to configure them (#220)
|
|
- Return `ETag` value in quotes (#219)
|
|
- Use tombstone when delete multipart upload (#275)
|
|
- Support new parameter `cache.accessbox.removing_check_interval` (#305)
|
|
- Use APE rules instead of eACL in container creation (#306)
|
|
- Rework bucket policy with policy-engine (#261)
|
|
- Improved object listing speed (#165, #347)
|
|
- Logging improvement (#300, #318)
|
|
|
|
### Removed
|
|
- Drop sending whitespace characters during complete multipart upload and related config param `kludge.complete_multipart_keepalive` (#227)
|
|
- Unused legacy minio related code (#299)
|
|
- Redundant output with journald logging (#298)
|
|
|
|
## [0.28.2] - 2024-05-27
|
|
|
|
### Fixed
|
|
- `anon` user in billing metrics (#321)
|
|
- Parts are not removed when multipart object removed (#370)
|
|
|
|
### Added
|
|
- Put request in duration metrics (#280)
|
|
|
|
## [0.28.1] - 2024-01-24
|
|
|
|
### Added
|
|
- MD5 hash as ETag and response header (#205)
|
|
- Tree pool traversal limit (#262)
|
|
|
|
### Updating from 0.28.0
|
|
|
|
See new `features.md5.enabled` and `frostfs.tree_pool_max_attempts` config
|
|
parameters.
|
|
|
|
## [0.28.0] - Academy of Sciences - 2023-12-07
|
|
|
|
### Fixed
|
|
- Handle negative `Content-Length` on put (#125)
|
|
- Use `DisableURIPathEscaping` to presign urls (#125)
|
|
- Use specific s3 errors instead of `InternalError` where possible (#143)
|
|
- `grpc` schemas in tree configuration (#166)
|
|
- Return appropriate 404 code when object missed in storage but there is in gate cache (#158)
|
|
- Replace part on re-upload when use multipart upload (#176)
|
|
- Fix goroutine leak on put object error (#178)
|
|
- Fix parsing signed headers in presigned urls (#182)
|
|
- Fix url escaping (#188)
|
|
- Use correct keys in `list-multipart-uploads` response (#185)
|
|
- Fix parsing `key-marker` for object list versions (#237)
|
|
- `GetSubTree` failures (#179)
|
|
- Unexpected EOF during multipart download (#210)
|
|
- Produce clean version in debian build (#245)
|
|
|
|
### Added
|
|
- Add `trace_id` value into log record when tracing is enabled (#142)
|
|
- Add basic error types and exit codes to `frostfs-s3-authmate` (#152)
|
|
- Add a metric with addresses of nodes of the same and highest priority that are currently healthy (#186)
|
|
- Support dump metrics descriptions (#80)
|
|
- Add `copies_numbers` section to `placement_policy` in config file and support vectors of copies numbers (#70, #101)
|
|
- Support impersonate bearer token (#81, #105)
|
|
- Reload default and custom copies numbers on SIGHUP (#104)
|
|
- Tracing support (#84, #140)
|
|
- Return bearer token in `s3-authmate obtain-secret` result (#132)
|
|
- Support multiple version credentials using GSet (#135)
|
|
- Implement chunk uploading (#106)
|
|
- Add new `kludge.bypass_content_encoding_check_in_chunks` config param (#146)
|
|
- Add new `frostfs.client_cut` config param (#192)
|
|
- Add selection of the node of the latest version of the object (#231)
|
|
- Soft memory limit with `runtime.soft_memory_limit` (#196)
|
|
- `server_health` metric for every S3 endpoint status (#199)
|
|
|
|
### Changed
|
|
- Update prometheus to v1.15.0 (#94)
|
|
- Update go version to go1.19 (#118)
|
|
- Remove object from tree and reset its cache on object deletion when it is already removed from storage (#78)
|
|
- Finish rebranding (#2)
|
|
- Timeout errors has code 504 now (#103)
|
|
- Use request scope logger (#111)
|
|
- Add `s3-authmate update-secret` command (#131)
|
|
- Use default registerer for app metrics (#155)
|
|
- Use chi router instead of archived gorlilla/mux (#149, #174, #188)
|
|
- Complete multipart upload doesn't unnecessary copy now. Thus, the total time of multipart upload was reduced by 2 times (#63)
|
|
- Use gate key to form object owner (#175)
|
|
- Apply placement policies and copies if there is at least one valid value (#168)
|
|
- `statistic_tx_bytes_total` and `statistic_rx_bytes_total` metric to `statistic_bytes_total` metric with `direction` label (#153)
|
|
- Refactor of context-stored data receivers (#137)
|
|
- Refactor fetch/parse config parameters functions (#117)
|
|
- Move all log messages to constants (#96)
|
|
- Allow zero value of `part-number-marker` (#207)
|
|
- Clean tag node in the tree service instead of removal (#233)
|
|
|
|
### Removed
|
|
- Drop `tree.service` param (now endpoints from `peers` section are used) (#133)
|
|
|
|
## [0.27.0] - Karpinsky - 2023-07-12
|
|
|
|
This is a first FrostFS S3 Gateway release named after
|
|
[Karpinsky glacier](https://en.wikipedia.org/wiki/Karpinsky_Glacier).
|
|
|
|
### Fixed
|
|
- Using multiple servers require only one healthy (#12)
|
|
- Renew token before it expires (#20)
|
|
- Add generated deb builder files to .gitignore, and fix typo (#28)
|
|
- Get empty bucket CORS from frostfs (#36)
|
|
- Don't count pool error on client abort (#35)
|
|
- Handle request cancelling (#69)
|
|
- Clean up List and Name caches when object is missing in Tree service (#57)
|
|
- Don't create unnecessary delete-markers (#83)
|
|
- `Too many pings` error (#145)
|
|
|
|
### Added
|
|
- Billing metrics (#5, #26, #29)
|
|
- Return container name in `head-bucket` response (#18)
|
|
- Multiple configs support (#21)
|
|
- Bucket name resolving policy (#25)
|
|
- Support string `Action` and `Resource` fields in `bucketPolicy.Statement` (#32)
|
|
- Add new `kludge.use_default_xmlns_for_complete_multipart` config param (#40)
|
|
- Return `X-Owner-Id` in `head-bucket` response (#79)
|
|
- Support multiple tree service endpoints (#74, #110, #114)
|
|
|
|
### Changed
|
|
- Repository rebranding (#1)
|
|
- Update neo-go to v0.101.0 (#14)
|
|
- Update viper to v1.15.0 (#14)
|
|
- Update go version to go1.18 (#16)
|
|
- Return error on invalid LocationConstraint (#23)
|
|
- Limit number of objects to delete at one time (#37)
|
|
- CompleteMultipartUpload handler now sends whitespace characters to keep alive client's connection (#60)
|
|
- Support new system attributes (#64)
|
|
- Abstract network communication in TreeClient (#59, #75)
|
|
- Changed values for `frostfs_s3_gw_state_health` metric (#91)
|
|
|
|
## Older versions
|
|
|
|
This project is a fork of [NeoFS S3 Gateway](https://github.com/nspcc-dev/neofs-s3-gw) from version v0.26.0.
|
|
To see CHANGELOG for older versions, refer to https://github.com/nspcc-dev/neofs-s3-gw/blob/master/CHANGELOG.md.
|
|
|
|
[0.27.0]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/b2148cc3...v0.27.0
|
|
[0.28.0]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.27.0...v0.28.0
|
|
[0.28.1]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.28.0...v0.28.1
|
|
[0.28.2]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.28.1...v0.28.2
|
|
[0.29.0]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.28.2...v0.29.0
|
|
[0.29.1]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.29.0...v0.29.1
|
|
[0.29.2]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.29.1...v0.29.2
|
|
[0.29.3]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.29.2...v0.29.3
|
|
[0.30.0]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.29.3...v0.30.0
|
|
[0.30.1]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.30.0...v0.30.1
|
|
[0.30.2]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.30.1...v0.30.2
|
|
[0.30.3]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.30.2...v0.30.3
|
|
[0.30.4]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.30.3...v0.30.4
|
|
[0.30.5]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.30.4...v0.30.5
|
|
[0.30.6]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.30.5...v0.30.6
|
|
[0.30.7]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.30.6...v0.30.7
|
|
[0.30.8]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.30.7...v0.30.8
|
|
[0.30.9]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.30.8...v0.30.9
|
|
[0.31.0]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.30.9...v0.31.0
|
|
[0.31.1]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.31.0...v0.31.1
|
|
[0.31.2]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.31.1...v0.31.2
|
|
[0.31.3]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.31.2...v0.31.3
|
|
[0.32.0]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.31.3...v0.32.0
|
|
[Unreleased]: https://git.frostfs.info/TrueCloudLab/frostfs-s3-gw/compare/v0.32.0...master |