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

ash 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 8cc9f1fca93 Relocate airflow.auth to airflow.api_fastapi.auth (#47492)
8cc9f1fca93 is described below

commit 8cc9f1fca9343768e9aa7bb4c802e7d2fc109719
Author: Ash Berlin-Taylor <[email protected]>
AuthorDate: Fri Mar 7 23:40:01 2025 +0000

    Relocate airflow.auth to airflow.api_fastapi.auth (#47492)
---
 .github/workflows/basic-tests.yml                  | 12 +++++-----
 .pre-commit-config.yaml                            | 26 +++++++++-------------
 airflow/api_fastapi/app.py                         |  2 +-
 airflow/{ => api_fastapi}/auth/__init__.py         |  0
 .../{ => api_fastapi}/auth/managers/__init__.py    |  0
 .../auth/managers/base_auth_manager.py             |  8 +++----
 .../auth/managers/models/__init__.py               |  0
 .../auth/managers/models/base_user.py              |  0
 .../auth/managers/models/batch_apis.py             |  4 ++--
 .../auth/managers/models/resource_details.py       |  0
 .../auth/managers/simple/__init__.py               |  0
 .../auth/managers/simple/datamodels/__init__.py    |  0
 .../auth/managers/simple/datamodels/login.py       |  0
 .../auth/managers/simple/openapi/__init__.py       |  0
 .../auth/managers/simple/openapi/v1-generated.yaml |  0
 .../auth/managers/simple/routes/__init__.py        |  0
 .../auth/managers/simple/routes/login.py           |  4 ++--
 .../auth/managers/simple/services/__init__.py      |  0
 .../auth/managers/simple/services/login.py         |  6 ++---
 .../auth/managers/simple/simple_auth_manager.py    | 17 ++++++--------
 .../auth/managers/simple/ui/dev/index.html         |  0
 .../auth/managers/simple/ui/index.html             |  0
 .../simple/ui/openapi-gen/queries/common.ts        |  0
 .../simple/ui/openapi-gen/queries/index.ts         |  0
 .../ui/openapi-gen/queries/infiniteQueries.ts      |  0
 .../simple/ui/openapi-gen/queries/prefetch.ts      |  0
 .../simple/ui/openapi-gen/queries/queries.ts       |  0
 .../simple/ui/openapi-gen/queries/suspense.ts      |  0
 .../ui/openapi-gen/requests/core/ApiError.ts       |  0
 .../openapi-gen/requests/core/ApiRequestOptions.ts |  0
 .../ui/openapi-gen/requests/core/ApiResult.ts      |  0
 .../openapi-gen/requests/core/CancelablePromise.ts |  0
 .../simple/ui/openapi-gen/requests/core/OpenAPI.ts |  0
 .../simple/ui/openapi-gen/requests/core/request.ts |  0
 .../simple/ui/openapi-gen/requests/index.ts        |  0
 .../simple/ui/openapi-gen/requests/schemas.gen.ts  |  0
 .../simple/ui/openapi-gen/requests/services.gen.ts |  0
 .../simple/ui/openapi-gen/requests/types.gen.ts    |  0
 .../auth/managers/simple/ui/package-lock.json      |  0
 .../auth/managers/simple/ui/package.json           |  0
 .../auth/managers/simple/ui/pnpm-lock.yaml         |  0
 .../managers/simple/ui/src/login/Login.test.tsx    |  0
 .../auth/managers/simple/ui/src/login/Login.tsx    |  0
 .../managers/simple/ui/src/login/LoginForm.tsx     |  0
 .../auth/managers/simple/ui/src/main.tsx           |  0
 .../simple/ui/src/queries/useCreateToken.ts        |  0
 .../auth/managers/simple/ui/src/queryClient.ts     |  0
 .../auth/managers/simple/ui/src/router.tsx         |  0
 .../auth/managers/simple/ui/src/test-utils.tsx     |  0
 .../auth/managers/simple/ui/tests-setup.ts         |  0
 .../auth/managers/simple/ui/vite.config.ts         |  0
 .../{ => api_fastapi}/auth/managers/simple/user.py |  2 +-
 .../auth/managers/utils/__init__.py                |  0
 .../{ => api_fastapi}/auth/managers/utils/fab.py   |  2 +-
 .../core_api/routes/public/dag_parsing.py          |  4 ++--
 airflow/api_fastapi/core_api/security.py           |  6 ++---
 airflow/api_fastapi/logging/decorators.py          |  2 +-
 airflow/configuration.py                           |  2 +-
 clients/python/test_python_client.py               |  4 ++--
 codecov.yml                                        |  2 +-
 contributing-docs/08_static_code_checks.rst        |  3 +--
 .../commands/release_management_commands.py        |  2 +-
 .../src/airflow_breeze/utils/selective_checks.py   |  4 ++--
 .../tests/test_pytest_args_for_test_types.py       |  1 -
 newsfragments/41348.significant.rst                |  8 +++----
 .../amazon/aws/auth_manager/avp/entities.py        |  2 +-
 .../amazon/aws/auth_manager/avp/facade.py          |  2 +-
 .../amazon/aws/auth_manager/aws_auth_manager.py    | 10 ++++-----
 .../providers/amazon/aws/auth_manager/user.py      | 11 +++++----
 .../amazon/aws/auth_manager/avp/test_facade.py     |  2 +-
 .../aws/auth_manager/test_aws_auth_manager.py      |  6 ++---
 .../providers/common/compat/assets/__init__.py     |  4 ++--
 .../databricks/plugins/databricks_workflow.py      |  5 ++++-
 .../providers/edge/plugins/edge_executor_plugin.py |  6 +++--
 .../auth_manager/api/auth/backend/kerberos_auth.py |  2 +-
 .../providers/fab/auth_manager/fab_auth_manager.py | 11 +++++----
 .../providers/fab/auth_manager/models/__init__.py  |  2 +-
 .../fab/auth_manager/models/anonymous_user.py      |  2 +-
 .../providers/fab/www/api_connexion/security.py    |  2 +-
 .../fab/src/airflow/providers/fab/www/auth.py      |  6 ++---
 .../airflow/providers/fab/www/security_manager.py  |  2 +-
 .../unit/fab/auth_manager/test_fab_auth_manager.py |  8 +++++--
 .../tests/unit/fab/auth_manager/test_security.py   |  8 +++----
 providers/fab/tests/unit/fab/www/test_auth.py      |  2 +-
 pyproject.toml                                     |  1 -
 scripts/ci/pre_commit/compile_ui_assets.py         |  4 +++-
 scripts/cov/other_coverage.py                      |  1 -
 .../in_container/run_update_fastapi_api_spec.py    | 20 +++++++++++------
 tests/{ => api_fastapi}/auth/__init__.py           |  0
 tests/{ => api_fastapi}/auth/managers/__init__.py  |  0
 .../auth/managers/simple/__init__.py               |  0
 .../auth/managers/simple/conftest.py               |  4 ++--
 .../auth/managers/simple/routes/__init__.py        |  0
 .../auth/managers/simple/routes/test_login.py      |  6 ++---
 .../auth/managers/simple/services/__init__.py      |  0
 .../auth/managers/simple/services/test_login.py    |  6 ++---
 .../managers/simple/test_simple_auth_manager.py    |  4 ++--
 .../auth/managers/simple/test_user.py              |  0
 .../auth/managers/test_base_auth_manager.py        | 14 ++++++------
 tests/api_fastapi/conftest.py                      |  8 +++----
 tests/api_fastapi/core_api/test_security.py        |  6 ++---
 101 files changed, 149 insertions(+), 139 deletions(-)

diff --git a/.github/workflows/basic-tests.yml 
b/.github/workflows/basic-tests.yml
index 39df43a611f..775c72f0523 100644
--- a/.github/workflows/basic-tests.yml
+++ b/.github/workflows/basic-tests.yml
@@ -131,22 +131,22 @@ jobs:
       - name: "Restore eslint cache (simple auth manager UI)"
         uses: 
apache/infrastructure-actions/stash/restore@1c35b5ccf8fba5d4c3fdf25a045ca91aa0cbc468
         with:
-          path: airflow/auth/managers/simple/ui/node_modules/
+          path: airflow/api_fastapi/auth/managers/simple/ui/node_modules/
           key: >
             cache-simple-am-ui-node-modules-v1-
-            ${{ runner.os }}-${{ 
hashFiles('airflow/auth/managers/simple/ui/**/pnpm-lock.yaml') }}
+            ${{ runner.os }}-${{ 
hashFiles('airflow/api_fastapi/auth/managers/simple/ui/**/pnpm-lock.yaml') }}
         id: restore-eslint-cache-simple-am-ui
-      - run: cd airflow/auth/managers/simple/ui && pnpm install 
--frozen-lockfile
-      - run: cd airflow/auth/managers/simple/ui && pnpm test
+      - run: cd airflow/api_fastapi/auth/managers/simple/ui && pnpm install 
--frozen-lockfile
+      - run: cd airflow/api_fastapi/auth/managers/simple/ui && pnpm test
         env:
           FORCE_COLOR: 2
       - name: "Save eslint cache (ui)"
         uses: 
apache/infrastructure-actions/stash/save@1c35b5ccf8fba5d4c3fdf25a045ca91aa0cbc468
         with:
-          path: airflow/auth/managers/simple/ui/node_modules/
+          path: airflow/api_fastapi/auth/managers/simple/ui/node_modules/
           key: >
             cache-simple-am-ui-node-modules-v1-
-            ${{ runner.os }}-${{ 
hashFiles('airflow/auth/managers/simple/ui/**/pnpm-lock.yaml') }}
+            ${{ runner.os }}-${{ 
hashFiles('airflow/api_fastapi/auth/managers/simple/ui/**/pnpm-lock.yaml') }}
           if-no-files-found: 'error'
           retention-days: '2'
         if: steps.restore-eslint-cache-simple-am-ui.outputs.stash-hit != 'true'
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 3daa77dad08..d9ef02045b8 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -125,7 +125,7 @@ repos:
           - --fuzzy-match-generates-todo
       - id: insert-license
         name: Add license for all YAML files except Helm templates
-        exclude: 
^\.github/.*$|^chart/templates/.*|.*/reproducible_build.yaml$|^airflow/api_fastapi/core_api/openapi/v1-generated.yaml$|^airflow/auth/managers/simple/openapi/v1-generated.yaml$|^providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v1-generated.yaml$|^.*/pnpm-lock.yaml$
+        exclude: 
^\.github/.*$|^chart/templates/.*|.*/reproducible_build.yaml$|^.*/v1-generated.yaml$|^.*/pnpm-lock.yaml$
         types: [yaml]
         files: \.ya?ml$
         args:
@@ -281,9 +281,8 @@ repos:
           ^.*airflow\.template\.yaml$|
           ^.*init_git_sync\.template\.yaml$|
           ^chart/(?:templates|files)/.*\.yaml$|
-          ^airflow/api_fastapi/core_api/openapi/v1-generated\.yaml$|
+          .*/v1-generated\.yaml$|
           ^.*openapi.*\.yaml$|
-          ^airflow/api_fastapi/core_api/openapi/v1-generated\.yaml$|
           ^\.pre-commit-config\.yaml$|
           ^.*/reproducible_build.yaml$|
           ^.*pnpm-lock\.yaml$
@@ -825,7 +824,7 @@ repos:
         language: node
         stages: ['manual']
         types_or: [javascript, ts, tsx]
-        files: ^airflow/ui/|^airflow/auth/managers/simple/ui/
+        files: ^airflow/ui/|^airflow/api_fastapi/auth/managers/simple/ui/
         entry: ./scripts/ci/pre_commit/compile_ui_assets.py
         pass_filenames: false
         additional_dependencies: ['[email protected]']
@@ -842,7 +841,7 @@ repos:
         language: node
         stages: ['manual']
         types_or: [javascript, ts, tsx]
-        files: ^airflow/ui/|^airflow/auth/managers/simple/ui/
+        files: ^airflow/ui/|^airflow/api_fastapi/auth/managers/simple/ui/
         entry: ./scripts/ci/pre_commit/compile_ui_assets_dev.py
         pass_filenames: false
         additional_dependencies: ['[email protected]']
@@ -1131,15 +1130,6 @@ repos:
         additional_dependencies: ['rich>=12.4.4']
         pass_filenames: false
         files: ^tests/.*\.py$
-      - id: ts-compile-format-lint-ui
-        name: Compile / format / lint UI
-        description: TS types generation / ESLint / Prettier new UI files
-        language: node
-        types_or: [javascript, ts, tsx, yaml, css, json]
-        files: 
^airflow/ui/|^airflow/api_fastapi/core_api/openapi/v1-generated\.yaml$|^airflow/auth/managers/simple/ui/|^airflow/auth/managers/simple/openapi/v1-generated\.yaml$
-        entry: ./scripts/ci/pre_commit/lint_ui.py
-        additional_dependencies: ['[email protected]']
-        pass_filenames: false
       - id: check-tests-unittest-testcase
         name: Unit tests do not inherit from unittest.TestCase
         description: Check that unit tests do not inherit from 
unittest.TestCase
@@ -1324,7 +1314,7 @@ repos:
         language: python
         entry: ./scripts/ci/pre_commit/update_fastapi_api_spec.py
         pass_filenames: false
-        files: 
^airflow/api_fastapi/.*\.py$|^airflow/auth/managers/simple/.*\.py$|^providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/.*\.py$
+        files: 
^airflow/api_fastapi/.*\.py$|^airflow/api_fastapi/auth/managers/simple/.*\.py$|^providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/.*\.py$
         exclude: ^airflow/api_fastapi/execution_api/.*
         additional_dependencies: ['rich>=12.4.4']
       - id: ts-compile-format-lint-ui
@@ -1332,7 +1322,11 @@ repos:
         description: TS types generation / ESLint / Prettier new UI files
         language: node
         types_or: [javascript, ts, tsx, yaml, css, json]
-        files: 
^airflow/ui/|^airflow/api_fastapi/core_api/openapi/v1-generated\.yaml$|^airflow/auth/managers/simple/ui/|^airflow/auth/managers/simple/openapi/v1-generated\.yaml$
+        files: |
+          (?x)
+          
^airflow/ui/|^airflow/api_fastapi/core_api/openapi/v1-generated\.yaml$ |
+          ^airflow/api_fastapi/auth/managers/simple/ui/ |
+          ^airflow/api_fastapi/auth/managers/simple/openapi/v1-generated\.yaml$
         entry: ./scripts/ci/pre_commit/lint_ui.py
         additional_dependencies: ['[email protected]']
         pass_filenames: false
diff --git a/airflow/api_fastapi/app.py b/airflow/api_fastapi/app.py
index 9f7369f0be1..3238d66bd87 100644
--- a/airflow/api_fastapi/app.py
+++ b/airflow/api_fastapi/app.py
@@ -38,7 +38,7 @@ from airflow.configuration import conf
 from airflow.exceptions import AirflowConfigException
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import BaseAuthManager
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
BaseAuthManager
 
 log = logging.getLogger(__name__)
 
diff --git a/airflow/auth/__init__.py b/airflow/api_fastapi/auth/__init__.py
similarity index 100%
rename from airflow/auth/__init__.py
rename to airflow/api_fastapi/auth/__init__.py
diff --git a/airflow/auth/managers/__init__.py 
b/airflow/api_fastapi/auth/managers/__init__.py
similarity index 100%
rename from airflow/auth/managers/__init__.py
rename to airflow/api_fastapi/auth/managers/__init__.py
diff --git a/airflow/auth/managers/base_auth_manager.py 
b/airflow/api_fastapi/auth/managers/base_auth_manager.py
similarity index 97%
rename from airflow/auth/managers/base_auth_manager.py
rename to airflow/api_fastapi/auth/managers/base_auth_manager.py
index f3b86600a05..6d2e2eb3f4c 100644
--- a/airflow/auth/managers/base_auth_manager.py
+++ b/airflow/api_fastapi/auth/managers/base_auth_manager.py
@@ -24,8 +24,8 @@ from typing import TYPE_CHECKING, Any, Generic, TypeVar
 from jwt import InvalidTokenError
 from sqlalchemy import select
 
-from airflow.auth.managers.models.base_user import BaseUser
-from airflow.auth.managers.models.resource_details import DagDetails
+from airflow.api_fastapi.auth.managers.models.base_user import BaseUser
+from airflow.api_fastapi.auth.managers.models.resource_details import 
DagDetails
 from airflow.configuration import conf
 from airflow.models import DagModel
 from airflow.typing_compat import Literal
@@ -39,13 +39,13 @@ if TYPE_CHECKING:
     from fastapi import FastAPI
     from sqlalchemy.orm import Session
 
-    from airflow.auth.managers.models.batch_apis import (
+    from airflow.api_fastapi.auth.managers.models.batch_apis import (
         IsAuthorizedConnectionRequest,
         IsAuthorizedDagRequest,
         IsAuthorizedPoolRequest,
         IsAuthorizedVariableRequest,
     )
-    from airflow.auth.managers.models.resource_details import (
+    from airflow.api_fastapi.auth.managers.models.resource_details import (
         AccessView,
         AssetDetails,
         ConfigurationDetails,
diff --git a/airflow/auth/managers/models/__init__.py 
b/airflow/api_fastapi/auth/managers/models/__init__.py
similarity index 100%
rename from airflow/auth/managers/models/__init__.py
rename to airflow/api_fastapi/auth/managers/models/__init__.py
diff --git a/airflow/auth/managers/models/base_user.py 
b/airflow/api_fastapi/auth/managers/models/base_user.py
similarity index 100%
rename from airflow/auth/managers/models/base_user.py
rename to airflow/api_fastapi/auth/managers/models/base_user.py
diff --git a/airflow/auth/managers/models/batch_apis.py 
b/airflow/api_fastapi/auth/managers/models/batch_apis.py
similarity index 92%
rename from airflow/auth/managers/models/batch_apis.py
rename to airflow/api_fastapi/auth/managers/models/batch_apis.py
index ac37f68c723..2fe11b659af 100644
--- a/airflow/auth/managers/models/batch_apis.py
+++ b/airflow/api_fastapi/auth/managers/models/batch_apis.py
@@ -20,8 +20,8 @@ from __future__ import annotations
 from typing import TYPE_CHECKING, TypedDict
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
-    from airflow.auth.managers.models.resource_details import (
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
+    from airflow.api_fastapi.auth.managers.models.resource_details import (
         ConnectionDetails,
         DagAccessEntity,
         DagDetails,
diff --git a/airflow/auth/managers/models/resource_details.py 
b/airflow/api_fastapi/auth/managers/models/resource_details.py
similarity index 100%
rename from airflow/auth/managers/models/resource_details.py
rename to airflow/api_fastapi/auth/managers/models/resource_details.py
diff --git a/airflow/auth/managers/simple/__init__.py 
b/airflow/api_fastapi/auth/managers/simple/__init__.py
similarity index 100%
rename from airflow/auth/managers/simple/__init__.py
rename to airflow/api_fastapi/auth/managers/simple/__init__.py
diff --git a/airflow/auth/managers/simple/datamodels/__init__.py 
b/airflow/api_fastapi/auth/managers/simple/datamodels/__init__.py
similarity index 100%
rename from airflow/auth/managers/simple/datamodels/__init__.py
rename to airflow/api_fastapi/auth/managers/simple/datamodels/__init__.py
diff --git a/airflow/auth/managers/simple/datamodels/login.py 
b/airflow/api_fastapi/auth/managers/simple/datamodels/login.py
similarity index 100%
rename from airflow/auth/managers/simple/datamodels/login.py
rename to airflow/api_fastapi/auth/managers/simple/datamodels/login.py
diff --git a/airflow/auth/managers/simple/openapi/__init__.py 
b/airflow/api_fastapi/auth/managers/simple/openapi/__init__.py
similarity index 100%
rename from airflow/auth/managers/simple/openapi/__init__.py
rename to airflow/api_fastapi/auth/managers/simple/openapi/__init__.py
diff --git a/airflow/auth/managers/simple/openapi/v1-generated.yaml 
b/airflow/api_fastapi/auth/managers/simple/openapi/v1-generated.yaml
similarity index 100%
rename from airflow/auth/managers/simple/openapi/v1-generated.yaml
rename to airflow/api_fastapi/auth/managers/simple/openapi/v1-generated.yaml
diff --git a/airflow/auth/managers/simple/routes/__init__.py 
b/airflow/api_fastapi/auth/managers/simple/routes/__init__.py
similarity index 100%
rename from airflow/auth/managers/simple/routes/__init__.py
rename to airflow/api_fastapi/auth/managers/simple/routes/__init__.py
diff --git a/airflow/auth/managers/simple/routes/login.py 
b/airflow/api_fastapi/auth/managers/simple/routes/login.py
similarity index 91%
rename from airflow/auth/managers/simple/routes/login.py
rename to airflow/api_fastapi/auth/managers/simple/routes/login.py
index 9ea0f9287bd..2a4360cd4b1 100644
--- a/airflow/auth/managers/simple/routes/login.py
+++ b/airflow/api_fastapi/auth/managers/simple/routes/login.py
@@ -19,10 +19,10 @@ from __future__ import annotations
 
 from fastapi import status
 
+from airflow.api_fastapi.auth.managers.simple.datamodels.login import 
LoginBody, LoginResponse
+from airflow.api_fastapi.auth.managers.simple.services.login import 
SimpleAuthManagerLogin
 from airflow.api_fastapi.common.router import AirflowRouter
 from airflow.api_fastapi.core_api.openapi.exceptions import 
create_openapi_http_exception_doc
-from airflow.auth.managers.simple.datamodels.login import LoginBody, 
LoginResponse
-from airflow.auth.managers.simple.services.login import SimpleAuthManagerLogin
 from airflow.configuration import conf
 
 login_router = AirflowRouter(tags=["SimpleAuthManagerLogin"])
diff --git a/airflow/auth/managers/simple/services/__init__.py 
b/airflow/api_fastapi/auth/managers/simple/services/__init__.py
similarity index 100%
rename from airflow/auth/managers/simple/services/__init__.py
rename to airflow/api_fastapi/auth/managers/simple/services/__init__.py
diff --git a/airflow/auth/managers/simple/services/login.py 
b/airflow/api_fastapi/auth/managers/simple/services/login.py
similarity index 90%
rename from airflow/auth/managers/simple/services/login.py
rename to airflow/api_fastapi/auth/managers/simple/services/login.py
index 35953382147..fa5cfe19142 100644
--- a/airflow/auth/managers/simple/services/login.py
+++ b/airflow/api_fastapi/auth/managers/simple/services/login.py
@@ -20,9 +20,9 @@ from __future__ import annotations
 from fastapi import HTTPException, status
 
 from airflow.api_fastapi.app import get_auth_manager
-from airflow.auth.managers.simple.datamodels.login import LoginBody, 
LoginResponse
-from airflow.auth.managers.simple.simple_auth_manager import SimpleAuthManager
-from airflow.auth.managers.simple.user import SimpleAuthManagerUser
+from airflow.api_fastapi.auth.managers.simple.datamodels.login import 
LoginBody, LoginResponse
+from airflow.api_fastapi.auth.managers.simple.simple_auth_manager import 
SimpleAuthManager
+from airflow.api_fastapi.auth.managers.simple.user import SimpleAuthManagerUser
 from airflow.configuration import conf
 
 
diff --git a/airflow/auth/managers/simple/simple_auth_manager.py 
b/airflow/api_fastapi/auth/managers/simple/simple_auth_manager.py
similarity index 94%
rename from airflow/auth/managers/simple/simple_auth_manager.py
rename to airflow/api_fastapi/auth/managers/simple/simple_auth_manager.py
index e70500676a7..58f65c9cf22 100644
--- a/airflow/auth/managers/simple/simple_auth_manager.py
+++ b/airflow/api_fastapi/auth/managers/simple/simple_auth_manager.py
@@ -32,14 +32,13 @@ from starlette.staticfiles import StaticFiles
 from starlette.templating import Jinja2Templates
 from termcolor import colored
 
-from airflow.auth.managers.base_auth_manager import BaseAuthManager
-from airflow.auth.managers.simple.user import SimpleAuthManagerUser
+from airflow.api_fastapi.auth.managers.base_auth_manager import BaseAuthManager
+from airflow.api_fastapi.auth.managers.simple.user import SimpleAuthManagerUser
 from airflow.configuration import AIRFLOW_HOME, conf
-from airflow.settings import AIRFLOW_PATH
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
-    from airflow.auth.managers.models.resource_details import (
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
+    from airflow.api_fastapi.auth.managers.models.resource_details import (
         AccessView,
         AssetDetails,
         ConfigurationDetails,
@@ -218,13 +217,11 @@ class 
SimpleAuthManager(BaseAuthManager[SimpleAuthManagerUser]):
 
         This sub application, if specified, is mounted in the main FastAPI 
application.
         """
-        from airflow.auth.managers.simple.routes.login import login_router
+        from airflow.api_fastapi.auth.managers.simple.routes.login import 
login_router
 
         dev_mode = os.environ.get("DEV_MODE", False) == "true"
-        directory = Path(AIRFLOW_PATH) / (
-            "airflow/auth/managers/simple/ui/dev" if dev_mode else 
"airflow/auth/managers/simple/ui/dist"
-        )
-        Path(directory).mkdir(exist_ok=True)
+        directory = Path(__file__).parent.joinpath("ui", "dev" if dev_mode 
else "dist")
+        directory.mkdir(exist_ok=True)
 
         templates = Jinja2Templates(directory=directory)
 
diff --git a/airflow/auth/managers/simple/ui/dev/index.html 
b/airflow/api_fastapi/auth/managers/simple/ui/dev/index.html
similarity index 100%
rename from airflow/auth/managers/simple/ui/dev/index.html
rename to airflow/api_fastapi/auth/managers/simple/ui/dev/index.html
diff --git a/airflow/auth/managers/simple/ui/index.html 
b/airflow/api_fastapi/auth/managers/simple/ui/index.html
similarity index 100%
rename from airflow/auth/managers/simple/ui/index.html
rename to airflow/api_fastapi/auth/managers/simple/ui/index.html
diff --git a/airflow/auth/managers/simple/ui/openapi-gen/queries/common.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/common.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/queries/common.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/common.ts
diff --git a/airflow/auth/managers/simple/ui/openapi-gen/queries/index.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/index.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/queries/index.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/index.ts
diff --git 
a/airflow/auth/managers/simple/ui/openapi-gen/queries/infiniteQueries.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/infiniteQueries.ts
similarity index 100%
rename from 
airflow/auth/managers/simple/ui/openapi-gen/queries/infiniteQueries.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/infiniteQueries.ts
diff --git a/airflow/auth/managers/simple/ui/openapi-gen/queries/prefetch.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/prefetch.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/queries/prefetch.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/prefetch.ts
diff --git a/airflow/auth/managers/simple/ui/openapi-gen/queries/queries.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/queries.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/queries/queries.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/queries.ts
diff --git a/airflow/auth/managers/simple/ui/openapi-gen/queries/suspense.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/suspense.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/queries/suspense.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/queries/suspense.ts
diff --git 
a/airflow/auth/managers/simple/ui/openapi-gen/requests/core/ApiError.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/ApiError.ts
similarity index 100%
rename from 
airflow/auth/managers/simple/ui/openapi-gen/requests/core/ApiError.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/ApiError.ts
diff --git 
a/airflow/auth/managers/simple/ui/openapi-gen/requests/core/ApiRequestOptions.ts
 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/ApiRequestOptions.ts
similarity index 100%
rename from 
airflow/auth/managers/simple/ui/openapi-gen/requests/core/ApiRequestOptions.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/ApiRequestOptions.ts
diff --git 
a/airflow/auth/managers/simple/ui/openapi-gen/requests/core/ApiResult.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/ApiResult.ts
similarity index 100%
rename from 
airflow/auth/managers/simple/ui/openapi-gen/requests/core/ApiResult.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/ApiResult.ts
diff --git 
a/airflow/auth/managers/simple/ui/openapi-gen/requests/core/CancelablePromise.ts
 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/CancelablePromise.ts
similarity index 100%
rename from 
airflow/auth/managers/simple/ui/openapi-gen/requests/core/CancelablePromise.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/CancelablePromise.ts
diff --git 
a/airflow/auth/managers/simple/ui/openapi-gen/requests/core/OpenAPI.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/OpenAPI.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/requests/core/OpenAPI.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/OpenAPI.ts
diff --git 
a/airflow/auth/managers/simple/ui/openapi-gen/requests/core/request.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/request.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/requests/core/request.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/core/request.ts
diff --git a/airflow/auth/managers/simple/ui/openapi-gen/requests/index.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/index.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/requests/index.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/index.ts
diff --git 
a/airflow/auth/managers/simple/ui/openapi-gen/requests/schemas.gen.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/schemas.gen.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/requests/schemas.gen.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/schemas.gen.ts
diff --git 
a/airflow/auth/managers/simple/ui/openapi-gen/requests/services.gen.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/services.gen.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/requests/services.gen.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/services.gen.ts
diff --git a/airflow/auth/managers/simple/ui/openapi-gen/requests/types.gen.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/types.gen.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/openapi-gen/requests/types.gen.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/openapi-gen/requests/types.gen.ts
diff --git a/airflow/auth/managers/simple/ui/package-lock.json 
b/airflow/api_fastapi/auth/managers/simple/ui/package-lock.json
similarity index 100%
rename from airflow/auth/managers/simple/ui/package-lock.json
rename to airflow/api_fastapi/auth/managers/simple/ui/package-lock.json
diff --git a/airflow/auth/managers/simple/ui/package.json 
b/airflow/api_fastapi/auth/managers/simple/ui/package.json
similarity index 100%
rename from airflow/auth/managers/simple/ui/package.json
rename to airflow/api_fastapi/auth/managers/simple/ui/package.json
diff --git a/airflow/auth/managers/simple/ui/pnpm-lock.yaml 
b/airflow/api_fastapi/auth/managers/simple/ui/pnpm-lock.yaml
similarity index 100%
rename from airflow/auth/managers/simple/ui/pnpm-lock.yaml
rename to airflow/api_fastapi/auth/managers/simple/ui/pnpm-lock.yaml
diff --git a/airflow/auth/managers/simple/ui/src/login/Login.test.tsx 
b/airflow/api_fastapi/auth/managers/simple/ui/src/login/Login.test.tsx
similarity index 100%
rename from airflow/auth/managers/simple/ui/src/login/Login.test.tsx
rename to airflow/api_fastapi/auth/managers/simple/ui/src/login/Login.test.tsx
diff --git a/airflow/auth/managers/simple/ui/src/login/Login.tsx 
b/airflow/api_fastapi/auth/managers/simple/ui/src/login/Login.tsx
similarity index 100%
rename from airflow/auth/managers/simple/ui/src/login/Login.tsx
rename to airflow/api_fastapi/auth/managers/simple/ui/src/login/Login.tsx
diff --git a/airflow/auth/managers/simple/ui/src/login/LoginForm.tsx 
b/airflow/api_fastapi/auth/managers/simple/ui/src/login/LoginForm.tsx
similarity index 100%
rename from airflow/auth/managers/simple/ui/src/login/LoginForm.tsx
rename to airflow/api_fastapi/auth/managers/simple/ui/src/login/LoginForm.tsx
diff --git a/airflow/auth/managers/simple/ui/src/main.tsx 
b/airflow/api_fastapi/auth/managers/simple/ui/src/main.tsx
similarity index 100%
rename from airflow/auth/managers/simple/ui/src/main.tsx
rename to airflow/api_fastapi/auth/managers/simple/ui/src/main.tsx
diff --git a/airflow/auth/managers/simple/ui/src/queries/useCreateToken.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/src/queries/useCreateToken.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/src/queries/useCreateToken.ts
rename to 
airflow/api_fastapi/auth/managers/simple/ui/src/queries/useCreateToken.ts
diff --git a/airflow/auth/managers/simple/ui/src/queryClient.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/src/queryClient.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/src/queryClient.ts
rename to airflow/api_fastapi/auth/managers/simple/ui/src/queryClient.ts
diff --git a/airflow/auth/managers/simple/ui/src/router.tsx 
b/airflow/api_fastapi/auth/managers/simple/ui/src/router.tsx
similarity index 100%
rename from airflow/auth/managers/simple/ui/src/router.tsx
rename to airflow/api_fastapi/auth/managers/simple/ui/src/router.tsx
diff --git a/airflow/auth/managers/simple/ui/src/test-utils.tsx 
b/airflow/api_fastapi/auth/managers/simple/ui/src/test-utils.tsx
similarity index 100%
rename from airflow/auth/managers/simple/ui/src/test-utils.tsx
rename to airflow/api_fastapi/auth/managers/simple/ui/src/test-utils.tsx
diff --git a/airflow/auth/managers/simple/ui/tests-setup.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/tests-setup.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/tests-setup.ts
rename to airflow/api_fastapi/auth/managers/simple/ui/tests-setup.ts
diff --git a/airflow/auth/managers/simple/ui/vite.config.ts 
b/airflow/api_fastapi/auth/managers/simple/ui/vite.config.ts
similarity index 100%
rename from airflow/auth/managers/simple/ui/vite.config.ts
rename to airflow/api_fastapi/auth/managers/simple/ui/vite.config.ts
diff --git a/airflow/auth/managers/simple/user.py 
b/airflow/api_fastapi/auth/managers/simple/user.py
similarity index 95%
rename from airflow/auth/managers/simple/user.py
rename to airflow/api_fastapi/auth/managers/simple/user.py
index f4591b0b1c7..83987fe593b 100644
--- a/airflow/auth/managers/simple/user.py
+++ b/airflow/api_fastapi/auth/managers/simple/user.py
@@ -16,7 +16,7 @@
 # under the License.
 from __future__ import annotations
 
-from airflow.auth.managers.models.base_user import BaseUser
+from airflow.api_fastapi.auth.managers.models.base_user import BaseUser
 
 
 class SimpleAuthManagerUser(BaseUser):
diff --git a/airflow/auth/managers/utils/__init__.py 
b/airflow/api_fastapi/auth/managers/utils/__init__.py
similarity index 100%
rename from airflow/auth/managers/utils/__init__.py
rename to airflow/api_fastapi/auth/managers/utils/__init__.py
diff --git a/airflow/auth/managers/utils/fab.py 
b/airflow/api_fastapi/auth/managers/utils/fab.py
similarity index 95%
rename from airflow/auth/managers/utils/fab.py
rename to airflow/api_fastapi/auth/managers/utils/fab.py
index 0f2bc7c46e6..82a1c9344ba 100644
--- a/airflow/auth/managers/utils/fab.py
+++ b/airflow/api_fastapi/auth/managers/utils/fab.py
@@ -28,7 +28,7 @@ from airflow.security.permissions import (
 )
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
 
 # Convert methods to FAB action name
 _MAP_METHOD_NAME_TO_FAB_ACTION_NAME: dict[ResourceMethod, str] = {
diff --git a/airflow/api_fastapi/core_api/routes/public/dag_parsing.py 
b/airflow/api_fastapi/core_api/routes/public/dag_parsing.py
index da85534cc08..f5b7f2c3593 100644
--- a/airflow/api_fastapi/core_api/routes/public/dag_parsing.py
+++ b/airflow/api_fastapi/core_api/routes/public/dag_parsing.py
@@ -23,16 +23,16 @@ from fastapi import Depends, HTTPException, Request, status
 from itsdangerous import BadSignature, URLSafeSerializer
 from sqlalchemy import select
 
+from airflow.api_fastapi.auth.managers.models.resource_details import 
DagDetails
 from airflow.api_fastapi.common.db.common import SessionDep
 from airflow.api_fastapi.common.router import AirflowRouter
 from airflow.api_fastapi.core_api.openapi.exceptions import 
create_openapi_http_exception_doc
 from airflow.api_fastapi.logging.decorators import action_logging
-from airflow.auth.managers.models.resource_details import DagDetails
 from airflow.models.dag import DagModel
 from airflow.models.dagbag import DagPriorityParsingRequest
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.models.batch_apis import IsAuthorizedDagRequest
+    from airflow.api_fastapi.auth.managers.models.batch_apis import 
IsAuthorizedDagRequest
 
 dag_parsing_router = AirflowRouter(tags=["DAG Parsing"], 
prefix="/parseDagFile/{file_token}")
 
diff --git a/airflow/api_fastapi/core_api/security.py 
b/airflow/api_fastapi/core_api/security.py
index a8837a93c42..54c7c728919 100644
--- a/airflow/api_fastapi/core_api/security.py
+++ b/airflow/api_fastapi/core_api/security.py
@@ -24,8 +24,8 @@ from fastapi.security import OAuth2PasswordBearer
 from jwt import ExpiredSignatureError, InvalidTokenError
 
 from airflow.api_fastapi.app import get_auth_manager
-from airflow.auth.managers.models.base_user import BaseUser
-from airflow.auth.managers.models.resource_details import (
+from airflow.api_fastapi.auth.managers.models.base_user import BaseUser
+from airflow.api_fastapi.auth.managers.models.resource_details import (
     AssetDetails,
     ConfigurationDetails,
     ConnectionDetails,
@@ -38,7 +38,7 @@ from airflow.configuration import conf
 from airflow.utils.jwt_signer import JWTSigner, get_signing_key
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
 
 oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
 
diff --git a/airflow/api_fastapi/logging/decorators.py 
b/airflow/api_fastapi/logging/decorators.py
index d9e213f3704..bb3b1abc430 100644
--- a/airflow/api_fastapi/logging/decorators.py
+++ b/airflow/api_fastapi/logging/decorators.py
@@ -25,9 +25,9 @@ import pendulum
 from fastapi import Depends, Request
 from pendulum.parsing.exceptions import ParserError
 
+from airflow.api_fastapi.auth.managers.models.base_user import BaseUser
 from airflow.api_fastapi.common.db.common import SessionDep
 from airflow.api_fastapi.core_api.security import 
get_user_with_exception_handling
-from airflow.auth.managers.models.base_user import BaseUser
 from airflow.models import Log
 from airflow.sdk.execution_time import secrets_masker
 
diff --git a/airflow/configuration.py b/airflow/configuration.py
index aebfdecf708..4fb977f441b 100644
--- a/airflow/configuration.py
+++ b/airflow/configuration.py
@@ -53,7 +53,7 @@ from airflow.utils.providers_configuration_loader import 
providers_configuration
 from airflow.utils.weight_rule import WeightRule
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import BaseAuthManager
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
BaseAuthManager
     from airflow.secrets import BaseSecretsBackend
 
 log = logging.getLogger(__name__)
diff --git a/clients/python/test_python_client.py 
b/clients/python/test_python_client.py
index dff09b65822..0f4de597782 100644
--- a/clients/python/test_python_client.py
+++ b/clients/python/test_python_client.py
@@ -34,7 +34,7 @@ import airflow_client.client
 import pytest
 
 from airflow.api_fastapi.app import create_app
-from airflow.auth.managers.simple.datamodels.login import LoginBody
+from airflow.api_fastapi.auth.managers.simple.datamodels.login import LoginBody
 from airflow.providers.fab.auth_manager.api_fastapi.services.login import 
FABAuthManagerLogin
 
 try:
@@ -56,7 +56,7 @@ from airflow_client.client.model.dag_run import DAGRun
 # appropriate AuthManager.
 # This is defined in the `[api]` section of your `airflow.cfg`:
 #
-# auth_manager = 
airflow.auth.managers.simple.simple_auth_manager.SimpleAuthManager
+# auth_manager = 
airflow.api_fastapi.auth.managers.simple.simple_auth_manager.SimpleAuthManager
 #
 # Make sure that your user/name are configured properly - using the 
user/password that has admin
 # privileges in Airflow
diff --git a/codecov.yml b/codecov.yml
index 50cf720fcb4..162fec2fb99 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -111,6 +111,6 @@ ignore:
   - "airflow/migrations"
   - "airflow/providers/**/example_dags"
   - "airflow/ui/node_modules"
-  - "airflow/auth/managers/simple/ui/node_modules"
+  - "airflow/api_fastapi/auth/managers/simple/ui/node_modules"
 
 comment: false
diff --git a/contributing-docs/08_static_code_checks.rst 
b/contributing-docs/08_static_code_checks.rst
index ee632fefab7..70f966b01c3 100644
--- a/contributing-docs/08_static_code_checks.rst
+++ b/contributing-docs/08_static_code_checks.rst
@@ -348,8 +348,7 @@ require Breeze Docker image to be built locally.
 
+-----------------------------------------------------------+--------------------------------------------------------+---------+
 | trailing-whitespace                                       | Remove trailing 
whitespace at end of line              |         |
 
+-----------------------------------------------------------+--------------------------------------------------------+---------+
-| ts-compile-format-lint-ui                                 | * Compile / 
format / lint UI                           | *       |
-|                                                           | * Compile / 
format / lint UI                           |         |
+| ts-compile-format-lint-ui                                 | Compile / format 
/ lint UI                             | *       |
 
+-----------------------------------------------------------+--------------------------------------------------------+---------+
 | update-black-version                                      | Update black 
versions everywhere (manual)              |         |
 
+-----------------------------------------------------------+--------------------------------------------------------+---------+
diff --git 
a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py 
b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index 37b33a24e71..3b12933173e 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -260,7 +260,7 @@ airflow/git_version
 # Exclude mode_modules pulled by "yarn" for compilation of www files generated 
by NPM
 airflow/www/node_modules
 airflow/ui/node_modules
-airflow/auth/managers/simple/ui/node_modules
+airflow/api_fastapi/auth/managers/simple/ui/node_modules
 
 # Exclude link to docs
 airflow/www/static/docs
diff --git a/dev/breeze/src/airflow_breeze/utils/selective_checks.py 
b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
index 006d56fedc1..6a596a90f3d 100644
--- a/dev/breeze/src/airflow_breeze/utils/selective_checks.py
+++ b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
@@ -156,7 +156,7 @@ CI_FILE_GROUP_MATCHES = HashableDict(
             r"^airflow/.*\.[jt]sx?",
             r"^airflow/.*\.lock",
             r"^airflow/ui/.*\.yaml$",
-            r"^airflow/auth/managers/simple/ui/.*\.yaml$",
+            r"^airflow/api_fastapi/auth/managers/simple/ui/.*\.yaml$",
         ],
         FileGroupForCi.API_FILES: [
             r"^airflow/api/",
@@ -192,7 +192,7 @@ CI_FILE_GROUP_MATCHES = HashableDict(
             r"^chart/values\.schema\.json",
             r"^chart/values\.json",
         ],
-        FileGroupForCi.UI_FILES: [r"^airflow/ui/", 
r"^airflow/auth/managers/simple/ui/"],
+        FileGroupForCi.UI_FILES: [r"^airflow/ui/", 
r"^airflow/api_fastapi/auth/managers/simple/ui/"],
         FileGroupForCi.KUBERNETES_FILES: [
             r"^chart",
             r"^kubernetes_tests",
diff --git a/dev/breeze/tests/test_pytest_args_for_test_types.py 
b/dev/breeze/tests/test_pytest_args_for_test_types.py
index 4500768a568..741e4ab0fb7 100644
--- a/dev/breeze/tests/test_pytest_args_for_test_types.py
+++ b/dev/breeze/tests/test_pytest_args_for_test_types.py
@@ -157,7 +157,6 @@ def _find_all_integration_folders() -> list[str]:
             "Other",
             [
                 "tests/assets",
-                "tests/auth",
                 "tests/callbacks",
                 "tests/charts",
                 "tests/cluster_policies",
diff --git a/newsfragments/41348.significant.rst 
b/newsfragments/41348.significant.rst
index f7637f3676e..0ec8044d4cc 100644
--- a/newsfragments/41348.significant.rst
+++ b/newsfragments/41348.significant.rst
@@ -99,11 +99,11 @@ Rename ``Dataset`` as ``Asset``
 
       * Rename decorator ``requires_access_dataset`` as 
``requires_access_asset``
 
-  * In module ``airflow.auth.managers.models.resource_details``
+  * In module ``airflow.api_fastapi.auth.managers.models.resource_details``
 
       * Rename class ``DatasetDetails`` as ``AssetDetails``
 
-  * In module ``airflow.auth.managers.base_auth_manager``
+  * In module ``airflow.api_fastapi.auth.managers.base_auth_manager``
 
       * Rename function ``is_authorized_dataset`` as ``is_authorized_asset``
 
@@ -265,8 +265,8 @@ Rename ``Dataset`` as ``Asset``
 
       * [ ] context key ``triggering_dataset_events`` → 
``triggering_asset_events``
       * [x] ``airflow.api_connexion.security.requires_access_dataset`` → 
``airflow.api_connexion.security.requires_access_asset``
-      * [x] ``airflow.auth.managers.base_auth_manager.is_authorized_dataset`` 
→ ``airflow.auth.managers.base_auth_manager.is_authorized_asset``
-      * [x] ``airflow.auth.managers.models.resource_details.DatasetDetails`` → 
``airflow.auth.managers.models.resource_details.AssetDetails``
+      * [ ] ``airflow.auth.managers.base_auth_manager.is_authorized_dataset`` 
→ ``airflow.api_fastapi.auth.managers.base_auth_manager.is_authorized_asset``
+      * [ ] ``airflow.auth.managers.models.resource_details.DatasetDetails`` → 
``airflow.api_fastapi.auth.managers.models.resource_details.AssetDetails``
       * [x] ``airflow.lineage.hook.DatasetLineageInfo`` → 
``airflow.lineage.hook.AssetLineageInfo``
       * [x] ``airflow.security.permissions.RESOURCE_DATASET`` → 
``airflow.security.permissions.RESOURCE_ASSET``
       * [x] ``airflow.www.auth.has_access_dataset`` → 
``airflow.www.auth.has_access_dataset.has_access_asset``
diff --git 
a/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/avp/entities.py
 
b/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/avp/entities.py
index 4db9aed3402..54a43c51572 100644
--- 
a/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/avp/entities.py
+++ 
b/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/avp/entities.py
@@ -20,7 +20,7 @@ from enum import Enum
 from typing import TYPE_CHECKING
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
 
 AVP_PREFIX_ENTITIES = "Airflow::"
 
diff --git 
a/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/avp/facade.py 
b/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/avp/facade.py
index 075214f3845..9f0d25ad0e3 100644
--- 
a/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/avp/facade.py
+++ 
b/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/avp/facade.py
@@ -36,7 +36,7 @@ from airflow.utils.helpers import prune_dict
 from airflow.utils.log.logging_mixin import LoggingMixin
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
     from airflow.providers.amazon.aws.auth_manager.user import 
AwsAuthManagerUser
 
 
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 04b547b2979..2632422a1cb 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
@@ -24,8 +24,8 @@ from typing import TYPE_CHECKING, Any, cast
 
 from fastapi import FastAPI
 
-from airflow.auth.managers.base_auth_manager import BaseAuthManager
-from airflow.auth.managers.models.resource_details import (
+from airflow.api_fastapi.auth.managers.base_auth_manager import BaseAuthManager
+from airflow.api_fastapi.auth.managers.models.resource_details import (
     AccessView,
     ConnectionDetails,
     DagAccessEntity,
@@ -48,14 +48,14 @@ from airflow.providers.amazon.aws.auth_manager.user import 
AwsAuthManagerUser
 from airflow.providers.amazon.version_compat import AIRFLOW_V_3_0_PLUS
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
-    from airflow.auth.managers.models.batch_apis import (
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
+    from airflow.api_fastapi.auth.managers.models.batch_apis import (
         IsAuthorizedConnectionRequest,
         IsAuthorizedDagRequest,
         IsAuthorizedPoolRequest,
         IsAuthorizedVariableRequest,
     )
-    from airflow.auth.managers.models.resource_details import AssetDetails, 
ConfigurationDetails
+    from airflow.api_fastapi.auth.managers.models.resource_details import 
AssetDetails, ConfigurationDetails
 
 
 class AwsAuthManager(BaseAuthManager[AwsAuthManagerUser]):
diff --git 
a/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/user.py 
b/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/user.py
index da3dab8ce5c..b4cc9845252 100644
--- a/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/user.py
+++ b/providers/amazon/src/airflow/providers/amazon/aws/auth_manager/user.py
@@ -19,11 +19,14 @@ from __future__ import annotations
 from airflow.exceptions import AirflowOptionalProviderFeatureException
 
 try:
-    from airflow.auth.managers.models.base_user import BaseUser
+    from airflow.api_fastapi.auth.managers.models.base_user import BaseUser
 except ImportError:
-    raise AirflowOptionalProviderFeatureException(
-        "Failed to import BaseUser. This feature is only available in Airflow 
versions >= 2.8.0"
-    )
+    try:
+        from airflow.auth.managers.models.base_user import BaseUser  # type: 
ignore[no-redef]
+    except ImportError:
+        raise AirflowOptionalProviderFeatureException(
+            "Failed to import BaseUser. This feature is only available in 
Airflow versions >= 2.8.0"
+        ) from None
 
 
 class AwsAuthManagerUser(BaseUser):
diff --git 
a/providers/amazon/tests/unit/amazon/aws/auth_manager/avp/test_facade.py 
b/providers/amazon/tests/unit/amazon/aws/auth_manager/avp/test_facade.py
index 92b840d2f33..26a8e7e12f0 100644
--- a/providers/amazon/tests/unit/amazon/aws/auth_manager/avp/test_facade.py
+++ b/providers/amazon/tests/unit/amazon/aws/auth_manager/avp/test_facade.py
@@ -32,7 +32,7 @@ from airflow.utils.helpers import prune_dict
 from tests_common.test_utils.config import conf_vars
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
 
 REGION_NAME = "us-east-1"
 AVP_POLICY_STORE_ID = "store_id"
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 45935e4b686..32811431176 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
@@ -26,7 +26,7 @@ from airflow.providers.amazon.version_compat import 
AIRFLOW_V_3_0_PLUS
 if not AIRFLOW_V_3_0_PLUS:
     pytest.skip("AWS auth manager is only compatible with Airflow >= 3.0.0", 
allow_module_level=True)
 
-from airflow.auth.managers.models.resource_details import (
+from airflow.api_fastapi.auth.managers.models.resource_details import (
     AccessView,
     ConfigurationDetails,
     ConnectionDetails,
@@ -42,8 +42,8 @@ from airflow.providers.amazon.aws.auth_manager.user import 
AwsAuthManagerUser
 from tests_common.test_utils.config import conf_vars
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
-    from airflow.auth.managers.models.resource_details import AssetDetails
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
+    from airflow.api_fastapi.auth.managers.models.resource_details import 
AssetDetails
 else:
     from airflow.providers.common.compat.assets import AssetDetails
 
diff --git 
a/providers/common/compat/src/airflow/providers/common/compat/assets/__init__.py
 
b/providers/common/compat/src/airflow/providers/common/compat/assets/__init__.py
index 6fc96e6797c..01e218d9208 100644
--- 
a/providers/common/compat/src/airflow/providers/common/compat/assets/__init__.py
+++ 
b/providers/common/compat/src/airflow/providers/common/compat/assets/__init__.py
@@ -25,12 +25,12 @@ from airflow.providers.common.compat.version_compat import (
 )
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.models.resource_details import AssetDetails
+    from airflow.api_fastapi.auth.managers.models.resource_details import 
AssetDetails
     from airflow.models.asset import expand_alias_to_assets
     from airflow.sdk.definitions.asset import Asset, AssetAlias, AssetAll, 
AssetAny
 else:
     if AIRFLOW_V_3_0_PLUS:
-        from airflow.auth.managers.models.resource_details import AssetDetails
+        from airflow.api_fastapi.auth.managers.models.resource_details import 
AssetDetails
         from airflow.models.asset import expand_alias_to_assets
         from airflow.sdk.definitions.asset import Asset, AssetAlias, AssetAll, 
AssetAny
     else:
diff --git 
a/providers/databricks/src/airflow/providers/databricks/plugins/databricks_workflow.py
 
b/providers/databricks/src/airflow/providers/databricks/plugins/databricks_workflow.py
index aa7a2627c22..3dc8646b9b3 100644
--- 
a/providers/databricks/src/airflow/providers/databricks/plugins/databricks_workflow.py
+++ 
b/providers/databricks/src/airflow/providers/databricks/plugins/databricks_workflow.py
@@ -62,7 +62,10 @@ REPAIR_WAIT_DELAY = 
os.getenv("DATABRICKS_REPAIR_WAIT_DELAY", 0.5)
 
 
 def get_auth_decorator():
-    from airflow.auth.managers.models.resource_details import DagAccessEntity
+    if AIRFLOW_V_3_0_PLUS:
+        from airflow.api_fastapi.auth.managers.models.resource_details import 
DagAccessEntity
+    else:
+        from airflow.auth.managers.models.resource_details import 
DagAccessEntity
 
     return auth.has_access_dag("POST", DagAccessEntity.RUN)
 
diff --git 
a/providers/edge/src/airflow/providers/edge/plugins/edge_executor_plugin.py 
b/providers/edge/src/airflow/providers/edge/plugins/edge_executor_plugin.py
index f896a0506b8..1158a28e226 100644
--- a/providers/edge/src/airflow/providers/edge/plugins/edge_executor_plugin.py
+++ b/providers/edge/src/airflow/providers/edge/plugins/edge_executor_plugin.py
@@ -27,7 +27,6 @@ from flask_appbuilder import BaseView, expose
 from markupsafe import Markup
 from sqlalchemy import select
 
-from airflow.auth.managers.models.resource_details import AccessView
 from airflow.configuration import conf
 from airflow.exceptions import AirflowConfigException
 from airflow.models.taskinstance import TaskInstanceState
@@ -36,9 +35,12 @@ from airflow.providers.edge.version_compat import 
AIRFLOW_V_3_0_PLUS
 from airflow.utils.state import State
 
 if AIRFLOW_V_3_0_PLUS:
+    from airflow.api_fastapi.auth.managers.models.resource_details import 
AccessView
     from airflow.providers.fab.www.auth import has_access_view
+
 else:
-    from airflow.www.auth import has_access_view  # type: ignore
+    from airflow.auth.managers.models.resource_details import AccessView  # 
type: ignore[no-redef]
+    from airflow.www.auth import has_access_view  # type: ignore[no-redef]
 from airflow.utils.session import NEW_SESSION, provide_session
 from airflow.utils.yaml import safe_load
 
diff --git 
a/providers/fab/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py
 
b/providers/fab/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py
index edf92568399..3955ac45895 100644
--- 
a/providers/fab/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py
+++ 
b/providers/fab/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py
@@ -32,7 +32,7 @@ from airflow.providers.fab.auth_manager.fab_auth_manager 
import FabAuthManager
 from airflow.utils.net import getfqdn
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.models.base_user import BaseUser
+    from airflow.api_fastapi.auth.managers.models.base_user import BaseUser
 
 log = logging.getLogger(__name__)
 
diff --git 
a/providers/fab/src/airflow/providers/fab/auth_manager/fab_auth_manager.py 
b/providers/fab/src/airflow/providers/fab/auth_manager/fab_auth_manager.py
index a0ba07feffa..e881815569a 100644
--- a/providers/fab/src/airflow/providers/fab/auth_manager/fab_auth_manager.py
+++ b/providers/fab/src/airflow/providers/fab/auth_manager/fab_auth_manager.py
@@ -31,8 +31,8 @@ from sqlalchemy.orm import Session, joinedload
 from starlette.middleware.wsgi import WSGIMiddleware
 
 from airflow import __version__ as airflow_version
-from airflow.auth.managers.base_auth_manager import BaseAuthManager
-from airflow.auth.managers.models.resource_details import (
+from airflow.api_fastapi.auth.managers.base_auth_manager import BaseAuthManager
+from airflow.api_fastapi.auth.managers.models.resource_details import (
     AccessView,
     ConfigurationDetails,
     ConnectionDetails,
@@ -41,7 +41,10 @@ from airflow.auth.managers.models.resource_details import (
     PoolDetails,
     VariableDetails,
 )
-from airflow.auth.managers.utils.fab import get_fab_action_from_method_map, 
get_method_from_fab_action_map
+from airflow.api_fastapi.auth.managers.utils.fab import (
+    get_fab_action_from_method_map,
+    get_method_from_fab_action_map,
+)
 from airflow.cli.cli_config import (
     DefaultHelpParser,
     GroupCommand,
@@ -90,7 +93,7 @@ from airflow.utils.session import NEW_SESSION, 
create_session, provide_session
 from airflow.utils.yaml import safe_load
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
     from airflow.cli.cli_config import (
         CLICommand,
     )
diff --git 
a/providers/fab/src/airflow/providers/fab/auth_manager/models/__init__.py 
b/providers/fab/src/airflow/providers/fab/auth_manager/models/__init__.py
index 2587d7034d0..1a34c9b6884 100644
--- a/providers/fab/src/airflow/providers/fab/auth_manager/models/__init__.py
+++ b/providers/fab/src/airflow/providers/fab/auth_manager/models/__init__.py
@@ -44,7 +44,7 @@ from sqlalchemy import (
 from sqlalchemy.orm import backref, declared_attr, registry, relationship
 
 from airflow import __version__ as airflow_version
-from airflow.auth.managers.models.base_user import BaseUser
+from airflow.api_fastapi.auth.managers.models.base_user import BaseUser
 from airflow.models.base import _get_schema, naming_convention
 
 if TYPE_CHECKING:
diff --git 
a/providers/fab/src/airflow/providers/fab/auth_manager/models/anonymous_user.py 
b/providers/fab/src/airflow/providers/fab/auth_manager/models/anonymous_user.py
index 9afb2cdff63..b9abd5f1653 100644
--- 
a/providers/fab/src/airflow/providers/fab/auth_manager/models/anonymous_user.py
+++ 
b/providers/fab/src/airflow/providers/fab/auth_manager/models/anonymous_user.py
@@ -20,7 +20,7 @@ from __future__ import annotations
 from flask import current_app
 from flask_login import AnonymousUserMixin
 
-from airflow.auth.managers.models.base_user import BaseUser
+from airflow.api_fastapi.auth.managers.models.base_user import BaseUser
 
 
 class AnonymousUser(AnonymousUserMixin, BaseUser):
diff --git 
a/providers/fab/src/airflow/providers/fab/www/api_connexion/security.py 
b/providers/fab/src/airflow/providers/fab/www/api_connexion/security.py
index b07acd776cf..2a4a67cdd9a 100644
--- a/providers/fab/src/airflow/providers/fab/www/api_connexion/security.py
+++ b/providers/fab/src/airflow/providers/fab/www/api_connexion/security.py
@@ -26,7 +26,7 @@ from airflow.providers.fab.www.airflow_flask_app import 
AirflowApp
 from airflow.providers.fab.www.api_connexion.exceptions import 
PermissionDenied, Unauthenticated
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
 
 T = TypeVar("T", bound=Callable)
 
diff --git a/providers/fab/src/airflow/providers/fab/www/auth.py 
b/providers/fab/src/airflow/providers/fab/www/auth.py
index 1e45a03fc23..5ca881e1f88 100644
--- a/providers/fab/src/airflow/providers/fab/www/auth.py
+++ b/providers/fab/src/airflow/providers/fab/www/auth.py
@@ -31,7 +31,7 @@ from flask_appbuilder.const import (
 )
 
 from airflow.api_fastapi.app import get_auth_manager
-from airflow.auth.managers.models.resource_details import (
+from airflow.api_fastapi.auth.managers.models.resource_details import (
     AccessView,
     ConnectionDetails,
     DagAccessEntity,
@@ -44,8 +44,8 @@ from airflow.providers.fab.www.utils import 
get_fab_auth_manager
 from airflow.utils.net import get_hostname
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
-    from airflow.auth.managers.models.batch_apis import (
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
+    from airflow.api_fastapi.auth.managers.models.batch_apis import (
         IsAuthorizedConnectionRequest,
         IsAuthorizedDagRequest,
         IsAuthorizedPoolRequest,
diff --git a/providers/fab/src/airflow/providers/fab/www/security_manager.py 
b/providers/fab/src/airflow/providers/fab/www/security_manager.py
index 34a06d208e0..a20c1308eda 100644
--- a/providers/fab/src/airflow/providers/fab/www/security_manager.py
+++ b/providers/fab/src/airflow/providers/fab/www/security_manager.py
@@ -23,7 +23,7 @@ from flask_limiter import Limiter
 from flask_limiter.util import get_remote_address
 
 from airflow.api_fastapi.app import get_auth_manager
-from airflow.auth.managers.utils.fab import (
+from airflow.api_fastapi.auth.managers.utils.fab import (
     get_method_from_fab_action_map,
 )
 from airflow.providers.fab.www.utils import CustomSQLAInterface
diff --git a/providers/fab/tests/unit/fab/auth_manager/test_fab_auth_manager.py 
b/providers/fab/tests/unit/fab/auth_manager/test_fab_auth_manager.py
index 45f200e09e5..4bcfb4722e8 100644
--- a/providers/fab/tests/unit/fab/auth_manager/test_fab_auth_manager.py
+++ b/providers/fab/tests/unit/fab/auth_manager/test_fab_auth_manager.py
@@ -31,7 +31,11 @@ from airflow.providers.standard.operators.empty import 
EmptyOperator
 from unit.fab.auth_manager.api_endpoints.api_connexion_utils import 
create_user, delete_user
 
 try:
-    from airflow.auth.managers.models.resource_details import AccessView, 
DagAccessEntity, DagDetails
+    from airflow.api_fastapi.auth.managers.models.resource_details import (
+        AccessView,
+        DagAccessEntity,
+        DagDetails,
+    )
 except ImportError:
     pass
 
@@ -63,7 +67,7 @@ from airflow.providers.fab.www.security.permissions import (
 )
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
 
 
 IS_AUTHORIZED_METHODS_SIMPLE = {
diff --git a/providers/fab/tests/unit/fab/auth_manager/test_security.py 
b/providers/fab/tests/unit/fab/auth_manager/test_security.py
index 6f1486b0f65..159131dc111 100644
--- a/providers/fab/tests/unit/fab/auth_manager/test_security.py
+++ b/providers/fab/tests/unit/fab/auth_manager/test_security.py
@@ -133,19 +133,19 @@ def _delete_dag_model(dag_model, session, 
security_manager):
 
 
 def _can_read_dag(dag_id: str, user) -> bool:
-    from airflow.auth.managers.models.resource_details import DagDetails
+    from airflow.api_fastapi.auth.managers.models.resource_details import 
DagDetails
 
     return get_auth_manager().is_authorized_dag(method="GET", 
details=DagDetails(id=dag_id), user=user)
 
 
 def _can_edit_dag(dag_id: str, user) -> bool:
-    from airflow.auth.managers.models.resource_details import DagDetails
+    from airflow.api_fastapi.auth.managers.models.resource_details import 
DagDetails
 
     return get_auth_manager().is_authorized_dag(method="PUT", 
details=DagDetails(id=dag_id), user=user)
 
 
 def _can_delete_dag(dag_id: str, user) -> bool:
-    from airflow.auth.managers.models.resource_details import DagDetails
+    from airflow.api_fastapi.auth.managers.models.resource_details import 
DagDetails
 
     return get_auth_manager().is_authorized_dag(method="DELETE", 
details=DagDetails(id=dag_id), user=user)
 
@@ -243,7 +243,7 @@ def sample_dags(security_manager):
 @pytest.fixture(scope="module")
 def has_dag_perm(security_manager):
     def _has_dag_perm(perm, dag_id, user):
-        from airflow.auth.managers.models.resource_details import DagDetails
+        from airflow.api_fastapi.auth.managers.models.resource_details import 
DagDetails
 
         return get_auth_manager().is_authorized_dag(method=perm, 
details=DagDetails(id=dag_id), user=user)
 
diff --git a/providers/fab/tests/unit/fab/www/test_auth.py 
b/providers/fab/tests/unit/fab/www/test_auth.py
index cfd31e282be..2e0339c282c 100644
--- a/providers/fab/tests/unit/fab/www/test_auth.py
+++ b/providers/fab/tests/unit/fab/www/test_auth.py
@@ -22,7 +22,7 @@ from unittest.mock import Mock, patch
 import pytest
 
 import airflow.providers.fab.www.auth as auth
-from airflow.auth.managers.models.resource_details import DagAccessEntity
+from airflow.api_fastapi.auth.managers.models.resource_details import 
DagAccessEntity
 from airflow.models import Connection, Pool, Variable
 from airflow.providers.fab.www import app as application
 
diff --git a/pyproject.toml b/pyproject.toml
index c8a3c37b2e3..e0fc8a7aa15 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -337,7 +337,6 @@ testing = ["dev", "providers.tests", "tests_common", 
"tests"]
 # Annotated is central for FastAPI dependency injection, skipping rules for 
FastAPI folders.
 "airflow/api_fastapi/*" = ["TC001", "TC002"]
 "tests/api_fastapi/*" = ["T001", "TC002"]
-"airflow/auth/managers/simple/*" = ["TC001", "TC002"]
 
 # Ignore pydoc style from these
 "*.pyi" = ["D"]
diff --git a/scripts/ci/pre_commit/compile_ui_assets.py 
b/scripts/ci/pre_commit/compile_ui_assets.py
index 26b9d5371d0..e31c1228f6d 100755
--- a/scripts/ci/pre_commit/compile_ui_assets.py
+++ b/scripts/ci/pre_commit/compile_ui_assets.py
@@ -35,7 +35,9 @@ AIRFLOW_SOURCES_PATH = Path(__file__).parents[3].resolve()
 MAIN_UI_DIRECTORY = AIRFLOW_SOURCES_PATH / "airflow" / "ui"
 MAIN_UI_HASH_FILE = AIRFLOW_SOURCES_PATH / ".build" / "ui" / "hash.txt"
 
-SIMPLE_AUTH_MANAGER_UI_DIRECTORY = AIRFLOW_SOURCES_PATH / "airflow" / "auth" / 
"managers" / "simple" / "ui"
+SIMPLE_AUTH_MANAGER_UI_DIRECTORY = (
+    AIRFLOW_SOURCES_PATH / "airflow" / "api_fastapi" / "auth" / "managers" / 
"simple" / "ui"
+)
 SIMPLE_AUTH_MANAGER_UI_HASH_FILE = AIRFLOW_SOURCES_PATH / ".build" / "ui" / 
"simple-auth-manager-hash.txt"
 
 INTERNAL_SERVER_ERROR = "500 Internal Server Error"
diff --git a/scripts/cov/other_coverage.py b/scripts/cov/other_coverage.py
index 19a061557d7..84175e36df1 100644
--- a/scripts/cov/other_coverage.py
+++ b/scripts/cov/other_coverage.py
@@ -33,7 +33,6 @@ You can also compare the stats against those on
 https://app.codecov.io/github/apache/airflow
 (as it combines the coverage from all tests and so may be a bit higher).
 
-    "airflow/auth",
     "airflow/callbacks",
     "airflow/config_templates",
     "airflow/dag_processing",
diff --git a/scripts/in_container/run_update_fastapi_api_spec.py 
b/scripts/in_container/run_update_fastapi_api_spec.py
index 925590b0ae2..ab5b1ce7d4d 100644
--- a/scripts/in_container/run_update_fastapi_api_spec.py
+++ b/scripts/in_container/run_update_fastapi_api_spec.py
@@ -16,26 +16,32 @@
 # under the License.
 from __future__ import annotations
 
+from pathlib import Path
 from typing import TYPE_CHECKING
 
 import yaml
 from fastapi.openapi.utils import get_openapi
 
 from airflow.api_fastapi.app import create_app
-from airflow.auth.managers.simple.simple_auth_manager import SimpleAuthManager
+from airflow.api_fastapi.auth.managers.simple import __file__ as 
SIMPLE_AUTH_MANAGER_PATH
+from airflow.api_fastapi.auth.managers.simple.simple_auth_manager import 
SimpleAuthManager
+from airflow.api_fastapi.core_api import __file__ as CORE_API_PATH
+from airflow.providers.fab.auth_manager.api_fastapi import __file__ as 
FAB_AUTH_MANAGER_API_PATH
 from airflow.providers.fab.auth_manager.fab_auth_manager import FabAuthManager
 
 if TYPE_CHECKING:
     from fastapi import FastAPI
 
-OPENAPI_SPEC_FILE = "airflow/api_fastapi/core_api/openapi/v1-generated.yaml"
-SIMPLE_AUTH_MANAGER_OPENAPI_SPEC_FILE = 
"airflow/auth/managers/simple/openapi/v1-generated.yaml"
-FAB_AUTH_MANAGER_OPENAPI_SPEC_FILE = (
-    
"providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v1-generated.yaml"
+OPENAPI_SPEC_FILE = Path(CORE_API_PATH).parent.joinpath("openapi", 
"v1-generated.yaml")
+SIMPLE_AUTH_MANAGER_OPENAPI_SPEC_FILE = 
Path(SIMPLE_AUTH_MANAGER_PATH).parent.joinpath(
+    "openapi", "v1-generated.yaml"
+)
+FAB_AUTH_MANAGER_OPENAPI_SPEC_FILE = 
Path(FAB_AUTH_MANAGER_API_PATH).parent.joinpath(
+    "openapi", "v1-generated.yaml"
 )
 
 
-def generate_file(app: FastAPI, file_path: str, prefix: str = ""):
+def generate_file(app: FastAPI, file_path: Path, prefix: str = ""):
     # The persisted openapi spec will list all endpoints (public and ui), this
     # is used for code generation.
     for route in app.routes:
@@ -43,7 +49,7 @@ def generate_file(app: FastAPI, file_path: str, prefix: str = 
""):
             continue
         route.__setattr__("include_in_schema", True)
 
-    with open(file_path, "w+") as f:
+    with file_path.open("w+") as f:
         openapi_schema = get_openapi(
             title=app.title,
             version=app.version,
diff --git a/tests/auth/__init__.py b/tests/api_fastapi/auth/__init__.py
similarity index 100%
rename from tests/auth/__init__.py
rename to tests/api_fastapi/auth/__init__.py
diff --git a/tests/auth/managers/__init__.py 
b/tests/api_fastapi/auth/managers/__init__.py
similarity index 100%
rename from tests/auth/managers/__init__.py
rename to tests/api_fastapi/auth/managers/__init__.py
diff --git a/tests/auth/managers/simple/__init__.py 
b/tests/api_fastapi/auth/managers/simple/__init__.py
similarity index 100%
rename from tests/auth/managers/simple/__init__.py
rename to tests/api_fastapi/auth/managers/simple/__init__.py
diff --git a/tests/auth/managers/simple/conftest.py 
b/tests/api_fastapi/auth/managers/simple/conftest.py
similarity index 88%
rename from tests/auth/managers/simple/conftest.py
rename to tests/api_fastapi/auth/managers/simple/conftest.py
index 71ad84a81ff..94c72e92028 100644
--- a/tests/auth/managers/simple/conftest.py
+++ b/tests/api_fastapi/auth/managers/simple/conftest.py
@@ -21,8 +21,8 @@ from __future__ import annotations
 import pytest
 from fastapi.testclient import TestClient
 
-from airflow.auth.managers.simple.simple_auth_manager import SimpleAuthManager
-from airflow.auth.managers.simple.user import SimpleAuthManagerUser
+from airflow.api_fastapi.auth.managers.simple.simple_auth_manager import 
SimpleAuthManager
+from airflow.api_fastapi.auth.managers.simple.user import SimpleAuthManagerUser
 
 
 @pytest.fixture
diff --git a/tests/auth/managers/simple/routes/__init__.py 
b/tests/api_fastapi/auth/managers/simple/routes/__init__.py
similarity index 100%
rename from tests/auth/managers/simple/routes/__init__.py
rename to tests/api_fastapi/auth/managers/simple/routes/__init__.py
diff --git a/tests/auth/managers/simple/routes/test_login.py 
b/tests/api_fastapi/auth/managers/simple/routes/test_login.py
similarity index 91%
rename from tests/auth/managers/simple/routes/test_login.py
rename to tests/api_fastapi/auth/managers/simple/routes/test_login.py
index acf2a74bb60..2b42a4e854a 100644
--- a/tests/auth/managers/simple/routes/test_login.py
+++ b/tests/api_fastapi/auth/managers/simple/routes/test_login.py
@@ -22,7 +22,7 @@ from unittest.mock import patch
 
 import pytest
 
-from airflow.auth.managers.simple.datamodels.login import LoginResponse
+from airflow.api_fastapi.auth.managers.simple.datamodels.login import 
LoginResponse
 
 TEST_USER_1 = "test1"
 TEST_USER_2 = "test2"
@@ -36,7 +36,7 @@ class TestLogin:
             TEST_USER_2,
         ],
     )
-    @patch("airflow.auth.managers.simple.routes.login.SimpleAuthManagerLogin")
+    
@patch("airflow.api_fastapi.auth.managers.simple.routes.login.SimpleAuthManagerLogin")
     def test_create_token(self, mock_simple_auth_manager_login, test_client, 
auth_manager, test_user):
         mock_simple_auth_manager_login.create_token.return_value = 
LoginResponse(jwt_token="DUMMY_TOKEN")
 
@@ -62,7 +62,7 @@ class TestLogin:
             TEST_USER_2,
         ],
     )
-    @patch("airflow.auth.managers.simple.routes.login.SimpleAuthManagerLogin")
+    
@patch("airflow.api_fastapi.auth.managers.simple.routes.login.SimpleAuthManagerLogin")
     def test_create_token_cli(self, mock_simple_auth_manager_login, 
test_client, auth_manager, test_user):
         mock_simple_auth_manager_login.create_token.return_value = 
LoginResponse(jwt_token="DUMMY_TOKEN")
 
diff --git a/tests/auth/managers/simple/services/__init__.py 
b/tests/api_fastapi/auth/managers/simple/services/__init__.py
similarity index 100%
rename from tests/auth/managers/simple/services/__init__.py
rename to tests/api_fastapi/auth/managers/simple/services/__init__.py
diff --git a/tests/auth/managers/simple/services/test_login.py 
b/tests/api_fastapi/auth/managers/simple/services/test_login.py
similarity index 90%
rename from tests/auth/managers/simple/services/test_login.py
rename to tests/api_fastapi/auth/managers/simple/services/test_login.py
index 739825c88b4..bc785720292 100644
--- a/tests/auth/managers/simple/services/test_login.py
+++ b/tests/api_fastapi/auth/managers/simple/services/test_login.py
@@ -23,8 +23,8 @@ from unittest.mock import patch
 import pytest
 from fastapi import HTTPException
 
-from airflow.auth.managers.simple.datamodels.login import LoginBody, 
LoginResponse
-from airflow.auth.managers.simple.services.login import SimpleAuthManagerLogin
+from airflow.api_fastapi.auth.managers.simple.datamodels.login import 
LoginBody, LoginResponse
+from airflow.api_fastapi.auth.managers.simple.services.login import 
SimpleAuthManagerLogin
 
 from tests_common.test_utils.config import conf_vars
 
@@ -43,7 +43,7 @@ class TestLogin:
             TEST_USER_2,
         ],
     )
-    @patch("airflow.auth.managers.simple.services.login.get_auth_manager")
+    
@patch("airflow.api_fastapi.auth.managers.simple.services.login.get_auth_manager")
     def test_create_token(self, get_auth_manager, auth_manager, test_user):
         get_auth_manager.return_value = auth_manager
 
diff --git a/tests/auth/managers/simple/test_simple_auth_manager.py 
b/tests/api_fastapi/auth/managers/simple/test_simple_auth_manager.py
similarity index 97%
rename from tests/auth/managers/simple/test_simple_auth_manager.py
rename to tests/api_fastapi/auth/managers/simple/test_simple_auth_manager.py
index 4b9227f8aa8..2ad1eff7fba 100644
--- a/tests/auth/managers/simple/test_simple_auth_manager.py
+++ b/tests/api_fastapi/auth/managers/simple/test_simple_auth_manager.py
@@ -20,8 +20,8 @@ import json
 
 import pytest
 
-from airflow.auth.managers.models.resource_details import AccessView
-from airflow.auth.managers.simple.user import SimpleAuthManagerUser
+from airflow.api_fastapi.auth.managers.models.resource_details import 
AccessView
+from airflow.api_fastapi.auth.managers.simple.user import SimpleAuthManagerUser
 
 from tests_common.test_utils.config import conf_vars
 
diff --git a/tests/auth/managers/simple/test_user.py 
b/tests/api_fastapi/auth/managers/simple/test_user.py
similarity index 100%
rename from tests/auth/managers/simple/test_user.py
rename to tests/api_fastapi/auth/managers/simple/test_user.py
diff --git a/tests/auth/managers/test_base_auth_manager.py 
b/tests/api_fastapi/auth/managers/test_base_auth_manager.py
similarity index 94%
rename from tests/auth/managers/test_base_auth_manager.py
rename to tests/api_fastapi/auth/managers/test_base_auth_manager.py
index a7bb0322d01..3950fd49de0 100644
--- a/tests/auth/managers/test_base_auth_manager.py
+++ b/tests/api_fastapi/auth/managers/test_base_auth_manager.py
@@ -21,9 +21,9 @@ from unittest.mock import MagicMock, Mock, patch
 
 import pytest
 
-from airflow.auth.managers.base_auth_manager import BaseAuthManager
-from airflow.auth.managers.models.base_user import BaseUser
-from airflow.auth.managers.models.resource_details import (
+from airflow.api_fastapi.auth.managers.base_auth_manager import BaseAuthManager
+from airflow.api_fastapi.auth.managers.models.base_user import BaseUser
+from airflow.api_fastapi.auth.managers.models.resource_details import (
     ConnectionDetails,
     DagDetails,
     PoolDetails,
@@ -31,8 +31,8 @@ from airflow.auth.managers.models.resource_details import (
 )
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.base_auth_manager import ResourceMethod
-    from airflow.auth.managers.models.resource_details import (
+    from airflow.api_fastapi.auth.managers.base_auth_manager import 
ResourceMethod
+    from airflow.api_fastapi.auth.managers.models.resource_details import (
         AccessView,
         AssetDetails,
         ConfigurationDetails,
@@ -139,7 +139,7 @@ class TestBaseAuthManager:
     def test_get_fastapi_app_return_none(self, auth_manager):
         assert auth_manager.get_fastapi_app() is None
 
-    @patch("airflow.auth.managers.base_auth_manager.JWTSigner")
+    @patch("airflow.api_fastapi.auth.managers.base_auth_manager.JWTSigner")
     @patch.object(EmptyAuthManager, "deserialize_user")
     def test_get_user_from_token(self, mock_deserialize_user, mock_jwt_signer, 
auth_manager):
         token = "token"
@@ -156,7 +156,7 @@ class TestBaseAuthManager:
         signer.verify_token.assert_called_once_with(token)
         assert result == user
 
-    @patch("airflow.auth.managers.base_auth_manager.JWTSigner")
+    @patch("airflow.api_fastapi.auth.managers.base_auth_manager.JWTSigner")
     @patch.object(EmptyAuthManager, "serialize_user")
     def test_get_jwt_token(self, mock_serialize_user, mock_jwt_signer, 
auth_manager):
         token = "token"
diff --git a/tests/api_fastapi/conftest.py b/tests/api_fastapi/conftest.py
index 10de8e46f12..052df24c18c 100644
--- a/tests/api_fastapi/conftest.py
+++ b/tests/api_fastapi/conftest.py
@@ -24,7 +24,7 @@ import pytest
 from fastapi.testclient import TestClient
 
 from airflow.api_fastapi.app import create_app
-from airflow.auth.managers.simple.user import SimpleAuthManagerUser
+from airflow.api_fastapi.auth.managers.simple.user import SimpleAuthManagerUser
 from airflow.models import Connection
 from airflow.models.dag_version import DagVersion
 from airflow.models.serialized_dag import SerializedDagModel
@@ -34,7 +34,7 @@ from tests_common.test_utils.config import conf_vars
 from tests_common.test_utils.db import clear_db_connections, 
parse_and_sync_to_db
 
 if TYPE_CHECKING:
-    from airflow.auth.managers.simple.simple_auth_manager import 
SimpleAuthManager
+    from airflow.api_fastapi.auth.managers.simple.simple_auth_manager import 
SimpleAuthManager
 
 
 @pytest.fixture
@@ -44,7 +44,7 @@ def test_client():
             (
                 "core",
                 "auth_manager",
-            ): 
"airflow.auth.managers.simple.simple_auth_manager.SimpleAuthManager",
+            ): 
"airflow.api_fastapi.auth.managers.simple.simple_auth_manager.SimpleAuthManager",
         }
     ):
         app = create_app()
@@ -76,7 +76,7 @@ def unauthorized_test_client():
             (
                 "core",
                 "auth_manager",
-            ): 
"airflow.auth.managers.simple.simple_auth_manager.SimpleAuthManager",
+            ): 
"airflow.api_fastapi.auth.managers.simple.simple_auth_manager.SimpleAuthManager",
         }
     ):
         app = create_app()
diff --git a/tests/api_fastapi/core_api/test_security.py 
b/tests/api_fastapi/core_api/test_security.py
index 7824ecd171b..554506bb417 100644
--- a/tests/api_fastapi/core_api/test_security.py
+++ b/tests/api_fastapi/core_api/test_security.py
@@ -23,9 +23,9 @@ from fastapi import HTTPException
 from jwt import ExpiredSignatureError, InvalidTokenError
 
 from airflow.api_fastapi.app import create_app
+from airflow.api_fastapi.auth.managers.models.resource_details import 
DagAccessEntity
+from airflow.api_fastapi.auth.managers.simple.user import SimpleAuthManagerUser
 from airflow.api_fastapi.core_api.security import get_user, requires_access_dag
-from airflow.auth.managers.models.resource_details import DagAccessEntity
-from airflow.auth.managers.simple.user import SimpleAuthManagerUser
 
 from tests_common.test_utils.config import conf_vars
 
@@ -38,7 +38,7 @@ class TestFastApiSecurity:
                 (
                     "core",
                     "auth_manager",
-                ): 
"airflow.auth.managers.simple.simple_auth_manager.SimpleAuthManager",
+                ): 
"airflow.api_fastapi.auth.managers.simple.simple_auth_manager.SimpleAuthManager",
             }
         ):
             create_app()

Reply via email to