Description
Capability
Implement the shared low-level Object Storage contract through UserContext, with a separate S3 provider using the official AWS SDK. This is a runtime feature, not an application-local wrapper.
Behavior
Streaming binary put/get, head/exists, idempotent delete, temporary signed read URL with expiry/disposition; explicit create-only vs replace. Typed errors distinguish missing, denied, conflict, timeout and unavailable. Credentials and signed URLs must not appear in diagnostic output. Clients are runtime-scoped; streams operation-scoped. Domain tenancy/authorization stays customizable above storage; no automatic bucket creation or database transaction promise.
Acceptance
- Public native contract and context access; optional S3 dependency does not enter core.
- Focused tests including 403/500, binary/empty data, bounded reads, conflicts and URI expiry/redaction.
- Runtime-owned executable example uses local source and verifies real S3-compatible CRUD plus fetching presigned URL over HTTP.
- Retain repeat-run evidence and exact SDK/source versions.
- Update README and example gate; no release/merge requested.
Five other runtime languages remain planned. Shared tracking: https://github.com/teaql/teaql-conformance/issues/122.
Activity
philipgreat commentedon Oct 19, 2026
Accepted at the requested local-source boundary. Object storage PR #213 is merged; current main 7f5d5ba passed the complete example suite twice, live loopback S3 CRUD and signed-URL HTTP retrieval, native packaging, and an isolated immutable internal Maven consumer. Exact report: https://github.com/teaql/teaql-conformance/blob/main/evidence/2026-10-19-object-storage-java-rust-current-main-regate/README.md . The optional S3 provider pins AWS SDK 2.55.16. This closes Java #211 only: no signed public package, generator adoption, AWS-hosted S3 certification, or production credential policy is claimed.