TruthIsNear opened a new issue, #32839:
URL: https://github.com/apache/airflow/issues/32839

   ### Apache Airflow version
   
   2.6.3
   
   ### What happened
   
   Versions: 2.6.2, 2.6.3, main
   
   PR [#30340](https://github.com/apache/airflow/pull/30340) introduced a bug 
that happens whenever a DAG gets updated or a new DAG is added
   
   **Potential fix:** Adding the code that was removed in PR 
[#30340](https://github.com/apache/airflow/pull/30340) back to 
`airflow/models/dagbag.py` fixes the issue. I've tried it on the current main 
branch using Breeze.
   
   
   ### What you think should happen instead
   
   Permissions set in Web UI stay whenever a DAG sync happens
   
   ### How to reproduce
   
   1. Download docker-compose.yaml:
   ```
   curl -LfO 
'https://airflow.apache.org/docs/apache-airflow/2.6.2/docker-compose.yaml'
   ```
   2. Create dirs and set the right Airflow user:
   ```
   mkdir -p ./dags ./logs ./plugins ./config && \
   echo -e "AIRFLOW_UID=$(id -u)" > .env
   ```
   4. Add `test_dag.py` to ./dags:
   ```
   import datetime
   
   import pendulum
   
   from airflow import DAG
   from airflow.operators.bash import BashOperator
   
   with DAG(
       dag_id="test",
       schedule="0 0 * * *",
       start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
       catchup=False,
       dagrun_timeout=datetime.timedelta(minutes=60),
   ) as dag:
       test = BashOperator(
           task_id="test",
           bash_command="echo 1",
       )
   if __name__ == "__main__":
       dag.test()
   ```
   5. Run docker compose: `docker compose up`
   6. Create role in Web UI: Security > List Roles > Add a new record:
        Name: test
        Permissions: `can read on DAG:test`
   7. Update `test_dag.py`: change `bash_command="echo 1"` to 
`bash_command="echo 2"`
   8. Check test role's permissions: `can read on DAG:test` will be removed
   
   Another option is to add a new dag instead of changing the existing one:
   6. Add another dag to ./dags, code doesn't matter
   7. Restart scheduler: `docker restart [scheduler container name]`
   9. Check test role's permissions: `can read on DAG:test` will be removed
   
   ### Operating System
   
   Ubuntu 22.04.1 LTS
   
   ### Versions of Apache Airflow Providers
   
   _No response_
   
   ### Deployment
   
   Docker-Compose
   
   ### Deployment details
   
   Docker 24.0.2
   
   ### Anything else
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
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]

Reply via email to