Bounded managed-object presigned read plan
Goal: delegate an immutable S3 object read without delegating storage credentials or proxying bytes through Lake services.
Task 1: Define the capability boundary
- Add a redacted
PresignedReadtype with explicit URL access and expiry. - Extend
ManagedObjectStorewith a default typed unsupported method. - Validate TTL in one shared path before any store-specific signing.
Task 2: Implement S3 signing
- Reuse the existing strict S3 URI and managed-prefix parser.
- Presign one
GetObjectrequest with the existing AWS client configuration. - Keep Range headers available to downstream HTTP clients and perform no GET.
Task 3: Prove security and integration
- Verify exact bucket/key/expiry signing with a no-network test client.
- Reject foreign buckets, sibling prefixes, query fragments, and TTL bounds.
- Prove Debug redaction and SDK delegation over an unreachable Query channel.
- Prove local/default stores return a typed unsupported error.
Task 4: Ship
- Document capability handling and stable-identity separation.
- Run spec lifecycle, strict clippy, full gate, independent review, and independent verification before merge.