@beignet/provider-storage-s3 0.0.37 → 0.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @beignet/provider-storage-s3
2
2
 
3
+ ## 0.0.38
4
+
5
+ ### Patch Changes
6
+
7
+ - 1081ac6: Harden HTTP response handling, synchronous upload cleanup, CLI path and registry diagnostics, provider context preservation, Redis subscription observability, and provider documentation.
8
+
3
9
  ## 0.0.37
4
10
 
5
11
  ## 0.0.36
package/README.md CHANGED
@@ -112,6 +112,22 @@ contract:
112
112
  - `publicUrl(...)` stats to check the stored visibility, and skips S3 entirely
113
113
  when no public base URL is configured.
114
114
 
115
+ ### IAM permissions and missing objects
116
+
117
+ Grant the app the object actions its selected operations use (`s3:GetObject`,
118
+ `s3:PutObject`, and `s3:DeleteObject`) plus `s3:ListBucket` on the bucket.
119
+ Amazon S3 can return `403 AccessDenied` instead of `404 NotFound` for a missing
120
+ key when the caller lacks `s3:ListBucket`. Beignet intentionally does not map a
121
+ generic 403 to "missing," because doing so would hide real credential or bucket
122
+ policy failures. Without `s3:ListBucket`, `get(...)`, `stat(...)`,
123
+ `exists(...)`, and the preflight lookup in `delete(...)` may therefore throw
124
+ for absent keys instead of returning their normal `null` or `false` result.
125
+
126
+ For AWS, scope `s3:ListBucket` to the bucket ARN and object actions to the
127
+ object ARN, including the configured `STORAGE_S3_KEY_PREFIX` where practical.
128
+ S3-compatible services may use different permission names but need equivalent
129
+ head/get missing-object behavior.
130
+
115
131
  ## Retries
116
132
 
117
133
  S3 operations are idempotent, so bounded retry is appropriate. The provider
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beignet/provider-storage-s3",
3
- "version": "0.0.37",
3
+ "version": "0.0.38",
4
4
  "type": "module",
5
5
  "description": "S3-compatible object storage provider for Beignet",
6
6
  "main": "./dist/index.js",