Thanks for the feedback in the doc! Yes, totally agree about refactoring to reduce the many conditional chains and "instanceof" calls. This could be a good opportunity to aim for that refactoring while adding these features.
On Fri, Jul 18, 2025 at 2:59 PM Dmitri Bourlatchkov <di...@apache.org> wrote: > Hi Dennis, > > Thanks for sharing this implementation plan. I left a couple of comments on > the doc. > > I'm not sure I have a clear picture on what exactly you're planning to do, > but it looks like a reasonable approach to me overall. > > I think refactoring AccessConfig to be a more prominent and self-sufficient > "service" inside Polaris (shared for different use cases) makes a lot of > sense. > > If possible, I wish the refactoring could reduce the amount of > if/instanceof code in Polaris. I do not have any specific suggestions ATM, > but I am willing to collaborate on PRs. To clarify: I mean > if/elseif/elseif/... sequences for different logic per sub-type. I hope > those could be converted to overridable (virtual) method calls (as an > example). > > Cheers, > Dmitri. > > On Thu, Jul 17, 2025 at 3:48 PM Dennis Huo <huoi...@gmail.com> wrote: > > > Hey all, > > > > I sketched out some design details for next-step features in Polaris > > Federation based on discussion with Pooja, Rulin, Harish, and Teja: > > > > > https://docs.google.com/document/d/19Vm0Uy-EyEYtgd2-bZpPICODOB3rYQJvHeqL1ODOOLc/edit?tab=t.0 > > > > At a high level, currently the REST-based Federation MVP basically only > > does two things: > > > > - Catalog-level RBAC > > - Simple passthrough to the remote REST Catalog > > > > Per the original federation proposal, the responsibilities of a catalog > > federation layer ultimately go beyond "simple passthrough", and > > higher-level features entail making the federation layer actually an > > "active" translation layer. > > > > The three features outlined in the document are closely interrelated and > > also serve as prerequisites for future plans: > > > > - Credential-vending using the Polaris StorageConfig > > - Polaris fetching the TableMetadata (and potentially other > > metadata/manifest files) - particularly applicable if the remote > > catalog is > > an implementation that only returns a metadata filename instead of > > providing inline TableMetadata JSON > > - Namespace/Table-level RBAC > > > > > > In a nutshell, the main technical work for these next steps is to > refactor > > the remote-catalog client to live under a Polaris "wrapper" (referred to > as > > the "decorating delegator catalog" in the document) which formalizes the > > responsibilities of this federation in terms of things like > > credential-vending, construction of FileIO via FileIOFactory, etc. > > > > Any input is welcome. > > > > Cheers, > > Dennis > > >