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://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