This is an automated email from the ASF dual-hosted git repository.

vincbeck pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new dad2b927f1b Fix AWS auth manager batch team context (#66203)
dad2b927f1b is described below

commit dad2b927f1b73c7c42ba4177dd15ac7befa16476
Author: suyua9 <[email protected]>
AuthorDate: Tue May 5 00:20:26 2026 +0800

    Fix AWS auth manager batch team context (#66203)
---
 .../amazon/aws/auth_manager/aws_auth_manager.py    | 12 ++++++
 .../aws/auth_manager/test_aws_auth_manager.py      | 45 +++++++++++++++++++---
 2 files changed, 51 insertions(+), 6 deletions(-)

diff --git 
a/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py
 
b/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py
index 57febc258d0..03bd4c79b0b 100644
--- 
a/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py
+++ 
b/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/aws_auth_manager.py
@@ -288,6 +288,9 @@ class AwsAuthManager(BaseAuthManager[AwsAuthManagerUser]):
                     "entity_id": cast("ConnectionDetails", 
request["details"]).conn_id
                     if request.get("details")
                     else None,
+                    "team_name": self._get_team_name(cast("ConnectionDetails", 
request["details"]))
+                    if request.get("details")
+                    else None,
                 },
             )
             for request in requests
@@ -309,6 +312,9 @@ class AwsAuthManager(BaseAuthManager[AwsAuthManagerUser]):
                     "entity_id": cast("DagDetails", request["details"]).id
                     if request.get("details")
                     else None,
+                    "team_name": self._get_team_name(cast("DagDetails", 
request["details"]))
+                    if request.get("details")
+                    else None,
                     "context": {
                         "dag_entity": {
                             "string": cast("DagAccessEntity", 
request["access_entity"]).value,
@@ -337,6 +343,9 @@ class AwsAuthManager(BaseAuthManager[AwsAuthManagerUser]):
                     "entity_id": cast("PoolDetails", request["details"]).name
                     if request.get("details")
                     else None,
+                    "team_name": self._get_team_name(cast("PoolDetails", 
request["details"]))
+                    if request.get("details")
+                    else None,
                 },
             )
             for request in requests
@@ -358,6 +367,9 @@ class AwsAuthManager(BaseAuthManager[AwsAuthManagerUser]):
                     "entity_id": cast("VariableDetails", 
request["details"]).key
                     if request.get("details")
                     else None,
+                    "team_name": self._get_team_name(cast("VariableDetails", 
request["details"]))
+                    if request.get("details")
+                    else None,
                 },
             )
             for request in requests
diff --git 
a/providers/amazon/tests/unit/amazon/aws/auth_manager/test_aws_auth_manager.py 
b/providers/amazon/tests/unit/amazon/aws/auth_manager/test_aws_auth_manager.py
index 6d6bb72ac32..91d69c5bf19 100644
--- 
a/providers/amazon/tests/unit/amazon/aws/auth_manager/test_aws_auth_manager.py
+++ 
b/providers/amazon/tests/unit/amazon/aws/auth_manager/test_aws_auth_manager.py
@@ -64,6 +64,12 @@ else:
 
 mock = Mock()
 
+
+def _with_team_name(details, team_name="team_a"):
+    setattr(details, "team_name", team_name)
+    return details
+
+
 SAML_METADATA_PARSED = {
     "idp": {
         "entityId": 
"https://portal.sso.us-east-1.amazonaws.com/saml/assertion/<assertion>",
@@ -447,7 +453,9 @@ class TestAwsAuthManager:
         mock_avp_facade.is_authorized = is_authorized
 
         result = auth_manager.is_authorized_dag(
-            method="GET", details=DagDetails(id="dag_1", team_name="team_a"), 
user=mock
+            method="GET",
+            details=_with_team_name(DagDetails(id="dag_1")),
+            user=mock,
         )
 
         is_authorized.assert_called_once_with(
@@ -588,7 +596,10 @@ class TestAwsAuthManager:
         result = auth_manager.batch_is_authorized_connection(
             requests=[
                 {"method": "GET"},
-                {"method": "PUT", "details": 
ConnectionDetails(conn_id="test")},
+                {
+                    "method": "PUT",
+                    "details": 
_with_team_name(ConnectionDetails(conn_id="test")),
+                },
             ],
             user=mock,
         )
@@ -599,11 +610,13 @@ class TestAwsAuthManager:
                     "method": "GET",
                     "entity_type": AvpEntities.CONNECTION,
                     "entity_id": None,
+                    "team_name": None,
                 },
                 {
                     "method": "PUT",
                     "entity_type": AvpEntities.CONNECTION,
                     "entity_id": "test",
+                    "team_name": "team_a",
                 },
             ],
             user=ANY,
@@ -622,10 +635,17 @@ class TestAwsAuthManager:
         result = auth_manager.batch_is_authorized_dag(
             requests=[
                 {"method": "GET"},
-                {"method": "GET", "details": DagDetails(id="dag_1")},
+                {
+                    "method": "GET",
+                    "details": _with_team_name(DagDetails(id="dag_1")),
+                },
             ]
             + [
-                {"method": "GET", "details": DagDetails(id="dag_1"), 
"access_entity": dag_access_entity}
+                {
+                    "method": "GET",
+                    "details": _with_team_name(DagDetails(id="dag_1")),
+                    "access_entity": dag_access_entity,
+                }
                 for dag_access_entity in (
                     DagAccessEntity.AUDIT_LOG,
                     DagAccessEntity.CODE,
@@ -648,12 +668,14 @@ class TestAwsAuthManager:
                     "method": "GET",
                     "entity_type": AvpEntities.DAG,
                     "entity_id": None,
+                    "team_name": None,
                     "context": None,
                 },
                 {
                     "method": "GET",
                     "entity_type": AvpEntities.DAG,
                     "entity_id": "dag_1",
+                    "team_name": "team_a",
                     "context": None,
                 },
             ]
@@ -662,6 +684,7 @@ class TestAwsAuthManager:
                     "method": "GET",
                     "entity_type": AvpEntities.DAG,
                     "entity_id": "dag_1",
+                    "team_name": "team_a",
                     "context": {"dag_entity": {"string": dag_entity}},
                 }
                 for dag_entity in (
@@ -693,7 +716,10 @@ class TestAwsAuthManager:
         result = auth_manager.batch_is_authorized_pool(
             requests=[
                 {"method": "GET"},
-                {"method": "PUT", "details": PoolDetails(name="test")},
+                {
+                    "method": "PUT",
+                    "details": _with_team_name(PoolDetails(name="test")),
+                },
             ],
             user=mock,
         )
@@ -704,11 +730,13 @@ class TestAwsAuthManager:
                     "method": "GET",
                     "entity_type": AvpEntities.POOL,
                     "entity_id": None,
+                    "team_name": None,
                 },
                 {
                     "method": "PUT",
                     "entity_type": AvpEntities.POOL,
                     "entity_id": "test",
+                    "team_name": "team_a",
                 },
             ],
             user=ANY,
@@ -727,7 +755,10 @@ class TestAwsAuthManager:
         result = auth_manager.batch_is_authorized_variable(
             requests=[
                 {"method": "GET"},
-                {"method": "PUT", "details": VariableDetails(key="test")},
+                {
+                    "method": "PUT",
+                    "details": _with_team_name(VariableDetails(key="test")),
+                },
             ],
             user=mock,
         )
@@ -738,11 +769,13 @@ class TestAwsAuthManager:
                     "method": "GET",
                     "entity_type": AvpEntities.VARIABLE,
                     "entity_id": None,
+                    "team_name": None,
                 },
                 {
                     "method": "PUT",
                     "entity_type": AvpEntities.VARIABLE,
                     "entity_id": "test",
+                    "team_name": "team_a",
                 },
             ],
             user=ANY,

Reply via email to