You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2020/04/07 09:02:35 UTC

[GitHub] [airflow] mik-laj opened a new issue #8171: Handle missing object in webserver

mik-laj opened a new issue #8171: Handle missing object in webserver
URL: https://github.com/apache/airflow/issues/8171
 
 
   **Description**
   
   Hi. The webserver code is very optimistic and negative paths are not checked.
   For example:
   We have following code:
   ```python
           dag = dagbag.get_dag(dag_id)
   
           task = copy.copy(dag.get_task(task_id))
   ```
   source: https://github.com/apache/airflow/blob/0dafdd0b9d635b4513b1413007337b19c3d96b17/airflow/www/views.py#L595-L597
   
   It is not checked here whether the DAG object exists.  Condition `dag != None` should be added and when it is met, error 404 should be reported.
   
   **Use case / motivation**
   
   Improving the experience of using the webserver and reducing the number of nukulars. 
   
   I hope that a thorough review of the entire web server code and completing the tests with negative paths will improve the overall health of the webserver.
   
   If this is done by the Polidea team, it will be an opportunity to get to know the webserver better and finding other health problems.  My team has not focused on the webserver yet.
   
   **Related Issues**
   
   N/A

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [airflow] rcjsuen commented on issue #8171: Handle missing object in webserver

Posted by GitBox <gi...@apache.org>.
rcjsuen commented on issue #8171: Handle missing object in webserver
URL: https://github.com/apache/airflow/issues/8171#issuecomment-612843205
 
 
   @mik-laj Hi, what is your expected fix for this issue? Are you looking for something like this?
   ```
   if dag is None:
       response = jsonify(...)
       response.status_code = 404
       return response
   ```
   Regarding tests, is a URL like `rendered?dag_id=non_existent_dag_id` sufficient in `tests/www/test_views.py`?

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [airflow] mik-laj commented on issue #8171: Handle missing object in webserver

Posted by GitBox <gi...@apache.org>.
mik-laj commented on issue #8171: Handle missing object in webserver
URL: https://github.com/apache/airflow/issues/8171#issuecomment-612939805
 
 
   It should be something similar. The most important thing is that no mushrooms appear, but user-readable error messages.
   
   For example:
   When you enter following address:
   http://localhost:28080/tries?dag_id=example_automl_text_sentiment2&days=30
   http://localhost:28080/landing_times?dag_id=example_automl_text_sentiment2&days=30
   http://localhost:28080/gantt?dag_id=example_automl_text_sentiment2
   http://localhost:28080/dag_details?dag_id=example_automl_text_sentiment2
   http://localhost:28080/code?dag_id=example_automl_text_sentiment2
   you will see error screen similar:
   ![Screenshot 2020-04-13 at 17 06 35](https://user-images.githubusercontent.com/12058428/79131646-362bb300-7da9-11ea-8c68-67e0534226a5.png)
   
   However, if you go to the link:
   http://localhost:28080/tree?dag_id=example_automl_text_cls2
   you will see following error message:
   ![Screenshot 2020-04-13 at 17 08 08](https://user-images.githubusercontent.com/12058428/79131740-64a98e00-7da9-11ea-8578-95c001e87b6e.png)
   
   This should be standardized and a clear message should always be displayed to the user.
   
   
   
   

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [airflow] mik-laj commented on issue #8171: Handle missing object in webserver

Posted by GitBox <gi...@apache.org>.
mik-laj commented on issue #8171: Handle missing object in webserver
URL: https://github.com/apache/airflow/issues/8171#issuecomment-613733028
 
 
   This is a user experience problem, but it is also a security problem.  If we see similar messages, it means that we haven't verified enough input data. Data validation is the basic method of protecting against other serious attacks from the "Injection" family e.g. SQL Injection. Input validation should happen as early as possible in the data flow, preferably as soon as the data is received from the client.  However, we do not have any validation for many parameters.
   ![image](https://user-images.githubusercontent.com/12058428/79283676-d58b9b80-7eb8-11ea-8514-c3abd89e3416.png)
   More information:
   https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [airflow] mik-laj edited a comment on issue #8171: Handle missing object in webserver

Posted by GitBox <gi...@apache.org>.
mik-laj edited a comment on issue #8171: Handle missing object in webserver
URL: https://github.com/apache/airflow/issues/8171#issuecomment-612943432
 
 
   For clarity. This contribution does not have to solve all problems in one PR. I will be happy even if one problem is solved. And another person will be able to create more changes and solve more problems.
   
   <details>
   <summary>List of all routes
   </summary>
   
   ```
   Endpoint                                 Methods    Rule
   ---------------------------------------  ---------  ----------------------------------------------------------------------------------------------
   Airflow.blocked                          POST       /blocked
   Airflow.clear                            POST       /clear
   Airflow.code                             GET        /code
   Airflow.dag_details                      GET        /dag_details
   Airflow.dag_stats                        POST       /dag_stats
   Airflow.dagrun_clear                     POST       /dagrun_clear
   Airflow.dagrun_failed                    POST       /dagrun_failed
   Airflow.dagrun_success                   POST       /dagrun_success
   Airflow.delete                           POST       /delete
   Airflow.duration                         GET        /duration
   Airflow.elasticsearch                    GET        /elasticsearch
   Airflow.extra_links                      GET        /extra_links
   Airflow.failed                           POST       /failed
   Airflow.gantt                            GET        /gantt
   Airflow.get_logs_with_metadata           GET        /get_logs_with_metadata
   Airflow.graph                            GET        /graph
   Airflow.health                           GET        /health
   Airflow.index                            GET        /home
   Airflow.landing_times                    GET        /landing_times
   Airflow.last_dagruns                     POST       /last_dagruns
   Airflow.log                              GET        /log
   Airflow.paused                           POST       /paused
   Airflow.refresh                          POST       /refresh
   Airflow.rendered                         GET        /rendered
   Airflow.run                              POST       /run
   Airflow.success                          POST       /success
   Airflow.task                             GET        /task
   Airflow.task_instances                   GET        /object/task_instances
   Airflow.task_stats                       POST       /task_stats
   Airflow.tree                             GET        /tree
   Airflow.tries                            GET        /tries
   Airflow.trigger                          GET, POST  /trigger
   Airflow.xcom                             GET        /xcom
   AuthDBView.login                         GET, POST  /login/
   AuthDBView.logout                        GET        /logout/
   ConfigurationView.conf                   GET        /configuration
   ConnectionModelView.action               GET, POST  /connection/action/<string:name>/<pk>
   ConnectionModelView.action_post          POST       /connection/action_post
   ConnectionModelView.add                  GET, POST  /connection/add
   ConnectionModelView.api                  GET        /connection/api
   ConnectionModelView.api_column_add       GET        /connection/api/column/add/<col_name>
   ConnectionModelView.api_column_edit      GET        /connection/api/column/edit/<col_name>
   ConnectionModelView.api_create           POST       /connection/api/create
   ConnectionModelView.api_delete           DELETE     /connection/api/delete/<pk>
   ConnectionModelView.api_get              GET        /connection/api/get/<pk>
   ConnectionModelView.api_read             GET        /connection/api/read
   ConnectionModelView.api_readvalues       GET        /connection/api/readvalues
   ConnectionModelView.api_update           PUT        /connection/api/update/<pk>
   ConnectionModelView.delete               GET, POST  /connection/delete/<pk>
   ConnectionModelView.download             GET        /connection/download/<string:filename>
   ConnectionModelView.edit                 GET, POST  /connection/edit/<pk>
   ConnectionModelView.list                 GET        /connection/list/
   ConnectionModelView.show                 GET        /connection/show/<pk>
   DagModelView.action                      GET, POST  /dagmodel/action/<string:name>/<pk>
   DagModelView.action_post                 POST       /dagmodel/action_post
   DagModelView.add                         GET, POST  /dagmodel/add
   DagModelView.api                         GET        /dagmodel/api
   DagModelView.api_column_add              GET        /dagmodel/api/column/add/<col_name>
   DagModelView.api_column_edit             GET        /dagmodel/api/column/edit/<col_name>
   DagModelView.api_create                  POST       /dagmodel/api/create
   DagModelView.api_delete                  DELETE     /dagmodel/api/delete/<pk>
   DagModelView.api_get                     GET        /dagmodel/api/get/<pk>
   DagModelView.api_read                    GET        /dagmodel/api/read
   DagModelView.api_readvalues              GET        /dagmodel/api/readvalues
   DagModelView.api_update                  PUT        /dagmodel/api/update/<pk>
   DagModelView.autocomplete                GET        /dagmodel/autocomplete
   DagModelView.delete                      GET, POST  /dagmodel/delete/<pk>
   DagModelView.download                    GET        /dagmodel/download/<string:filename>
   DagModelView.edit                        GET, POST  /dagmodel/edit/<pk>
   DagModelView.list                        GET        /dagmodel/list/
   DagModelView.show                        GET        /dagmodel/show/<pk>
   DagRunModelView.action                   GET, POST  /dagrun/action/<string:name>/<pk>
   DagRunModelView.action_post              POST       /dagrun/action_post
   DagRunModelView.add                      GET, POST  /dagrun/add
   DagRunModelView.api                      GET        /dagrun/api
   DagRunModelView.api_column_add           GET        /dagrun/api/column/add/<col_name>
   DagRunModelView.api_column_edit          GET        /dagrun/api/column/edit/<col_name>
   DagRunModelView.api_create               POST       /dagrun/api/create
   DagRunModelView.api_delete               DELETE     /dagrun/api/delete/<pk>
   DagRunModelView.api_get                  GET        /dagrun/api/get/<pk>
   DagRunModelView.api_read                 GET        /dagrun/api/read
   DagRunModelView.api_readvalues           GET        /dagrun/api/readvalues
   DagRunModelView.api_update               PUT        /dagrun/api/update/<pk>
   DagRunModelView.delete                   GET, POST  /dagrun/delete/<pk>
   DagRunModelView.download                 GET        /dagrun/download/<string:filename>
   DagRunModelView.edit                     GET, POST  /dagrun/edit/<pk>
   DagRunModelView.list                     GET        /dagrun/list/
   DagRunModelView.show                     GET        /dagrun/show/<pk>
   IndexView.index                          GET        /
   JobModelView.action                      GET, POST  /job/action/<string:name>/<pk>
   JobModelView.action_post                 POST       /job/action_post
   JobModelView.add                         GET, POST  /job/add
   JobModelView.api                         GET        /job/api
   JobModelView.api_column_add              GET        /job/api/column/add/<col_name>
   JobModelView.api_column_edit             GET        /job/api/column/edit/<col_name>
   JobModelView.api_create                  POST       /job/api/create
   JobModelView.api_delete                  DELETE     /job/api/delete/<pk>
   JobModelView.api_get                     GET        /job/api/get/<pk>
   JobModelView.api_read                    GET        /job/api/read
   JobModelView.api_readvalues              GET        /job/api/readvalues
   JobModelView.api_update                  PUT        /job/api/update/<pk>
   JobModelView.delete                      GET, POST  /job/delete/<pk>
   JobModelView.download                    GET        /job/download/<string:filename>
   JobModelView.edit                        GET, POST  /job/edit/<pk>
   JobModelView.list                        GET        /job/list/
   JobModelView.show                        GET        /job/show/<pk>
   LocaleView.index                         GET        /lang/<string:locale>
   LogModelView.action                      GET, POST  /log/action/<string:name>/<pk>
   LogModelView.action_post                 POST       /log/action_post
   LogModelView.add                         GET, POST  /log/add
   LogModelView.api                         GET        /log/api
   LogModelView.api_column_add              GET        /log/api/column/add/<col_name>
   LogModelView.api_column_edit             GET        /log/api/column/edit/<col_name>
   LogModelView.api_create                  POST       /log/api/create
   LogModelView.api_delete                  DELETE     /log/api/delete/<pk>
   LogModelView.api_get                     GET        /log/api/get/<pk>
   LogModelView.api_read                    GET        /log/api/read
   LogModelView.api_readvalues              GET        /log/api/readvalues
   LogModelView.api_update                  PUT        /log/api/update/<pk>
   LogModelView.delete                      GET, POST  /log/delete/<pk>
   LogModelView.download                    GET        /log/download/<string:filename>
   LogModelView.edit                        GET, POST  /log/edit/<pk>
   LogModelView.list                        GET        /log/list/
   LogModelView.show                        GET        /log/show/<pk>
   MenuApi.get_menu_data                    GET        /api/v1/menu/
   PermissionModelView.action               GET, POST  /permissions/action/<string:name>/<pk>
   PermissionModelView.action_post          POST       /permissions/action_post
   PermissionModelView.add                  GET, POST  /permissions/add
   PermissionModelView.api                  GET        /permissions/api
   PermissionModelView.api_column_add       GET        /permissions/api/column/add/<col_name>
   PermissionModelView.api_column_edit      GET        /permissions/api/column/edit/<col_name>
   PermissionModelView.api_create           POST       /permissions/api/create
   PermissionModelView.api_delete           DELETE     /permissions/api/delete/<pk>
   PermissionModelView.api_get              GET        /permissions/api/get/<pk>
   PermissionModelView.api_read             GET        /permissions/api/read
   PermissionModelView.api_readvalues       GET        /permissions/api/readvalues
   PermissionModelView.api_update           PUT        /permissions/api/update/<pk>
   PermissionModelView.delete               GET, POST  /permissions/delete/<pk>
   PermissionModelView.download             GET        /permissions/download/<string:filename>
   PermissionModelView.edit                 GET, POST  /permissions/edit/<pk>
   PermissionModelView.list                 GET        /permissions/list/
   PermissionModelView.show                 GET        /permissions/show/<pk>
   PermissionViewModelView.action           GET, POST  /permissionviews/action/<string:name>/<pk>
   PermissionViewModelView.action_post      POST       /permissionviews/action_post
   PermissionViewModelView.add              GET, POST  /permissionviews/add
   PermissionViewModelView.api              GET        /permissionviews/api
   PermissionViewModelView.api_column_add   GET        /permissionviews/api/column/add/<col_name>
   PermissionViewModelView.api_column_edit  GET        /permissionviews/api/column/edit/<col_name>
   PermissionViewModelView.api_create       POST       /permissionviews/api/create
   PermissionViewModelView.api_delete       DELETE     /permissionviews/api/delete/<pk>
   PermissionViewModelView.api_get          GET        /permissionviews/api/get/<pk>
   PermissionViewModelView.api_read         GET        /permissionviews/api/read
   PermissionViewModelView.api_readvalues   GET        /permissionviews/api/readvalues
   PermissionViewModelView.api_update       PUT        /permissionviews/api/update/<pk>
   PermissionViewModelView.delete           GET, POST  /permissionviews/delete/<pk>
   PermissionViewModelView.download         GET        /permissionviews/download/<string:filename>
   PermissionViewModelView.edit             GET, POST  /permissionviews/edit/<pk>
   PermissionViewModelView.list             GET        /permissionviews/list/
   PermissionViewModelView.show             GET        /permissionviews/show/<pk>
   PoolModelView.action                     GET, POST  /pool/action/<string:name>/<pk>
   PoolModelView.action_post                POST       /pool/action_post
   PoolModelView.add                        GET, POST  /pool/add
   PoolModelView.api                        GET        /pool/api
   PoolModelView.api_column_add             GET        /pool/api/column/add/<col_name>
   PoolModelView.api_column_edit            GET        /pool/api/column/edit/<col_name>
   PoolModelView.api_create                 POST       /pool/api/create
   PoolModelView.api_delete                 DELETE     /pool/api/delete/<pk>
   PoolModelView.api_get                    GET        /pool/api/get/<pk>
   PoolModelView.api_read                   GET        /pool/api/read
   PoolModelView.api_readvalues             GET        /pool/api/readvalues
   PoolModelView.api_update                 PUT        /pool/api/update/<pk>
   PoolModelView.delete                     GET, POST  /pool/delete/<pk>
   PoolModelView.download                   GET        /pool/download/<string:filename>
   PoolModelView.edit                       GET, POST  /pool/edit/<pk>
   PoolModelView.list                       GET        /pool/list/
   PoolModelView.show                       GET        /pool/show/<pk>
   ResetMyPasswordView.this_form_get        GET        /resetmypassword/form
   ResetMyPasswordView.this_form_post       POST       /resetmypassword/form
   ResetPasswordView.this_form_get          GET        /resetpassword/form
   ResetPasswordView.this_form_post         POST       /resetpassword/form
   RoleModelView.action                     GET, POST  /roles/action/<string:name>/<pk>
   RoleModelView.action_post                POST       /roles/action_post
   RoleModelView.add                        GET, POST  /roles/add
   RoleModelView.api                        GET        /roles/api
   RoleModelView.api_column_add             GET        /roles/api/column/add/<col_name>
   RoleModelView.api_column_edit            GET        /roles/api/column/edit/<col_name>
   RoleModelView.api_create                 POST       /roles/api/create
   RoleModelView.api_delete                 DELETE     /roles/api/delete/<pk>
   RoleModelView.api_get                    GET        /roles/api/get/<pk>
   RoleModelView.api_read                   GET        /roles/api/read
   RoleModelView.api_readvalues             GET        /roles/api/readvalues
   RoleModelView.api_update                 PUT        /roles/api/update/<pk>
   RoleModelView.delete                     GET, POST  /roles/delete/<pk>
   RoleModelView.download                   GET        /roles/download/<string:filename>
   RoleModelView.edit                       GET, POST  /roles/edit/<pk>
   RoleModelView.list                       GET        /roles/list/
   RoleModelView.show                       GET        /roles/show/<pk>
   SecurityApi.login                        POST       /api/v1/security/login
   SecurityApi.refresh                      POST       /api/v1/security/refresh
   SlaMissModelView.action                  GET, POST  /slamiss/action/<string:name>/<pk>
   SlaMissModelView.action_post             POST       /slamiss/action_post
   SlaMissModelView.add                     GET, POST  /slamiss/add
   SlaMissModelView.api                     GET        /slamiss/api
   SlaMissModelView.api_column_add          GET        /slamiss/api/column/add/<col_name>
   SlaMissModelView.api_column_edit         GET        /slamiss/api/column/edit/<col_name>
   SlaMissModelView.api_create              POST       /slamiss/api/create
   SlaMissModelView.api_delete              DELETE     /slamiss/api/delete/<pk>
   SlaMissModelView.api_get                 GET        /slamiss/api/get/<pk>
   SlaMissModelView.api_read                GET        /slamiss/api/read
   SlaMissModelView.api_readvalues          GET        /slamiss/api/readvalues
   SlaMissModelView.api_update              PUT        /slamiss/api/update/<pk>
   SlaMissModelView.delete                  GET, POST  /slamiss/delete/<pk>
   SlaMissModelView.download                GET        /slamiss/download/<string:filename>
   SlaMissModelView.edit                    GET, POST  /slamiss/edit/<pk>
   SlaMissModelView.list                    GET        /slamiss/list/
   SlaMissModelView.show                    GET        /slamiss/show/<pk>
   TaskInstanceModelView.action             GET, POST  /taskinstance/action/<string:name>/<pk>
   TaskInstanceModelView.action_post        POST       /taskinstance/action_post
   TaskInstanceModelView.add                GET, POST  /taskinstance/add
   TaskInstanceModelView.api                GET        /taskinstance/api
   TaskInstanceModelView.api_column_add     GET        /taskinstance/api/column/add/<col_name>
   TaskInstanceModelView.api_column_edit    GET        /taskinstance/api/column/edit/<col_name>
   TaskInstanceModelView.api_create         POST       /taskinstance/api/create
   TaskInstanceModelView.api_delete         DELETE     /taskinstance/api/delete/<pk>
   TaskInstanceModelView.api_get            GET        /taskinstance/api/get/<pk>
   TaskInstanceModelView.api_read           GET        /taskinstance/api/read
   TaskInstanceModelView.api_readvalues     GET        /taskinstance/api/readvalues
   TaskInstanceModelView.api_update         PUT        /taskinstance/api/update/<pk>
   TaskInstanceModelView.delete             GET, POST  /taskinstance/delete/<pk>
   TaskInstanceModelView.download           GET        /taskinstance/download/<string:filename>
   TaskInstanceModelView.edit               GET, POST  /taskinstance/edit/<pk>
   TaskInstanceModelView.list               GET        /taskinstance/list/
   TaskInstanceModelView.show               GET        /taskinstance/show/<pk>
   UserDBModelView.action                   GET, POST  /users/action/<string:name>/<pk>
   UserDBModelView.action_post              POST       /users/action_post
   UserDBModelView.add                      GET, POST  /users/add
   UserDBModelView.api                      GET        /users/api
   UserDBModelView.api_column_add           GET        /users/api/column/add/<col_name>
   UserDBModelView.api_column_edit          GET        /users/api/column/edit/<col_name>
   UserDBModelView.api_create               POST       /users/api/create
   UserDBModelView.api_delete               DELETE     /users/api/delete/<pk>
   UserDBModelView.api_get                  GET        /users/api/get/<pk>
   UserDBModelView.api_read                 GET        /users/api/read
   UserDBModelView.api_readvalues           GET        /users/api/readvalues
   UserDBModelView.api_update               PUT        /users/api/update/<pk>
   UserDBModelView.delete                   GET, POST  /users/delete/<pk>
   UserDBModelView.download                 GET        /users/download/<string:filename>
   UserDBModelView.edit                     GET, POST  /users/edit/<pk>
   UserDBModelView.list                     GET        /users/list/
   UserDBModelView.show                     GET        /users/show/<pk>
   UserDBModelView.userinfo                 GET        /users/userinfo/
   UserInfoEditView.this_form_get           GET        /userinfoeditview/form
   UserInfoEditView.this_form_post          POST       /userinfoeditview/form
   UserStatsChartView.chart                 GET        /userstatschartview/chart/
   UserStatsChartView.chart                 GET        /userstatschartview/chart/<group_by>
   UtilView.back                            GET        /back
   VariableModelView.action                 GET, POST  /variable/action/<string:name>/<pk>
   VariableModelView.action_post            POST       /variable/action_post
   VariableModelView.add                    GET, POST  /variable/add
   VariableModelView.api                    GET        /variable/api
   VariableModelView.api_column_add         GET        /variable/api/column/add/<col_name>
   VariableModelView.api_column_edit        GET        /variable/api/column/edit/<col_name>
   VariableModelView.api_create             POST       /variable/api/create
   VariableModelView.api_delete             DELETE     /variable/api/delete/<pk>
   VariableModelView.api_get                GET        /variable/api/get/<pk>
   VariableModelView.api_read               GET        /variable/api/read
   VariableModelView.api_readvalues         GET        /variable/api/readvalues
   VariableModelView.api_update             PUT        /variable/api/update/<pk>
   VariableModelView.delete                 GET, POST  /variable/delete/<pk>
   VariableModelView.download               GET        /variable/download/<string:filename>
   VariableModelView.edit                   GET, POST  /variable/edit/<pk>
   VariableModelView.list                   GET        /variable/list/
   VariableModelView.show                   GET        /variable/show/<pk>
   VariableModelView.varimport              POST       /variable/varimport
   VersionView.version                      GET        /version
   ViewMenuModelView.action                 GET, POST  /viewmenus/action/<string:name>/<pk>
   ViewMenuModelView.action_post            POST       /viewmenus/action_post
   ViewMenuModelView.add                    GET, POST  /viewmenus/add
   ViewMenuModelView.api                    GET        /viewmenus/api
   ViewMenuModelView.api_column_add         GET        /viewmenus/api/column/add/<col_name>
   ViewMenuModelView.api_column_edit        GET        /viewmenus/api/column/edit/<col_name>
   ViewMenuModelView.api_create             POST       /viewmenus/api/create
   ViewMenuModelView.api_delete             DELETE     /viewmenus/api/delete/<pk>
   ViewMenuModelView.api_get                GET        /viewmenus/api/get/<pk>
   ViewMenuModelView.api_read               GET        /viewmenus/api/read
   ViewMenuModelView.api_readvalues         GET        /viewmenus/api/readvalues
   ViewMenuModelView.api_update             PUT        /viewmenus/api/update/<pk>
   ViewMenuModelView.delete                 GET, POST  /viewmenus/delete/<pk>
   ViewMenuModelView.download               GET        /viewmenus/download/<string:filename>
   ViewMenuModelView.edit                   GET, POST  /viewmenus/edit/<pk>
   ViewMenuModelView.list                   GET        /viewmenus/list/
   ViewMenuModelView.show                   GET        /viewmenus/show/<pk>
   XComModelView.action                     GET, POST  /xcom/action/<string:name>/<pk>
   XComModelView.action_post                POST       /xcom/action_post
   XComModelView.add                        GET, POST  /xcom/add
   XComModelView.api                        GET        /xcom/api
   XComModelView.api_column_add             GET        /xcom/api/column/add/<col_name>
   XComModelView.api_column_edit            GET        /xcom/api/column/edit/<col_name>
   XComModelView.api_create                 POST       /xcom/api/create
   XComModelView.api_delete                 DELETE     /xcom/api/delete/<pk>
   XComModelView.api_get                    GET        /xcom/api/get/<pk>
   XComModelView.api_read                   GET        /xcom/api/read
   XComModelView.api_readvalues             GET        /xcom/api/readvalues
   XComModelView.api_update                 PUT        /xcom/api/update/<pk>
   XComModelView.delete                     GET, POST  /xcom/delete/<pk>
   XComModelView.download                   GET        /xcom/download/<string:filename>
   XComModelView.edit                       GET, POST  /xcom/edit/<pk>
   XComModelView.list                       GET        /xcom/list/
   XComModelView.show                       GET        /xcom/show/<pk>
   api_experimental.create_pool             POST       /api/experimental/pools
   api_experimental.dag_is_paused           GET        /api/experimental/dags/<string:dag_id>/paused
   api_experimental.dag_paused              GET        /api/experimental/dags/<string:dag_id>/paused/<string:paused>
   api_experimental.dag_run_status          GET        /api/experimental/dags/<string:dag_id>/dag_runs/<string:execution_date>
   api_experimental.dag_runs                GET        /api/experimental/dags/<string:dag_id>/dag_runs
   api_experimental.delete_dag              DELETE     /api/experimental/dags/<string:dag_id>
   api_experimental.delete_pool             DELETE     /api/experimental/pools/<string:name>
   api_experimental.get_dag_code            GET        /api/experimental/dags/<string:dag_id>/code
   api_experimental.get_lineage             GET        /api/experimental/lineage/<string:dag_id>/<string:execution_date>
   api_experimental.get_pool                GET        /api/experimental/pools/<string:name>
   api_experimental.get_pools               GET        /api/experimental/pools
   api_experimental.info                    GET        /api/experimental/info
   api_experimental.latest_dag_runs         GET        /api/experimental/latest_runs
   api_experimental.task_info               GET        /api/experimental/dags/<string:dag_id>/tasks/<string:task_id>
   api_experimental.task_instance_info      GET        /api/experimental/dags/<string:dag_id>/dag_runs/<string:execution_date>/tasks/<string:task_id>
   api_experimental.test                    GET        /api/experimental/test
   api_experimental.trigger_dag             POST       /api/experimental/dags/<string:dag_id>/dag_runs
   appbuilder.static                        GET        /static/appbuilder/<path:filename>
   routes.index                             GET        /
   static                                   GET        /static/<path:filename>
   ```
   
   </details>

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [airflow] rcjsuen commented on issue #8171: Handle missing object in webserver

Posted by GitBox <gi...@apache.org>.
rcjsuen commented on issue #8171: Handle missing object in webserver
URL: https://github.com/apache/airflow/issues/8171#issuecomment-613098813
 
 
   @mik-laj I have created #8279 which addresses a single endpoint for a start. Please let me know what you think.

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

[GitHub] [airflow] mik-laj commented on issue #8171: Handle missing object in webserver

Posted by GitBox <gi...@apache.org>.
mik-laj commented on issue #8171: Handle missing object in webserver
URL: https://github.com/apache/airflow/issues/8171#issuecomment-612943432
 
 
   For clarity. This contribution does not have to solve all problems in one PR. I will be happy even if one problem is solved. And another person will be able to create more changes and solve more problems.
   
   <details>
   <summary>List of all routes
   </summary>
   ```
   Endpoint                                 Methods    Rule
   ---------------------------------------  ---------  ----------------------------------------------------------------------------------------------
   Airflow.blocked                          POST       /blocked
   Airflow.clear                            POST       /clear
   Airflow.code                             GET        /code
   Airflow.dag_details                      GET        /dag_details
   Airflow.dag_stats                        POST       /dag_stats
   Airflow.dagrun_clear                     POST       /dagrun_clear
   Airflow.dagrun_failed                    POST       /dagrun_failed
   Airflow.dagrun_success                   POST       /dagrun_success
   Airflow.delete                           POST       /delete
   Airflow.duration                         GET        /duration
   Airflow.elasticsearch                    GET        /elasticsearch
   Airflow.extra_links                      GET        /extra_links
   Airflow.failed                           POST       /failed
   Airflow.gantt                            GET        /gantt
   Airflow.get_logs_with_metadata           GET        /get_logs_with_metadata
   Airflow.graph                            GET        /graph
   Airflow.health                           GET        /health
   Airflow.index                            GET        /home
   Airflow.landing_times                    GET        /landing_times
   Airflow.last_dagruns                     POST       /last_dagruns
   Airflow.log                              GET        /log
   Airflow.paused                           POST       /paused
   Airflow.refresh                          POST       /refresh
   Airflow.rendered                         GET        /rendered
   Airflow.run                              POST       /run
   Airflow.success                          POST       /success
   Airflow.task                             GET        /task
   Airflow.task_instances                   GET        /object/task_instances
   Airflow.task_stats                       POST       /task_stats
   Airflow.tree                             GET        /tree
   Airflow.tries                            GET        /tries
   Airflow.trigger                          GET, POST  /trigger
   Airflow.xcom                             GET        /xcom
   AuthDBView.login                         GET, POST  /login/
   AuthDBView.logout                        GET        /logout/
   ConfigurationView.conf                   GET        /configuration
   ConnectionModelView.action               GET, POST  /connection/action/<string:name>/<pk>
   ConnectionModelView.action_post          POST       /connection/action_post
   ConnectionModelView.add                  GET, POST  /connection/add
   ConnectionModelView.api                  GET        /connection/api
   ConnectionModelView.api_column_add       GET        /connection/api/column/add/<col_name>
   ConnectionModelView.api_column_edit      GET        /connection/api/column/edit/<col_name>
   ConnectionModelView.api_create           POST       /connection/api/create
   ConnectionModelView.api_delete           DELETE     /connection/api/delete/<pk>
   ConnectionModelView.api_get              GET        /connection/api/get/<pk>
   ConnectionModelView.api_read             GET        /connection/api/read
   ConnectionModelView.api_readvalues       GET        /connection/api/readvalues
   ConnectionModelView.api_update           PUT        /connection/api/update/<pk>
   ConnectionModelView.delete               GET, POST  /connection/delete/<pk>
   ConnectionModelView.download             GET        /connection/download/<string:filename>
   ConnectionModelView.edit                 GET, POST  /connection/edit/<pk>
   ConnectionModelView.list                 GET        /connection/list/
   ConnectionModelView.show                 GET        /connection/show/<pk>
   DagModelView.action                      GET, POST  /dagmodel/action/<string:name>/<pk>
   DagModelView.action_post                 POST       /dagmodel/action_post
   DagModelView.add                         GET, POST  /dagmodel/add
   DagModelView.api                         GET        /dagmodel/api
   DagModelView.api_column_add              GET        /dagmodel/api/column/add/<col_name>
   DagModelView.api_column_edit             GET        /dagmodel/api/column/edit/<col_name>
   DagModelView.api_create                  POST       /dagmodel/api/create
   DagModelView.api_delete                  DELETE     /dagmodel/api/delete/<pk>
   DagModelView.api_get                     GET        /dagmodel/api/get/<pk>
   DagModelView.api_read                    GET        /dagmodel/api/read
   DagModelView.api_readvalues              GET        /dagmodel/api/readvalues
   DagModelView.api_update                  PUT        /dagmodel/api/update/<pk>
   DagModelView.autocomplete                GET        /dagmodel/autocomplete
   DagModelView.delete                      GET, POST  /dagmodel/delete/<pk>
   DagModelView.download                    GET        /dagmodel/download/<string:filename>
   DagModelView.edit                        GET, POST  /dagmodel/edit/<pk>
   DagModelView.list                        GET        /dagmodel/list/
   DagModelView.show                        GET        /dagmodel/show/<pk>
   DagRunModelView.action                   GET, POST  /dagrun/action/<string:name>/<pk>
   DagRunModelView.action_post              POST       /dagrun/action_post
   DagRunModelView.add                      GET, POST  /dagrun/add
   DagRunModelView.api                      GET        /dagrun/api
   DagRunModelView.api_column_add           GET        /dagrun/api/column/add/<col_name>
   DagRunModelView.api_column_edit          GET        /dagrun/api/column/edit/<col_name>
   DagRunModelView.api_create               POST       /dagrun/api/create
   DagRunModelView.api_delete               DELETE     /dagrun/api/delete/<pk>
   DagRunModelView.api_get                  GET        /dagrun/api/get/<pk>
   DagRunModelView.api_read                 GET        /dagrun/api/read
   DagRunModelView.api_readvalues           GET        /dagrun/api/readvalues
   DagRunModelView.api_update               PUT        /dagrun/api/update/<pk>
   DagRunModelView.delete                   GET, POST  /dagrun/delete/<pk>
   DagRunModelView.download                 GET        /dagrun/download/<string:filename>
   DagRunModelView.edit                     GET, POST  /dagrun/edit/<pk>
   DagRunModelView.list                     GET        /dagrun/list/
   DagRunModelView.show                     GET        /dagrun/show/<pk>
   IndexView.index                          GET        /
   JobModelView.action                      GET, POST  /job/action/<string:name>/<pk>
   JobModelView.action_post                 POST       /job/action_post
   JobModelView.add                         GET, POST  /job/add
   JobModelView.api                         GET        /job/api
   JobModelView.api_column_add              GET        /job/api/column/add/<col_name>
   JobModelView.api_column_edit             GET        /job/api/column/edit/<col_name>
   JobModelView.api_create                  POST       /job/api/create
   JobModelView.api_delete                  DELETE     /job/api/delete/<pk>
   JobModelView.api_get                     GET        /job/api/get/<pk>
   JobModelView.api_read                    GET        /job/api/read
   JobModelView.api_readvalues              GET        /job/api/readvalues
   JobModelView.api_update                  PUT        /job/api/update/<pk>
   JobModelView.delete                      GET, POST  /job/delete/<pk>
   JobModelView.download                    GET        /job/download/<string:filename>
   JobModelView.edit                        GET, POST  /job/edit/<pk>
   JobModelView.list                        GET        /job/list/
   JobModelView.show                        GET        /job/show/<pk>
   LocaleView.index                         GET        /lang/<string:locale>
   LogModelView.action                      GET, POST  /log/action/<string:name>/<pk>
   LogModelView.action_post                 POST       /log/action_post
   LogModelView.add                         GET, POST  /log/add
   LogModelView.api                         GET        /log/api
   LogModelView.api_column_add              GET        /log/api/column/add/<col_name>
   LogModelView.api_column_edit             GET        /log/api/column/edit/<col_name>
   LogModelView.api_create                  POST       /log/api/create
   LogModelView.api_delete                  DELETE     /log/api/delete/<pk>
   LogModelView.api_get                     GET        /log/api/get/<pk>
   LogModelView.api_read                    GET        /log/api/read
   LogModelView.api_readvalues              GET        /log/api/readvalues
   LogModelView.api_update                  PUT        /log/api/update/<pk>
   LogModelView.delete                      GET, POST  /log/delete/<pk>
   LogModelView.download                    GET        /log/download/<string:filename>
   LogModelView.edit                        GET, POST  /log/edit/<pk>
   LogModelView.list                        GET        /log/list/
   LogModelView.show                        GET        /log/show/<pk>
   MenuApi.get_menu_data                    GET        /api/v1/menu/
   PermissionModelView.action               GET, POST  /permissions/action/<string:name>/<pk>
   PermissionModelView.action_post          POST       /permissions/action_post
   PermissionModelView.add                  GET, POST  /permissions/add
   PermissionModelView.api                  GET        /permissions/api
   PermissionModelView.api_column_add       GET        /permissions/api/column/add/<col_name>
   PermissionModelView.api_column_edit      GET        /permissions/api/column/edit/<col_name>
   PermissionModelView.api_create           POST       /permissions/api/create
   PermissionModelView.api_delete           DELETE     /permissions/api/delete/<pk>
   PermissionModelView.api_get              GET        /permissions/api/get/<pk>
   PermissionModelView.api_read             GET        /permissions/api/read
   PermissionModelView.api_readvalues       GET        /permissions/api/readvalues
   PermissionModelView.api_update           PUT        /permissions/api/update/<pk>
   PermissionModelView.delete               GET, POST  /permissions/delete/<pk>
   PermissionModelView.download             GET        /permissions/download/<string:filename>
   PermissionModelView.edit                 GET, POST  /permissions/edit/<pk>
   PermissionModelView.list                 GET        /permissions/list/
   PermissionModelView.show                 GET        /permissions/show/<pk>
   PermissionViewModelView.action           GET, POST  /permissionviews/action/<string:name>/<pk>
   PermissionViewModelView.action_post      POST       /permissionviews/action_post
   PermissionViewModelView.add              GET, POST  /permissionviews/add
   PermissionViewModelView.api              GET        /permissionviews/api
   PermissionViewModelView.api_column_add   GET        /permissionviews/api/column/add/<col_name>
   PermissionViewModelView.api_column_edit  GET        /permissionviews/api/column/edit/<col_name>
   PermissionViewModelView.api_create       POST       /permissionviews/api/create
   PermissionViewModelView.api_delete       DELETE     /permissionviews/api/delete/<pk>
   PermissionViewModelView.api_get          GET        /permissionviews/api/get/<pk>
   PermissionViewModelView.api_read         GET        /permissionviews/api/read
   PermissionViewModelView.api_readvalues   GET        /permissionviews/api/readvalues
   PermissionViewModelView.api_update       PUT        /permissionviews/api/update/<pk>
   PermissionViewModelView.delete           GET, POST  /permissionviews/delete/<pk>
   PermissionViewModelView.download         GET        /permissionviews/download/<string:filename>
   PermissionViewModelView.edit             GET, POST  /permissionviews/edit/<pk>
   PermissionViewModelView.list             GET        /permissionviews/list/
   PermissionViewModelView.show             GET        /permissionviews/show/<pk>
   PoolModelView.action                     GET, POST  /pool/action/<string:name>/<pk>
   PoolModelView.action_post                POST       /pool/action_post
   PoolModelView.add                        GET, POST  /pool/add
   PoolModelView.api                        GET        /pool/api
   PoolModelView.api_column_add             GET        /pool/api/column/add/<col_name>
   PoolModelView.api_column_edit            GET        /pool/api/column/edit/<col_name>
   PoolModelView.api_create                 POST       /pool/api/create
   PoolModelView.api_delete                 DELETE     /pool/api/delete/<pk>
   PoolModelView.api_get                    GET        /pool/api/get/<pk>
   PoolModelView.api_read                   GET        /pool/api/read
   PoolModelView.api_readvalues             GET        /pool/api/readvalues
   PoolModelView.api_update                 PUT        /pool/api/update/<pk>
   PoolModelView.delete                     GET, POST  /pool/delete/<pk>
   PoolModelView.download                   GET        /pool/download/<string:filename>
   PoolModelView.edit                       GET, POST  /pool/edit/<pk>
   PoolModelView.list                       GET        /pool/list/
   PoolModelView.show                       GET        /pool/show/<pk>
   ResetMyPasswordView.this_form_get        GET        /resetmypassword/form
   ResetMyPasswordView.this_form_post       POST       /resetmypassword/form
   ResetPasswordView.this_form_get          GET        /resetpassword/form
   ResetPasswordView.this_form_post         POST       /resetpassword/form
   RoleModelView.action                     GET, POST  /roles/action/<string:name>/<pk>
   RoleModelView.action_post                POST       /roles/action_post
   RoleModelView.add                        GET, POST  /roles/add
   RoleModelView.api                        GET        /roles/api
   RoleModelView.api_column_add             GET        /roles/api/column/add/<col_name>
   RoleModelView.api_column_edit            GET        /roles/api/column/edit/<col_name>
   RoleModelView.api_create                 POST       /roles/api/create
   RoleModelView.api_delete                 DELETE     /roles/api/delete/<pk>
   RoleModelView.api_get                    GET        /roles/api/get/<pk>
   RoleModelView.api_read                   GET        /roles/api/read
   RoleModelView.api_readvalues             GET        /roles/api/readvalues
   RoleModelView.api_update                 PUT        /roles/api/update/<pk>
   RoleModelView.delete                     GET, POST  /roles/delete/<pk>
   RoleModelView.download                   GET        /roles/download/<string:filename>
   RoleModelView.edit                       GET, POST  /roles/edit/<pk>
   RoleModelView.list                       GET        /roles/list/
   RoleModelView.show                       GET        /roles/show/<pk>
   SecurityApi.login                        POST       /api/v1/security/login
   SecurityApi.refresh                      POST       /api/v1/security/refresh
   SlaMissModelView.action                  GET, POST  /slamiss/action/<string:name>/<pk>
   SlaMissModelView.action_post             POST       /slamiss/action_post
   SlaMissModelView.add                     GET, POST  /slamiss/add
   SlaMissModelView.api                     GET        /slamiss/api
   SlaMissModelView.api_column_add          GET        /slamiss/api/column/add/<col_name>
   SlaMissModelView.api_column_edit         GET        /slamiss/api/column/edit/<col_name>
   SlaMissModelView.api_create              POST       /slamiss/api/create
   SlaMissModelView.api_delete              DELETE     /slamiss/api/delete/<pk>
   SlaMissModelView.api_get                 GET        /slamiss/api/get/<pk>
   SlaMissModelView.api_read                GET        /slamiss/api/read
   SlaMissModelView.api_readvalues          GET        /slamiss/api/readvalues
   SlaMissModelView.api_update              PUT        /slamiss/api/update/<pk>
   SlaMissModelView.delete                  GET, POST  /slamiss/delete/<pk>
   SlaMissModelView.download                GET        /slamiss/download/<string:filename>
   SlaMissModelView.edit                    GET, POST  /slamiss/edit/<pk>
   SlaMissModelView.list                    GET        /slamiss/list/
   SlaMissModelView.show                    GET        /slamiss/show/<pk>
   TaskInstanceModelView.action             GET, POST  /taskinstance/action/<string:name>/<pk>
   TaskInstanceModelView.action_post        POST       /taskinstance/action_post
   TaskInstanceModelView.add                GET, POST  /taskinstance/add
   TaskInstanceModelView.api                GET        /taskinstance/api
   TaskInstanceModelView.api_column_add     GET        /taskinstance/api/column/add/<col_name>
   TaskInstanceModelView.api_column_edit    GET        /taskinstance/api/column/edit/<col_name>
   TaskInstanceModelView.api_create         POST       /taskinstance/api/create
   TaskInstanceModelView.api_delete         DELETE     /taskinstance/api/delete/<pk>
   TaskInstanceModelView.api_get            GET        /taskinstance/api/get/<pk>
   TaskInstanceModelView.api_read           GET        /taskinstance/api/read
   TaskInstanceModelView.api_readvalues     GET        /taskinstance/api/readvalues
   TaskInstanceModelView.api_update         PUT        /taskinstance/api/update/<pk>
   TaskInstanceModelView.delete             GET, POST  /taskinstance/delete/<pk>
   TaskInstanceModelView.download           GET        /taskinstance/download/<string:filename>
   TaskInstanceModelView.edit               GET, POST  /taskinstance/edit/<pk>
   TaskInstanceModelView.list               GET        /taskinstance/list/
   TaskInstanceModelView.show               GET        /taskinstance/show/<pk>
   UserDBModelView.action                   GET, POST  /users/action/<string:name>/<pk>
   UserDBModelView.action_post              POST       /users/action_post
   UserDBModelView.add                      GET, POST  /users/add
   UserDBModelView.api                      GET        /users/api
   UserDBModelView.api_column_add           GET        /users/api/column/add/<col_name>
   UserDBModelView.api_column_edit          GET        /users/api/column/edit/<col_name>
   UserDBModelView.api_create               POST       /users/api/create
   UserDBModelView.api_delete               DELETE     /users/api/delete/<pk>
   UserDBModelView.api_get                  GET        /users/api/get/<pk>
   UserDBModelView.api_read                 GET        /users/api/read
   UserDBModelView.api_readvalues           GET        /users/api/readvalues
   UserDBModelView.api_update               PUT        /users/api/update/<pk>
   UserDBModelView.delete                   GET, POST  /users/delete/<pk>
   UserDBModelView.download                 GET        /users/download/<string:filename>
   UserDBModelView.edit                     GET, POST  /users/edit/<pk>
   UserDBModelView.list                     GET        /users/list/
   UserDBModelView.show                     GET        /users/show/<pk>
   UserDBModelView.userinfo                 GET        /users/userinfo/
   UserInfoEditView.this_form_get           GET        /userinfoeditview/form
   UserInfoEditView.this_form_post          POST       /userinfoeditview/form
   UserStatsChartView.chart                 GET        /userstatschartview/chart/
   UserStatsChartView.chart                 GET        /userstatschartview/chart/<group_by>
   UtilView.back                            GET        /back
   VariableModelView.action                 GET, POST  /variable/action/<string:name>/<pk>
   VariableModelView.action_post            POST       /variable/action_post
   VariableModelView.add                    GET, POST  /variable/add
   VariableModelView.api                    GET        /variable/api
   VariableModelView.api_column_add         GET        /variable/api/column/add/<col_name>
   VariableModelView.api_column_edit        GET        /variable/api/column/edit/<col_name>
   VariableModelView.api_create             POST       /variable/api/create
   VariableModelView.api_delete             DELETE     /variable/api/delete/<pk>
   VariableModelView.api_get                GET        /variable/api/get/<pk>
   VariableModelView.api_read               GET        /variable/api/read
   VariableModelView.api_readvalues         GET        /variable/api/readvalues
   VariableModelView.api_update             PUT        /variable/api/update/<pk>
   VariableModelView.delete                 GET, POST  /variable/delete/<pk>
   VariableModelView.download               GET        /variable/download/<string:filename>
   VariableModelView.edit                   GET, POST  /variable/edit/<pk>
   VariableModelView.list                   GET        /variable/list/
   VariableModelView.show                   GET        /variable/show/<pk>
   VariableModelView.varimport              POST       /variable/varimport
   VersionView.version                      GET        /version
   ViewMenuModelView.action                 GET, POST  /viewmenus/action/<string:name>/<pk>
   ViewMenuModelView.action_post            POST       /viewmenus/action_post
   ViewMenuModelView.add                    GET, POST  /viewmenus/add
   ViewMenuModelView.api                    GET        /viewmenus/api
   ViewMenuModelView.api_column_add         GET        /viewmenus/api/column/add/<col_name>
   ViewMenuModelView.api_column_edit        GET        /viewmenus/api/column/edit/<col_name>
   ViewMenuModelView.api_create             POST       /viewmenus/api/create
   ViewMenuModelView.api_delete             DELETE     /viewmenus/api/delete/<pk>
   ViewMenuModelView.api_get                GET        /viewmenus/api/get/<pk>
   ViewMenuModelView.api_read               GET        /viewmenus/api/read
   ViewMenuModelView.api_readvalues         GET        /viewmenus/api/readvalues
   ViewMenuModelView.api_update             PUT        /viewmenus/api/update/<pk>
   ViewMenuModelView.delete                 GET, POST  /viewmenus/delete/<pk>
   ViewMenuModelView.download               GET        /viewmenus/download/<string:filename>
   ViewMenuModelView.edit                   GET, POST  /viewmenus/edit/<pk>
   ViewMenuModelView.list                   GET        /viewmenus/list/
   ViewMenuModelView.show                   GET        /viewmenus/show/<pk>
   XComModelView.action                     GET, POST  /xcom/action/<string:name>/<pk>
   XComModelView.action_post                POST       /xcom/action_post
   XComModelView.add                        GET, POST  /xcom/add
   XComModelView.api                        GET        /xcom/api
   XComModelView.api_column_add             GET        /xcom/api/column/add/<col_name>
   XComModelView.api_column_edit            GET        /xcom/api/column/edit/<col_name>
   XComModelView.api_create                 POST       /xcom/api/create
   XComModelView.api_delete                 DELETE     /xcom/api/delete/<pk>
   XComModelView.api_get                    GET        /xcom/api/get/<pk>
   XComModelView.api_read                   GET        /xcom/api/read
   XComModelView.api_readvalues             GET        /xcom/api/readvalues
   XComModelView.api_update                 PUT        /xcom/api/update/<pk>
   XComModelView.delete                     GET, POST  /xcom/delete/<pk>
   XComModelView.download                   GET        /xcom/download/<string:filename>
   XComModelView.edit                       GET, POST  /xcom/edit/<pk>
   XComModelView.list                       GET        /xcom/list/
   XComModelView.show                       GET        /xcom/show/<pk>
   api_experimental.create_pool             POST       /api/experimental/pools
   api_experimental.dag_is_paused           GET        /api/experimental/dags/<string:dag_id>/paused
   api_experimental.dag_paused              GET        /api/experimental/dags/<string:dag_id>/paused/<string:paused>
   api_experimental.dag_run_status          GET        /api/experimental/dags/<string:dag_id>/dag_runs/<string:execution_date>
   api_experimental.dag_runs                GET        /api/experimental/dags/<string:dag_id>/dag_runs
   api_experimental.delete_dag              DELETE     /api/experimental/dags/<string:dag_id>
   api_experimental.delete_pool             DELETE     /api/experimental/pools/<string:name>
   api_experimental.get_dag_code            GET        /api/experimental/dags/<string:dag_id>/code
   api_experimental.get_lineage             GET        /api/experimental/lineage/<string:dag_id>/<string:execution_date>
   api_experimental.get_pool                GET        /api/experimental/pools/<string:name>
   api_experimental.get_pools               GET        /api/experimental/pools
   api_experimental.info                    GET        /api/experimental/info
   api_experimental.latest_dag_runs         GET        /api/experimental/latest_runs
   api_experimental.task_info               GET        /api/experimental/dags/<string:dag_id>/tasks/<string:task_id>
   api_experimental.task_instance_info      GET        /api/experimental/dags/<string:dag_id>/dag_runs/<string:execution_date>/tasks/<string:task_id>
   api_experimental.test                    GET        /api/experimental/test
   api_experimental.trigger_dag             POST       /api/experimental/dags/<string:dag_id>/dag_runs
   appbuilder.static                        GET        /static/appbuilder/<path:filename>
   routes.index                             GET        /
   static                                   GET        /static/<path:filename>
   ```
   </details>

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services