Ben McClelland
0dc074acbf
feat: add --socket-perm option for UNIX socket file permissions
...
Add a --socket-perm flag (VGW_SOCKET_PERM env var) to control the
file-mode permissions on file-backed UNIX domain sockets. This allows
operators to limit access permission without relying on process umask.
The option applies to S3, admin, and WebUI sockets and has no effect
on TCP/IP addresses or Linux abstract namespace sockets.
Fixes #2010
2026-04-20 19:07:08 -07:00
Ben McClelland
7b65d744e6
Merge pull request #2065 from versity/dependabot/go_modules/dev-dependencies-b2d47b8a34
...
chore(deps): bump the dev-dependencies group with 21 updates
2026-04-20 16:23:13 -07:00
Ben McClelland
ce6412be6f
Merge pull request #2064 from versity/sis/ranged-get-headobject
...
fix: correct 206 Partial Content response status for ranged GetObject and HeadObject
2026-04-20 16:22:24 -07:00
dependabot[bot]
6f321fd878
chore(deps): bump the dev-dependencies group with 21 updates
...
Bumps the dev-dependencies group with 21 updates:
| Package | From | To |
| --- | --- | --- |
| [github.com/Azure/azure-sdk-for-go/sdk/azcore](https://github.com/Azure/azure-sdk-for-go ) | `1.21.0` | `1.21.1` |
| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2 ) | `1.41.5` | `1.41.6` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2 ) | `1.32.14` | `1.32.16` |
| [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2 ) | `1.19.14` | `1.19.15` |
| [github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager](https://github.com/aws/aws-sdk-go-v2 ) | `0.1.15` | `0.1.17` |
| [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2 ) | `1.99.0` | `1.99.1` |
| [github.com/aws/smithy-go](https://github.com/aws/smithy-go ) | `1.24.3` | `1.25.0` |
| [github.com/nats-io/nats.go](https://github.com/nats-io/nats.go ) | `1.50.0` | `1.51.0` |
| [github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream](https://github.com/aws/aws-sdk-go-v2 ) | `1.7.8` | `1.7.9` |
| [github.com/aws/aws-sdk-go-v2/feature/ec2/imds](https://github.com/aws/aws-sdk-go-v2 ) | `1.18.21` | `1.18.22` |
| [github.com/aws/aws-sdk-go-v2/internal/configsources](https://github.com/aws/aws-sdk-go-v2 ) | `1.4.21` | `1.4.22` |
| [github.com/aws/aws-sdk-go-v2/internal/endpoints/v2](https://github.com/aws/aws-sdk-go-v2 ) | `2.7.21` | `2.7.22` |
| [github.com/aws/aws-sdk-go-v2/internal/v4a](https://github.com/aws/aws-sdk-go-v2 ) | `1.4.22` | `1.4.23` |
| [github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding](https://github.com/aws/aws-sdk-go-v2 ) | `1.13.7` | `1.13.8` |
| [github.com/aws/aws-sdk-go-v2/service/internal/checksum](https://github.com/aws/aws-sdk-go-v2 ) | `1.9.13` | `1.9.14` |
| [github.com/aws/aws-sdk-go-v2/service/internal/presigned-url](https://github.com/aws/aws-sdk-go-v2 ) | `1.13.21` | `1.13.22` |
| [github.com/aws/aws-sdk-go-v2/service/internal/s3shared](https://github.com/aws/aws-sdk-go-v2 ) | `1.19.21` | `1.19.22` |
| [github.com/aws/aws-sdk-go-v2/service/signin](https://github.com/aws/aws-sdk-go-v2 ) | `1.0.9` | `1.0.10` |
| [github.com/aws/aws-sdk-go-v2/service/sso](https://github.com/aws/aws-sdk-go-v2 ) | `1.30.15` | `1.30.16` |
| [github.com/aws/aws-sdk-go-v2/service/ssooidc](https://github.com/aws/aws-sdk-go-v2 ) | `1.35.19` | `1.35.20` |
| [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2 ) | `1.41.10` | `1.42.0` |
Updates `github.com/Azure/azure-sdk-for-go/sdk/azcore` from 1.21.0 to 1.21.1
- [Release notes](https://github.com/Azure/azure-sdk-for-go/releases )
- [Commits](https://github.com/Azure/azure-sdk-for-go/compare/sdk/azcore/v1.21.0...sdk/azcore/v1.21.1 )
Updates `github.com/aws/aws-sdk-go-v2` from 1.41.5 to 1.41.6
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.41.5...v1.41.6 )
Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.14 to 1.32.16
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.14...config/v1.32.16 )
Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.14 to 1.19.15
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.14...credentials/v1.19.15 )
Updates `github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager` from 0.1.15 to 0.1.17
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/feature/s3/transfermanager/v0.1.15...feature/s3/transfermanager/v0.1.17 )
Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.99.0 to 1.99.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.99.0...service/s3/v1.99.1 )
Updates `github.com/aws/smithy-go` from 1.24.3 to 1.25.0
- [Release notes](https://github.com/aws/smithy-go/releases )
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/aws/smithy-go/compare/v1.24.3...v1.25.0 )
Updates `github.com/nats-io/nats.go` from 1.50.0 to 1.51.0
- [Release notes](https://github.com/nats-io/nats.go/releases )
- [Commits](https://github.com/nats-io/nats.go/compare/v1.50.0...v1.51.0 )
Updates `github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream` from 1.7.8 to 1.7.9
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/m2/v1.7.8...service/account/v1.7.9 )
Updates `github.com/aws/aws-sdk-go-v2/feature/ec2/imds` from 1.18.21 to 1.18.22
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.21...config/v1.18.22 )
Updates `github.com/aws/aws-sdk-go-v2/internal/configsources` from 1.4.21 to 1.4.22
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/internal/v4a/v1.4.21...internal/v4a/v1.4.22 )
Updates `github.com/aws/aws-sdk-go-v2/internal/endpoints/v2` from 2.7.21 to 2.7.22
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/internal/endpoints/v2.7.21...internal/endpoints/v2.7.22 )
Updates `github.com/aws/aws-sdk-go-v2/internal/v4a` from 1.4.22 to 1.4.23
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/internal/v4a/v1.4.22...internal/v4a/v1.4.23 )
Updates `github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding` from 1.13.7 to 1.13.8
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/mq/v1.13.7...service/mq/v1.13.8 )
Updates `github.com/aws/aws-sdk-go-v2/service/internal/checksum` from 1.9.13 to 1.9.14
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/grafana/v1.9.13...service/grafana/v1.9.14 )
Updates `github.com/aws/aws-sdk-go-v2/service/internal/presigned-url` from 1.13.21 to 1.13.22
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/credentials/v1.13.22/CHANGELOG.md )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.13.21...credentials/v1.13.22 )
Updates `github.com/aws/aws-sdk-go-v2/service/internal/s3shared` from 1.19.21 to 1.19.22
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/codebuild/v1.19.21...service/simspaceweaver/v1.19.22 )
Updates `github.com/aws/aws-sdk-go-v2/service/signin` from 1.0.9 to 1.0.10
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/m2/v1.0.9...internal/v4a/v1.0.10 )
Updates `github.com/aws/aws-sdk-go-v2/service/sso` from 1.30.15 to 1.30.16
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/acm/v1.30.15...service/acm/v1.30.16 )
Updates `github.com/aws/aws-sdk-go-v2/service/ssooidc` from 1.35.19 to 1.35.20
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/pi/v1.35.19...service/pi/v1.35.20 )
Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.41.10 to 1.42.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.41.10...service/s3/v1.42.0 )
---
updated-dependencies:
- dependency-name: github.com/Azure/azure-sdk-for-go/sdk/azcore
dependency-version: 1.21.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2
dependency-version: 1.41.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.16
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.15
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/transfermanager
dependency-version: 0.1.17
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.99.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/smithy-go
dependency-version: 1.25.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/nats-io/nats.go
dependency-version: 1.51.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream
dependency-version: 1.7.9
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/feature/ec2/imds
dependency-version: 1.18.22
dependency-type: indirect
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.22
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.22
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.23
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding
dependency-version: 1.13.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/checksum
dependency-version: 1.9.14
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.22
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.22
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.10
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.16
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.20
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.42.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-20 23:06:21 +00:00
niksis02
d6fb9547b8
fix: correct 206 Partial Content response status for ranged GetObject and HeadObject
...
Fixes #2052
Fixes #2056
Fixes #2057
Previously, GetObject and HeadObject used the request's `Range` header to determine the response status code, which caused incorrect 206 responses for invalid Range header values.
The status is now driven by whether res.ContentRange is set in the response, rather than by the presence of a range in the request. Backends (posix and azure) now set Content-Range for PartNumber=1 on non-multipart objects, skipping zero-size objects where no range applies.
HeadObject was also fixed to return 206 when Content-Range is present, and to only return checksums when the full object is requested.
2026-04-21 02:13:04 +04:00
Antoine POPINEAU
3529e1b9aa
fix: in webui use AWS SigV4-compliant URI encoding for path and query params
...
Replace `encodeURIComponent()` with a custom `awsUriEncode()` that also
percent-encodes characters not in the SigV4 unreserved set.
This fixes invalid signatures for object keys or query values containing
those characters.
Fixes #2060 .
2026-04-20 15:09:05 -07:00
Antoine POPINEAU
53bbaf2ada
feat: add presigned URL generation in webui
...
Add a modal dialog to the object explorer that generates presigned GET
URLs for S3 objects. Supports configurable expiration in minutes, hours,
or days, and includes a copy-to-clipboard button for the result.
Reuses the existing `api.presignUrl()` function; adds only the UI layer.
2026-04-20 15:06:08 -07:00
Ben McClelland
8533bc1b60
Merge pull request #2054 from versity/sis/racing-complete-mp
...
fix: make CompleteMultipartUpload idempotent and add part-number support to GetObject/HeadObject
2026-04-20 10:23:09 -07:00
niksis02
62e8cddbc7
fix: make CompleteMultipartUpload idempotent and add part-number support to GetObject/HeadObject
...
Closes #1064
Use the multipart ETag as the in-progress directory suffix instead of the static `.inprogress` marker so that concurrent CompleteMultipartUpload calls for the same upload ID are all treated as successful (idempotent) rather than racing, where only one succeeded and the rest returned NoSuchUpload.
After finalizing the multipart upload, store an `mp-metadata` xattr on the assembled object that records the upload ID and cumulative byte offsets for each part. GetObject and HeadObject now use this metadata to serve individual part ranges via the `partNumber` query parameter, returning a successful response instead of returning NotImplemented.
Add two new S3 error codes:
- `ErrInvalidPartNumberRange` (416 RequestedRangeNotSatisfiable) — returned
when the requested part number exceeds the number of parts in the upload.
- `ErrRangeAndPartNumber` (400 BadRequest) — returned when both a Range header
and a partNumber query parameter are specified on the same request.
2026-04-20 20:45:58 +04:00
Ben McClelland
5d3a6bf716
Merge pull request #2012 from versity/sis/azure-mp-blobs
...
fix: fix azure multipart upload objects masking
2026-04-19 19:05:56 -07:00
niksis02
b905554e06
fix: fix azure multipart upload objects masking
...
As multipart uploads are translated to blobs in azure blob storage, they were visible in ListObjects(V2) as complete objects. Now the blobs with multipart prefix are filtered out during listing.
The listing logic is rewritten client-side to implement proper S3 semantics: flat blob enumeration with manual delimiter handling, correct truncation (IsTruncated only set when more items genuinely exist beyond maxKeys), and StartAfter/Marker/ContinuationToken applied via the lexicographic max of both constraints in ListObjectsV2.
For the same reason bucket deletion was not allowed. Now multipart objects are explicitly checked on bucket deletion and any pending multipart upload doesn't block the bucket deletion anymore.
2026-04-16 23:56:18 +04:00
Ben McClelland
6d3688adf9
Merge pull request #2013 from versity/test/rest_list_objects_v2_queries
...
Test/rest list objects v2 queries
2026-04-15 13:32:40 -07:00
Ben McClelland
04e1468ce3
Merge pull request #2048 from versity/ben/misspell
...
chore: fix spellings and unused function args
2026-04-15 12:33:34 -07:00
Ben McClelland
5a86393cfb
Merge pull request #2047 from versity/ben/webui-encode-path
...
fix: use encodeS3Key in webui instead of encodeURIComponent in createFolder
2026-04-15 12:33:21 -07:00
Ben McClelland
e8680bde63
Merge pull request #2046 from versity/ben/windows-sidecar
...
fix: close temp file before rename in sidecar StoreAttribute
2026-04-15 12:33:06 -07:00
Ben McClelland
32fda8a144
Merge pull request #2045 from versity/ben/fix-gcs
...
fix: add gcs compatibility flag to fix s3proxy GCS SigV4 signature mismatch
2026-04-15 12:32:52 -07:00
Ben McClelland
2b918d585e
chore: fix spellings and unused function args
...
No logic changes, just janitorial cleanup
2026-04-15 10:32:14 -07:00
Luke McCrone
1632c8c006
test: ListObjectsV2 query updates, file updates, bash cleanup
2026-04-14 18:50:10 -03:00
Ben McClelland
5ff1c4ba3b
fix: use encodeS3Key in webui instead of encodeURIComponent in createFolder
...
encodeURIComponent encodes the trailing slash as %2F, producing a path
like /bucket/folder%2F. S3 servers (e.g. Ceph) reject this with a
SignatureDoesNotMatch error because the canonical URI used for signing
differs from what the server reconstructs.
encodeS3Key encodes each path segment individually, leaving slashes as
literal /, which is consistent with all other object-key operations in
the API client.
Fixes #2029
2026-04-14 11:32:19 -07:00
Ben McClelland
81f0158a48
fix: close temp file before rename in sidecar StoreAttribute
...
On Windows, a file apparently cannot be renamed while an open
handle to it exists.
The previous code used defer tempfile.Close(), which meant the
handle was still open when os.Rename was called, producing:
failed to rename temporary file: The process cannot access
the file because it is being used by another process.
Fix by closing the file explicitly before the rename.
Fixes #2021
2026-04-14 11:19:18 -07:00
Ben McClelland
9816c2fdb3
fix: add gcs compatibility flag to fix s3proxy GCS SigV4 signature mismatch
...
The AWS SDK v2 includes Accept-Encoding in SigV4 signed headers
which causes GCS to return a SignatureDoesNotMatch error because
GCS rewrites that header internally before verifying the signature.
Add a --gcs-compatibility / VGW_S3_GCS_COMPATIBILITY option for the s3proxy
backend that injects two Smithy finalize-layer middlewares: one removes
Accept-Encoding from the request immediately before the Signing step, and
a second restores it after signing so the header is still sent on the wire.
see: https://github.com/aws/aws-sdk-go-v2/issues/1816
This can be removed once GCS fixes this incompatibility.
2026-04-14 10:53:26 -07:00
Ben McClelland
393477aafd
Merge pull request #2017 from versity/ben/shell-completion
...
feat: add cli option to generate shell auto completion
2026-04-14 08:29:58 -07:00
Ben McClelland
b3dedaf252
Merge pull request #2037 from versity/dependabot/go_modules/dev-dependencies-da63c79af2
...
chore(deps): bump the dev-dependencies group with 9 updates
2026-04-14 08:29:29 -07:00
Ben McClelland
14b0aabb0b
feat: add cli option to generate shell auto completion
...
The urfave/cli/v2 has built-in auto-completion support for bash.
This enables generating the auto completions with a cli option
that can be added to environment setup scripts.
Also adding some distro support scripts for rpm and deb for the
auto completion setup.
To enable auto completion in zsh, this still needs to be added
to user .zshrc:
fpath=(/usr/share/zsh/site-functions $fpath)
autoload -Uz compinit && compinit
Fixes #2015
2026-04-13 19:17:56 -07:00
Ben McClelland
873148a5c4
fix: add Host header to HTTP test requests for fasthttp v1.70.0 compatibility
...
fasthttp v1.70.0 now enforces the HTTP/1.1 requirement of exactly
one Host header, rejecting requests that omit it. Fix tests that
were failing due to missing host.
2026-04-13 19:13:58 -07:00
dependabot[bot]
ccba8a5736
chore(deps): bump the dev-dependencies group with 9 updates
...
Bumps the dev-dependencies group with 9 updates:
| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager](https://github.com/aws/aws-sdk-go-v2 ) | `0.1.14` | `0.1.15` |
| [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2 ) | `1.98.0` | `1.99.0` |
| [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp ) | `1.69.0` | `1.70.0` |
| [golang.org/x/sys](https://github.com/golang/sys ) | `0.42.0` | `0.43.0` |
| [github.com/mattn/go-isatty](https://github.com/mattn/go-isatty ) | `0.0.20` | `0.0.21` |
| [github.com/mattn/go-runewidth](https://github.com/mattn/go-runewidth ) | `0.0.22` | `0.0.23` |
| [golang.org/x/crypto](https://github.com/golang/crypto ) | `0.49.0` | `0.50.0` |
| [golang.org/x/net](https://github.com/golang/net ) | `0.52.0` | `0.53.0` |
| [golang.org/x/text](https://github.com/golang/text ) | `0.35.0` | `0.36.0` |
Updates `github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager` from 0.1.14 to 0.1.15
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/feature/s3/transfermanager/v0.1.14...feature/s3/transfermanager/v0.1.15 )
Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.98.0 to 1.99.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.98.0...service/s3/v1.99.0 )
Updates `github.com/valyala/fasthttp` from 1.69.0 to 1.70.0
- [Release notes](https://github.com/valyala/fasthttp/releases )
- [Commits](https://github.com/valyala/fasthttp/compare/v1.69.0...v1.70.0 )
Updates `golang.org/x/sys` from 0.42.0 to 0.43.0
- [Commits](https://github.com/golang/sys/compare/v0.42.0...v0.43.0 )
Updates `github.com/mattn/go-isatty` from 0.0.20 to 0.0.21
- [Commits](https://github.com/mattn/go-isatty/compare/v0.0.20...v0.0.21 )
Updates `github.com/mattn/go-runewidth` from 0.0.22 to 0.0.23
- [Commits](https://github.com/mattn/go-runewidth/compare/v0.0.22...v0.0.23 )
Updates `golang.org/x/crypto` from 0.49.0 to 0.50.0
- [Commits](https://github.com/golang/crypto/compare/v0.49.0...v0.50.0 )
Updates `golang.org/x/net` from 0.52.0 to 0.53.0
- [Commits](https://github.com/golang/net/compare/v0.52.0...v0.53.0 )
Updates `golang.org/x/text` from 0.35.0 to 0.36.0
- [Release notes](https://github.com/golang/text/releases )
- [Commits](https://github.com/golang/text/compare/v0.35.0...v0.36.0 )
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager
dependency-version: 0.1.15
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.99.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/valyala/fasthttp
dependency-version: 1.70.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/sys
dependency-version: 0.43.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/mattn/go-isatty
dependency-version: 0.0.21
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/mattn/go-runewidth
dependency-version: 0.0.23
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: golang.org/x/crypto
dependency-version: 0.50.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/net
dependency-version: 0.53.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: golang.org/x/text
dependency-version: 0.36.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-13 21:50:24 +00:00
Ben McClelland
efd1885d21
Merge pull request #2023 from versity/sis/move-versionid-validation-backend
...
fix: move versionId validation to backend
2026-04-10 11:23:20 -07:00
Ben McClelland
aa3c223adb
Merge pull request #2027 from anaelorlinski/fix-multipart-upload
...
fix for multipart upload when using sidecar meta
2026-04-10 11:21:59 -07:00
Ben McClelland
9b7781ffe7
Merge pull request #2025 from utafrali/fix/issue-2024-bug-copyobject-fails-with-invalid-copy-s
...
Bump actions/download-artifact to v8
2026-04-10 11:18:26 -07:00
Ben McClelland
50f5856821
Merge pull request #2032 from versity/sis/scoutfs-headobject-restore-status
2026-04-09 09:00:45 -07:00
niksis02
48bfa9f4cf
fix: correct HeadObject restore status for offline objects in scoutfs
...
Fixes #2030
When an object has offline blocks, the restore status was incorrectly set to `ongoing-request="false"` instead of omitting the header entirely, which causes s3 clients fail on parsing the x-amz-restore header.
Remove the incorrect `stageNotInProgress` constant and simplify the `requestOngoing` initialization to reflect the correct default.
2026-04-09 19:15:31 +04:00
Ben McClelland
e995e21982
Merge pull request #2022 from versity/dependabot/go_modules/dev-dependencies-f39e42f16f
2026-04-08 21:38:27 -07:00
Ben McClelland
825358b45f
Merge pull request #1998 from versity/test/rest_list_objects_queries
2026-04-08 21:37:33 -07:00
Anael ORLINSKI
a673900b51
fix for multipart upload when using sidecar meta
2026-04-07 23:37:47 +02:00
Luke McCrone
d7d9179db0
test: ListObjectsV1 updates, file code changes, multipart updates
2026-04-07 15:24:20 -03:00
Ben McClelland
69901f95e7
Bump actions/download-artifact to v8
2026-04-07 19:05:26 +03:00
niksis02
b473aa0545
fix: move versionId validation to backend
...
Closes #1813
We use a specific `versionId` format(`ulid` package) to generate versionIds in posix, which is not compatible to S3. The versionId validation was performed in frontend which is a potential source of failure for s3 proxy configured on an s3 service which doesn't use ulid for versionId generation(e.g. aws S3). These changes move the specific `ulid` versionId validation to posix to not force any specific versionId format in the gateway.
2026-04-07 01:56:51 +04:00
dependabot[bot]
f8e188a42d
chore(deps): bump the dev-dependencies group with 11 updates
...
Bumps the dev-dependencies group with 11 updates:
| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2 ) | `1.32.13` | `1.32.14` |
| [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2 ) | `1.19.13` | `1.19.14` |
| [github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager](https://github.com/aws/aws-sdk-go-v2 ) | `0.1.12` | `0.1.14` |
| [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2 ) | `1.97.3` | `1.98.0` |
| [github.com/aws/smithy-go](https://github.com/aws/smithy-go ) | `1.24.2` | `1.24.3` |
| [github.com/Azure/azure-sdk-for-go/sdk/internal](https://github.com/Azure/azure-sdk-for-go ) | `1.11.2` | `1.12.0` |
| [github.com/AzureAD/microsoft-authentication-library-for-go](https://github.com/AzureAD/microsoft-authentication-library-for-go ) | `1.7.0` | `1.7.1` |
| [github.com/andybalholm/brotli](https://github.com/andybalholm/brotli ) | `1.2.0` | `1.2.1` |
| [github.com/aws/aws-sdk-go-v2/service/sso](https://github.com/aws/aws-sdk-go-v2 ) | `1.30.14` | `1.30.15` |
| [github.com/aws/aws-sdk-go-v2/service/ssooidc](https://github.com/aws/aws-sdk-go-v2 ) | `1.35.18` | `1.35.19` |
| [github.com/mattn/go-runewidth](https://github.com/mattn/go-runewidth ) | `0.0.21` | `0.0.22` |
Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.13 to 1.32.14
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.13...config/v1.32.14 )
Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.13 to 1.19.14
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.13...credentials/v1.19.14 )
Updates `github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager` from 0.1.12 to 0.1.14
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/feature/s3/transfermanager/v0.1.12...feature/s3/transfermanager/v0.1.14 )
Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.97.3 to 1.98.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.97.3...service/s3/v1.98.0 )
Updates `github.com/aws/smithy-go` from 1.24.2 to 1.24.3
- [Release notes](https://github.com/aws/smithy-go/releases )
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md )
- [Commits](https://github.com/aws/smithy-go/compare/v1.24.2...v1.24.3 )
Updates `github.com/Azure/azure-sdk-for-go/sdk/internal` from 1.11.2 to 1.12.0
- [Release notes](https://github.com/Azure/azure-sdk-for-go/releases )
- [Commits](https://github.com/Azure/azure-sdk-for-go/compare/sdk/internal/v1.11.2...sdk/azcore/v1.12.0 )
Updates `github.com/AzureAD/microsoft-authentication-library-for-go` from 1.7.0 to 1.7.1
- [Release notes](https://github.com/AzureAD/microsoft-authentication-library-for-go/releases )
- [Changelog](https://github.com/AzureAD/microsoft-authentication-library-for-go/blob/main/changelog.md )
- [Commits](https://github.com/AzureAD/microsoft-authentication-library-for-go/compare/v1.7.0...v1.7.1 )
Updates `github.com/andybalholm/brotli` from 1.2.0 to 1.2.1
- [Commits](https://github.com/andybalholm/brotli/compare/v1.2.0...v1.2.1 )
Updates `github.com/aws/aws-sdk-go-v2/service/sso` from 1.30.14 to 1.30.15
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/acm/v1.30.14...service/acm/v1.30.15 )
Updates `github.com/aws/aws-sdk-go-v2/service/ssooidc` from 1.35.18 to 1.35.19
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases )
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/pi/v1.35.18...service/pi/v1.35.19 )
Updates `github.com/mattn/go-runewidth` from 0.0.21 to 0.0.22
- [Commits](https://github.com/mattn/go-runewidth/compare/v0.0.21...v0.0.22 )
---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
dependency-version: 1.32.14
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.14
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/transfermanager
dependency-version: 0.1.14
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.98.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/aws/smithy-go
dependency-version: 1.24.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/Azure/azure-sdk-for-go/sdk/internal
dependency-version: 1.12.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: dev-dependencies
- dependency-name: github.com/AzureAD/microsoft-authentication-library-for-go
dependency-version: 1.7.1
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/andybalholm/brotli
dependency-version: 1.2.1
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.15
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.19
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
- dependency-name: github.com/mattn/go-runewidth
dependency-version: 0.0.22
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: dev-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-06 21:12:54 +00:00
Ben McClelland
09413c5f60
Merge pull request #2014 from versity/sis/webui-unix-socket
...
fix: fix webui port validation to allow unix socket paths
2026-04-03 13:19:52 -07:00
niksis02
b151d4626a
fix: fix webui port validation to allow unix socket paths
...
Fixes #2009
The webui address validation loop called net.SplitHostPort on every address without first checking whether it was a unix socket path, causing an error for unix domain socket paths. The fix includes skipping the host:port validation for unix socket paths for webui.
2026-04-03 21:12:22 +04:00
Ben McClelland
1fca33e738
Merge pull request #2006 from versity/ben/racing-put-delete
...
fix: retry link on ENOENT caused by racing DeleteObject
v1.4.0
2026-04-02 09:57:48 -07:00
Ben McClelland
98a186cc4e
Merge pull request #2008 from versity/sis/object-post-boundary-prefix
...
fix: remove POST object multipart boundary prefix trimming
2026-04-02 08:27:02 -07:00
Ben McClelland
71ae9bf045
Merge pull request #2005 from versity/sis/copyobject-expected-source-bucket-owner
...
feat: implement x-amz-source-expected-bucket-owner for CopyObject and UploadPartCopy
2026-04-02 08:25:50 -07:00
Ben McClelland
c26012905c
fix: retry link on ENOENT caused by racing DeleteObject
...
A concurrent PutObject and DeleteObject on the same prefix directory
can race:
PutObject opens an O_TMPFILE in MetaTmpDir (not yet visible in the fs)
DeleteObject removes the last visible object in the prefix directory
and calls removeParents(), which rmdir's the now-empty prefix
directory
PutObject's link() tries to link the fd into a parent directory that
no longer exists
Fix by detecting ENOENT in the final link step (Linkat, Rename, and
MoveFile) and retrying after recreating the parent directory.
Also extract linkatOTmpfile() to consolidate the Linkat+EEXIST→Renameat
logic that was previously inline in link().
Fixes #1988
2026-04-02 08:14:44 -07:00
niksis02
a25408c225
fix: remove POST object multipart boundary prefix trimming
...
Fixes the [comment](https://github.com/versity/versitygw/issues/1648#issuecomment-4175425099 )
Removes the unnecessary multipart/form-data boundary normalizing. The boundary prefix(`--`) was trimmed in `NewMultipartParser`, which caused incorrect boundary check for the boundaries starting with 2 dashes(e.g. `----WebKitFormBoundaryABC123`).
2026-04-02 17:20:23 +04:00
Ben McClelland
a6fffc6372
Merge pull request #2003 from versity/sis/missing-date-header-err-status-code
...
fix: change ErrMissingDateHeader http status code to 403
2026-04-01 20:56:37 -07:00
Ben McClelland
e009f692d4
Merge pull request #2002 from versity/sis/listobjects-bucket-region-header
...
fix: add x-amz-bucket-region to ListObjects(V2) response headers.
2026-04-01 20:55:34 -07:00
Luke McCrone
6b93190922
test: fix response code
2026-04-01 15:13:58 -03:00
niksis02
052f2364cc
feat: implement x-amz-source-expected-bucket-owner for CopyObject and UploadPartCopy
...
Closes #1897
Extract the `X-Amz-Source-Expected-Bucket-Owner` header for CopyObject and UploadPartCopy. Verify the source bucket owner in the backend and if the provided access key id doesn't match, return an `AccessDenied` error.
2026-04-01 21:44:33 +04:00
niksis02
90e240d23f
fix: change ErrMissingDateHeader http status code to 403
...
Fixes #1934
The HTTP status code for `ErrMissingDateHeader` was `400`. Now it's changed to correct `403`.
2026-04-01 16:21:07 +04:00