Commit Graph

2583 Commits

Author SHA1 Message Date
Ben McClelland 1b8147c19c feat: add helm chart admin and webui ingress support
This change is needed to expose the admin API and WebUI through standard
Kubernetes Ingress resources instead of only through service access or Gateway
API routes. It adds configurable ingress blocks in values.yaml, and renders
dedicated ingress objects for admin and webui when enabled.

Also update corsAllowOrigin comment.

Fixes #2251
Fixes #2252
2026-07-16 11:10:58 -07:00
hgichon 8a3dbcf97d fix: omit null version id for suspended buckets
Keep null as the stored object version ID when bucket versioning is suspended, but omit x-amz-version-id from the PutObject response to match Amazon S3.

Update the existing versioning integration coverage to distinguish the PutObject response from the null version returned by ListObjectVersions, and verify empty response headers are not rendered.

Fixes #2164

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
v1.7.0
2026-07-14 19:21:20 -07:00
Ben McClelland 9f6cb2a760 Merge pull request #2237 from jamalveli/fix/s3proxy-listmultipartuploads-listparts-nil-panic
fix: prevent nil pointer panic in s3proxy ListMultipartUploads and ListParts
2026-07-14 19:00:34 -07:00
Ben McClelland 4856988b5d Merge pull request #2244 from versity/dependabot/go_modules/dev-dependencies-66037822ad
chore(deps): bump the dev-dependencies group with 15 updates
2026-07-14 18:25:20 -07:00
jamalveli 1a92f39b46 fix: prevent nil pointer panic in s3proxy ListMultipartUploads and ListParts
Both methods unconditionally dereferenced several optional *string/*int32/
*bool response fields from the upstream S3 SDK response (KeyMarker,
UploadIdMarker, NextKeyMarker, NextUploadIdMarker, Delimiter, Prefix,
MaxUploads/MaxParts, IsTruncated, PartNumberMarker/NextPartNumberMarker,
Initiator, Owner). The AWS SDK leaves these nil whenever the corresponding
XML element is absent from the response - which happens whenever the
result isn't truncated (the terminal page of any pagination loop) or an
optional request parameter wasn't set. This is a guaranteed panic on every
completed ListParts pagination and on the common ListMultipartUploads case
of a non-truncated result.

Replace the unconditional dereferences with nil-safe aws.To* accessors,
and default the PartNumberMarker/NextPartNumberMarker string-to-int parse
to 0 when the field is absent, matching the semantics of "no marker".

Verified locally against a real S3 backend: both calls previously panicked
(500 InternalError) on every invocation; after this change,
ListMultipartUploads, CreateMultipartUpload, UploadPart, ListParts, and
AbortMultipartUpload all complete successfully with no panics.
2026-07-14 01:11:39 +03:00
dependabot[bot] 26319f50b7 chore(deps): bump the dev-dependencies group with 15 updates
Bumps the dev-dependencies group with 15 updates:

| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.28` | `1.32.30` |
| [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2) | `1.19.27` | `1.19.29` |
| [github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager](https://github.com/aws/aws-sdk-go-v2) | `0.2.14` | `0.3.2` |
| [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) | `1.105.0` | `1.105.1` |
| [golang.org/x/sync](https://github.com/golang/sync) | `0.21.0` | `0.22.0` |
| [golang.org/x/sys](https://github.com/golang/sys) | `0.46.0` | `0.47.0` |
| [github.com/aws/aws-sdk-go-v2/service/signin](https://github.com/aws/aws-sdk-go-v2) | `1.3.0` | `1.4.1` |
| [github.com/aws/aws-sdk-go-v2/service/sso](https://github.com/aws/aws-sdk-go-v2) | `1.32.0` | `1.32.1` |
| [github.com/aws/aws-sdk-go-v2/service/ssooidc](https://github.com/aws/aws-sdk-go-v2) | `1.37.0` | `1.37.1` |
| [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2) | `1.44.0` | `1.44.1` |
| [github.com/gofiber/schema](https://github.com/gofiber/schema) | `1.8.1` | `1.8.2` |
| [github.com/gofiber/utils/v2](https://github.com/gofiber/utils) | `2.1.1` | `2.1.2` |
| [golang.org/x/crypto](https://github.com/golang/crypto) | `0.53.0` | `0.54.0` |
| [golang.org/x/net](https://github.com/golang/net) | `0.56.0` | `0.57.0` |
| [golang.org/x/text](https://github.com/golang/text) | `0.39.0` | `0.40.0` |


Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.28 to 1.32.30
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.28...config/v1.32.30)

Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.27 to 1.19.29
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.27...credentials/v1.19.29)

Updates `github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager` from 0.2.14 to 0.3.2
- [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.2.14...service/internal/s3shared/v0.3.2)

Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.105.0 to 1.105.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.105.0...service/s3/v1.105.1)

Updates `golang.org/x/sync` from 0.21.0 to 0.22.0
- [Commits](https://github.com/golang/sync/compare/v0.21.0...v0.22.0)

Updates `golang.org/x/sys` from 0.46.0 to 0.47.0
- [Commits](https://github.com/golang/sys/compare/v0.46.0...v0.47.0)

Updates `github.com/aws/aws-sdk-go-v2/service/signin` from 1.3.0 to 1.4.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/config/v1.4.1/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.3.0...config/v1.4.1)

Updates `github.com/aws/aws-sdk-go-v2/service/sso` from 1.32.0 to 1.32.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.0...v1.32.1)

Updates `github.com/aws/aws-sdk-go-v2/service/ssooidc` from 1.37.0 to 1.37.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.37.0...v1.37.1)

Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.44.0 to 1.44.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.44.0...service/iot/v1.44.1)

Updates `github.com/gofiber/schema` from 1.8.1 to 1.8.2
- [Release notes](https://github.com/gofiber/schema/releases)
- [Commits](https://github.com/gofiber/schema/compare/v1.8.1...v1.8.2)

Updates `github.com/gofiber/utils/v2` from 2.1.1 to 2.1.2
- [Release notes](https://github.com/gofiber/utils/releases)
- [Commits](https://github.com/gofiber/utils/compare/v2.1.1...v2.1.2)

Updates `golang.org/x/crypto` from 0.53.0 to 0.54.0
- [Commits](https://github.com/golang/crypto/compare/v0.53.0...v0.54.0)

Updates `golang.org/x/net` from 0.56.0 to 0.57.0
- [Commits](https://github.com/golang/net/compare/v0.56.0...v0.57.0)

Updates `golang.org/x/text` from 0.39.0 to 0.40.0
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.39.0...v0.40.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.32.30
  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.29
  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.3.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
  dependency-version: 1.105.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/sync
  dependency-version: 0.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/sys
  dependency-version: 0.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/signin
  dependency-version: 1.4.1
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sso
  dependency-version: 1.32.1
  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.37.1
  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.44.1
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/gofiber/schema
  dependency-version: 1.8.2
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/gofiber/utils/v2
  dependency-version: 2.1.2
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/crypto
  dependency-version: 0.54.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/net
  dependency-version: 0.57.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/text
  dependency-version: 0.40.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-13 21:14:22 +00:00
Ben McClelland 9fc44d21b6 Merge pull request #2222 from versity/test/rest_list_parts
test: REST - ListParts queries
2026-07-13 09:56:44 -07:00
Luke McCrone 3362fb83c3 test: ListParts query tests 2026-07-09 17:35:18 -03:00
Ben McClelland 041e94350c Merge pull request #2232 from versity/dependabot/go_modules/dev-dependencies-19fd421bad
chore(deps): bump the dev-dependencies group across 1 directory with 21 updates
2026-07-08 09:25:27 -07:00
dependabot[bot] 2ca9a23b5d chore(deps): bump the dev-dependencies group across 1 directory with 21 updates
Bumps the dev-dependencies group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.42.0` | `1.42.1` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.26` | `1.32.28` |
| [github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager](https://github.com/aws/aws-sdk-go-v2) | `0.2.12` | `0.2.14` |
| [github.com/gofiber/schema](https://github.com/gofiber/schema) | `1.8.0` | `1.8.1` |
| [github.com/klauspost/cpuid/v2](https://github.com/klauspost/cpuid) | `2.3.0` | `2.4.0` |
| [golang.org/x/text](https://github.com/golang/text) | `0.38.0` | `0.39.0` |



Updates `github.com/aws/aws-sdk-go-v2` from 1.42.0 to 1.42.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.42.0...v1.42.1)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.26 to 1.32.28
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.26...config/v1.32.28)

Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.25 to 1.19.27
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.25...credentials/v1.19.27)

Updates `github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager` from 0.2.12 to 0.2.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.2.12...feature/s3/transfermanager/v0.2.14)

Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.104.1 to 1.105.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.104.1...service/s3/v1.105.0)

Updates `github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream` from 1.7.13 to 1.7.14
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/account/v1.7.13...service/eksauth/v1.7.14)

Updates `github.com/aws/aws-sdk-go-v2/feature/ec2/imds` from 1.18.29 to 1.18.30
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.29...config/v1.18.30)

Updates `github.com/aws/aws-sdk-go-v2/internal/configsources` from 1.4.29 to 1.4.30
- [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.29...internal/v4a/v1.4.30)

Updates `github.com/aws/aws-sdk-go-v2/internal/endpoints/v2` from 2.7.29 to 2.7.30
- [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.29...internal/endpoints/v2.7.30)

Updates `github.com/aws/aws-sdk-go-v2/internal/v4a` from 1.4.30 to 1.4.31
- [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.30...internal/v4a/v1.4.31)

Updates `github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding` from 1.13.12 to 1.13.13
- [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.12...service/mq/v1.13.13)

Updates `github.com/aws/aws-sdk-go-v2/service/internal/checksum` from 1.9.22 to 1.9.23
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/feature/cloudfront/sign/v1.9.22...feature/cloudfront/sign/v1.9.23)

Updates `github.com/aws/aws-sdk-go-v2/service/internal/presigned-url` from 1.13.29 to 1.13.30
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.13.29...credentials/v1.13.30)

Updates `github.com/aws/aws-sdk-go-v2/service/internal/s3shared` from 1.19.30 to 1.19.31
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/internal/s3shared/v1.19.30...service/internal/s3shared/v1.19.31)

Updates `github.com/aws/aws-sdk-go-v2/service/signin` from 1.2.1 to 1.3.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/v1.3.0/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.2.1...v1.3.0)

Updates `github.com/aws/aws-sdk-go-v2/service/sso` from 1.31.4 to 1.32.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.31.4...v1.32.0)

Updates `github.com/aws/aws-sdk-go-v2/service/ssooidc` from 1.36.7 to 1.37.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ram/v1.36.7...v1.37.0)

Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.43.4 to 1.44.0
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/amp/v1.43.4...service/s3/v1.44.0)

Updates `github.com/gofiber/schema` from 1.8.0 to 1.8.1
- [Release notes](https://github.com/gofiber/schema/releases)
- [Commits](https://github.com/gofiber/schema/compare/v1.8.0...v1.8.1)

Updates `github.com/klauspost/cpuid/v2` from 2.3.0 to 2.4.0
- [Release notes](https://github.com/klauspost/cpuid/releases)
- [Commits](https://github.com/klauspost/cpuid/compare/v2.3.0...v2.4.0)

Updates `golang.org/x/text` from 0.38.0 to 0.39.0
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.38.0...v0.39.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-version: 1.42.1
  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.28
  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.27
  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.2.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.105.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.14
  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.30
  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.30
  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.30
  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.31
  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.13
  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.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/presigned-url
  dependency-version: 1.13.30
  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.31
  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.3.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sso
  dependency-version: 1.32.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/ssooidc
  dependency-version: 1.37.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sts
  dependency-version: 1.44.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/gofiber/schema
  dependency-version: 1.8.1
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/klauspost/cpuid/v2
  dependency-version: 2.4.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: golang.org/x/text
  dependency-version: 0.39.0
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-08 05:34:33 +00:00
Ben McClelland 2e15055380 Merge pull request #2227 from versity/ben/helm-paths
feat: add chart sidecar and versioning directory support
2026-07-07 22:09:58 -07:00
Ben McClelland 6b02809ee2 Merge pull request #2229 from versity/sis/update-fiber-3.4.0
fix: update Fiber to `v3.4.0`
2026-07-07 22:09:41 -07:00
Ben McClelland d7b2348a10 Merge pull request #2207 from versity/test/go_executable 2026-07-07 15:22:00 -07:00
Luke McCrone 3ed88c71db test: go generateCommand executable, different platform tests, install scripts 2026-07-06 10:42:03 -03:00
niksis02 2f6b984b07 fix: update Fiber to v3.4.0
Upgrade Fiber to `v3.4.0`, which includes the middleware fix merged in [gofiber/fiber#4426](https://github.com/gofiber/fiber/pull/4426).

Parser and server errors no longer fall through normal 404/405 route scanning during middleware traversal. Large request headers are therefore handled directly by `globalErrorHandler` without invoking it twice.

Remove the now-unnecessary `installRequestHeaderLimitErrorHandler` workaround and update transitive dependencies.
2026-07-06 13:51:49 +04:00
Ben McClelland a506cb8812 Merge pull request #2228 from packrat386/rm_goreportcard 2026-07-04 22:09:07 -07:00
Aidan Coyle 1335bb4b81 Remove go report card
It has been sunset.

See: https://github.com/gojp/goreportcard/commit/176744ca23b40aa64c55b390161a3c78982e91b8
2026-07-04 22:03:03 -05:00
Ben McClelland 568d4a25cc feat: add chart sidecar and versioning directory support
The Helm chart now supports dedicated sidecar metadata and versioning
directories alongside the primary data directory. For POSIX deployments,
users can configure a sidecar metadata path without forcing backend flags
through a single args string, and POSIX or ScoutFS deployments can expose
a persistent versioning directory through the chart as well.

This makes the chart usable for filesystem-backed setups that need
sidecar metadata storage or object versioning support, while keeping the
configuration aligned with the existing persistent data and IAM layout.
The chart version is bumped to reflect the new deployment behavior.

Fixes #2204
Fixes #2216
2026-07-03 14:51:20 -07:00
Ben McClelland 684276c2c6 Merge pull request #2226 from versity/ben/ldap-iam
fix: LDAP access key filter injection
2026-07-03 14:07:11 -07:00
Ben McClelland d6d6cc856e Merge pull request #2225 from versity/ben/path-traversal
fix: copy-source parsing mismatch that could bypass path validation
2026-07-03 14:06:56 -07:00
Ben McClelland 67aaa80d99 fix: copy-source parsing mismatch that could bypass path validation
The copy-source header was being interpreted differently by request
validation and the backend parser. An encoded ?versionId= separator
could be decoded at one layer but treated as part of the object path
at another, which opened a path traversal risk on filesystem-backed
copy operations.

Align backend copy-source parsing with validation by decoding the
header before splitting the versionId suffix, so both layers derive
the same bucket, object, and versionId values. This closes the
traversal path and adds regression coverage for encoded
copy-source inputs.

Reported by 5ud0 / Tarmo Technologies.
2026-07-03 13:49:59 -07:00
Ben McClelland 9ac52cd5c7 fix: LDAP access key filter injection
LDAP-backed IAM lookups built a search filter using the request
access key before signature verification, allowing filter
metacharacters to alter query semantics. This made account
lookup behavior observable and could be abused as a
pre-authentication oracle in affected LDAP deployments.

This change escapes access key values with ldap.EscapeFilter
when constructing LDAP search filters and adds a regression
test that verifies metacharacters are encoded rather than
interpreted as filter operators.

Also add DN escaping along with this fix too.

Reported by GitHub user KrisKennawayDD.
2026-07-03 13:45:15 -07:00
Ben McClelland 7416c53ba6 Merge pull request #2224 from versity/ben/service-example
fix: update example config with recent options
2026-07-02 21:31:25 -07:00
Ben McClelland dbc9bb1b08 fix: update example config with recent options 2026-07-02 20:47:38 -07:00
Ben McClelland 66cc82047e Merge pull request #2218 from versity/ben/default-etag
feat: add configurable default ETag for files without metadata
2026-07-02 20:36:30 -07:00
Ben McClelland 9db2c9c702 feat: add configurable default ETag for files without metadata
When versitygw serves files that were placed on the filesystem outside
of the gateway, those files have no stored etag attribute and are
served with an empty ETag. This causes problems for S3 clients that
rely on ETags being non empty.

The new --default-etag flag (VGW_DEFAULT_ETAG) lets operators specify
a fallback ETag value returned for any object that lacks a stored etag
attribute, making pre-existing filesystem data behave more predictably
under S3 workloads without requiring a metadata migration.
2026-07-02 18:09:27 -07:00
Ben McClelland 6b2380853f Merge pull request #2217 from edespino/fix/azure-multipart-etag-quoting
azure: return quoted, consistent multipart part ETags
2026-07-02 17:39:37 -07:00
Ben McClelland 4b83214895 Merge pull request #2212 from versity/test/go_executable_install_script
test: add go executable, install base dependencies script
2026-07-02 14:37:44 -07:00
Ed Espino 45674fc2d6 Merge remote-tracking branch 'origin/main' into fix/azure-multipart-etag-quoting 2026-06-30 13:53:16 -07:00
Ed Espino 40cbe85612 test(azure): widen multipart test parts above min size; tighten isQuotedEtag 2026-06-30 13:28:12 -07:00
Luke McCrone d41ea78799 test: go executable, base install script 2026-06-30 17:15:57 -03:00
Ed Espino 12f22838e2 make azure multipart part etags quoted and consistent
quote part etags across all azure multipart surfaces (uploadpart,
listparts, uploadpartcopy) via a shared quoteETag helper, matching the
s3 contract and the posix backend's GenerateEtag convention. populate
the previously-empty UploadPartCopy CopyPartResult with the quoted etag
and last-modified. normalize the client-supplied etag in
CompleteMultipartUpload with backend.TrimEtag so both quoted and raw
etags are accepted. add an azure-full-flow integration test asserting
part etags are quoted and consistent across uploadpart, listparts and
completemultipartupload.
2026-06-30 11:51:38 -07:00
Ed Espino 05cfa0fffa fix azure etag quote bytes 2026-06-30 10:42:27 -07:00
Ed Espino efa7e7739a fix azure multipart etag quoting 2026-06-30 10:36:38 -07:00
Ben McClelland 3e848c8177 Merge pull request #2215 from versity/ben/package-section
fix: add section for goreleaser deb/rpm
2026-06-29 16:52:19 -07:00
Ben McClelland e40462e024 Merge pull request #2214 from versity/dependabot/go_modules/dev-dependencies-996a7a47bb
chore(deps): bump the dev-dependencies group with 14 updates
2026-06-29 15:34:54 -07:00
Ben McClelland a37b655ab7 fix: add section for goreleaser deb/rpm
Fixes #2213
2026-06-29 15:33:51 -07:00
dependabot[bot] 03f02a9393 chore(deps): bump the dev-dependencies group with 14 updates
Bumps the dev-dependencies group with 14 updates:

| Package | From | To |
| --- | --- | --- |
| [github.com/DataDog/datadog-go/v5](https://github.com/DataDog/datadog-go) | `5.8.3` | `5.9.0` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.25` | `1.32.26` |
| [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2) | `1.19.24` | `1.19.25` |
| [github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager](https://github.com/aws/aws-sdk-go-v2) | `0.2.11` | `0.2.12` |
| [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) | `1.104.0` | `1.104.1` |
| [github.com/aws/smithy-go](https://github.com/aws/smithy-go) | `1.27.2` | `1.27.3` |
| [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp) | `1.71.0` | `1.72.0` |
| [github.com/andybalholm/brotli](https://github.com/andybalholm/brotli) | `1.2.1` | `1.2.2` |
| [github.com/aws/aws-sdk-go-v2/service/internal/s3shared](https://github.com/aws/aws-sdk-go-v2) | `1.19.29` | `1.19.30` |
| [github.com/aws/aws-sdk-go-v2/service/signin](https://github.com/aws/aws-sdk-go-v2) | `1.2.0` | `1.2.1` |
| [github.com/aws/aws-sdk-go-v2/service/sso](https://github.com/aws/aws-sdk-go-v2) | `1.31.3` | `1.31.4` |
| [github.com/aws/aws-sdk-go-v2/service/ssooidc](https://github.com/aws/aws-sdk-go-v2) | `1.36.6` | `1.36.7` |
| [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2) | `1.43.3` | `1.43.4` |
| [github.com/gofiber/utils/v2](https://github.com/gofiber/utils) | `2.1.0` | `2.1.1` |


Updates `github.com/DataDog/datadog-go/v5` from 5.8.3 to 5.9.0
- [Release notes](https://github.com/DataDog/datadog-go/releases)
- [Changelog](https://github.com/DataDog/datadog-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/DataDog/datadog-go/compare/v5.8.3...v5.9.0)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.25 to 1.32.26
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.25...config/v1.32.26)

Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.24 to 1.19.25
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.24...credentials/v1.19.25)

Updates `github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager` from 0.2.11 to 0.2.12
- [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.2.11...feature/s3/transfermanager/v0.2.12)

Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.104.0 to 1.104.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.104.0...service/s3/v1.104.1)

Updates `github.com/aws/smithy-go` from 1.27.2 to 1.27.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.27.2...v1.27.3)

Updates `github.com/valyala/fasthttp` from 1.71.0 to 1.72.0
- [Release notes](https://github.com/valyala/fasthttp/releases)
- [Commits](https://github.com/valyala/fasthttp/compare/v1.71.0...v1.72.0)

Updates `github.com/andybalholm/brotli` from 1.2.1 to 1.2.2
- [Commits](https://github.com/andybalholm/brotli/compare/v1.2.1...v1.2.2)

Updates `github.com/aws/aws-sdk-go-v2/service/internal/s3shared` from 1.19.29 to 1.19.30
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/internal/s3shared/v1.19.29...service/internal/s3shared/v1.19.30)

Updates `github.com/aws/aws-sdk-go-v2/service/signin` from 1.2.0 to 1.2.1
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/v1.2.1/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.2.0...v1.2.1)

Updates `github.com/aws/aws-sdk-go-v2/service/sso` from 1.31.3 to 1.31.4
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.31.3...config/v1.31.4)

Updates `github.com/aws/aws-sdk-go-v2/service/ssooidc` from 1.36.6 to 1.36.7
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.36.6...service/ram/v1.36.7)

Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.43.3 to 1.43.4
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/amp/v1.43.3...service/amp/v1.43.4)

Updates `github.com/gofiber/utils/v2` from 2.1.0 to 2.1.1
- [Release notes](https://github.com/gofiber/utils/releases)
- [Commits](https://github.com/gofiber/utils/compare/v2.1.0...v2.1.1)

---
updated-dependencies:
- dependency-name: github.com/DataDog/datadog-go/v5
  dependency-version: 5.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.32.26
  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.25
  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.2.12
  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.104.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.27.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/valyala/fasthttp
  dependency-version: 1.72.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: github.com/andybalholm/brotli
  dependency-version: 1.2.2
  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.30
  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.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.31.4
  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.36.7
  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.43.4
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: github.com/gofiber/utils/v2
  dependency-version: 2.1.1
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-29 21:16:06 +00:00
Ben McClelland 0aa0f0d4fc Merge pull request #2208 from versity/test/readme_and_quick_comparison
test: README updates, speed up some file integrity checks
v1.6.0
2026-06-24 10:41:30 -07:00
Ben McClelland ac5170c584 Merge pull request #2211 from versity/ben/enospc
fix: prevent connection errors in space/quotas error paths
2026-06-24 10:41:03 -07:00
Ben McClelland 3bdda9a95a Merge pull request #2210 from versity/ben/middleware
feat: add options extensions to embed config
2026-06-24 10:40:46 -07:00
Ben McClelland 9610ef8a4e fix: prevent connection errors in space/quotas error paths
When uploads hit ENOSPC or EDQUOT, the server was returning the
correct S3 error but could close the connection while unread
request bytes were still in flight, which caused TCP resets and
surfaced as broken pipe/connection reset errors in SDKs instead
of a clean Insufficient Storage response. This change drains the
remaining upload body before returning the error so the response
can be delivered and the connection can close gracefully,
preserving correct client-visible behavior under disk-full and
quota-exceeded conditions.

Fixes #2209
2026-06-24 09:18:25 -07:00
Ben McClelland 6f1dfe84e5 feat: add options extensions to embed config
Expose S3 option injection in embed gateway config so
integrators can attach request middleware and other
server behaviors without needing to re-implement
RunVersityGW().
2026-06-24 08:54:38 -07:00
Luke McCrone dba147380e test: README updates, speed up some file integrity checks 2026-06-23 20:37:14 -03:00
Ben McClelland bf8b18839f Merge pull request #2203 from versity/dependabot/github_actions/actions/checkout-7
chore(deps): bump actions/checkout from 6 to 7
2026-06-23 11:25:57 -07:00
dependabot[bot] 04bb314817 chore(deps): bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-22 21:05:04 +00:00
Ben McClelland fd38689567 Merge pull request #2192 from Mart-Kuc/MK-topologySpreadConstraints
feat: Add 'topologySpreadConstraints'
2026-06-18 13:13:35 -07:00
Ben McClelland 93bf3d381c Merge pull request #2090 from versity/ben/windows-test
test: add windows build/test for functional tests
2026-06-18 13:08:04 -07:00
Ben McClelland 27f04ad5ea feat: add windows functional test coverage and fix some windows behavior
This change adds Windows functional test execution in CI and updates
backend handling so windows filesystem error/path semantics map correctly
to expected S3 outcomes.

The only meta supported on windows right now is sidecar, so the tests
in windows mode also skip sidecar skips.

Future work is to address the skips and/or more clearly document
the unsupported/incompatible behavior on windows.

The windows support will still remain best effort, but these tests
should at least flag when future changes introduce incompatible
behavior on windows.
2026-06-18 11:34:05 -07:00
Mart-Kuc 4599daafb1 feat: Add 'topologySpreadConstraints' 2026-06-18 09:02:40 +02:00