Skip to content

fix(s3): ListBuckets v2 — BucketRegion + prefix/region/pagination filters#820

Merged
vieiralucas merged 1 commit intomainfrom
worktree-s3-listbuckets-v2-816
Apr 28, 2026
Merged

fix(s3): ListBuckets v2 — BucketRegion + prefix/region/pagination filters#820
vieiralucas merged 1 commit intomainfrom
worktree-s3-listbuckets-v2-816

Conversation

@vieiralucas
Copy link
Copy Markdown
Member

@vieiralucas vieiralucas commented Apr 28, 2026

Summary

Closes #816.

ListBuckets response was missing <BucketRegion> per entry, which the VS Code AWS Toolkit uses to filter visible buckets — fakecloud buckets were hidden in the IDE explorer. AWS CLI tolerates the missing field, real S3 always emits it.

While fixing this, rounded out the full ListBuckets v2 surface AWS shipped alongside BucketRegion:

  • <BucketRegion> per bucket entry
  • prefix query parameter — name-prefix filter
  • bucket-region query parameter — region filter
  • max-buckets query parameter (1..=10000, default 10000) — page size
  • continuation-token query parameter — opaque base64 cursor
  • <ContinuationToken> response element — next-page cursor when more pages remain
  • <Prefix> / <BucketRegion> echoed in response when input had them
  • InvalidArgument errors for out-of-range max-buckets and malformed tokens

Test plan

  • Unit tests in fakecloud-s3: 7 new tests covering all behaviors
  • E2E tests via aws-sdk-s3: 4 new tests (region populated, pagination across pages, prefix filter, region filter with mixed-region buckets)
  • Conformance s3_bucket_lifecycle still passes — Smithy checksum unchanged
  • cargo clippy --workspace --all-targets -- -D warnings clean
  • cargo fmt --all clean
  • website/static/llms-full.txt updated to note v2 pagination + filters
  • VS Code AWS Toolkit smoke test against running fakecloud (manual, post-merge)

Summary by cubic

Implements S3 ListBuckets v2 with per-bucket BucketRegion, filters, and pagination. Fixes VS Code AWS Toolkit bucket visibility to match real S3 (closes #816).

  • New Features
    • Per-bucket BucketRegion in ListBuckets responses.
    • Query params: prefix, bucket-region, max-buckets (1..10000, default 10000), continuation-token (base64). Adds <ContinuationToken> when more pages remain.
    • Echoes <Prefix> and <BucketRegion> when provided. Returns InvalidArgument for out-of-range max-buckets or malformed tokens.

Written for commit e3d215d. Summary will update on new commits. Review in cubic

…ters

Closes #816.

ListBuckets response previously omitted <BucketRegion> per entry, which
the VS Code AWS Toolkit uses to filter visible buckets — buckets created
through fakecloud were hidden in the IDE explorer. The AWS CLI tolerates
the missing field, but real S3 always emits it.

This fixes the symptom and rounds out the full ListBuckets v2 surface
that AWS shipped alongside BucketRegion:

- Per-bucket <BucketRegion> in every response
- prefix query parameter — filter buckets by name prefix
- bucket-region query parameter — filter buckets by region
- max-buckets query parameter (1..=10000, default 10000) — page size
- continuation-token query parameter — opaque base64 cursor
- <ContinuationToken> response element — next-page cursor when truncated
- <Prefix> / <BucketRegion> echoed in response when input had them
- InvalidArgument errors for out-of-range max-buckets and malformed tokens

Coverage: 7 unit tests in fakecloud-s3 (region in body, region filter,
prefix filter, pagination, continuation resume, invalid max-buckets,
invalid token) and 4 e2e tests via aws-sdk-s3 (region populated,
pagination across pages, prefix filter, region filter with mixed-region
buckets). Conformance ListBuckets checksum unchanged — Smithy model
already declared the v2 fields.
Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 4 files

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 28, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@vieiralucas vieiralucas merged commit 087e5c1 into main Apr 28, 2026
46 of 48 checks passed
@vieiralucas vieiralucas deleted the worktree-s3-listbuckets-v2-816 branch April 28, 2026 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

S3 ListBuckets response is missing BucketRegion, causing buckets to be hidden in VS Code AWS Toolkit

1 participant