BTW, I've found that this this top already discussed in the past, like more that 3 years ago
Github Issue https://github.com/apache/airflow/issues/10552 (accidently found when set sorting on issues as Least recently updated) Dev List: https://lists.apache.org/thread/jdz9l7bsnsw5c3t27dxfrx5pd4wvjlxt On Tue, 20 Feb 2024 at 00:14, Andrey Anshin <andrey.ans...@taragol.is> wrote: > Just for clarification, the proposal is about depreciation or even removal > of something obsolete. If we could do some improvement at the same moment > it would be nice, if not also nice, that mean no additional work > > > > > > On Mon, 19 Feb 2024 at 22:55, Scheffler Jens (XC-AS/EAE-ADA-T) > <jens.scheff...@de.bosch.com.invalid> wrote: > >> I do not habe a strong opinion on the topic but I am mostly with Jarek. >> >> The API must be multi tenant and mask all internal DB access - where we >> are close-by with AIP-44 and the other efforts of multi tenancy (missing a >> list of all planned efforts, would be cool to have a mata AIP keeping the >> completed and planned individual efforts) >> >> But in contrast I see the CLI only partly being a tool on tenant but most >> parts on the internal perimeter admin side. Might be a bit „gray zone“. If >> we habe overlap to REST API (do we have a list of rhings like trigger sag >> or so?) we should remove and consolidate redundancy to API logic. But there >> is for sure some „black magic“ which must not be migrated and needs native >> DB access. E.g. resetting DB or triggering DB migration. For REST API as >> well as internal API you need a web endpoint incl. minimal authentication. >> Some base admin tooling is needed for bootstrap and base admin. Like >> creating the first admin user is impossible if no user. >> >> So before a lengthy discussion I‘d propose to document details and make >> an AIP to discuss, that might be easier then a reply-to-all thred to define >> the scope of cleanup. Also and especially for API cöient we need to check >> for impact if breaking changes appear. >> >> Jens >> >> Sent from Outlook for iOS<https://aka.ms/o0ukef> >> ________________________________ >> From: Andrey Anshin <andrey.ans...@taragol.is> >> Sent: Monday, February 19, 2024 3:54 PM >> To: dev@airflow.apache.org <dev@airflow.apache.org> >> Subject: Re: [DISCUSS] Deprecate cli options in Airflow Configurations >> and airflow.api.client >> >> >Actually - it's not at all part of AIP-44 :). Airflow CLI was >> (consciously and deliberately) not part of it. >> >> Then better to check whether or not it accidentally uses it, add to my >> checklist >> >> > So I would be very much for removing that whole part - even in Airflow >> 2.9. >> >> +1 for removal if it won't break our promises >> >> >> >> >> On Mon, 19 Feb 2024 at 16:01, Jarek Potiuk <ja...@potiuk.com> wrote: >> >> > Actually - it's not at all part of AIP-44 :). Airflow CLI was >> (consciously >> > and deliberately) not part of it. >> > >> > CLI is specifically treated as a "local" tool that is executed inside >> the >> > security perimeter where direct database access is needed (i.e. it >> falls in >> > the same category as 'scheduler', 'webserver`, `internal-api` component >> - >> > all of which stil has direct DB access and AIP-44 does not change that. >> > AIP-44 is specifically about Worker, Triggerrer and Dag File Processor >> > direct DB access only. >> > >> > I think if we want to allow CLI to be used without direct DB access, a >> > better solution would be to make it use the public REST API of ours, not >> > the internal api that is supposed to be used by worker/triggerer/dag >> file >> > processor. There will be different authentication and authorisation >> methods >> > than the ones that airflow CLI would - potentially use. I think if we >> want >> > to make airflow CLI use authorised/remote access - that needs a separate >> > AIP - where we define actors that should be able to use the CLI, >> > authorisation mechanisms etc. (could be the same as in the REST API, >> but it >> > needs to be clarified - currently the authorisation of CLI is based >> > exclusively on having access to the system/UNIX user that airflow is run >> > with and where DB configuration to access DB is present). >> > >> > But coming back to the main subject - yes, I think that old API is >> > experimental, and for a long time we have good replacement for it (i.e. >> the >> > official REST API that has been battle-tested and is pretty >> feature-full), >> > so It is a good idea to remove the old API (and CLI configuration >> option). >> > It's not likely widely used, and it's also had experimental status for a >> > very long time (since the beginning of Airflow 2.0) - so similarly as >> with >> > the MSSQL support, we are free to decide to remove it and still keep our >> > SemVer promises - it never made it on the Public Interface of Airflow >> > >> > >> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fairflow.apache.org%2Fdocs%2Fapache-airflow%2Fstable%2Fpublic-airflow-interface.html&data=05%7C02%7CJens.Scheffler%40de.bosch.com%7C7183c980c1634387b9c808dc315ab031%7C0ae51e1907c84e4bbb6d648ee58410f4%7C0%7C0%7C638439512771163568%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=hJSW%2FH7qQHQIH0YFHjxAoHWBNSejl2yUBpMx1Q9PQAo%3D&reserved=0 >> < >> https://airflow.apache.org/docs/apache-airflow/stable/public-airflow-interface.html >> > >> > - and since the very beginning we did not have an intention for it to be >> > public API. >> > >> > So I would be very much for removing that whole part - even in Airflow >> 2.9. >> > >> > J. >> > >> > On Mon, Feb 19, 2024 at 11:53 AM Andrey Anshin < >> andrey.ans...@taragol.is> >> > wrote: >> > >> > > > the underlying question is what are we going to do with direct DB >> > access >> > > from the cli >> > > >> > > Good point! >> > > I guess it should be covered by AIP-44, so if there are no methods >> which >> > > implement these actions by AIP-44 it is better to create it instead of >> > just >> > > moving old code. >> > > >> > > >> > > >> > > On Mon, 19 Feb 2024 at 14:35, Bolke de Bruin <bdbr...@gmail.com> >> wrote: >> > > >> > > > with regards to the api client: the intention was indeed to remove >> > direct >> > > > access to the DB, which I think is still a valid thing to do. In my >> > > opinion >> > > > the underlying question is what are we going to do with direct DB >> > access >> > > > from the cli. Is that something we want to keep or do we want a >> > different >> > > > design? Just dropping the implementation seems a bit 'lazy' to me, >> > while >> > > I >> > > > understand that it hasn't been touched in a while. >> > > > >> > > > B. >> > > > >> > > > On Sun, 18 Feb 2024 at 12:17, Andrey Anshin < >> andrey.ans...@taragol.is> >> > > > wrote: >> > > > >> > > > > Greetings guys! >> > > > > >> > > > > I want to start a discussion about deprecation cli configuration >> > > options >> > > > > >> > > > > >> > > > >> > > >> > >> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fairflow.apache.org%2Fdocs%2Fapache-airflow%2Fstable%2Fconfigurations-ref.html%23cli&data=05%7C02%7CJens.Scheffler%40de.bosch.com%7C7183c980c1634387b9c808dc315ab031%7C0ae51e1907c84e4bbb6d648ee58410f4%7C0%7C0%7C638439512771174117%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=dQ3MPz8rgbWo%2FIezHpvAuJ4fxDAe%2FT9hx3WRloR3ZRQ%3D&reserved=0 >> < >> https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html#cli >> > >> > > > > as well as `airflow/api/client` in upcoming minor/feature release >> of >> > > > > Airflow (2.9 or 2.10 depends on). >> > > > > >> > > > > This options control how end users retrieve information from the >> > > > Database, >> > > > > there is two kind provided classes >> > > > `airflow.api.client.api_client.Client` - >> > > > > direct access to DB, `airflow.api.client.json_client.Client` - >> access >> > > > > through Experimental API >> > > > > >> > > > > However internal clients cover only this cli commands: >> > > > > - trigger_dag: airflow dags trigger >> > > > > - delete_dag: airflow dags delete >> > > > > - get_pool: airflow pool get >> > > > > - get_pools: airflow pool list and airflow pool export >> > > > > - create_pool: airflow pool set and airflow pool import >> > > > > - pool_delete: airflow pool delete >> > > > > - get_lineage: doesn't use anywhere in CLI and Airflow codebase >> > > > > >> > > > > As a result, implementation of CLI spread across different >> modules / >> > > > > subpackages and in some cases could use experimental API. Seems >> like >> > it >> > > > is >> > > > > an abandoned implementation which comes from pre Airflow 2 and we >> > have >> > > to >> > > > > support it nowadays. >> > > > > >> > > > > *My proposal*: >> > > > > 1. Copy implementation from >> `airflow.api.client.local_client.Client` >> > > into >> > > > > the the code from appropriate modules into the >> airflow/cli/commands >> > > > > 2. Set default value for `[cli] api_client` to None. In case if >> > values >> > > > set >> > > > > in airflow.cfg (e.g. from the previous version of Airflow), raise >> > > future >> > > > > warning and update it to None if it set to >> > > > > `airflow.api.client.local_client.Client` in other cases do not >> touch >> > > > > 3. Set default value for `[cli] endpoint_url` to None. In case if >> > > values >> > > > > set in airflow.cfg raise future warning, and do not update value. >> > > > > 4. `airflow.api.client.get_current_api_client` should able to >> return >> > > > None, >> > > > > if it return None, then it should use implementation from the >> > > > > airflow/cli/commands, otherwise use deprecated client, with >> raising >> > > > > RemovedInAirflow3Warning >> > > > > >> > > > > WDYT? >> > > > > >> > > > >> > > > >> > > > -- >> > > > >> > > > -- >> > > > Bolke de Bruin >> > > > bdbr...@gmail.com >> > > > >> > > >> > >> >