Skip to content

Add context-owned object storage and S3 provider with runnable example #211

Closed

Description

@philipgreat

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

  1. philipgreat commented on Oct 19, 2026

    @philipgreat
    ContributorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions