mirror of
https://github.com/versity/versitygw.git
synced 2026-08-17 12:46:23 +00:00
11e10b45a84e47bdd8fb930601cde2016a1fe566
2627
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
11e10b45a8 |
feat: integrate standalone IAM service with S3 gateway for identity-based policy enforcement
Fixes #1327 Fixes #1567 Closes #2264 Wires the S3 gateway up to the standalone IAM service so identity policies, not just bucket policies and ACLs, are enforced on the S3 data plane. The gateway authenticates SigV4 requests by calling new private derive-signing-key and resolve-identity endpoints on the IAM service instead of holding secrets itself, and evaluates identity policy through the same PolicyEvaluator path added to auth.VerifyAccess, combined with the bucket policy using explicit-deny-wins precedence. The private endpoints are served over their own mTLS listener (new iamapi/private package, genmtlscerts.sh to generate test material, and client-cert support in internal/netutil), separate from the public IAM API. As part of this the vendored aws/signer/v4 package is deleted and replaced by a pure-Go SigV4 implementation in internal/sigv4auth, which now reads canonical request data directly off the fiber.Ctx instead of reconstructing an http.Request, and is shared by both the S3 request-signing verification and the new private-endpoint signing. DeleteObjects moves from an all-or-nothing authorization check to true partial success: VerifyObjectsAccess evaluates every object in a batch independently against both the identity policy and any object lock, so a denial or a locked object only removes that key from the batch instead of failing the whole request. It also batches the identity-policy round trip and the bucket-policy fetch once per request rather than once per object, and separates plain deletes from versioned ones since a versioned delete needs s3:DeleteObjectVersion rather than s3:DeleteObject. Object lock handling got a few correctness fixes alongside this: a bypass is now modeled as BypassNone/BypassRequested/BypassOverwrite rather than a single bool, because root's blanket ability to override a GOVERNANCE retention should only apply when the client actually asked to bypass it (DeleteObject/DeleteObjects/PutObjectRetention), not when the gateway is silently replacing a locked object via an overwrite, which needs the permission from everyone including root. Retention changes are now correctly classified as an extension (allowed under plain s3:PutObjectRetention) versus a weakening (date or mode change, which needs the bypass permission), and a COMPLIANCE lock can never be weakened by anyone regardless of permissions, matching AWS. Separately, VerifyObjectCopyAccess had a readonly-mode gap: it returned early for root/admin before ever calling VerifyAccess, so the readonly check inside VerifyAccess never ran for them on CopyObject; access checks are now ordered so the readonly gate always applies before any root/admin bypass, for copy as well as every other write path. Bucket policies also gained Condition block support, via a new shared internal/condition package moved out of the IAM policy package since both bucket and identity policies share the same evaluation semantics. It implements the full AWS operator set — String{Equals,NotEquals,EqualsIgnoreCase,NotEqualsIgnoreCase,Like,NotLike}, Numeric{Equals,NotEquals,LessThan,LessThanEquals,GreaterThan,GreaterThanEquals}, Date{Equals,NotEquals,LessThan,LessThanEquals,GreaterThan,GreaterThanEquals}, Bool, BinaryEquals, Arn{Equals,Like,NotEquals,NotLike}, IpAddress/NotIpAddress, and Null — along with the ForAllValues/ForAnyValue set qualifiers and the IfExists modifier. A new requestConditionContext builds the per-request keys a bucket policy's Condition block can reference — aws:SourceIp, aws:SecureTransport, aws:CurrentTime, aws:EpochTime, aws:UserAgent, aws:Referer, s3:prefix, s3:delimiter, s3:max-keys, s3:x-amz-acl, s3:VersionId — following AWS's own per-action rules for which keys a given S3 operation actually populates. Identity-derived keys such as aws:PrincipalArn and aws:username are deliberately left unwired here, since the gateway has no way to know them; the standalone IAM service fills those in itself when it evaluates an identity policy. Also added new integration test suites for S3-side IAM: s3_iam_access_control.go and s3_iam_session_access_control.go cover identity-policy enforcement and session-credential requests against real S3 operations, alongside expanded OIDC/web-identity coverage and a new runoidctests.sh runner wired into the OIDC GitHub Actions workflow. |
||
|
|
eeff64c255 |
feat: add live GitHub OIDC end-to-end test for AssumeRoleWithWebIdentity
Add IAMAssumeRoleWithWebIdentity_github_oidc_live, the only web-identity test that exercises AssumeRoleWithWebIdentity against a real external OIDC provider end-to-end: GitHub Actions' own issuer, with real discovery-document fetch, JWKS fetch, RS256 signature verification, claims mapping, and session credential issuance. Every other web-identity test in the suite uses a fake token that never reaches real signature verification. The test registers a throwaway OIDC provider and trust role scoped to this repo (via a distinct test audience and repo-scoped sub condition), fetches a real ID token from GitHub's runtime endpoint, assumes the role, and confirms the issued session credentials work with a follow-up GetCallerIdentity call. It cleans up the role and provider unconditionally and skips itself when run outside a GitHub Actions job with id-token: write permission (e.g. local runs or fork PRs, where GitHub downgrades OIDC permissions to read-only). Add functional-iam-oidc.yml to run this test in CI on push to main and on same-repo pull_request runs, isolated from the full iam suite since it's the only test needing id-token: write. Add a SKIP counter and skipF() alongside the existing runF/passF/failF, and report it in the final RAN/PASS/FAIL summary, so a test opting out via skipF() (as this one does when OIDC env vars aren't present) is visible instead of silently absent from the count. |
||
|
|
4756b4d236 |
feat: add STS web identity federation, IAM policy Condition support, and access control enforcement
Implements the `AssumeRoleWithWebIdentity` and `GetCallerIdentity` STS actions, letting callers exchange an external OIDC token for temporary credentials scoped to an IAM role. Token handling covers JWT claim parsing, issuer/audience resolution (including `azp` override semantics), JWKS fetching and caching with `singleflight`-deduplicated refresh, and rate-limited forced refresh on unrecognized `kid` values. OIDC provider thumbprint fetching now performs a real TLS handshake verified against the system trust store and the provider hostname (previously `InsecureSkipVerify`), since the observed certificate is persisted as a long-lived trust anchor rather than used once and discarded; all discovery-document and JWKS fetches go through an SSRF-safe HTTP client with bounded redirects and response size.
Adds policy `Condition` block evaluation, supporting `String`, `Numeric`, `Date`, `Bool`, `BinaryEquals`, and `IpAddress` operators along with their `IfExists`/`Not` variants and `ForAllValues`/`ForAnyValues` set qualifiers, plus policy variable substitution (e.g. `${aws:username}`) in supported operators. Adds identity-based inline policy evaluation and a new IAM authorization middleware that authorizes each request against action, resource, and condition context together, applying the session-policy-intersects-role-policy semantics for assumed-role sessions.
Adds a new debug logger `--log-level` flag (`silent`/`debug`/`unsafe`), along with a tree-based XML masker that redacts secrets and tokens at the property level in logged request/response bodies instead of skipping the whole body. The old `--debug/VGW_DEBUG` flag is kept as a deprecated alias for `--log-level=debug`, printing a console warning that points users at `--log-level` for finer-grained control.
Fixes a Vault storage bug where CAS (check-and-set) writes always read the current document version as 0 because `kvVersion` asserted metadata as `float64` while the Vault client actually returns `json.Number`, causing every write past the first to be rejected as a concurrent modification. Also adds a constant-time `SecureCompare` for signature/token comparisons in sigv4 auth.
Adds an integration test suite (`iam_access_control.go`) covering IAM access control across user, role, and session identities.
|
||
|
|
62f9cc1cc9 |
feat: add IAM OIDC provider CRUD
Add support for `CreateOpenIDConnectProvider`, `GetOpenIDConnectProvider`, `ListOpenIDConnectProviders`, `DeleteOpenIDConnectProvider`, `AddClientIDToOpenIDConnectProvider`, `RemoveClientIDFromOpenIDConnectProvider`, and `UpdateOpenIDConnectProviderThumbprint` on both the internal and Vault storage backends, rounding out the standalone IAM service with the same OIDC identity provider management AWS IAM exposes. CreateOpenIDConnectProvider validates the issuer URL, enforces the client ID and per-provider client ID list limits, and accepts an optional ThumbprintList. When the caller omits ThumbprintList, the provider auto-fetches the thumbprint by opening an outbound TLS connection to the issuer URL and hashing its top-level CA certificate, matching real AWS behavior. This auto-fetch is configurable: it can be turned off with the `--disable-oidc-thumbprint-autofetch` CLI flag (or the `VGW_IAM_DISABLE_OIDC_THUMBPRINT_AUTOFETCH` environment variable) for restricted or air-gapped deployments where the IAM server shouldn't make outbound connections, in which case an omitted ThumbprintList is rejected instead. AddClientIDToOpenIDConnectProvider and RemoveClientIDFromOpenIDConnectProvider manage a provider's client ID list, and UpdateOpenIDConnectProviderThumbprint replaces its thumbprint list, all with the same length and format validation applied at creation time. Provider ARNs are derived from the issuer URL, and GetOpenIDConnectProvider and DeleteOpenIDConnectProvider resolve providers by ARN, returning NoSuchEntity when a provider doesn't exist. ListOpenIDConnectProviders returns the full set of stored providers. These actions are wired into the IAM API router and given their own XML response types under iamapi/types, with a new iamapi/internal/iamutil package handling URL validation, thumbprint fetching and normalization, and ARN construction shared across the controller methods. |
||
|
|
2a83f9f80e |
feat: add IAM role inline policy CRUD
Add support for the `PutRolePolicy`, `GetRolePolicy`, `DeleteRolePolicy`, and `ListRolePolicies` actions in the IAM-compatible gateway service, extending role management with the same inline-policy lifecycle already available for IAM users. `PutRolePolicy` validates the policy name and document, parses the document for AWS-compatible syntax and semantic errors (missing actions/resources, malformed ARNs, disallowed principals, duplicate statement IDs, and so on), and rejects documents once the role's aggregate inline-policy size would exceed `MaxInlinePolicyBytesPerRole` (10240 bytes, distinct from the 2048-byte quota enforced for users). Putting a policy under an existing name overwrites its document in place. `GetRolePolicy` and `DeleteRolePolicy` look up or remove a named inline policy from a role, returning a `NoSuchEntity` error when the role or the policy is not found. `ListRolePolicies` returns a role's inline policy names in sorted order with marker-based pagination. These actions are implemented for both the internal file-backed store and the Vault-backed store, wired into the IAM API router, and given their own XML response types under `iamapi/types`. A new `NoSuchEntityRolePolicy` error was added to `iamapi/iamerr` to mirror the existing user-policy error. |
||
|
|
ec8048fa3c |
feat: add IAM Role CRUD
Adds `CreateRole`, `GetRole`, `ListRoles`, `DeleteRole`, and `UpdateAssumeRolePolicy` to the standalone IAM service, following the same controller/storage patterns established for users. Both the internal filesystem/S3-backed store and the Vault-backed store implement the new `Storer` methods, with role-specific indexing and lookup helpers mirroring the existing user ones. Role creation requires a trust policy, passed as `AssumeRolePolicyDocument`. A trust policy is a distinct kind of IAM policy document that governs who (or what) is allowed to assume a role, rather than what actions the role itself is permitted to perform. Its grammar is effectively the inverse of an identity policy: `Principal` is required, `Action`/`NotAction` values must carry the `sts:` prefix, and `Resource`/`NotResource` are forbidden. This is implemented in `iamapi/policy/trust.go` as a new validation path alongside the existing identity-policy validation, and is reused by `UpdateAssumeRolePolicy` when replacing a role's trust policy. Also fixes user name uniqueness enforcement to be case-insensitive, matching AWS IAM behavior, and applies the same case-insensitive handling to role names. The internal store now maintains lowercase name indexes for both users and roles, and the Vault store resolves the canonical stored key via a case-insensitive list-and-compare fallback since Vault's KV paths are case-sensitive. |
||
|
|
52e36848cf |
feat: add IAM user inline policy CRUD
Add support for AWS-compatible inline identity-based policies on IAM users, implementing the `PutUserPolicy`, `GetUserPolicy`, `DeleteUserPolicy`, and `ListUserPolicies` actions on both the internal and Vault storage backends. - iamapi/policy is a new package that parses and validates policy documents against IAM's parameter-level constraints (max length, allowed charset) and policy grammar (Version, Effect, mutually exclusive Action/NotAction and Resource/NotResource, vendor-prefixed actions, ARN-shaped resources, no Principal/NotPrincipal, unique Sids). - `PutUserPolicy` creates or replaces a named inline policy on a user, enforcing a 2048-byte aggregate quota across all of a user's inline policies (MaxInlinePolicyBytesPerUser), matching the AWS IAM quota. - `GetUserPolicy` returns a policy's document RFC 3986 percent-encoded, matching how real IAM encodes the PolicyDocument response element. - `DeleteUserPolicy` removes a named inline policy from a user. - `ListUserPolicies` returns a paginated, sorted list of a user's inline policy names, honoring Marker/MaxItems like the other IAM list APIs. - `DeleteUser` is now rejected with a DeleteConflict error if the user still has inline policies attached, mirroring the existing access-key delete-conflict behavior. |
||
|
|
a884d52af4 |
feat: add IAM user access key management
Add `CreateAccessKey`, `UpdateAccessKey`, `DeleteAccessKey`, `ListAccessKeys`, and `GetAccessKeyLastUsed` actions for managing user access keys and retrieving their latest usage details. Generate AWS-style access key IDs and secrets, validate key identifiers and statuses, enforce per-user key quotas, and prevent deleting users that still own access keys. Persist access keys across internal and Vault storage backends with ownership indexing, pagination, and IAM-compatible errors and XML responses. |
||
|
|
3227a629dc |
feat: add AWS-compatible standalone IAM service
Closes #1640 Add a standalone AWS IAM Query API implementation for managing IAM users through standard AWS SDKs and the AWS CLI. Server usage Start the IAM server with internal file-backed storage: mkdir -p /tmp/versitygw-iam ./versitygw --port 127.0.0.1:7070 --access user --secret pass iam --dir /tmp/versitygw-iam Start the IAM server with Vault KV v2 storage using AppRole: VGW_IAM_VAULT_ROLE_SECRET=<role-secret> ./versitygw --port 127.0.0.1:7070 --access user --secret pass iam --vault-endpoint-url http://127.0.0.1:8200 --vault-auth-method approle --vault-role-id <role-id> --vault-mount-path kv --vault-secret-storage-path iam Vault authentication also supports root tokens, separate authentication and secret-storage namespaces, custom mount paths, server certificate validation, and mutual TLS client certificates. Configure the AWS CLI credentials used by the IAM server: export AWS_ACCESS_KEY_ID=user export AWS_SECRET_ACCESS_KEY=pass export AWS_DEFAULT_REGION=us-east-1 Implemented IAM actions CreateUser creates an IAM user with an AWS-compatible ARN, generated AIDA user ID, creation timestamp, optional path, and tags. It validates usernames, paths, tag limits, reserved tag prefixes, duplicate tag keys, and existing users. aws --endpoint-url http://127.0.0.1:7070 iam create-user --user-name bob aws --endpoint-url http://127.0.0.1:7070 iam create-user --user-name bob --path /engineering/ --tags Key=team,Value=storage GetUser returns a stored user or the root identity when requested without a username through the IAM Query API. aws --endpoint-url http://127.0.0.1:7070 iam get-user --user-name bob ListUsers returns users in deterministic username order and supports path filtering, marker-based pagination, and MaxItems limits. aws --endpoint-url http://127.0.0.1:7070 iam list-users aws --endpoint-url http://127.0.0.1:7070 iam list-users --path-prefix /engineering/ --max-items 100 UpdateUser updates the username and/or path, recalculates the user ARN, and rejects conflicts with existing users. aws --endpoint-url http://127.0.0.1:7070 iam update-user --user-name bob --new-user-name robert --new-path /platform/ DeleteUser permanently removes an IAM user and returns AWS-compatible errors for missing users. aws --endpoint-url http://127.0.0.1:7070 iam delete-user --user-name robert IAM protocol and authentication - Support the AWS IAM Query protocol version 2010-05-08 over GET and POST form requests. - Return AWS-compatible XML responses, error documents, status codes, request IDs, user metadata, and pagination fields. - Authenticate root credentials with AWS Signature Version 4 for the IAM service in us-east-1. - Support both Authorization-header and query-string SigV4 authentication. - Validate credential scope, signed headers, timestamps, clock skew, content length, signatures, and unsupported signature or session-token modes. - Add IAM-specific validation and error mapping for malformed requests, invalid actions, duplicate entities, missing users, throttling, and internal failures. Storage implementations - Add an internal JSON-backed store using iam.json and iam.json.backup with atomic temporary-file replacement, concurrent access protection, stable ordering, pagination, and persistence across restarts. - Add a Vault KV v2 store with one secret per user, CAS-based duplicate protection, permanent deletion, AppRole reauthentication, namespace support, configurable authentication and KV mounts, root-token authentication, and TLS/mTLS configuration. - Introduce a common Storer interface and require exactly one storage backend to be configured. Server and embedding support - Register the new `versitygw iam` command with environment-variable and CLI configuration for both storage backends. - Add `embedgw.RunIAMAPI` and `IAMConfig` for embedding the IAM service in Go applications. Gateway-level internal packages - Add `internal/iamstore` as a reusable generic file-backed IAM persistence engine and migrate the existing gateway internal IAM service to it. - Add `internal/sigv4auth` for shared SigV4 header and presigned-query parsing, canonical request generation, signature verification, and structured authentication errors. - Refactor the S3 authentication paths to use the shared SigV4 implementation while preserving S3-specific error responses. - Add `internal/httpctx` for shared Fiber context keys and AWS-style request ID handling. - Add `internal/routekit` for shared query, form, and header route matchers. - Add `internal/netutil` for reusable certificate storage, hostname-aware listeners, multi-address serving, TLS listeners, and UNIX socket handling. - Update the custom SigV4 signer to honor an explicitly supplied signed-header list so unrelated headers do not alter IAM signatures. Testing and CI - Add AWS IAM SDK-based integration coverage for all supported user actions, header authentication, query authentication, validation, errors, filtering, and pagination. - Split standalone IAM tests into `versitygw test iam` and retain existing gateway IAM tests under `versitygw test gw-iam`. - Add unit coverage for controllers, authentication, routing, storage, embedding, listeners, request matching, persistence, and signing behavior. - Add `runiamtests.sh` to exercise internal storage over HTTP and HTTPS plus Vault storage through AppRole. - Add a dedicated IAM functional-test workflow with a Vault service and merged runtime coverage reporting. - Include the IAM test runner in shellcheck and add the AWS IAM SDK dependency. |
||
|
|
b2eaf7e795 |
Merge pull request #2287 from versity/dependabot/go_modules/dev-dependencies-43dfbfd3d5
chore(deps): bump the dev-dependencies group with 19 updates |
||
|
|
f67ac912f0 |
Merge pull request #2279 from versity/test/parallel_runs
test: running tests locally in parallel, misc fixes/changes |
||
|
|
98b56efc4a |
Merge pull request #2286 from versity/dependabot/github_actions/github/codeql-action-4.37.6
chore(deps): bump github/codeql-action from 4.37.4 to 4.37.6 |
||
|
|
c1c5a5f11e |
chore(deps): bump the dev-dependencies group with 19 updates
Bumps the dev-dependencies group with 19 updates: | Package | From | To | | --- | --- | --- | | [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.43.3` | `1.43.4` | | [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.34` | `1.32.35` | | [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2) | `1.19.33` | `1.19.34` | | [github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager](https://github.com/aws/aws-sdk-go-v2) | `0.3.8` | `0.3.11` | | [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) | `1.106.3` | `1.107.0` | | [github.com/aws/smithy-go](https://github.com/aws/smithy-go) | `1.27.6` | `1.27.7` | | [github.com/aws/aws-sdk-go-v2/feature/ec2/imds](https://github.com/aws/aws-sdk-go-v2) | `1.18.34` | `1.18.35` | | [github.com/aws/aws-sdk-go-v2/internal/configsources](https://github.com/aws/aws-sdk-go-v2) | `1.4.34` | `1.4.35` | | [github.com/aws/aws-sdk-go-v2/internal/endpoints/v2](https://github.com/aws/aws-sdk-go-v2) | `2.7.34` | `2.7.35` | | [github.com/aws/aws-sdk-go-v2/internal/v4a](https://github.com/aws/aws-sdk-go-v2) | `1.4.35` | `1.4.36` | | [github.com/aws/aws-sdk-go-v2/service/internal/checksum](https://github.com/aws/aws-sdk-go-v2) | `1.9.27` | `1.9.28` | | [github.com/aws/aws-sdk-go-v2/service/internal/presigned-url](https://github.com/aws/aws-sdk-go-v2) | `1.13.34` | `1.13.35` | | [github.com/aws/aws-sdk-go-v2/service/internal/s3shared](https://github.com/aws/aws-sdk-go-v2) | `1.19.35` | `1.19.36` | | [github.com/aws/aws-sdk-go-v2/service/signin](https://github.com/aws/aws-sdk-go-v2) | `1.5.3` | `1.5.4` | | [github.com/aws/aws-sdk-go-v2/service/sso](https://github.com/aws/aws-sdk-go-v2) | `1.33.3` | `1.33.4` | | [github.com/aws/aws-sdk-go-v2/service/ssooidc](https://github.com/aws/aws-sdk-go-v2) | `1.38.3` | `1.38.4` | | [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2) | `1.45.3` | `1.45.4` | | [github.com/klauspost/compress](https://github.com/klauspost/compress) | `1.19.1` | `1.19.2` | | [github.com/pierrec/lz4/v4](https://github.com/pierrec/lz4) | `4.1.27` | `4.1.28` | Updates `github.com/aws/aws-sdk-go-v2` 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/v1.43.3...v1.43.4) Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.34 to 1.32.35 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.34...config/v1.32.35) Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.33 to 1.19.34 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.33...credentials/v1.19.34) Updates `github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager` from 0.3.8 to 0.3.11 - [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.3.8...feature/s3/transfermanager/v0.3.11) Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.106.3 to 1.107.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.106.3...service/s3/v1.107.0) Updates `github.com/aws/smithy-go` from 1.27.6 to 1.27.7 - [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.6...v1.27.7) Updates `github.com/aws/aws-sdk-go-v2/feature/ec2/imds` from 1.18.34 to 1.18.35 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.34...config/v1.18.35) Updates `github.com/aws/aws-sdk-go-v2/internal/configsources` from 1.4.34 to 1.4.35 - [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.34...internal/v4a/v1.4.35) Updates `github.com/aws/aws-sdk-go-v2/internal/endpoints/v2` from 2.7.34 to 2.7.35 - [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.34...internal/endpoints/v2.7.35) Updates `github.com/aws/aws-sdk-go-v2/internal/v4a` from 1.4.35 to 1.4.36 - [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.35...internal/v4a/v1.4.36) Updates `github.com/aws/aws-sdk-go-v2/service/internal/checksum` from 1.9.27 to 1.9.28 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/route53profiles/v1.9.27...service/route53profiles/v1.9.28) Updates `github.com/aws/aws-sdk-go-v2/service/internal/presigned-url` from 1.13.34 to 1.13.35 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.13.34...credentials/v1.13.35) Updates `github.com/aws/aws-sdk-go-v2/service/internal/s3shared` from 1.19.35 to 1.19.36 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.35...service/internal/s3shared/v1.19.36) Updates `github.com/aws/aws-sdk-go-v2/service/signin` from 1.5.3 to 1.5.4 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/m2/v1.5.3...service/odb/v1.5.4) Updates `github.com/aws/aws-sdk-go-v2/service/sso` from 1.33.3 to 1.33.4 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/mgn/v1.33.3...service/efs/v1.33.4) Updates `github.com/aws/aws-sdk-go-v2/service/ssooidc` from 1.38.3 to 1.38.4 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.38.3...service/s3/v1.38.4) Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.45.3 to 1.45.4 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/iot/v1.45.3...service/sts/v1.45.4) Updates `github.com/klauspost/compress` from 1.19.1 to 1.19.2 - [Release notes](https://github.com/klauspost/compress/releases) - [Commits](https://github.com/klauspost/compress/compare/v1.19.1...v1.19.2) Updates `github.com/pierrec/lz4/v4` from 4.1.27 to 4.1.28 - [Release notes](https://github.com/pierrec/lz4/releases) - [Commits](https://github.com/pierrec/lz4/compare/v4.1.27...v4.1.28) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-version: 1.43.4 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.35 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.34 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.11 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.107.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.27.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/ec2/imds dependency-version: 1.18.35 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.35 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.35 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.36 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.28 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.35 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.36 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.5.4 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.33.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.38.4 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.45.4 dependency-type: indirect update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/klauspost/compress dependency-version: 1.19.2 dependency-type: indirect update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/pierrec/lz4/v4 dependency-version: 4.1.28 dependency-type: indirect update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|
|
dc2ae0c6f8 |
chore(deps): bump github/codeql-action from 4.37.4 to 4.37.6
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.37.4 to 4.37.6. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v4.37.4...v4.37.6) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.37.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|
|
5e284e8a87 | test: parallel docker testing, some misc cleanup/fixes | ||
|
|
8bd73a45ee |
Merge pull request #2281 from versity/ben/lic-hdrs
fix: add license header to rdma files |
||
|
|
a43d9e62dd |
Merge pull request #2280 from buttilda/check-versioning-on-init
fix: buckets with versioning enabled don't have "Show versions" button in UI |
||
|
|
f6219c8007 | fix: add license header to rdma files | ||
|
|
6f69a1f025 | Check versioning on init | ||
|
|
324c2557ef |
Merge pull request #2277 from versity/dependabot/go_modules/dev-dependencies-40d02b908f
chore(deps): bump the dev-dependencies group with 21 updates |
||
|
|
3be677ec29 |
Merge pull request #2276 from versity/dependabot/github_actions/github/codeql-action-4.37.4
chore(deps): bump github/codeql-action from 4 to 4.37.4 |
||
|
|
62649f9018 |
Merge pull request #2275 from versity/ben/cuobject
feat: add new vgwrdma service for cuObject compatible server |
||
|
|
62c6787a17 | feat: add new vgwrdma service for cuObject compatible server | ||
|
|
1c7e22e2b3 |
chore(deps): bump github/codeql-action from 4 to 4.37.4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4 to 4.37.4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v4...v4.37.4) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.37.4 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|
|
ae0c3bcab1 |
Merge pull request #2267 from versity/test/website
test: first website tests |
||
|
|
3e555fbab5 |
chore(deps): bump the dev-dependencies group with 21 updates
Bumps the dev-dependencies group with 21 updates: | Package | From | To | | --- | --- | --- | | [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.43.0` | `1.43.3` | | [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.31` | `1.32.34` | | [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2) | `1.19.30` | `1.19.33` | | [github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager](https://github.com/aws/aws-sdk-go-v2) | `0.3.5` | `0.3.8` | | [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) | `1.106.0` | `1.106.3` | | [github.com/aws/smithy-go](https://github.com/aws/smithy-go) | `1.27.5` | `1.27.6` | | [github.com/AzureAD/microsoft-authentication-library-for-go](https://github.com/AzureAD/microsoft-authentication-library-for-go) | `1.7.2` | `1.8.0` | | [github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream](https://github.com/aws/aws-sdk-go-v2) | `1.7.14` | `1.7.16` | | [github.com/aws/aws-sdk-go-v2/feature/ec2/imds](https://github.com/aws/aws-sdk-go-v2) | `1.18.31` | `1.18.34` | | [github.com/aws/aws-sdk-go-v2/internal/configsources](https://github.com/aws/aws-sdk-go-v2) | `1.4.31` | `1.4.34` | | [github.com/aws/aws-sdk-go-v2/internal/endpoints/v2](https://github.com/aws/aws-sdk-go-v2) | `2.7.31` | `2.7.34` | | [github.com/aws/aws-sdk-go-v2/internal/v4a](https://github.com/aws/aws-sdk-go-v2) | `1.4.32` | `1.4.35` | | [github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding](https://github.com/aws/aws-sdk-go-v2) | `1.13.13` | `1.13.15` | | [github.com/aws/aws-sdk-go-v2/service/internal/checksum](https://github.com/aws/aws-sdk-go-v2) | `1.9.24` | `1.9.27` | | [github.com/aws/aws-sdk-go-v2/service/internal/presigned-url](https://github.com/aws/aws-sdk-go-v2) | `1.13.31` | `1.13.34` | | [github.com/aws/aws-sdk-go-v2/service/internal/s3shared](https://github.com/aws/aws-sdk-go-v2) | `1.19.32` | `1.19.35` | | [github.com/aws/aws-sdk-go-v2/service/signin](https://github.com/aws/aws-sdk-go-v2) | `1.5.0` | `1.5.3` | | [github.com/aws/aws-sdk-go-v2/service/sso](https://github.com/aws/aws-sdk-go-v2) | `1.33.0` | `1.33.3` | | [github.com/aws/aws-sdk-go-v2/service/ssooidc](https://github.com/aws/aws-sdk-go-v2) | `1.38.0` | `1.38.3` | | [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2) | `1.45.0` | `1.45.3` | | [github.com/gofiber/utils/v2](https://github.com/gofiber/utils) | `2.4.0` | `2.4.1` | Updates `github.com/aws/aws-sdk-go-v2` from 1.43.0 to 1.43.3 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.43.0...v1.43.3) Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.31 to 1.32.34 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.31...config/v1.32.34) Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.30 to 1.19.33 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.30...credentials/v1.19.33) Updates `github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager` from 0.3.5 to 0.3.8 - [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.3.5...feature/s3/transfermanager/v0.3.8) Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.106.0 to 1.106.3 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.106.0...service/s3/v1.106.3) Updates `github.com/aws/smithy-go` from 1.27.5 to 1.27.6 - [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.5...v1.27.6) Updates `github.com/AzureAD/microsoft-authentication-library-for-go` from 1.7.2 to 1.8.0 - [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.2...1.8.0) Updates `github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream` from 1.7.14 to 1.7.16 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/eksauth/v1.7.14...service/eksauth/v1.7.16) Updates `github.com/aws/aws-sdk-go-v2/feature/ec2/imds` from 1.18.31 to 1.18.34 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.31...config/v1.18.34) Updates `github.com/aws/aws-sdk-go-v2/internal/configsources` from 1.4.31 to 1.4.34 - [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.31...internal/v4a/v1.4.34) Updates `github.com/aws/aws-sdk-go-v2/internal/endpoints/v2` from 2.7.31 to 2.7.34 - [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.31...internal/endpoints/v2.7.34) Updates `github.com/aws/aws-sdk-go-v2/internal/v4a` from 1.4.32 to 1.4.35 - [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.32...internal/v4a/v1.4.35) Updates `github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding` from 1.13.13 to 1.13.15 - [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.13...service/mq/v1.13.15) Updates `github.com/aws/aws-sdk-go-v2/service/internal/checksum` from 1.9.24 to 1.9.27 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/route53profiles/v1.9.24...service/route53profiles/v1.9.27) Updates `github.com/aws/aws-sdk-go-v2/service/internal/presigned-url` from 1.13.31 to 1.13.34 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.13.31...credentials/v1.13.34) Updates `github.com/aws/aws-sdk-go-v2/service/internal/s3shared` from 1.19.32 to 1.19.35 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.32...service/internal/s3shared/v1.19.35) Updates `github.com/aws/aws-sdk-go-v2/service/signin` from 1.5.0 to 1.5.3 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.5.0...service/m2/v1.5.3) Updates `github.com/aws/aws-sdk-go-v2/service/sso` from 1.33.0 to 1.33.3 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.33.0...service/mgn/v1.33.3) Updates `github.com/aws/aws-sdk-go-v2/service/ssooidc` from 1.38.0 to 1.38.3 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.38.0...v1.38.3) Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.45.0 to 1.45.3 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.45.0...service/iot/v1.45.3) Updates `github.com/gofiber/utils/v2` from 2.4.0 to 2.4.1 - [Release notes](https://github.com/gofiber/utils/releases) - [Commits](https://github.com/gofiber/utils/compare/v2.4.0...v2.4.1) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-version: 1.43.3 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.34 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.33 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.8 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.106.3 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.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/AzureAD/microsoft-authentication-library-for-go dependency-version: 1.8.0 dependency-type: indirect 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.16 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.34 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.34 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.34 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.35 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.15 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.27 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.34 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.35 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.5.3 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.33.3 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.38.3 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.45.3 dependency-type: indirect update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/gofiber/utils/v2 dependency-version: 2.4.1 dependency-type: indirect update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|
|
5422bf8e8c |
Merge pull request #2269 from versity/ben/etag
feat: add optional data-integrity ETag mode for posix/scoutfs |
||
|
|
29256f0ab5 |
feat: add optional data-integrity ETag mode for posix/scoutfs
Introduce an opt-in mode that derives ETags from checksums instead of relying on MD5 assumptions, aligning with AWS-compatible scenarios where ETag should be treated as an opaque identifier rather than a content-MD5 signal. This can significantly reduce CPU load on the server to disable MD5 checksums when we are already validating data with other checksums. This change adds --data-integrity-etag and VGW_DATA_INTEGRITY_ETAG support for both posix and scoutfs backends. In this mode, PUT object ETags, multipart part ETags, and completed multipart object ETags are checksum-derived. |
||
|
|
b590f9c8ba |
Merge pull request #2268 from versity/ben/odirect
feat: add best-effort O_DIRECT support for posix put/get-object put-part |
||
|
|
062bf0bf47 |
feat: add best-effort O_DIRECT support for posix put/get-object put-part
This change introduces an opt-in O_DIRECT mode for POSIX object data paths while keeping behavior safe and predictable across different filesystems and kernel constraints. We now use direct I/O when available and beneficial, but preserve correctness by falling back to buffered I/O when runtime read behavior indicates alignment or capability mismatches. The implementation keeps fast paths available for full-object reads and descriptor-to-descriptor copy operations so kernel-level optimizations can still be used where possible. At the same time, it avoids global assumptions from single runtime failures and performs fallback at the stream level so requests can continue successfully without broad feature disablement. |
||
|
|
d038507e0d | test: website - initial tests | ||
|
|
029a002777 |
Merge pull request #2270 from versity/ben/maxparts
fix: honor mpMaxParts across partNumber validation |
||
|
|
e146646665 |
fix: honor mpMaxParts across partNumber validation
Multipart partNumber validation was inconsistent because some handlers still enforced the hardcoded S3 default while others used the instance-level mpMaxParts setting. This created a split API contract where changing mpMaxParts did not reliably affect all relevant endpoints. This change routes all partNumber upper-bound checks through a shared effective limit helper so deployments that customize mpMaxParts get consistent behavior across GetObject, HeadObject, UploadPart, and UploadPartCopy, while preserving the default S3-compatible maximum when mpMaxParts is unset. |
||
|
|
f2bfe2f261 |
Merge pull request #2265 from versity/dependabot/go_modules/dev-dependencies-1636e20b4a
chore(deps): bump the dev-dependencies group with 22 updates |
||
|
|
8ac6bd5e29 |
chore(deps): bump the dev-dependencies group with 22 updates
Bumps the dev-dependencies group with 22 updates: | Package | From | To | | --- | --- | --- | | [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.42.1` | `1.43.0` | | [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.30` | `1.32.31` | | [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2) | `1.19.29` | `1.19.30` | | [github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager](https://github.com/aws/aws-sdk-go-v2) | `0.3.4` | `0.3.5` | | [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) | `1.105.2` | `1.106.0` | | [github.com/aws/smithy-go](https://github.com/aws/smithy-go) | `1.27.4` | `1.27.5` | | [github.com/oklog/ulid/v2](https://github.com/oklog/ulid) | `2.1.1` | `2.1.2` | | [github.com/rabbitmq/amqp091-go](https://github.com/rabbitmq/amqp091-go) | `1.12.0` | `1.13.0` | | [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp) | `1.72.0` | `1.73.0` | | [github.com/aws/aws-sdk-go-v2/feature/ec2/imds](https://github.com/aws/aws-sdk-go-v2) | `1.18.30` | `1.18.31` | | [github.com/aws/aws-sdk-go-v2/internal/configsources](https://github.com/aws/aws-sdk-go-v2) | `1.4.30` | `1.4.31` | | [github.com/aws/aws-sdk-go-v2/internal/endpoints/v2](https://github.com/aws/aws-sdk-go-v2) | `2.7.30` | `2.7.31` | | [github.com/aws/aws-sdk-go-v2/internal/v4a](https://github.com/aws/aws-sdk-go-v2) | `1.4.31` | `1.4.32` | | [github.com/aws/aws-sdk-go-v2/service/internal/checksum](https://github.com/aws/aws-sdk-go-v2) | `1.9.23` | `1.9.24` | | [github.com/aws/aws-sdk-go-v2/service/internal/presigned-url](https://github.com/aws/aws-sdk-go-v2) | `1.13.30` | `1.13.31` | | [github.com/aws/aws-sdk-go-v2/service/internal/s3shared](https://github.com/aws/aws-sdk-go-v2) | `1.19.31` | `1.19.32` | | [github.com/aws/aws-sdk-go-v2/service/signin](https://github.com/aws/aws-sdk-go-v2) | `1.4.1` | `1.5.0` | | [github.com/aws/aws-sdk-go-v2/service/sso](https://github.com/aws/aws-sdk-go-v2) | `1.32.1` | `1.33.0` | | [github.com/aws/aws-sdk-go-v2/service/ssooidc](https://github.com/aws/aws-sdk-go-v2) | `1.37.1` | `1.38.0` | | [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2) | `1.44.1` | `1.45.0` | | [github.com/gofiber/utils/v2](https://github.com/gofiber/utils) | `2.2.0` | `2.4.0` | | [github.com/mattn/go-isatty](https://github.com/mattn/go-isatty) | `0.0.23` | `0.0.24` | Updates `github.com/aws/aws-sdk-go-v2` from 1.42.1 to 1.43.0 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.42.1...v1.43.0) Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.30 to 1.32.31 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.30...config/v1.32.31) Updates `github.com/aws/aws-sdk-go-v2/credentials` 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/credentials/v1.19.29...credentials/v1.19.30) Updates `github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager` from 0.3.4 to 0.3.5 - [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.3.4...feature/s3/transfermanager/v0.3.5) Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.105.2 to 1.106.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.105.2...service/s3/v1.106.0) Updates `github.com/aws/smithy-go` from 1.27.4 to 1.27.5 - [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.4...v1.27.5) Updates `github.com/oklog/ulid/v2` from 2.1.1 to 2.1.2 - [Release notes](https://github.com/oklog/ulid/releases) - [Changelog](https://github.com/oklog/ulid/blob/main/CHANGELOG.md) - [Commits](https://github.com/oklog/ulid/compare/v2.1.1...v2.1.2) Updates `github.com/rabbitmq/amqp091-go` from 1.12.0 to 1.13.0 - [Release notes](https://github.com/rabbitmq/amqp091-go/releases) - [Changelog](https://github.com/rabbitmq/amqp091-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/rabbitmq/amqp091-go/compare/v1.12.0...v1.13.0) Updates `github.com/valyala/fasthttp` from 1.72.0 to 1.73.0 - [Release notes](https://github.com/valyala/fasthttp/releases) - [Commits](https://github.com/valyala/fasthttp/compare/v1.72.0...v1.73.0) Updates `github.com/aws/aws-sdk-go-v2/feature/ec2/imds` from 1.18.30 to 1.18.31 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.30...config/v1.18.31) Updates `github.com/aws/aws-sdk-go-v2/internal/configsources` 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/internal/endpoints/v2` from 2.7.30 to 2.7.31 - [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.30...internal/endpoints/v2.7.31) Updates `github.com/aws/aws-sdk-go-v2/internal/v4a` from 1.4.31 to 1.4.32 - [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.31...internal/v4a/v1.4.32) Updates `github.com/aws/aws-sdk-go-v2/service/internal/checksum` from 1.9.23 to 1.9.24 - [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.23...service/route53profiles/v1.9.24) Updates `github.com/aws/aws-sdk-go-v2/service/internal/presigned-url` from 1.13.30 to 1.13.31 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.13.30...credentials/v1.13.31) Updates `github.com/aws/aws-sdk-go-v2/service/internal/s3shared` from 1.19.31 to 1.19.32 - [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.31...service/internal/s3shared/v1.19.32) Updates `github.com/aws/aws-sdk-go-v2/service/signin` from 1.4.1 to 1.5.0 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/v1.5.0/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.4.1...v1.5.0) Updates `github.com/aws/aws-sdk-go-v2/service/sso` from 1.32.1 to 1.33.0 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.32.1...v1.33.0) Updates `github.com/aws/aws-sdk-go-v2/service/ssooidc` from 1.37.1 to 1.38.0 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.37.1...v1.38.0) Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.44.1 to 1.45.0 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/iot/v1.44.1...service/s3/v1.45.0) Updates `github.com/gofiber/utils/v2` from 2.2.0 to 2.4.0 - [Release notes](https://github.com/gofiber/utils/releases) - [Commits](https://github.com/gofiber/utils/compare/v2.2.0...v2.4.0) Updates `github.com/mattn/go-isatty` from 0.0.23 to 0.0.24 - [Commits](https://github.com/mattn/go-isatty/compare/v0.0.23...v0.0.24) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-version: 1.43.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.31 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.30 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.5 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.106.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.27.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/oklog/ulid/v2 dependency-version: 2.1.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/rabbitmq/amqp091-go dependency-version: 1.13.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: github.com/valyala/fasthttp dependency-version: 1.73.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.31 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.31 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.31 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.32 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.24 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.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/s3shared dependency-version: 1.19.32 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.5.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.33.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.38.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.45.0 dependency-type: indirect update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: github.com/gofiber/utils/v2 dependency-version: 2.4.0 dependency-type: indirect update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: github.com/mattn/go-isatty dependency-version: 0.0.24 dependency-type: indirect update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|
|
4c3b7f5029 |
Merge pull request #2240 from versity/test/direct_s3api_fix
test: auto-create s3api profiles, virtual addressing capability |
||
|
|
ad76d7d5c1 | test: bucket setup/resetting cleanup, go virtual path handling, s3api profile setup | ||
|
|
695f64e977 |
Merge pull request #2258 from versity/dependabot/go_modules/dev-dependencies-91e4d53d78
chore(deps): bump the dev-dependencies group with 9 updates |
||
|
|
f4eac4f2fe |
Merge pull request #2257 from versity/dependabot/github_actions/actions/setup-go-7
chore(deps): bump actions/setup-go from 6 to 7 |
||
|
|
1e7d8d7848 |
Merge pull request #2256 from versity/test/bucket_reset_cleanup
test: bucket resetting code cleanup |
||
|
|
f4a2904dfb |
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.3.2` | `0.3.4` | | [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) | `1.105.1` | `1.105.2` | | [github.com/aws/smithy-go](https://github.com/aws/smithy-go) | `1.27.3` | `1.27.4` | | [github.com/go-ldap/ldap/v3](https://github.com/go-ldap/ldap) | `3.4.13` | `3.4.14` | | [github.com/go-asn1-ber/asn1-ber](https://github.com/go-asn1-ber/asn1-ber) | `1.5.8-0.20250403174932-29230038a667` | `1.5.8` | | [github.com/gofiber/schema](https://github.com/gofiber/schema) | `1.8.2` | `1.8.3` | | [github.com/gofiber/utils/v2](https://github.com/gofiber/utils) | `2.1.2` | `2.2.0` | | [github.com/klauspost/compress](https://github.com/klauspost/compress) | `1.19.0` | `1.19.1` | | [github.com/mattn/go-isatty](https://github.com/mattn/go-isatty) | `0.0.22` | `0.0.23` | Updates `github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager` from 0.3.2 to 0.3.4 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/internal/s3shared/v0.3.2...feature/s3/transfermanager/v0.3.4) Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.105.1 to 1.105.2 - [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.1...service/s3/v1.105.2) Updates `github.com/aws/smithy-go` from 1.27.3 to 1.27.4 - [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.3...v1.27.4) Updates `github.com/go-ldap/ldap/v3` from 3.4.13 to 3.4.14 - [Release notes](https://github.com/go-ldap/ldap/releases) - [Commits](https://github.com/go-ldap/ldap/compare/v3.4.13...v3.4.14) Updates `github.com/go-asn1-ber/asn1-ber` from 1.5.8-0.20250403174932-29230038a667 to 1.5.8 - [Release notes](https://github.com/go-asn1-ber/asn1-ber/releases) - [Commits](https://github.com/go-asn1-ber/asn1-ber/commits/v1.5.8) Updates `github.com/gofiber/schema` from 1.8.2 to 1.8.3 - [Release notes](https://github.com/gofiber/schema/releases) - [Commits](https://github.com/gofiber/schema/compare/v1.8.2...v1.8.3) Updates `github.com/gofiber/utils/v2` from 2.1.2 to 2.2.0 - [Release notes](https://github.com/gofiber/utils/releases) - [Commits](https://github.com/gofiber/utils/compare/v2.1.2...v2.2.0) Updates `github.com/klauspost/compress` from 1.19.0 to 1.19.1 - [Release notes](https://github.com/klauspost/compress/releases) - [Commits](https://github.com/klauspost/compress/compare/v1.19.0...v1.19.1) Updates `github.com/mattn/go-isatty` from 0.0.22 to 0.0.23 - [Commits](https://github.com/mattn/go-isatty/compare/v0.0.22...v0.0.23) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager dependency-version: 0.3.4 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.2 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.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/go-ldap/ldap/v3 dependency-version: 3.4.14 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/go-asn1-ber/asn1-ber dependency-version: 1.5.8 dependency-type: indirect update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/gofiber/schema dependency-version: 1.8.3 dependency-type: indirect update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/gofiber/utils/v2 dependency-version: 2.2.0 dependency-type: indirect update-type: version-update:semver-minor dependency-group: dev-dependencies - dependency-name: github.com/klauspost/compress dependency-version: 1.19.1 dependency-type: indirect update-type: version-update:semver-patch dependency-group: dev-dependencies - dependency-name: github.com/mattn/go-isatty dependency-version: 0.0.23 dependency-type: indirect update-type: version-update:semver-patch dependency-group: dev-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|
|
d88ac4e20a |
chore(deps): bump actions/setup-go from 6 to 7
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6 to 7. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|
|
4f3ae6c34d | test: bucket resetting code cleanup | ||
|
|
f377de8b76 |
Merge pull request #2253 from versity/ben/helm-gui
feat: add helm chart admin and webui ingress support |
||
|
|
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 |
||
|
|
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 |
||
|
|
9f6cb2a760 |
Merge pull request #2237 from jamalveli/fix/s3proxy-listmultipartuploads-listparts-nil-panic
fix: prevent nil pointer panic in s3proxy ListMultipartUploads and ListParts |
||
|
|
4856988b5d |
Merge pull request #2244 from versity/dependabot/go_modules/dev-dependencies-66037822ad
chore(deps): bump the dev-dependencies group with 15 updates |
||
|
|
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. |
||
|
|
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> |