Thanks for resuming this discussion, Pooja!

I believe we need to consider both the server-side impact and the user-side
impact. I tend to think that user-side clarity is preferred in this context
since the user is the actor creating/updating catalog authentication
parameters in runtime.

In that regard, here's my take:

* NONE - this feels like the federated catalog will not perform any
authentication. However, it is not the intended mode of operation on the
server-side.

* ENVIRONMENT - This is too fuzzy / unclear to me (too)

* PROVIDER - This signals to the user that the Provider (Polaris service
owner) will perform some provider-specific authentication flow and the user
is expected to know what this flow will involve (through prior interactions
with the service provider). I believe this matches the proposed use case.
For more clarity we could add comments to the API YAML / javadoc / doc
pages. Alternative names: SERVICE_OWNER, SERVICE_PROVIDER, IMPLICIT.

* UNMANAGED - this signals to the user that authentication is not managed
at all and runtime behaviour is unclear.

Cheers,
Dmitri.

On Mon, Jun 30, 2025 at 7:53 PM Pooja Nilangekar <po...@apache.org> wrote:

> Hi all,
>
> I wanted to send out an update based on the PR discussion and get
> suggestions/opinions about the same.
>
> The primary goal of this new authentication type which tells Polaris not
> to expect any authentication tokens while federating to this external
> catalog; instead use whatever information you find in the
> environment/configuration files. It conveys the following:
>     1. Polaris does not store or manage the authentication parameters.
>     2. Polaris does not apply any authentication flow explicitly.
>
> Based on the discussion on the thread, here are a few names that could be
> considered along with the reasoning:
>     1. NONE - Explicit about the fact that no authentication
> token/parameter is provided for this federated catalog.
>     2. ENVIRONMENT - Expects Polaris to find the authentication mechanism
> in the environment/configuration file and plumb it through while making
> connections.
>     3. PROVIDER - The use and the polaris server may not share an
> environment, hence the authentication mechanism is based on the Polaris
> server (provider).
>     4. UNMANAGED - There may or may not be an authentication mechanism in
> place. Even if there were one, it is not manager by Polaris. If the
> environment or configuration file contains relevant authentication
> information, then Polaris passes it on to the connection library.
>
> Please let me know if you have any suggestions/preferences about the same.
>
> Thanks,
> Pooja
>
>
> On 2025/06/25 21:32:39 Pooja Nilangekar wrote:
> > Hi Dmitri,
> >
> > I agree with the "NONE" suggestion, I will send out the new version once
> PR 1931 <https://github.com/apache/polaris/pull/1931> is merged because
> as discussed on GH, we plan to use changes from 1931.
> >
> > Regarding the NULL_TYPE enum: In my experiences, it is always good to
> think about backward compatibility and "forward" compatibility. The
> NULL_TYPE provides a catch-all for any unrecognized value that Polaris
> finds in its persistence layer that it can't interpret. Let me know what
> you think.
> >
> > Thanks,
> > Pooja
> >
> > On 2025/06/24 17:35:22 Dmitri Bourlatchkov wrote:
> > > Thanks for starting this discussion, Pooja!
> > >
> > > The general idea of explicitly supporting unauthenticated connections
> > > sounds good to me.
> > >
> > > Adding a new auth type enum value to the Management REST API spec also
> > > sounds good to me. I believe it is a backward-compatible API change
> (still
> > > it was correct to start a dev list discussion since it is a REST API
> > > change).
> > >
> > > However, we need to be careful with naming the new enum value as the
> name
> > > will propagate through many future releases. Eric proposed "NONE" in
> the
> > > PR, and I'd prefer this name too.
> > >
> > > Regarding specific changes in the PR, as I commented in GH, the
> presence of
> > > the NULL_TYPE enum value in java code looks odd to me, as it does not
> map
> > > to any REST API parameters. I hope we can clarify that as part of this
> > > effort (perhaps as a separate PR). WDYT?
> > >
> > > Cheers,
> > > Dmitri.
> > >
> > > On Tue, Jun 24, 2025 at 1:18 PM Pooja Nilangekar <
> nilangekar.po...@gmail.com>
> > > wrote:
> > >
> > > > Hi all,
> > > >
> > > > As suggested in the PR 1925 <
> https://github.com/apache/polaris/pull/1925>,
> > > > I wanted to initiate a discussion for the NO_AUTH support. My
> apologies for
> > > > not starting this discussion sooner.
> > > >
> > > >
> > > > The primary goal is to enable Polaris to federate with catalogs that
> permit
> > > > authentication-less access, such as the Hadoop Catalog and Hive
> Metastore.
> > > > This is currently a significant gap. For instance, while we've merged
> > > > support for Hadoop federation (1466)
> > > > <https://github.com/apache/polaris/pull/1466>, it's not practically
> usable
> > > > because Hadoop requires either auth-less or Kerberos access—neither
> of
> > > > which Polaris currently supports.
> > > >
> > > > I propose we tackle this in two phases:
> > > >
> > > >    1. *Phase 1: Initial Support:* Implement the core functionality
> to allow
> > > >    auth-less connections to external catalogs.
> > > >    2. *Phase 2: Connection Type Validation (Future Enhancement):*
> Introduce
> > > >    a mapping between connection types and their allowed
> authentication
> > > >    methods. This would allow Polaris to validate and reject
> unsupported
> > > >    combinations upfront, providing a cleaner user experience.
> > > >
> > > > I believe it's safe to defer Phase 2 because any incorrect connection
> > > > attempt will still be rejected by the federated catalog's server.
> > > >
> > > > Please let me know your thoughts on this approach or if you can
> think of
> > > > any alternative ways to support auth-less connections.
> > > >
> > > > Thanks,
> > > > Pooja
> > > >
> > >
> >
>

Reply via email to