Skip to content

feat: configure S3 URL addressing style - #3400

Open
kalvinnchau wants to merge 5 commits into
mainfrom
fry/s3-addressing-style
Open

feat: configure S3 URL addressing style#3400
kalvinnchau wants to merge 5 commits into
mainfrom
fry/s3-addressing-style

Conversation

@kalvinnchau

@kalvinnchau kalvinnchau commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add one strict BUZZ_S3_ADDRESSING_STYLE=path|virtual setting shared by media and Git/CAS storage
  • preserve path-style defaults for bundled Compose/Helm MinIO while supporting Railway's virtual-hosted bucket contract
  • fail startup on invalid or non-Unicode values before dependency connection, and validate the Helm value with the same two choices
  • document operator mappings and why endpoint and bucket remain separate for routing and SigV4 signing

Best-practice rationale

AWS documents both URL forms and favors virtual-hosted addressing for S3, while compatibility endpoints such as the bundled MinIO deployment can require path style. rust-s3 defaults to virtual/subdomain addressing and provides with_path_style() for the explicit compatibility case.

Some providers buckets only support as virtual-hosted bucket styles. This PR therefore uses one explicit, provider-neutral switch rather than endpoint heuristics or fallback behavior, while retaining path as Buzz's backward-compatible default.

Sources:

Validation

  • cargo fmt --all
  • cargo check --workspace --all-targets
  • targeted buzz-media and buzz-relay parsing/client-construction tests for defaults, strict errors, and both URL styles
  • Helm unittest: 45/45 passed
  • Compose config/render validation passed
  • local MinIO path-mode relay startup passed the Git A3 conformance probe and became ready
  • unreachable object storage failed startup and readiness never opened
  • push hooks completed the broader Rust and desktop suites successfully

npub122y0pqkertljmedu303rl0aqrj3w8pvu43t6jxm6875lzg6f2pwqegc3xc and others added 3 commits July 28, 2026 14:02
Add one strict path-or-virtual setting shared by media and Git/CAS storage. Preserve path-style MinIO defaults, validate bad values before startup, and document Railway and Helm configuration.

Co-authored-by: npub122y0pqkertljmedu303rl0aqrj3w8pvu43t6jxm6875lzg6f2pwqegc3xc <5288f082d91aff2de5bc8be23fbfa01ca2e3859cac57a91b7a3fa9f12349505c@buzz.block.builderlab.xyz>
Signed-off-by: npub122y0pqkertljmedu303rl0aqrj3w8pvu43t6jxm6875lzg6f2pwqegc3xc <5288f082d91aff2de5bc8be23fbfa01ca2e3859cac57a91b7a3fa9f12349505c@buzz.block.builderlab.xyz>
Honor shared URL addressing in the Git probe, expose the signing region through Helm, and make storage validation guidance match the actual startup probe behavior.

Co-authored-by: Kalvin Chau <[email protected]>
Signed-off-by: Kalvin Chau <[email protected]>
Co-authored-by: Kalvin Chau <[email protected]>
Signed-off-by: Kalvin Chau <[email protected]>
@kalvinnchau
kalvinnchau marked this pull request as ready for review July 28, 2026 23:21
@kalvinnchau
kalvinnchau requested a review from a team as a code owner July 28, 2026 23:21
@kalvinnchau kalvinnchau changed the title Configure S3 URL addressing style feat: configure S3 URL addressing style Jul 29, 2026
npub122y0pqkertljmedu303rl0aqrj3w8pvu43t6jxm6875lzg6f2pwqegc3xc and others added 2 commits July 28, 2026 18:10
Keep Helm region wiring opt-in, align provider probes on the shared S3 variables, and document the bundled Compose storage contract accurately.

Co-authored-by: Kalvin Chau <[email protected]>
Signed-off-by: Kalvin Chau <[email protected]>
Make the default-region absence assertion match any environment entry so an unconditional BUZZ_S3_REGION render fails the chart test.

Co-authored-by: Kalvin Chau <[email protected]>
Signed-off-by: Kalvin Chau <[email protected]>
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.

1 participant