Hi Mayank, Thanks for the response. I have a few more questions.
1. Why not use a catalog that has default properties? That way you could re-use properties if the object exists in that catalog/database. --- If we are insistent on Connections. 1. I don't understand the distinction between a "CONNECTION" and the rest of the properties that may exist on a table. In your flip you have some properties on the Connection object and some on the table object. How would someone decide which object the property should exist under? 2. We're referencing a SQL object through a properties string. In SQL, you usually interact with SQL objects with SQL syntax, not a string property. Why not support something like this? Connectors already enforce what properties are required. This provides broader utility while solving for your use case - from my understanding. *Note: I much prefer catalogs for this case. Which is what we use internally to manage connection properties.* CREATE OR REPLACE CONNECTION mysql_customer_db WITH ( 'connector' = 'jdbc', 'jdbc.url' = 'jdbc:mysql://customer-db.example.com:3306/customerdb', 'jdbc.auth.type' = 'basic', 'jdbc.username' = 'readonly_user', 'jdbc.password' = 'secret123', 'jdbc.connection.ssl.enabled' = 'true' ); CREATE TABLE customers ( customer_id INT, name STRING, email STRING, country STRING, vip_status BOOLEAN, PRIMARY KEY (customer_id) NOT ENFORCED ) WITH CONNECTION mysql_customer_db OVERRIDE ( 'jdbc.table-name' = 'customers', 'jdbc.lookup.cache' = 'PARTIAL', 'jdbc.lookup.partial-cache.max-rows' = '10000', 'jdbc.lookup.partial-cache.expire-after-write' = '1h', 'jdbc.lookup.partial-cache.expire-after-access' = '10m' ); >From my perspective, this FLIP has a SQL smell. I would be interested to hear what folks like Timo think. Ryan van Huuksloot Sr. Production Engineer | Streaming Platform [image: Shopify] <https://www.shopify.com/?utm_medium=salessignatures&utm_source=hs_email> On Wed, May 28, 2025 at 10:23 AM Mayank Juneja <mayankjunej...@gmail.com> wrote: > Thanks all for the feedback on the FLIP. If there are no more discussions, > I will start voting on this tomorrow. > > On Wed, May 21, 2025 at 6:00 AM Mayank Juneja <mayankjunej...@gmail.com> > wrote: > > > 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 > > > > > -- > *Mayank Juneja* > Product Manager | Data Streaming and AI >