Skip to content

fix(deletion): allow IRSA S3 credentials - #6495

Merged
bradseiler merged 3 commits into
mainfrom
seiler/deletion-irsa-credentials
Aug 21, 2026
Merged

fix(deletion): allow IRSA S3 credentials#6495
bradseiler merged 3 commits into
mainfrom
seiler/deletion-irsa-credentials

Conversation

@bradseiler

@bradseiler bradseiler commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Why

buzz-admin deletions runs inside bb-public relay pods, where S3 credentials are provided by the pod credential chain rather than static BUZZ_S3_ACCESS_KEY / BUZZ_S3_SECRET_KEY values. The deletion CLI was requiring those two env vars to be non-empty before constructing the shared media storage client, so it could not reach the existing default AWS credential chain.

What

  • Treat missing/blank deletion S3 access key and secret key as an empty credential pair so MediaStorage::new can use Credentials::default().
  • Keep the existing static-credential path unchanged when both values are non-empty.
  • Keep deletion unit tests deterministic by covering only deletion env normalization for missing/blank pair, trimmed static pair, and partial/whitespace-partial outputs; shared media tests continue to own credential-pair enforcement.

Risk Assessment

Low and scoped to the operator-only community deletion CLI startup path. The shared media storage credential validation still owns static-vs-default credential selection and still rejects mixed partial credentials.

Testing

At committed head 0a86c2914b1f97caf4788a771048aa8d9d9d88ac with a clean worktree before and after (git rev-parse HEAD before/after matched):

  • just fmt-check — passed.
  • cargo test -p buzz-deletion — passed: 12 passed, 9 ignored.
  • cargo test -p buzz-media — passed: 120 passed; static_creds_round_trip_against_minio remained ignored because it requires live MinIO.
  • cargo test -p buzz-admin — passed: 1 passed.
  • cargo clippy -p buzz-deletion --all-targets -- -D warnings — passed.
  • Startup smoke at the same head: built buzz-admin, then ran target/debug/buzz-admin deletions drain with BUZZ_S3_ACCESS_KEY= and BUZZ_S3_SECRET_KEY=' ' plus AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY fallback credentials; command exited 0, proving startup transitions past deletion S3 key validation and exercises the shared default credential-chain branch using AWS env fallback credentials.
  • git push origin HEAD:seiler/deletion-irsa-credentials — passed; pre-push hooks passed.

Not run: the full TESTING.md live-local relay workflow. Docker Desktop currently refuses CLI access on this machine with Sign in to continue using Docker Desktop. Membership in the [squareup] organization is required.

References

  • Buzz channel: buzz://message?channel=9e4aabc6-414c-4978-aba7-b9f5228776de&id=177c5b8ad9e78a647f438ec7040d25f0c20a7c2b8678dd0e34768effe053f7f4

Generated with Codex

coder 0 added 3 commits August 21, 2026 12:43
Co-authored-by: coder 0 <d97ebdbb198c7237c94f84ea8bb8a73583ea067407eebd0062abbb3962527fb1@buzz.block.builderlab.xyz>
Signed-off-by: coder 0 <d97ebdbb198c7237c94f84ea8bb8a73583ea067407eebd0062abbb3962527fb1@buzz.block.builderlab.xyz>
…credentials

* origin/main:
  chore(release): release Buzz Desktop version 0.5.18 (#6489)

Co-authored-by: coder 0 <d97ebdbb198c7237c94f84ea8bb8a73583ea067407eebd0062abbb3962527fb1@buzz.block.builderlab.xyz>
Signed-off-by: coder 0 <d97ebdbb198c7237c94f84ea8bb8a73583ea067407eebd0062abbb3962527fb1@buzz.block.builderlab.xyz>
Co-authored-by: coder 0 <d97ebdbb198c7237c94f84ea8bb8a73583ea067407eebd0062abbb3962527fb1@buzz.block.builderlab.xyz>
Signed-off-by: coder 0 <d97ebdbb198c7237c94f84ea8bb8a73583ea067407eebd0062abbb3962527fb1@buzz.block.builderlab.xyz>
@bradseiler
bradseiler marked this pull request as ready for review August 21, 2026 22:03
@bradseiler
bradseiler requested a review from a team as a code owner August 21, 2026 22:03
@bradseiler
bradseiler merged commit 4752678 into main Aug 21, 2026
31 checks passed
@bradseiler
bradseiler deleted the seiler/deletion-irsa-credentials branch August 21, 2026 23:14
brow added a commit that referenced this pull request Aug 22, 2026
* origin/main: (65 commits)
  fix(composer): preserve caret when inserting mentions mid-message (#6531)
  chore(deps): update rust crate async-trait to v0.1.92 (#6094)
  chore(deps): update dependency sonner to v2.0.8 (#6093)
  chore(deps): update rust crate http-body-util to v0.1.4 (#5452)
  chore(deps): update rust crate http to v1.4.2 (#5451)
  chore(deps): update rust crate futures-util to v0.3.33 (#5448)
  chore(deps): update rust crate futures to v0.3.33 (#5445)
  chore(deps): update dependency @tauri-apps/api to v2.11.1 (#5444)
  chore(deps): update ubuntu:24.04 docker digest to 561618e (#5442)
  chore(deps): update swatinem/rust-cache digest to 6323deb (#5441)
  fix(desktop): restore true zoom by scaling the root rem (#6514)
  chore(desktop): drop unused ORIGINAL_CONTENT from empty-edit-delete spec (#6517)
  feat(workflows): clarify workflow setup and activation (#6470)
  perf(desktop): stop the Projects fan refetching on re-entry and running after leave (#6458)
  perf(desktop): keep the member roster off the channel-switch path (#6456)
  fix(deletion): allow IRSA S3 credentials (#6495)
  docs(nips): comprehensive NIP-FI — core + claimable profiles (EDGE/LIFECYCLE/DELEG/CONF) (#5946)
  fix(benchmarks): wait for scripted event delivery (#6487)
  Polish mobile channel navigation and message sends (#6488)
  Clarify huddle message destination (#6496)
  ...

Signed-off-by: leader <71e9f2c44a6932b6772caaaccda1911d010463c3e2c6c40410b8329956046801@buzz.block.builderlab.xyz>

Co-authored-by: Tom Brow <tomb@block.xyz>
Signed-off-by: Tom Brow <tomb@block.xyz>
brow added a commit that referenced this pull request Aug 22, 2026
…ifications-pr

* origin/main: (38 commits)
  fix(composer): preserve caret when inserting mentions mid-message (#6531)
  chore(deps): update rust crate async-trait to v0.1.92 (#6094)
  chore(deps): update dependency sonner to v2.0.8 (#6093)
  chore(deps): update rust crate http-body-util to v0.1.4 (#5452)
  chore(deps): update rust crate http to v1.4.2 (#5451)
  chore(deps): update rust crate futures-util to v0.3.33 (#5448)
  chore(deps): update rust crate futures to v0.3.33 (#5445)
  chore(deps): update dependency @tauri-apps/api to v2.11.1 (#5444)
  chore(deps): update ubuntu:24.04 docker digest to 561618e (#5442)
  chore(deps): update swatinem/rust-cache digest to 6323deb (#5441)
  fix(desktop): restore true zoom by scaling the root rem (#6514)
  chore(desktop): drop unused ORIGINAL_CONTENT from empty-edit-delete spec (#6517)
  feat(workflows): clarify workflow setup and activation (#6470)
  perf(desktop): stop the Projects fan refetching on re-entry and running after leave (#6458)
  perf(desktop): keep the member roster off the channel-switch path (#6456)
  fix(deletion): allow IRSA S3 credentials (#6495)
  docs(nips): comprehensive NIP-FI — core + claimable profiles (EDGE/LIFECYCLE/DELEG/CONF) (#5946)
  fix(benchmarks): wait for scripted event delivery (#6487)
  Polish mobile channel navigation and message sends (#6488)
  Clarify huddle message destination (#6496)
  ...

Signed-off-by: Tom Brow <tomb@block.xyz>
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.

2 participants