I do think the URI format for airflow connections also serves the purpose of conveying the intent, similar to how we URI in a browser to connect to a website. We use Ariflow Connection URI to connect to one of the services supported by Airflow. Due to this reason, I lean toward Jarek's proposal of adding "airflowconnection+" or just "airflow+" prefix to the schema, which should also solve its misinterpretation as a common URI. Also, I share the concerns regarding the breaking changes.
So I would like to vote -1. Thanks, Utkarsh Sharma On Sun, Nov 19, 2023 at 3:21 AM Bolke de Bruin <bdbr...@gmail.com> wrote: > So -1 on deprecating. I think we should do the opposite and go all in. The > suggestion by Jarek makes sense in this case, as it remains and is fully > standards compliant. The JSON representation isn't: it is our own crafted > format. > > My 2 cents, > > Bolke > > On Sat, 18 Nov 2023 at 22:15, Jarek Potiuk <ja...@potiuk.com> wrote: > > > I agree with Ash that it's much easier to define a lot of simpler > > connections this way. But it is also very confusing the way now how you > > can mix the "real" url with "airflow connection" URL. > > And Daniel is very right about the magnitude of breaking change. > > > > But possibly there is a way to eat cake and have it too. > > > > Answering Andrey's thinking: 1) I propose to deprecate it (raise warning) > > and even remove it from documentation > > But following Daniel's "pain": 2) possibly we should not even schedule > it > > for removal for Airflow 3 > > And answering Ash's concern: 3) we should likely figure a non-confusing > way > > how to define connection in "airlfow way". > > > > We could be following SQLlAlchemy approach - and define connection with > > "airflowconnection+" prefix in the schema > > > > AIRFLOW_CONN_MY_DB=airflowconnection+postgresql://user:pass@host > > > > I think this would remove all the confusion, keep an easy way of defining > > connection but also avoid "heavily" breaking change. > > > > J. > > > > > > > > On Sat, Nov 18, 2023 at 5:41 PM Daniel Standish > > <daniel.stand...@astronomer.io.invalid> wrote: > > > > > The thing that makes *me* hesitant to deprecate is the sheer magnitude > of > > > breaking it would bring (even though we're only talking about a > > > hypothetical 3.0 release), balanced against the actual pain it causes. > > > I.e. it's confusing to use, and takes up space in docs (when, if > removed, > > > we could just show one good way of doing things), but, it doesn't > create > > > that much of a maintenance burden anymore, and has certainly become > more > > > reliable and easy to use over time (e.g. since we added get_uri). > > > > > > > > > On Sat, Nov 18, 2023 at 3:30 AM Ash Berlin-Taylor <a...@apache.org> > > wrote: > > > > > > > -1 — for the simple case the URI format is perfect: > > > > > > > > AIRFLOW_CONN_MY_DB=postgresql://user:pass@host > > > > > > > > We can push JSON format for more complex cases, and/or limit URI to > > only > > > > the simple cases as long as we don’t remove it entirely. > > > > > > > > -ash > > > > > > > > > On 17 Nov 2023, at 22:44, Andrey Anshin <andrey.ans...@taragol.is> > > > > wrote: > > > > > > > > > > Greetings! > > > > > > > > > > I want to propose to deprecate Airflow Connection URI > representation > > > and > > > > > remove it in Airflow 3 in favor of the already existing > replacement - > > > > JSON > > > > > representation. > > > > > > > > > > In the past URI representation helped to add one of the awesome > > > features > > > > - > > > > > Alternative Secrets Backends: Environment Variables, Files or > > Provider > > > > > specific Backends. > > > > > > > > > > However I have a feeling that nowadays it have some sort of > > limitations > > > > due > > > > > to the parser, see: > > > > > - https://github.com/apache/airflow/issues/33442 > > > > > > > > > > Or miss interpretation that Airflow connection it is something more > > > than > > > > > just representation of Airflow Connection and it is a the > replacement > > > to > > > > > any other type of URIs such as: HTTP, Postgres URIs, SQLAlchemy > URI, > > > > Spark > > > > > URI and etc > > > > > > > > > > And attempt to fix it > > > > > - https://github.com/apache/airflow/issues/10913 > > > > > - https://github.com/apache/airflow/pull/27796 > > > > > - https://github.com/apache/airflow/pull/35712 > > > > > > > > > > And attempt to use it in DbApiHooks, for detail see: > > > > > - https://lists.apache.org/thread/8rhmz3qh30hvkondct4sfmgk4vd07mn5 > > > > > > > > > > In addition, complicated Connection in the URI format is not human > > > > > readable, requires additional decoding, and it is hard to create it > > > > > manually. > > > > > > > > > > The only one beneficial part of URI representation is ability to > > create > > > > it > > > > > programatically > > > > > > > > > > > > > > > https://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html#generating-a-connection-uri > > > > > , there is no such of method for generate JSON, but I don't see the > > > > problem > > > > > to create such of method in Connection object which return string > > > > > representation of JSON connection. > > > > > > > > > > So my suggestion would be pretty simple: > > > > > 1. Deprecate accept URI as parameter to the Connection object > > > > > 2. Deprecate uri property > > > > > 3. Replace get_uri by get_json > > > > > 4. Replace all URI examples in Providers Connections by JSON > > > alternatives > > > > > > > > > > > > > > > WDYT? Maybe I miss something and we should keep Airflow Connection > as > > > URI > > > > > in the future Airflow's major versions and support both ways to > > provide > > > > > connections as JSON and URI. > > > > > > > > > > ---- > > > > > Best Wishes > > > > > *Andrey Anshin* > > > > > > > > > > > > > > > > -- > > -- > Bolke de Bruin > bdbr...@gmail.com >