Hi Ryan,

Thanks for the feedback.

Just a quick clarification—DESCRIBE TABLE in Flink does *not* show table
properties; I believe you might be thinking of SHOW CREATE TABLE, which
does include properties as part of the DDL output. The goal of SHOW CREATE
TABLE is to provide a fully reproducible statement, so if secrets were
hidden or omitted, that reproducibility would be lost. By referencing a
named CONNECTION, we avoid this issue—users can reconstruct the table DDL
without exposing secrets directly, since the sensitive information lives in
the reusable connection object.

Regarding the naming: CONNECTION is not part of the SQL standard, but
neither are alternatives like SECRET or INTEGRATION. We opted for CONNECTION
because it conveys intent clearly and aligns with common terminology in
data platforms, even if it's not a standard keyword.

That said, we're definitely open to refining the naming based on broader
community input. Appreciate you raising these points and helping move the
conversation forward.

Best,
Mayank

On Fri, May 16, 2025 at 7:15 PM Ryan van Huuksloot
<ryan.vanhuuksl...@shopify.com.invalid> wrote:

> Hi Mayank,
>
> Overall I think the idea of having shared properties (secrets or otherwise)
> at the database layer is really interesting/useful. Even outside of the ML
> scope.
>
> However, I have a concern:
> When I describe a table, I would not like it if all properties did not
> appear in the returned results of the describe. It adds a hidden layer of
> properties.
> CONNECTION is not a standard SQL syntax (at least that I am aware of,
> please correct me if I am wrong) and it adds a FlinkSQL specific layer of
> complexity.
>
> I like the idea of Grants to hide secrets rather than nesting them in a
> Connection object. The Connection object could still be described.
> Something akin to Snowflake's Secrets (
> https://docs.snowflake.com/en/sql-reference/sql/show-secrets) that can be
> referenced within table properties and could be obfuscated during a
> describe.
>
> Then if we hide secrets, we can figure out a different name than Connection
> for common properties and they can be shown as part of the table spec.
>
> Thoughts?
>
> Ryan van Huuksloot
> Sr. Production Engineer | Streaming Platform
> [image: Shopify]
> <https://www.shopify.com/?utm_medium=salessignatures&utm_source=hs_email>
>
>
> On Fri, May 16, 2025 at 1:35 PM Yash Anand <yan...@confluent.io.invalid>
> wrote:
>
> > Hi Mayank,
> >
> > Thanks for the initiative! I think this functionality would be a really
> > great addition to Flink.
> >
> > +1 for the proposal.
> >
> > Thanks,
> > Yash
> >
> > On Tue, May 6, 2025 at 9:36 AM Mayank Juneja <mayankjunej...@gmail.com>
> > wrote:
> >
> > > Hi Ferenc,
> > >
> > > Thanks for your question! We agree that a CONNECTION could logically
> be a
> > > catalog-level resource, especially since it’s intended to be reused
> > across
> > > multiple tables. However, we think there’s value in defining it at the
> > > database level to introduce a layer of isolation and scoping.
> > >
> > > This is particularly useful in shared or multi-tenant environments
> where
> > > different databases within the same catalog might need to connect to
> > > different external systems or use distinct credentials.
> > >
> > > That said, we’re open to revisiting this if there's strong consensus
> > around
> > > catalog-level scoping. Appreciate the feedback!
> > >
> > > Regards,
> > > Mayank
> > >
> > > On Fri, May 2, 2025 at 12:12 AM Ferenc Csaky
> <ferenc.cs...@pm.me.invalid
> > >
> > > wrote:
> > >
> > > > Hi Mayank,
> > > >
> > > > Thank you for starting the discussion! In general, I think such
> > > > functionality
> > > > would be a really great addition to Flink.
> > > >
> > > > Could you pls. elaborate a bit more one what is the reason of
> defining
> > a
> > > > `connection` resource on the database level instead of the catalog
> > level?
> > > > If I think about `JdbcCatalog`, or `HiveCatalog`, the catalog is in
> > > 1-to-1
> > > > mapping with an RDBMS, or a HiveMetastore, so my initial thinking is
> > > that a
> > > > `connection` seems more like a catalog level resource.
> > > >
> > > > WDYT?
> > > >
> > > > Thanks,
> > > > Ferenc
> > > >
> > > >
> > > >
> > > > On Tuesday, April 29th, 2025 at 17:08, Mayank Juneja <
> > > > mayankjunej...@gmail.com> wrote:
> > > >
> > > > >
> > > > >
> > > > > Hi all,
> > > > >
> > > > > I would like to open up for discussion a new FLIP-529 [1].
> > > > >
> > > > > Motivation:
> > > > > Currently, Flink SQL handles external connectivity by defining
> > > endpoints
> > > > > and credentials in table configuration. This approach prevents
> > > > reusability
> > > > > of these connections and makes table definition less secure by
> > exposing
> > > > > sensitive information.
> > > > > We propose the introduction of a new "connection" resource in
> Flink.
> > > This
> > > > > will be a pluggable resource configured with a remote endpoint and
> > > > > associated access key. Once defined, connections can be reused
> across
> > > > table
> > > > > definitions, and eventually for model definition (as discussed in
> > > > FLIP-437)
> > > > > for inference, enabling seamless and secure integration with
> external
> > > > > systems.
> > > > > The connection resource will provide a new, optional way to manage
> > > > external
> > > > > connectivity in Flink. Existing methods for table definitions will
> > > remain
> > > > > unchanged.
> > > > >
> > > > > [1] https://cwiki.apache.org/confluence/x/cYroF
> > > > >
> > > > > Best Regards,
> > > > > Mayank Juneja
> > > >
> > >
> > >
> > > --
> > > *Mayank Juneja*
> > > Product Manager | Data Streaming and AI
> > >
> >
>


-- 
*Mayank Juneja*
Product Manager | Data Streaming and AI

Reply via email to