fix: skip ACL parameter for GCS uniform bucket-level access#11222
Merged
Conversation
When using Google Cloud Storage with uniform bucket-level access enabled, object-level ACLs are not supported and cause InvalidArgument errors. This change makes the ACL parameter conditional in both `store()` and `getPresignedPost()` methods, allowing users to set `AWS_S3_ACL=` (empty) to disable object-level ACLs. Fixes outline#11221
Contributor
Author
tommoor
approved these changes
Jan 19, 2026
alexlebens
pushed a commit
to alexlebens/infrastructure
that referenced
this pull request
Jan 28, 2026
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [outline/outline](https://github.com/outline/outline) | minor | `1.3.0` → `1.4.0` | --- ### Release Notes <details> <summary>outline/outline (outline/outline)</summary> ### [`v1.4.0`](https://github.com/outline/outline/releases/tag/v1.4.0) [Compare Source](outline/outline@v1.3.0...v1.4.0) #### What's Changed ##### Highlights - New **"Toggle blocks"** allow creating content that is collapsed by default in [#​8317](outline/outline#8317) - Table cells can now have a custom background color set in [#​10930](outline/outline#10930) - Search results are now highlighted in the document when navigating from search in [#​11262](outline/outline#11262) ##### Other improvements - A new Figma integration allows unfurling information about Figma links in documents by [@​hmacr](https://github.com/hmacr) in [#​11044](outline/outline#11044) - Added support for sorting dates in table columns by [@​lucawimmer](https://github.com/lucawimmer) in [#​11198](outline/outline#11198) - Document changes made through the API are now synced to clients in realtime in [#​11186](outline/outline#11186) - The rate limiter now prefers user ID over ip address for logged in sessions, prevents issues on larger office networks in [#​11215](outline/outline#11215) - The markdown importer now supports more file layouts in [#​11278](outline/outline#11278) ##### Fixes - Fixed some typos comments and messages by [@​NAM-MAN](https://github.com/NAM-MAN) in [#​11203](outline/outline#11203) - Fixed an issue where mentions would sometimes break when using drag and drop in a list in [#​11208](outline/outline#11208) - The edit diagram control no longer appears in read-only mode in [#​11207](outline/outline#11207) - Infinite recursion in `dd-trace` dependency causes memory issues in [#​11211](outline/outline#11211) - Imported content now gracefully handles HTTP links in [#​11210](outline/outline#11210) - Editor suggestions on mobile now uses a drawer in [#​11213](outline/outline#11213) - When importing markdown checkboxes are now supported in table cells in [#​11217](outline/outline#11217) - GCS uniform bucket-level access now supported by [@​maycuatroi1](https://github.com/maycuatroi1) in [#​11222](outline/outline#11222) - Fixed a hanging read stream handle causing excessive memory usage on export in [#​11237](outline/outline#11237) - Fixed mermaid diagrams do not render when pasting markdown in [#​11243](outline/outline#11243) - Remote edits no longer exit Mermaid editing state in [#​11244](outline/outline#11244) - Table row is now inserted correctly with merged first column cells in [#​11245](outline/outline#11245) - Allow http\:// loopback redirect URIs for native OAuth apps (RFC 8252) in [#​11255](outline/outline#11255) - "Split cell" option now works without accurate selection in [#​11256](outline/outline#11256) - Adding text below images is now easier as trailing paragraph is enforcedd by [@​RudraPrasad001](https://github.com/RudraPrasad001) in [#​11257](outline/outline#11257) - Tooltip in editor toolbar with submenu is now hidden when submenu is open in [#​11263](outline/outline#11263) - Non-platform passkeys such as Yubikey and mobile QRcode are now allowed in [#​11265](outline/outline#11265) - diagrams.net theme now matches editor theme by [@​Twometer](https://github.com/Twometer) in [#​11267](outline/outline#11267) - Custom emoji characters are now displayed correctly in TOC in [#​11275](outline/outline#11275) - Fixed an issue where the policy for documents restore was too broad in [#​11279](outline/outline#11279) - Passkey setup is now available to non-admin users by [@​Raphmatt](https://github.com/Raphmatt) in [#​11286](outline/outline#11286) #### New Contributors - [@​NAM-MAN](https://github.com/NAM-MAN) made their first contribution in [#​11203](outline/outline#11203) - [@​lucawimmer](https://github.com/lucawimmer) made their first contribution in [#​11198](outline/outline#11198) - [@​maycuatroi1](https://github.com/maycuatroi1) made their first contribution in [#​11222](outline/outline#11222) - [@​RudraPrasad001](https://github.com/RudraPrasad001) made their first contribution in [#​11257](outline/outline#11257) - [@​Twometer](https://github.com/Twometer) made their first contribution in [#​11267](outline/outline#11267) - [@​Raphmatt](https://github.com/Raphmatt) made their first contribution in [#​11286](outline/outline#11286) **Full Changelog**: <outline/outline@v1.3.0...v1.4.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=--> Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/3546 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
alexlebens
pushed a commit
to alexlebens/infrastructure
that referenced
this pull request
Jan 28, 2026
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [outlinewiki/outline](https://github.com/outline/outline) | minor | `1.3.0` → `1.4.0` | --- ### Release Notes <details> <summary>outline/outline (outlinewiki/outline)</summary> ### [`v1.4.0`](https://github.com/outline/outline/releases/tag/v1.4.0) [Compare Source](outline/outline@v1.3.0...v1.4.0) ##### What's Changed ##### Highlights - New **"Toggle blocks"** allow creating content that is collapsed by default in [#​8317](outline/outline#8317) - Table cells can now have a custom background color set in [#​10930](outline/outline#10930) - Search results are now highlighted in the document when navigating from search in [#​11262](outline/outline#11262) ##### Other improvements - A new Figma integration allows unfurling information about Figma links in documents by [@​hmacr](https://github.com/hmacr) in [#​11044](outline/outline#11044) - Added support for sorting dates in table columns by [@​lucawimmer](https://github.com/lucawimmer) in [#​11198](outline/outline#11198) - Document changes made through the API are now synced to clients in realtime in [#​11186](outline/outline#11186) - The rate limiter now prefers user ID over ip address for logged in sessions, prevents issues on larger office networks in [#​11215](outline/outline#11215) - The markdown importer now supports more file layouts in [#​11278](outline/outline#11278) ##### Fixes - Fixed some typos comments and messages by [@​NAM-MAN](https://github.com/NAM-MAN) in [#​11203](outline/outline#11203) - Fixed an issue where mentions would sometimes break when using drag and drop in a list in [#​11208](outline/outline#11208) - The edit diagram control no longer appears in read-only mode in [#​11207](outline/outline#11207) - Infinite recursion in `dd-trace` dependency causes memory issues in [#​11211](outline/outline#11211) - Imported content now gracefully handles HTTP links in [#​11210](outline/outline#11210) - Editor suggestions on mobile now uses a drawer in [#​11213](outline/outline#11213) - When importing markdown checkboxes are now supported in table cells in [#​11217](outline/outline#11217) - GCS uniform bucket-level access now supported by [@​maycuatroi1](https://github.com/maycuatroi1) in [#​11222](outline/outline#11222) - Fixed a hanging read stream handle causing excessive memory usage on export in [#​11237](outline/outline#11237) - Fixed mermaid diagrams do not render when pasting markdown in [#​11243](outline/outline#11243) - Remote edits no longer exit Mermaid editing state in [#​11244](outline/outline#11244) - Table row is now inserted correctly with merged first column cells in [#​11245](outline/outline#11245) - Allow http\:// loopback redirect URIs for native OAuth apps (RFC 8252) in [#​11255](outline/outline#11255) - "Split cell" option now works without accurate selection in [#​11256](outline/outline#11256) - Adding text below images is now easier as trailing paragraph is enforcedd by [@​RudraPrasad001](https://github.com/RudraPrasad001) in [#​11257](outline/outline#11257) - Tooltip in editor toolbar with submenu is now hidden when submenu is open in [#​11263](outline/outline#11263) - Non-platform passkeys such as Yubikey and mobile QRcode are now allowed in [#​11265](outline/outline#11265) - diagrams.net theme now matches editor theme by [@​Twometer](https://github.com/Twometer) in [#​11267](outline/outline#11267) - Custom emoji characters are now displayed correctly in TOC in [#​11275](outline/outline#11275) - Fixed an issue where the policy for documents restore was too broad in [#​11279](outline/outline#11279) - Passkey setup is now available to non-admin users by [@​Raphmatt](https://github.com/Raphmatt) in [#​11286](outline/outline#11286) ##### New Contributors - [@​NAM-MAN](https://github.com/NAM-MAN) made their first contribution in [#​11203](outline/outline#11203) - [@​lucawimmer](https://github.com/lucawimmer) made their first contribution in [#​11198](outline/outline#11198) - [@​maycuatroi1](https://github.com/maycuatroi1) made their first contribution in [#​11222](outline/outline#11222) - [@​RudraPrasad001](https://github.com/RudraPrasad001) made their first contribution in [#​11257](outline/outline#11257) - [@​Twometer](https://github.com/Twometer) made their first contribution in [#​11267](outline/outline#11267) - [@​Raphmatt](https://github.com/Raphmatt) made their first contribution in [#​11286](outline/outline#11286) **Full Changelog**: <outline/outline@v1.3.0...v1.4.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=--> Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/3547 Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net> Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
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.

Summary
S3Storage.store()andS3Storage.getPresignedPost()methodsAWS_S3_ACL=(empty) to disable object-level ACLsProblem
When using GCS with uniform bucket-level access enabled, file uploads fail with:
This happens because
S3Storagealways passes an ACL parameter, even when it should be omitted.Solution
Only include ACL in the upload params when it has a truthy value:
Test plan
AWS_S3_ACL=(empty) in environmentAWS_S3_ACL=privateis setFixes #11221