Skip to content

Commit df0b6c3

Browse files
rawwarLee-W
andauthored
AIP 84 - Add Auth to xcom, ti, dag_warning, dag_stats, dag_source, dag_run, dag_parsing (apache#47532)
* add dag_parsing * add dag_run * add dag_source * add dag_stats * add dag_warning * add ti * add xcom * add dag_parsing * add dag_run * add dag_source * add dag_stats * add dag_warning * add ti * add xcom * pr feedback * use dag run filter * add dag_parsing * add dag_run * add dag_source * add dag_stats * add dag_warning * add ti * add xcom * pr feedback * use dag run filter * ci failures * add dag_id filters --------- Co-authored-by: Wei Lee <[email protected]>
1 parent 2c2a311 commit df0b6c3

16 files changed

+535
-30
lines changed

airflow/api_fastapi/core_api/openapi/v1-generated.yaml

+62
Original file line numberDiff line numberDiff line change
@@ -2121,6 +2121,8 @@ paths:
21212121
- DagRun
21222122
summary: Get Dag Run
21232123
operationId: get_dag_run
2124+
security:
2125+
- OAuth2PasswordBearer: []
21242126
parameters:
21252127
- name: dag_id
21262128
in: path
@@ -2171,6 +2173,8 @@ paths:
21712173
summary: Delete Dag Run
21722174
description: Delete a DAG Run entry.
21732175
operationId: delete_dag_run
2176+
security:
2177+
- OAuth2PasswordBearer: []
21742178
parameters:
21752179
- name: dag_id
21762180
in: path
@@ -2223,6 +2227,8 @@ paths:
22232227
summary: Patch Dag Run
22242228
description: Modify a DAG Run.
22252229
operationId: patch_dag_run
2230+
security:
2231+
- OAuth2PasswordBearer: []
22262232
parameters:
22272233
- name: dag_id
22282234
in: path
@@ -2349,6 +2355,8 @@ paths:
23492355
- DagRun
23502356
summary: Clear Dag Run
23512357
operationId: clear_dag_run
2358+
security:
2359+
- OAuth2PasswordBearer: []
23522360
parameters:
23532361
- name: dag_id
23542362
in: path
@@ -2413,6 +2421,8 @@ paths:
24132421
This endpoint allows specifying `~` as the dag_id to retrieve Dag Runs for
24142422
all DAGs.'
24152423
operationId: get_dag_runs
2424+
security:
2425+
- OAuth2PasswordBearer: []
24162426
parameters:
24172427
- name: dag_id
24182428
in: path
@@ -2578,6 +2588,8 @@ paths:
25782588
summary: Trigger Dag Run
25792589
description: Trigger a DAG.
25802590
operationId: trigger_dag_run
2591+
security:
2592+
- OAuth2PasswordBearer: []
25812593
parameters:
25822594
- name: dag_id
25832595
in: path
@@ -2640,6 +2652,8 @@ paths:
26402652
summary: Get List Dag Runs Batch
26412653
description: Get a list of DAG Runs.
26422654
operationId: get_list_dag_runs_batch
2655+
security:
2656+
- OAuth2PasswordBearer: []
26432657
parameters:
26442658
- name: dag_id
26452659
in: path
@@ -2692,6 +2706,8 @@ paths:
26922706
summary: Get Dag Source
26932707
description: Get source code using file token.
26942708
operationId: get_dag_source
2709+
security:
2710+
- OAuth2PasswordBearer: []
26952711
parameters:
26962712
- name: dag_id
26972713
in: path
@@ -2772,6 +2788,8 @@ paths:
27722788
summary: Get Dag Stats
27732789
description: Get Dag statistics.
27742790
operationId: get_dag_stats
2791+
security:
2792+
- OAuth2PasswordBearer: []
27752793
parameters:
27762794
- name: dag_ids
27772795
in: query
@@ -3030,6 +3048,8 @@ paths:
30303048
summary: List Dag Warnings
30313049
description: Get a list of DAG warnings.
30323050
operationId: list_dag_warnings
3051+
security:
3052+
- OAuth2PasswordBearer: []
30333053
parameters:
30343054
- name: dag_id
30353055
in: query
@@ -4557,6 +4577,8 @@ paths:
45574577
summary: Get Xcom Entry
45584578
description: Get an XCom entry.
45594579
operationId: get_xcom_entry
4580+
security:
4581+
- OAuth2PasswordBearer: []
45604582
parameters:
45614583
- name: dag_id
45624584
in: path
@@ -4650,6 +4672,8 @@ paths:
46504672
summary: Update Xcom Entry
46514673
description: Update an existing XCom entry.
46524674
operationId: update_xcom_entry
4675+
security:
4676+
- OAuth2PasswordBearer: []
46534677
parameters:
46544678
- name: dag_id
46554679
in: path
@@ -4729,6 +4753,8 @@ paths:
47294753
This endpoint allows specifying `~` as the dag_id, dag_run_id, task_id to
47304754
retrieve XCom entries for all DAGs.'
47314755
operationId: get_xcom_entries
4756+
security:
4757+
- OAuth2PasswordBearer: []
47324758
parameters:
47334759
- name: dag_id
47344760
in: path
@@ -4824,6 +4850,8 @@ paths:
48244850
summary: Create Xcom Entry
48254851
description: Create an XCom entry.
48264852
operationId: create_xcom_entry
4853+
security:
4854+
- OAuth2PasswordBearer: []
48274855
parameters:
48284856
- name: dag_id
48294857
in: path
@@ -4893,6 +4921,8 @@ paths:
48934921
summary: Get Task Instance
48944922
description: Get task instance.
48954923
operationId: get_task_instance
4924+
security:
4925+
- OAuth2PasswordBearer: []
48964926
parameters:
48974927
- name: dag_id
48984928
in: path
@@ -4949,6 +4979,8 @@ paths:
49494979
summary: Patch Task Instance
49504980
description: Update a task instance.
49514981
operationId: patch_task_instance
4982+
security:
4983+
- OAuth2PasswordBearer: []
49524984
parameters:
49534985
- name: dag_id
49544986
in: path
@@ -5041,6 +5073,8 @@ paths:
50415073
summary: Get Mapped Task Instances
50425074
description: Get list of mapped task instances.
50435075
operationId: get_mapped_task_instances
5076+
security:
5077+
- OAuth2PasswordBearer: []
50445078
parameters:
50455079
- name: dag_id
50465080
in: path
@@ -5267,6 +5301,8 @@ paths:
52675301
summary: Get Task Instance Dependencies
52685302
description: Get dependencies blocking task from getting scheduled.
52695303
operationId: get_task_instance_dependencies
5304+
security:
5305+
- OAuth2PasswordBearer: []
52705306
parameters:
52715307
- name: dag_id
52725308
in: path
@@ -5330,6 +5366,8 @@ paths:
53305366
summary: Get Task Instance Dependencies
53315367
description: Get dependencies blocking task from getting scheduled.
53325368
operationId: get_task_instance_dependencies
5369+
security:
5370+
- OAuth2PasswordBearer: []
53335371
parameters:
53345372
- name: dag_id
53355373
in: path
@@ -5394,6 +5432,8 @@ paths:
53945432
summary: Get Task Instance Tries
53955433
description: Get list of task instances history.
53965434
operationId: get_task_instance_tries
5435+
security:
5436+
- OAuth2PasswordBearer: []
53975437
parameters:
53985438
- name: dag_id
53995439
in: path
@@ -5457,6 +5497,8 @@ paths:
54575497
- Task Instance
54585498
summary: Get Mapped Task Instance Tries
54595499
operationId: get_mapped_task_instance_tries
5500+
security:
5501+
- OAuth2PasswordBearer: []
54605502
parameters:
54615503
- name: dag_id
54625504
in: path
@@ -5520,6 +5562,8 @@ paths:
55205562
summary: Get Mapped Task Instance
55215563
description: Get task instance.
55225564
operationId: get_mapped_task_instance
5565+
security:
5566+
- OAuth2PasswordBearer: []
55235567
parameters:
55245568
- name: dag_id
55255569
in: path
@@ -5582,6 +5626,8 @@ paths:
55825626
summary: Patch Task Instance
55835627
description: Update a task instance.
55845628
operationId: patch_task_instance
5629+
security:
5630+
- OAuth2PasswordBearer: []
55855631
parameters:
55865632
- name: dag_id
55875633
in: path
@@ -5679,6 +5725,8 @@ paths:
56795725
56805726
and DAG runs.'
56815727
operationId: get_task_instances
5728+
security:
5729+
- OAuth2PasswordBearer: []
56825730
parameters:
56835731
- name: dag_id
56845732
in: path
@@ -5915,6 +5963,8 @@ paths:
59155963
summary: Get Task Instances Batch
59165964
description: Get list of task instances.
59175965
operationId: get_task_instances_batch
5966+
security:
5967+
- OAuth2PasswordBearer: []
59185968
parameters:
59195969
- name: dag_id
59205970
in: path
@@ -5974,6 +6024,8 @@ paths:
59746024
summary: Get Task Instance Try Details
59756025
description: Get task instance details by try number.
59766026
operationId: get_task_instance_try_details
6027+
security:
6028+
- OAuth2PasswordBearer: []
59776029
parameters:
59786030
- name: dag_id
59796031
in: path
@@ -6043,6 +6095,8 @@ paths:
60436095
- Task Instance
60446096
summary: Get Mapped Task Instance Try Details
60456097
operationId: get_mapped_task_instance_try_details
6098+
security:
6099+
- OAuth2PasswordBearer: []
60466100
parameters:
60476101
- name: dag_id
60486102
in: path
@@ -6112,6 +6166,8 @@ paths:
61126166
summary: Post Clear Task Instances
61136167
description: Clear task instances.
61146168
operationId: post_clear_task_instances
6169+
security:
6170+
- OAuth2PasswordBearer: []
61156171
parameters:
61166172
- name: dag_id
61176173
in: path
@@ -6163,6 +6219,8 @@ paths:
61636219
summary: Patch Task Instance Dry Run
61646220
description: Update a task instance dry_run mode.
61656221
operationId: patch_task_instance_dry_run
6222+
security:
6223+
- OAuth2PasswordBearer: []
61666224
parameters:
61676225
- name: dag_id
61686226
in: path
@@ -6248,6 +6306,8 @@ paths:
62486306
summary: Patch Task Instance Dry Run
62496307
description: Update a task instance dry_run mode.
62506308
operationId: patch_task_instance_dry_run
6309+
security:
6310+
- OAuth2PasswordBearer: []
62516311
parameters:
62526312
- name: dag_id
62536313
in: path
@@ -6860,6 +6920,8 @@ paths:
68606920
summary: Reparse Dag File
68616921
description: Request re-parsing a DAG file.
68626922
operationId: reparse_dag_file
6923+
security:
6924+
- OAuth2PasswordBearer: []
68636925
parameters:
68646926
- name: file_token
68656927
in: path

airflow/api_fastapi/core_api/routes/public/dag_parsing.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from airflow.api_fastapi.common.db.common import SessionDep
2828
from airflow.api_fastapi.common.router import AirflowRouter
2929
from airflow.api_fastapi.core_api.openapi.exceptions import create_openapi_http_exception_doc
30+
from airflow.api_fastapi.core_api.security import requires_access_dag
3031
from airflow.api_fastapi.logging.decorators import action_logging
3132
from airflow.models.dag import DagModel
3233
from airflow.models.dagbag import DagPriorityParsingRequest
@@ -41,7 +42,7 @@
4142
"",
4243
responses=create_openapi_http_exception_doc([status.HTTP_404_NOT_FOUND]),
4344
status_code=status.HTTP_201_CREATED,
44-
dependencies=[Depends(action_logging())],
45+
dependencies=[Depends(requires_access_dag(method="PUT")), Depends(action_logging())],
4546
)
4647
def reparse_dag_file(
4748
file_token: str,

0 commit comments

Comments
 (0)