mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
- 删除全部 Python 源码 (src/) 及 Alembic 迁移脚本,归档至 _deprecated_py_src/ - 重构 Rust gateway ai_pipeline: 拆分 planner/finalize 模块,新增 contracts/adaptation 层 - 重组 handlers 模块为 admin/public/proxy/internal/shared 子模块结构 - 新增 executor 模块,引入 Rust 原生数据库迁移 (aether-data/migrations) - 简化 CI/Docker 构建流程,移除 base image 二级构建,统一为单一 app image - 移除 Python 相关基础设施文件 (entrypoint.sh, gunicorn_conf.py, Dockerfile.base)
49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
"""Authentication route group."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter
|
|
from starlette.routing import BaseRoute
|
|
|
|
from .routes import router as auth_router
|
|
|
|
_RUST_OWNED_AUTH_ROUTE_SIGNATURES = frozenset(
|
|
{
|
|
("GET", "/api/auth/registration-settings"),
|
|
("GET", "/api/auth/settings"),
|
|
("POST", "/api/auth/login"),
|
|
("POST", "/api/auth/refresh"),
|
|
("POST", "/api/auth/register"),
|
|
("GET", "/api/auth/me"),
|
|
("POST", "/api/auth/logout"),
|
|
("POST", "/api/auth/send-verification-code"),
|
|
("POST", "/api/auth/verify-email"),
|
|
("POST", "/api/auth/verification-status"),
|
|
}
|
|
)
|
|
|
|
|
|
def _route_is_rust_owned(route: BaseRoute) -> bool:
|
|
path = getattr(route, "path", None)
|
|
methods = getattr(route, "methods", None)
|
|
if not isinstance(path, str) or not methods:
|
|
return False
|
|
return any(
|
|
(method, path) in _RUST_OWNED_AUTH_ROUTE_SIGNATURES
|
|
for method in methods
|
|
if method not in {"HEAD", "OPTIONS"}
|
|
)
|
|
|
|
|
|
def _build_python_auth_router() -> APIRouter:
|
|
router = APIRouter()
|
|
router.include_router(auth_router)
|
|
router.routes = [route for route in router.routes if not _route_is_rust_owned(route)]
|
|
return router
|
|
|
|
|
|
python_auth_router = _build_python_auth_router()
|
|
router = python_auth_router
|
|
|
|
__all__ = ["python_auth_router", "router"]
|