niksis02
86e2b02e55
fix: fixes delete markers access for some actions
...
Fixes #1766
Fixes #1750
This PR focuses on two bug fixes:
First, it blocks access to delete `DeleteMarkers` for the following operations by returning a `MethodNotAllowed` error: `PutObjectTagging`, `GetObjectTagging`, `DeleteObjectTagging`, `PutObjectLegalHold`, `GetObjectLegalHold`, `PutObjectRetention`, and `GetObjectRetention`.
Second, it removes the access check that previously prevented deleting a delete marker locked by a bucket default retention rule. A delete marker should always be allowed to be deleted.
2026-01-20 16:24:46 +04:00
Ben McClelland
2cf8610831
Merge pull request #1768 from versity/sis/streaming-test-failure
2026-01-19 15:57:51 -08:00
Ben McClelland
8e3e633a24
Merge pull request #1763 from versity/ben/webgui
2026-01-19 15:57:09 -08:00
niksis02
12092cf297
fix: fixes the SignedStreamingPayloadTrailer_success test failure
...
In the `SignedStreamingPayloadTrailer_success` integration test, the signing date was not using UTC. This caused an incorrect string-to-sign and signature calculation, because the timestamp used for `x-amz-date` (which is always UTC) differed from the timestamp used for streaming payload signature generation. The test now uses UTC, resolving the issue that occurred when the local time zone differed from UTC, specifically in terms of the `yyyymmdd` date component.
2026-01-20 02:32:54 +04:00
Ben McClelland
75cae81f0a
Merge pull request #1769 from versity/dependabot/go_modules/dev-dependencies-40b2bad3af
...
chore(deps): bump the dev-dependencies group with 6 updates
2026-01-19 14:24:21 -08:00
Ben McClelland
68d7924afa
feat: add web-based UI for S3 object management and admin operations
...
Implements a web interface for VersityGW with role-based access:
- Object explorer for all users to browse, upload, and download S3 objects
- Admin dashboard showing system overview and gateway status
- Admin-only user management for IAM user administration
- Admin-only bucket management for creating and configuring S3 buckets
- User authentication with automatic role-based page access
The web UI is disabled by default and only enabled with the --webui or
VGW_WEBUI_PORT env options that specify the listening address/port for
the web UI server. This preserves previous version behavior to not enable
any new ports/services unless opted in.
Login to the web UI login page with accesskey/secretkey credentials as
either user or admin account. UI functionality will auto detect login
role.
Regular users have access to the object explorer for managing files within
their accessible buckets. Admins additionally have access to user and bucket
management interfaces. The web UI is served on a separate port from the S3
server and integrates with existing S3 and Admin API endpoints.
All requests to the S3 and Admin services are signed by the browser and sent
directly to the S3/Admin service handlers. The login credentials are never
sent over the network for security purposes. This requires the S3/Admin
service to configure CORS Access-Control-Allow-Origin headers for these
requests.
2026-01-19 14:22:12 -08:00
dependabot[bot]
e37dfa6aaf
chore(deps): bump the dev-dependencies group with 6 updates
...
Bumps the dev-dependencies group with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [github.com/Azure/azure-sdk-for-go/sdk/azcore](https://github.com/Azure/azure-sdk-for-go ) | `1.20.0` | `1.21.0` |
| [github.com/Azure/azure-sdk-for-go/sdk/storage/azblob](https://github.com/Azure/azure-sdk-for-go ) | `1.6.3` | `1.6.4` |
| [github.com/segmentio/kafka-go](https://github.com/segmentio/kafka-go ) | `0.4.49` | `0.4.50` |
| [github.com/clipperhouse/uax29/v2](https://github.com/clipperhouse/uax29 ) | `2.3.0` | `2.3.1` |
| [github.com/pierrec/lz4/v4](https://github.com/pierrec/lz4 ) | `4.1.23` | `4.1.25` |
| [github.com/klauspost/compress](https://github.com/klauspost/compress ) | `1.18.2` | `1.18.3` |
Updates `github.com/Azure/azure-sdk-for-go/sdk/azcore` from 1.20.0 to 1.21.0
- [Release notes](https://github.com/Azure/azure-sdk-for-go/releases )
- [Commits](https://github.com/Azure/azure-sdk-for-go/compare/sdk/azcore/v1.20.0...sdk/azcore/v1.21.0 )
Updates `github.com/Azure/azure-sdk-for-go/sdk/storage/azblob` from 1.6.3 to 1.6.4
- [Release notes](https://github.com/Azure/azure-sdk-for-go/releases )
- [Commits](https://github.com/Azure/azure-sdk-for-go/compare/sdk/storage/azblob/v1.6.3...sdk/storage/azblob/v1.6.4 )
Updates `github.com/segmentio/kafka-go` from 0.4.49 to 0.4.50
- [Release notes](https://github.com/segmentio/kafka-go/releases )
- [Commits](https://github.com/segmentio/kafka-go/compare/v0.4.49...v0.4.50 )
Updates `github.com/clipperhouse/uax29/v2` from 2.3.0 to 2.3.1
- [Release notes](https://github.com/clipperhouse/uax29/releases )
- [Commits](https://github.com/clipperhouse/uax29/compare/v2.3.0...v2.3.1 )
Updates `github.com/pierrec/lz4/v4` from 4.1.23 to 4.1.25
- [Release notes](https://github.com/pierrec/lz4/releases )
- [Commits](https://github.com/pierrec/lz4/compare/v4.1.23...v4.1.25 )
Updates `github.com/klauspost/compress` from 1.18.2 to 1.18.3
- [Release notes](https://github.com/klauspost/compress/releases )
- [Commits](https://github.com/klauspost/compress/compare/v1.18.2...v1.18.3 )
---
updated-dependencies:
- dependency-name: github.com/Azure/azure-sdk-for-go/sdk/azcore
dependency-version: 1.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
dependency-version: 1.6.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/segmentio/kafka-go
dependency-version: 0.4.50
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/clipperhouse/uax29/v2
dependency-version: 2.3.1
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/pierrec/lz4/v4
dependency-version: 4.1.25
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/klauspost/compress
dependency-version: 1.18.3
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-19 22:10:03 +00:00
Ben McClelland
04f8946798
Merge pull request #1764 from versity/ben/admin-debug
2026-01-19 11:15:12 -08:00
Ben McClelland
43fd18b069
fix: admin server debug always enabled when --admin-port option enabled
...
We had debug output incorrectly always enabled when running the
admin API on a separate port. This fixes the debug output to only
be enabled when --debug option selected.
2026-01-16 23:54:06 -08:00
Ben McClelland
eb72d3c6e8
Merge pull request #1759 from versity/sis/deleteobject-versionid-internal-error
...
fix: fixes non-existing object deletion with versionId
2026-01-16 11:26:20 -08:00
niksis02
43559e646e
fix: fixes non-existing object deletion with versionId
...
Fixes #1757
Fixes #1758
When attempting to delete a non-existing object in a versioning-enabled bucket while specifying a `versionId`, VersityGW previously returned an internal error if the object had a parent file object, and an `InvalidArgument` error if the object did not exist. This PR fixes both behaviors and now returns a successful response that includes the `versionId`.
2026-01-16 15:00:47 +04:00
Ben McClelland
6e11e3350c
Merge pull request #1754 from versity/test/diff_region_handling
...
Test/diff region handling
v1.1.0
2026-01-15 12:03:57 -08:00
Luke McCrone
c0e6a08e1e
test: s3cmd - different regions, skips removal
2026-01-14 17:24:41 -03:00
Ben McClelland
3866476257
Merge pull request #1755 from versity/sis/missing-bucket-lock-err
...
fix: fixes missing bucket object lock config error
2026-01-14 07:59:05 -08:00
Ben McClelland
d45cfa2663
Merge pull request #1756 from versity/sis/int-tests-bucket-name-generation
...
fix: fix the concurrency issue in integration tests bucket name generation
2026-01-14 07:56:17 -08:00
niksis02
7a26aec685
fix: fix the concurrency issue in integration tests bucket name generation
...
`getBucketName` in the integration test utilities is responsible for generating unique bucket names using the `test-bucket-` prefix and an atomic integer. The previous implementation performed an atomic `Add` followed by a `Load`, which does not guarantee uniqueness and could result in duplicate bucket names. This has been fixed by removing the `Load` call and relying solely on the return value of the `Add` operation, which provides the updated integer value.
2026-01-14 15:02:41 +04:00
niksis02
2a7e76a44f
fix: fixes missing bucket object lock config error
...
Fixes #1751
When an object lock–related operation is performed on an object in a bucket where Object Lock is not enabled, an `InvalidRequest` error is returned; however, the error message differs for some actions. This PR introduces a new error, `ErrMissingObjectLockConfigurationNoSpaces`, for `PutObject`, `CopyObject`, and `CreateMultipartUpload` to maintain compatibility with S3 in terms of the error message. It also adds the missing integration tests for these actions.
2026-01-14 13:41:50 +04:00
Ben McClelland
5979e056e1
Merge pull request #1742 from versity/test/put_object_object_lock
...
Test: more PutObject/locking/retention/versioning tests
2026-01-13 15:27:32 -08:00
Luke McCrone
2a23686c87
test: PutObject, locking, versioning, retention testing
2026-01-13 19:38:16 -03:00
Ben McClelland
f9e903aaf4
Merge pull request #1753 from versity/sis/delete-locked-object
...
fix: skips object lock check in DeleteObject without versionId.
2026-01-13 12:05:36 -08:00
niksis02
06f4f0ac15
fix: skips object lock check in DeleteObject without versionId.
...
Fixes #1741
An object delete request without a `versionId` results in the creation of a new delete marker in versioning-enabled buckets. Even if the latest object version is locked, a new delete marker must still be created.
This implementation skips the object lock check for delete requests in versioning-enabled buckets when the `versionId` is missing, allowing the delete marker to be created as expected.
Additionally, it introduces a flag in the `createObjVersion` method in POSIX to remove unnecessary xattr attributes from an object after creating a new object version. A delete marker must not carry object-specific attributes such as tagging, legal hold, or retention. Currently, the cleanup is limited to legal hold and retention attributes, but this list will be expanded after fixing issue #1751 .
2026-01-13 16:50:54 +04:00
Ben McClelland
abbd6697d1
Merge pull request #1752 from versity/dependabot/go_modules/dev-dependencies-5213d97e30
2026-01-12 20:36:11 -08:00
dependabot[bot]
6198bf4b53
chore(deps): bump the dev-dependencies group with 20 updates
...
Bumps the dev-dependencies group with 20 updates:
| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2 ) | `1.41.0` | `1.41.1` |
| [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2 ) | `1.95.0` | `1.95.1` |
| [golang.org/x/sys](https://github.com/golang/sys ) | `0.39.0` | `0.40.0` |
| [github.com/aws/aws-sdk-go-v2/feature/ec2/imds](https://github.com/aws/aws-sdk-go-v2 ) | `1.18.16` | `1.18.17` |
| [github.com/aws/aws-sdk-go-v2/service/signin](https://github.com/aws/aws-sdk-go-v2 ) | `1.0.4` | `1.0.5` |
| [github.com/aws/aws-sdk-go-v2/service/sso](https://github.com/aws/aws-sdk-go-v2 ) | `1.30.8` | `1.30.9` |
| [github.com/aws/aws-sdk-go-v2/service/ssooidc](https://github.com/aws/aws-sdk-go-v2 ) | `1.35.12` | `1.35.13` |
| [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2 ) | `1.41.5` | `1.41.6` |
| [golang.org/x/crypto](https://github.com/golang/crypto ) | `0.46.0` | `0.47.0` |
| [golang.org/x/net](https://github.com/golang/net ) | `0.48.0` | `0.49.0` |
| [golang.org/x/text](https://github.com/golang/text ) | `0.32.0` | `0.33.0` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2 ) | `1.32.6` | `1.32.7` |
| [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2 ) | `1.19.6` | `1.19.7` |
| [github.com/aws/aws-sdk-go-v2/feature/s3/manager](https://github.com/aws/aws-sdk-go-v2 ) | `1.20.18` | `1.20.19` |
| [github.com/aws/aws-sdk-go-v2/internal/configsources](https://github.com/aws/aws-sdk-go-v2 ) | `1.4.16` | `1.4.17` |
| [github.com/aws/aws-sdk-go-v2/internal/endpoints/v2](https://github.com/aws/aws-sdk-go-v2 ) | `2.7.16` | `2.7.17` |
| [github.com/aws/aws-sdk-go-v2/internal/v4a](https://github.com/aws/aws-sdk-go-v2 ) | `1.4.16` | `1.4.17` |
| [github.com/aws/aws-sdk-go-v2/service/internal/checksum](https://github.com/aws/aws-sdk-go-v2 ) | `1.9.7` | `1.9.8` |
| [github.com/aws/aws-sdk-go-v2/service/internal/presigned-url](https://github.com/aws/aws-sdk-go-v2 ) | `1.13.16` | `1.13.17` |
| [github.com/aws/aws-sdk-go-v2/service/internal/s3shared](https://github.com/aws/aws-sdk-go-v2 ) | `1.19.16` | `1.19.17` |
Updates `github.com/aws/aws-sdk-go-v2` from 1.41.0 to 1.41.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.41.0...v1.41.1 )
Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.95.0 to 1.95.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.95.0...service/s3/v1.95.1 )
Updates `golang.org/x/sys` from 0.39.0 to 0.40.0
- [Commits](https://github.com/golang/sys/compare/v0.39.0...v0.40.0 )
Updates `github.com/aws/aws-sdk-go-v2/feature/ec2/imds` from 1.18.16 to 1.18.17
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.16...config/v1.18.17 )
Updates `github.com/aws/aws-sdk-go-v2/service/signin` from 1.0.4 to 1.0.5
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/m2/v1.0.4...service/m2/v1.0.5 )
Updates `github.com/aws/aws-sdk-go-v2/service/sso` from 1.30.8 to 1.30.9
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/acm/v1.30.8...service/acm/v1.30.9 )
Updates `github.com/aws/aws-sdk-go-v2/service/ssooidc` from 1.35.12 to 1.35.13
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/pi/v1.35.12...service/pi/v1.35.13 )
Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.41.5 to 1.41.6
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/sts/v1.41.5...service/sts/v1.41.6 )
Updates `golang.org/x/crypto` from 0.46.0 to 0.47.0
- [Commits](https://github.com/golang/crypto/compare/v0.46.0...v0.47.0 )
Updates `golang.org/x/net` from 0.48.0 to 0.49.0
- [Commits](https://github.com/golang/net/compare/v0.48.0...v0.49.0 )
Updates `golang.org/x/text` from 0.32.0 to 0.33.0
- [Release notes](https://github.com/golang/text/releases )
- [Commits](https://github.com/golang/text/compare/v0.32.0...v0.33.0 )
Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.6 to 1.32.7
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.6...v1.32.7 )
Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.6 to 1.19.7
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/m2/v1.19.6...service/m2/v1.19.7 )
Updates `github.com/aws/aws-sdk-go-v2/feature/s3/manager` from 1.20.18 to 1.20.19
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/emr/v1.20.18...feature/s3/manager/v1.20.19 )
Updates `github.com/aws/aws-sdk-go-v2/internal/configsources` from 1.4.16 to 1.4.17
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/internal/v4a/v1.4.16...internal/v4a/v1.4.17 )
Updates `github.com/aws/aws-sdk-go-v2/internal/endpoints/v2` from 2.7.16 to 2.7.17
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/internal/endpoints/v2.7.16...internal/endpoints/v2.7.17 )
Updates `github.com/aws/aws-sdk-go-v2/internal/v4a` from 1.4.16 to 1.4.17
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/internal/v4a/v1.4.16...internal/v4a/v1.4.17 )
Updates `github.com/aws/aws-sdk-go-v2/service/internal/checksum` from 1.9.7 to 1.9.8
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/dsql/v1.9.7...service/dsql/v1.9.8 )
Updates `github.com/aws/aws-sdk-go-v2/service/internal/presigned-url` from 1.13.16 to 1.13.17
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/mq/v1.13.16...service/mq/v1.13.17 )
Updates `github.com/aws/aws-sdk-go-v2/service/internal/s3shared` from 1.19.16 to 1.19.17
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/changelog-template.json )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/sqs/v1.19.16...service/sqs/v1.19.17 )
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
dependency-version: 1.41.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
dependency-version: 1.95.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: golang.org/x/sys
dependency-version: 0.40.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/feature/ec2/imds
dependency-version: 1.18.17
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/signin
dependency-version: 1.0.5
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sso
dependency-version: 1.30.9
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/ssooidc
dependency-version: 1.35.13
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sts
dependency-version: 1.41.6
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: golang.org/x/crypto
dependency-version: 0.47.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/net
dependency-version: 0.49.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/text
dependency-version: 0.33.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/credentials
dependency-version: 1.19.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/feature/s3/manager
dependency-version: 1.20.19
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/internal/configsources
dependency-version: 1.4.17
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/internal/endpoints/v2
dependency-version: 2.7.17
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/internal/v4a
dependency-version: 1.4.17
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/internal/checksum
dependency-version: 1.9.8
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/internal/presigned-url
dependency-version: 1.13.17
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/internal/s3shared
dependency-version: 1.19.17
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-13 01:58:01 +00:00
Ben McClelland
d05d29010d
Merge pull request #1739 from versity/sis/create-bucket-and-owner
...
feat: implements admin CreateBucket endpoint/cli command
2026-01-12 10:09:58 -08:00
Ben McClelland
b1e9dead5d
Merge pull request #1748 from loktionovam/fix-meta-sidecar-cleanup-performance
...
fix: optimize sidecar empty-dir checks
2026-01-12 08:56:33 -08:00
Ben McClelland
bf5b0b85d8
Merge pull request #1746 from dch/fix/freebsd-zfs-xattr
...
Fix ZFS xattr namespace usage on FreeBSD vs other platforms
2026-01-12 08:40:25 -08:00
niksis02
2561ef9708
feat: implements admin CreateBucket endpoint/cli command
...
Closes #1731
Implements the admin `CreateBucket` (`PATCH /:bucket/create`) endpoint and CLI command, which create a new bucket with the provided owner access key ID. The endpoint internally calls the S3 `CreateBucket` API, storing the new owner information in the request context under the `bucket-owner` key. This value is then retrieved by the S3 API layer and the backends.
The endpoint uses the custom `x-vgw-owner` HTTP header to pass the bucket owner access key ID.
The admin CLI command mirrors `aws s3api create-bucket` and supports all flags implemented by the gateway (for example, `--create-bucket-configuration`, `--acl`, `--object-ownership`, etc.).
2026-01-12 14:32:52 +04:00
Aleksandr Loktionov
b78d21c3db
fix: optimize sidecar empty-dir checks
2026-01-12 06:51:18 -03:00
Dave Cottlehuber
0cab42d9fe
xattr: use different namespace prefixes for FreeBSD vs other platforms
...
Go's stdlib seems to handle the FreeBSD user. namespace directly, or
FreeBSD itself doesn't require it. Make this a platform-specific
feature.
Fixes : #1745
2026-01-10 16:43:33 +00:00
Ben McClelland
12f0b5c43c
Merge pull request #1737 from versity/ben/default-cors
...
feat: add option for default global cors allow origin headers
2026-01-09 15:34:23 -08:00
Ben McClelland
e81b87f71c
Merge pull request #1744 from versity/sis/invalid-retain-until-date-header-err
...
fix: fixes invalid/expired x-amz-object-lock-retain-until-date errors
2026-01-09 15:33:30 -08:00
Ben McClelland
ff00e42538
Merge pull request #1743 from versity/sis/obj-lock-retention-period-err
...
fix: fixes the InvalidRetentionPeriod error code and message
2026-01-09 15:32:47 -08:00
niksis02
cf99b3e036
fix: fixes invalid/expired x-amz-object-lock-retain-until-date errors
...
Fixes #1733
Fixes #1734
The `x-amz-object-lock-retain-until-date` request header appears in the `PutObject`, `CopyObject`, and `CreateMultipartUpload` operations. This PR fixes the two types of error codes and messages returned when the header value is invalid or expired and adds the corresponding integration tests.
2026-01-09 17:13:02 +04:00
niksis02
c91e5dc3f2
fix: fixes the InvalidRetentionPeriod error code and message
...
Fixes #1738
Corrects(S3 compatible) the `InvalidRetentionPeriod` error `Code` and `Message`.
2026-01-09 15:21:26 +04:00
Ben McClelland
d446102f69
feat: add option for default global cors allow origin headers
...
There is some desire to have a web dashboard for the gateway. So
that we dont have to proxy all requests through the webserver
and expose credentials over the wire, the better approach would
be to enable CORS headers to allow browser requests directly to
the s3/admin service.
The default for these headers is off, so that they are only
enabled for instances that specfically want to support this
workload.
2026-01-08 16:23:23 -08:00
Ben McClelland
f2a75708e4
Merge pull request #1718 from versity/test/performance_improvements
...
test: matrix update, speed up tests, some region fixes
2026-01-06 15:41:06 -08:00
Ben McClelland
6fd939386c
Merge pull request #1735 from versity/dependabot/go_modules/dev-dependencies-67992aebd4
...
chore(deps): bump github.com/valyala/fasthttp from 1.68.0 to 1.69.0 in the dev-dependencies group
2026-01-06 08:25:55 -08:00
Luke McCrone
dff20b5b9d
test: test matrix setup overhaul, fix some region/iam issues
2026-01-06 12:55:18 -03:00
dependabot[bot]
7a4dd59c81
chore(deps): bump github.com/valyala/fasthttp
...
Bumps the dev-dependencies group with 1 update: [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp ).
Updates `github.com/valyala/fasthttp` from 1.68.0 to 1.69.0
- [Release notes](https://github.com/valyala/fasthttp/releases )
- [Commits](https://github.com/valyala/fasthttp/compare/v1.68.0...v1.69.0 )
---
updated-dependencies:
- dependency-name: github.com/valyala/fasthttp
dependency-version: 1.69.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-05 21:06:58 +00:00
Ben McClelland
6f74d2cddb
Merge pull request #1732 from versity/sis/getbucketlocation-us-east-1
...
fix: return null in GetBucketLocation for us-east-1
2026-01-05 08:22:33 -08:00
niksis02
8e0eec0201
fix: return null in GetBucketLocation for us-east-1
...
Fixes #1643
`GetBucketLocation` in S3 returns empty `LocationConstraint` if the bucket is in the `us-east-1` region. This fix returns empty `LocationConstraint` if the gateway region is `us-east-1`.
2026-01-05 16:24:01 +04:00
Ben McClelland
0cfacfc049
Merge pull request #1730 from versity/sis/create-bucket-location-constraint-us-east-1
...
fix: fixes CreateBucket LocationConstraint validation
2026-01-03 20:52:57 -08:00
Ben McClelland
6b017aa5cd
Merge pull request #1729 from versity/sis/versions-query-with-key
...
fix: adds an error route for ?versions subresource with key
2026-01-03 20:52:09 -08:00
Ben McClelland
841a012ce0
Merge pull request #1728 from versity/sis/get-object-empty-tagging
...
fix: removes the NoSuchTagSet error in GetObjectTagging
2026-01-03 20:51:08 -08:00
Ben McClelland
067de184a9
Merge pull request #1726 from versity/sis/object-tagging-response-versionid
...
fix: adds versionId in put/get/delete object tagging actions response.
2026-01-03 20:50:24 -08:00
Ben McClelland
10ab569277
Merge pull request #1725 from versity/sis/sigv4-expect-header
...
fix: removes Expect from sigv4 ignored headers list
2026-01-03 20:49:21 -08:00
Ben McClelland
01552b78c7
Merge pull request #1713 from versity/test/get_bucket_policy_status
...
Test/get bucket policy status
2026-01-03 20:48:40 -08:00
niksis02
d0158420ee
fix: fixes CreateBucket LocationConstraint validation
...
Fixes #1654
Fixes #1644
CreateBucket `LocationConstraint` rejects empty values with an `InvalidLocationConstraint` error.
The `us-east-1` `LocationConstraint` is considered invalid because it is the default value and must not be present in the `CreateBucketConfiguration` request body.
This PR fixes both issues by returning `InvalidLocationConstraint` in both cases.
2026-01-03 23:21:19 +04:00
niksis02
c2c2306d37
fix: adds an error route for ?versions subresource with key
...
Fixes #1688
S3 returns a specific `InvalidRequest` error for the requests with `?versions` query param against `object` resource. The PR implements this error route.
2026-01-03 16:23:11 +04:00
Luke McCrone
841b3d61a4
test: policy status, policy command updates
2026-01-02 19:15:00 -03:00