Skip to content

Commit d417017

Browse files
committed
feat(s3): expand feature parity support
1 parent 691b53e commit d417017

12 files changed

Lines changed: 6659 additions & 561 deletions

File tree

.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ scripts/s3-test-coverage-autoloop/done.md
3838
scripts/s3-test-coverage-autoloop/iteration-*.out
3939
scripts/s3-test-coverage-autoloop/verify-*.out
4040
scripts/s3-test-coverage-autoloop/prompt-*.*
41+
scripts/s3-feature-parity-autoloop/.run-loop.lock
42+
scripts/s3-feature-parity-autoloop/.circuit-state
43+
scripts/s3-feature-parity-autoloop/runner.jsonl
44+
scripts/s3-feature-parity-autoloop/runner.log
45+
scripts/s3-feature-parity-autoloop/state.env
46+
scripts/s3-feature-parity-autoloop/state.env.sha256
47+
scripts/s3-feature-parity-autoloop/progress.md
48+
scripts/s3-feature-parity-autoloop/done.md
49+
scripts/s3-feature-parity-autoloop/iteration-*.out
50+
scripts/s3-feature-parity-autoloop/verify-*.out
51+
scripts/s3-feature-parity-autoloop/prompt-*.*
4152
scripts/gcs-autoloop/.run-loop.lock
4253
scripts/gcs-autoloop/.circuit-state
4354
scripts/gcs-autoloop/runner.jsonl

README.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ Legend:
242242
| Feature | Status | Notes |
243243
| --- | --- | --- |
244244
| Path-style bucket/object routes | Yes | Default route model. |
245-
| Virtual-host style routes | No | Config field exists, but runtime routing is path-style. |
245+
| Virtual-host style routes | Partial | `{bucket}.localhost` Host-header requests route to the same local bucket handlers; path-style remains the default. |
246246
| List buckets | Yes | `GET /`. |
247247
| Create, head, list, delete bucket | Yes | Empty-bucket delete is supported. |
248248
| Get bucket location | Yes | Returns configured region. |
@@ -254,10 +254,15 @@ Legend:
254254
| Multipart upload | Yes | Create/upload/list/complete/abort local multipart flows. |
255255
| Presigned URL validation | Yes | Covered for local SigV4 GET. |
256256
| AWS SigV4 header auth | Partial | Relaxed mode is default; strict mode validates local credentials. |
257-
| ACLs, bucket policy, IAM | No | Not implemented. |
258-
| Versioning, lifecycle, replication | No | Not implemented. |
259-
| SSE/KMS, Object Lock, notifications | No | Not implemented. |
260-
| S3 Select / inventory / analytics | No | Not implemented. |
257+
| ACLs, bucket policy, IAM | Partial | Bucket policy and bucket/object ACL metadata endpoints are supported locally, including versionId-aware object ACL metadata; IAM enforcement is not implemented. |
258+
| Versioning | Partial | Bucket versioning, generated and `null` version IDs, version-aware get/delete/copy-source, delete markers, multipart-complete version IDs/ETags, and local ListObjectVersions with key/version markers are supported. |
259+
| Lifecycle | Partial | Bucket lifecycle metadata endpoints are supported; Enabled expiration rules for current objects are applied locally on S3 reads/lists. |
260+
| Notifications | Partial | Bucket notification configuration metadata, including EventBridge metadata, is supported; matching local object create/delete flows append local event records. |
261+
| SSE/KMS | Partial | SSE-S3 and SSE-KMS request metadata is stored locally and exposed through object read/write response headers; real KMS and SSE-C are not implemented. |
262+
| Replication | Partial | Bucket replication configuration metadata is supported; enabled prefix rules replicate local object write/copy/multipart-complete flows and enabled delete marker replication to existing local destination buckets. |
263+
| Object Lock | Partial | Bucket object lock configuration, object retention/legal-hold metadata, response headers, local delete guards, and governance retention bypass are supported. |
264+
| S3 Select | Partial | Minimal SelectObjectContent supports `SELECT * FROM S3Object` for CSV and JSON Lines with eventstream responses; filtering and projections are not implemented. |
265+
| Inventory / analytics | Partial | Bucket inventory and analytics configuration metadata endpoints are supported locally; CSV-format enabled inventory configs generate deterministic local reports under bucket storage. |
261266

262267
### GCS-Compatible JSON API
263268

0 commit comments

Comments
 (0)