Repository navigation
fix(render-farm): use AWS URI encoding for S3 signatures - #3355
Open
vedanth-jadhav wants to merge 1 commit into
Open
vedanth-jadhav wants to merge 1 commit into
vedanth-jadhav wants to merge 1 commit into
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The render farm signs S3 paths and query values with
encodeURIComponent, which leaves!'()*unescaped. AWS SigV4 requires those characters to be percent-encoded, so names such asit's (final)!*.mp4, signed response filenames and affected session tokens produce incorrect signatures. Query names also need sorting after encoding.Use AWS-compatible URI component escaping for object paths, copy-source headers and canonical query names/values, then sort encoded query names. Slash separators remain intact; literal percent signs, spaces, Unicode and plus signs retain their object-key meaning. Signing and presigning share the correction, with no dependency or credential-lifecycle changes.
Validation:
@smithy/signature-v45.7.4, a fixed date,uriEscapePath=false, AWS path escaping andUNSIGNED-PAYLOAD. Both signing forms cover ordinary keys, punctuation, Unicode/query ordering and temporary session credentials; a copy-part test verifies the transmitted source header. Six checks fail on unchanged production source and all pass with this fix.noUncheckedIndexedAccess, Biome andgit diff --checkpass.Reproduce:
bun run --cwd apps/render-farm test. Reference SDK packages were used only outside the checkout to produce the vectors; committed tests add no runtime/test dependency. Live AWS credentials/storage were not used. No throughput claim. Rechecked current main and open PRs; browser download authorization #3334 and native upload prefetch #3352 change separate paths.

Confidence Score: 5/5
The PR appears safe to merge; no actionable issues were found.Summary
The PR fixes AWS URI escaping for S3 signatures without adding dependencies.
No actionable issues were found. This review checked the code and test cases; it did not rerun the suite or make live AWS requests.
Reviews (1) · Last reviewed commit: "fix(render-farm): use AWS URI encoding f..." · Reviewed by Greptile