Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update R2 Error Handling for Invalid Characters #5032

Merged
merged 8 commits into from
Jul 11, 2024

Conversation

dbenCF
Copy link
Contributor

@dbenCF dbenCF commented Feb 16, 2024

Fixes # [insert GH or internal issue number(s)].

What this PR solves / how to test:
Adds client side error handling for creating an R2 bucket with invalid characters
Author has addressed the following:

Note for PR author:

We want to celebrate and highlight awesome PR review! If you think this PR received a particularly high-caliber review, please assign it the label highlight pr review so future reviewers can take inspiration and learn from it.

@dbenCF dbenCF requested a review from a team as a code owner February 16, 2024 13:31
Copy link

changeset-bot bot commented Feb 16, 2024

🦋 Changeset detected

Latest commit: 3981253

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
wrangler Patch
@cloudflare/vitest-pool-workers Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

github-actions bot commented Feb 19, 2024

A wrangler prerelease is available for testing. You can install this latest build in your project with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9889399659/npm-package-wrangler-5032

You can reference the automatically updated head of this PR with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/5032/npm-package-wrangler-5032

Or you can use npx with this latest build directly:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9889399659/npm-package-wrangler-5032 dev path/to/script.js
Additional artifacts:
npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9889399659/npm-package-create-cloudflare-5032 --no-auto-update
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9889399659/npm-package-cloudflare-kv-asset-handler-5032
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9889399659/npm-package-miniflare-5032
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9889399659/npm-package-cloudflare-pages-shared-5032
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9889399659/npm-package-cloudflare-vitest-pool-workers-5032

Note that these links will no longer work once the GitHub Actions artifact expires.


[email protected] includes the following runtime dependencies:

Package Constraint Resolved
miniflare workspace:* 3.20240701.0
workerd 1.20240701.0 1.20240701.0
workerd --version 1.20240701.0 2024-07-01

Please ensure constraints are pinned, and miniflare/workerd minor versions match.

@@ -0,0 1,5 @@
---
"wrangler": major
Copy link
Contributor

Choose a reason for hiding this comment

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

This should be a patch/minor bump, not a major

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for flagging, changed to patch.

packages/wrangler/src/r2/helpers.ts Outdated Show resolved Hide resolved
@penalosa penalosa added the awaiting reporter response Needs clarification or followup from OP label Feb 20, 2024
@dbenCF dbenCF changed the title Daniel/pcx 9673 Update R2 Error Handling for Invalid Characters Feb 22, 2024
@admah admah removed the awaiting reporter response Needs clarification or followup from OP label Feb 29, 2024
Copy link

codecov bot commented Feb 29, 2024

Codecov Report

Attention: Patch coverage is 88.88889% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 70.36%. Comparing base (65da40a) to head (f8147db).
Report is 486 commits behind head on main.

❗ Current head f8147db differs from pull request most recent head 08c4258. Consider uploading reports for the commit 08c4258 to get more accurate results

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #5032       /-   ##
==========================================
- Coverage   70.64%   70.36%   -0.29%     
==========================================
  Files         292      298        6     
  Lines       15178    15518      340     
  Branches     3860     3985      125     
==========================================
  Hits        10723    10919      196     
- Misses       4455     4599      144     
Files Coverage Δ
packages/wrangler/src/r2/index.ts 86.62% <100.00%> (-0.28%) ⬇️
packages/wrangler/src/r2/helpers.ts 88.50% <80.00%> (-0.39%) ⬇️

... and 64 files with indirect coverage changes

@dbenCF dbenCF requested a review from penalosa March 19, 2024 09:41
Copy link
Contributor

@penalosa penalosa left a comment

Choose a reason for hiding this comment

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

This looks good! The only thing remaining is an update to the docs—it looks like you checked off the checkbox for this including docs, but didn't link the issue/PR. Would you be able to do that, and then we can get this merged and released?

name: string | undefined
): name is string {
return (
typeof name === "string" && /^[a-zA-Z][a-zA-Z0-9-]*$/.test(name)
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
typeof name === "string" && /^[a-zA-Z][a-zA-Z0-9-]*$/.test(name)
typeof name === "string" && /^[a-zA-Z][a-zA-Z0-9-] $/.test(name)

Copy link
Contributor

Choose a reason for hiding this comment

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

Can a bucket not have a single character for its name?

@petebacondarwin petebacondarwin self-assigned this Jul 11, 2024
@@ -0,0 1,5 @@
---
"wrangler": major
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
"wrangler": major
"wrangler": patch

Since this would fail anyway, with a worse message, I don't think this is a breaking change requiring a major bump.

name: string | undefined
): name is string {
return (
typeof name === "string" && /^[a-zA-Z][a-zA-Z0-9-]*$/.test(name)
Copy link
Contributor

Choose a reason for hiding this comment

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

Can a bucket not have a single character for its name?

@petebacondarwin
Copy link
Contributor

I ran the E2E tests locally.

@petebacondarwin petebacondarwin merged commit 75f7928 into cloudflare:main Jul 11, 2024
18 checks passed
IRCody pushed a commit to IRCody/workers-sdk that referenced this pull request Jul 12, 2024
* Adding skeleton for error handling in R2

* Add test and update error handling

* fix function errors

* Add changeset

* Updating changeset

* Edit changeset file

* Remove unecessary blankspace

* fix up tests

---------

Co-authored-by: Peter Bacon Darwin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

None yet

4 participants