singhpk234 opened a new pull request, #18015:
URL: https://github.com/apache/iceberg/pull/18015

   When a table or view is loaded through a view, the catalog can't currently 
tell. This sends the chain of referencing views to the REST server as the 
spec'd referenced-by query parameter, and forwards it to credential providers, 
so a server can scope authorization and credentials to how the data was reached.
   
   Builds on the LoadContext API from #15895. No spec changes needed — 
referenced-by is already defined.
   
   Flow: LoadContext.referencedBy([outer, …, inner]) → RESTCatalog → 
RESTSessionCatalog → referenced-by on the load request → the table's FileIO 
config → /v1/credentials.
   
   Notes for reviewers
   
   - The whole chain is a single referenced-by key, with entries 
comma-separated and ordered outermost first, per the spec. A comma inside a 
view name is encoded as %2C so the delimiter stays unambiguous.
   - The value is appended verbatim in HTTPRequest.requestUri instead of going 
through URIBuilder. Entries are percent-encoded and the delimiter is literal, 
and addParameter would double-encode % (%1F → %251F). Nothing on the classpath 
produces this format.
   - Entries are encoded like the parent parameter, using PercentCodec. The 
namespace separator is used as configured.
   - The ETag cache is untouched. Servers already owe distinct ETags for 
responses that differ by query parameter, so this needs no client-side handling.
   - Credential providers read the chain from rest-referenced-by, an internal 
property mirroring rest-scan-plan-id. It's added inside tableFileIO, so the 
server's config still decides whether the catalog FileIO can be reused.
   
   -----------------
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to