chore(s3): default BlockPublicAccess class properties to true #33001
+32
−4
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.
Issue # aws-s3: blockPublicAccess has a counterintuitive behaviour #32811
Closes #32811.
Reason for this change
S3 Bucket construct when initialized without specifying the
blockPublicAccess
property results in all the members of classBlockPublicAccess
set totrue
. However if some properties are set tofalse
during initialization, then all remaining properties are also set tofalse
. Reason for this is because the unspecified properties are treated asundefined
, which evaluates tofalse
. This causes an inconsistent behavior and leads to confusion.Description of changes
Inside the constructor of
BlockPublicAccess
class inaws-s3/lib/bucket.ts
, we use the nullish coalescing operator??
to check if the properties are not explicitly set by the customer. If they are not, then we set them totrue
. This will create a consistent default for those properties totrue
.Description of how you validated changes
Added a unit test to validate the changes.
Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license