bugraoz93 commented on issue #45661: URL: https://github.com/apache/airflow/issues/45661#issuecomment-2767555476
Hey @jx2lee @josix @Prab-27, @yunchipang, The CI/Breeze tooling is merged. The issues are unblocked now. Please remember to include unit tests. A couple of things to keep in mind while working on the issues, There are a couple of commands within the group commands (issue titles such as dags, pools, variables, etc.) that we cannot replicate through API. For example, `airflow dags test`. You can find a more fine-grained split in this PR (https://github.com/apache/airflow/pull/47538), which can help answer if this command should be possible with API. Also, don't hesitate to ask. This was embedded in the airflow-core and the decisions were towards having and releasing this as a separate distribution `airflowctl`. You will see that the current airflow-core/cli/commands are already flattened under `commands/` and we are going to populate remote commands under `airflowctl`. For the CLI approach, we are going to replicate a couple of things for now, such as how CLI commands are created, so you can check airflow-core/cli for the baseline as well. For example, the commands are created in `cli_config.py` as the same. For sure, there will be main differences where this distribution doesn't depend on airflow-core but a running instance of the API server in airflow-core. We are going to use Client operations to communicate with the API. If you think an operation is missing, please include it. Please install `keyrings.alt` into the reeze container for now if you are going to test it out. I am going to include this into devel-common soon (#48598). `pip install keyrings.alt` For now, we are going to use http://localhost:28080/auth/docs to generate our token. I am going to add an auth with a username and password soon (#47703). You should create your token and run the following to be able to use the client and communicate with the API. `airflowctl auth login --api-token=<JWT_TOKEN>` Then, you can execute your implemented commands to do development tests. For the tests, there is already a created test suite baseline to interact with the `test client`. You can check this commit ( https://github.com/bugraoz93/airflow/blob/4158467766c0f5bbab284613fbbdf59277467876/tests/cli/commands/remote_commands/test_connection_command.py ) where I integrated with the `connections` command earlier with the client. You can check out how to use test_client. One last small note: if you don't use airflowctl within the same breeze container with api server. Please include your api server URL to the auth command. `airflowctl auth login --api-token=<JWT_TOKEN> --api-url=<API_URL>` Please don't hesitate to ask any questions. Additionally, if you think your timeline does not match with doing these issues anymore, please let me know. Thanks! cc: @jason810496 @jedcunningham @potiuk -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
