cleanup: Backend Phase 1 — 5项代码清理任务 #248

Closed
xiaoxia wants to merge 3 commits from cleanup/phase1-backend into develop
Owner

概述

Backend Cleanup Phase 1,包含 5 项代码清理任务。

变更内容

1. 修复密码重置接口路径不一致 Bug

  • 文件: apps/api/app/api/routes/auth.py
  • 修复: forgot_password 硬编码 localhost → 使用 APP_BASE_URL 配置

2. 删除 8 处死代码(未使用 import/变量)

  • 清理多个文件中的未使用导入和变量
  • 文件: dependencies.py, middleware/.py, services/.py 等

3. 删除 8 个空文件/空模块

  • 删除无内容的 __init__.py 文件
  • 删除文件:
    • apps/api/app/__init__.py
    • apps/api/app/api/__init__.py
    • apps/api/app/core/__init__.py
    • packages/__init__.py
    • packages/adapters/__init__.py
    • packages/application/recipe/__init__.py
    • packages/application/template/__init__.py
    • packages/application/tts_job/__init__.py

4. 合并 3 对 100% 完全重复的函数

  • 新增: apps/api/app/api/routes/_helpers.py — 共享辅助函数模块
  • 提取函数:
    • check_project_access() — 项目权限检查
    • get_user_plan() — 获取用户套餐
    • require_project_and_library() — 项目+素材库验证
  • 修改文件: assets.py, chunked_upload.py, generation_tasks.py, jobs.py, recipes.py, titles.py, upload.py, voices.py

5. 对齐 6 个废弃/异常环境变量

问题 修复 文件
DATABASE_POOL_RECYLE 拼写错误 DATABASE_POOL_RECYCLE config.py
JWT_ALGORITHM 未在 Settings 声明 添加字段 config.py
JWT_ACCESS_TOKEN_EXPIRE_MINUTES 字段名不匹配 Settings + jwt_service.py 同步修复 config.py, jwt_service.py
JWT_REFRESH_TOKEN_EXPIRE_DAYS 同上 同上 同上
CORS_ORIGINS JSON数组格式 CORS_ORIGINS_RAW 逗号分隔 .env.example
APP_ENV 未记录 启用 .env.example
额外: OSS_ENDPOINT 默认值双i拼写 aliiyuncs.comaliyuncs.com config.py, shared/config.py

统计

  • 修改文件: 53 个
  • 新增: +122 行
  • 删除: -177 行
  • 净减少: 55 行

验证

  • pyflakes 零警告
  • Settings/SharedSettings 加载正常
  • import 验证通过

审查重点

  1. _helpers.py 合并后函数签名是否兼容
  2. 环境变量改名后是否有遗漏引用
  3. 密码重置路径修复前后端是否对齐
## 概述 Backend Cleanup Phase 1,包含 5 项代码清理任务。 ## 变更内容 ### 1. 修复密码重置接口路径不一致 Bug - **文件**: `apps/api/app/api/routes/auth.py` - **修复**: forgot_password 硬编码 localhost → 使用 APP_BASE_URL 配置 ### 2. 删除 8 处死代码(未使用 import/变量) - 清理多个文件中的未使用导入和变量 - **文件**: dependencies.py, middleware/*.py, services/*.py 等 ### 3. 删除 8 个空文件/空模块 - 删除无内容的 `__init__.py` 文件 - **删除文件**: - `apps/api/app/__init__.py` - `apps/api/app/api/__init__.py` - `apps/api/app/core/__init__.py` - `packages/__init__.py` - `packages/adapters/__init__.py` - `packages/application/recipe/__init__.py` - `packages/application/template/__init__.py` - `packages/application/tts_job/__init__.py` ### 4. 合并 3 对 100% 完全重复的函数 - **新增**: `apps/api/app/api/routes/_helpers.py` — 共享辅助函数模块 - **提取函数**: - `check_project_access()` — 项目权限检查 - `get_user_plan()` — 获取用户套餐 - `require_project_and_library()` — 项目+素材库验证 - **修改文件**: assets.py, chunked_upload.py, generation_tasks.py, jobs.py, recipes.py, titles.py, upload.py, voices.py ### 5. 对齐 6 个废弃/异常环境变量 | 问题 | 修复 | 文件 | |------|------|------| | `DATABASE_POOL_RECYLE` 拼写错误 | → `DATABASE_POOL_RECYCLE` | config.py | | `JWT_ALGORITHM` 未在 Settings 声明 | 添加字段 | config.py | | `JWT_ACCESS_TOKEN_EXPIRE_MINUTES` 字段名不匹配 | Settings + jwt_service.py 同步修复 | config.py, jwt_service.py | | `JWT_REFRESH_TOKEN_EXPIRE_DAYS` 同上 | 同上 | 同上 | | `CORS_ORIGINS` JSON数组格式 | → `CORS_ORIGINS_RAW` 逗号分隔 | .env.example | | `APP_ENV` 未记录 | 启用 | .env.example | | **额外**: `OSS_ENDPOINT` 默认值双i拼写 | `aliiyuncs.com` → `aliyuncs.com` | config.py, shared/config.py | ## 统计 - **修改文件**: 53 个 - **新增**: +122 行 - **删除**: -177 行 - **净减少**: 55 行 ## 验证 - ✅ pyflakes 零警告 - ✅ Settings/SharedSettings 加载正常 - ✅ import 验证通过 ## 审查重点 1. `_helpers.py` 合并后函数签名是否兼容 2. 环境变量改名后是否有遗漏引用 3. 密码重置路径修复前后端是否对齐
xiaoxia added 3 commits 2026-07-13 13:25:48 +08:00
fix: P0-2 OSS 凭证启动验证 + 诊断日志
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 16s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m38s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
6efac8de4b
- config.py: 非开发环境 OSS_ACCESS_KEY_ID/SECRET 为空时启动失败(fail-fast)
- storage.py: 新增 diagnose() 方法,启动时输出 OSS 配置状态
- 新增 7 个单元测试覆盖凭证验证和诊断逻辑

注意:staging 实际已有 OSS 凭证配置,预签名 URL 可正常生成。
真正问题是 sign_url 返回 HTTP 而非 HTTPS,后续修复。
fix: P0-2 sign_url 返回 HTTPS URL(endpoint 加 https:// 前缀)
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 10s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m20s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
6feb541127
根因:oss2.Bucket 的 endpoint 参数不带 scheme 时,sign_url() 默认生成
HTTP URL(如 http://bucket.oss-cn-hangzhou.aliyuncs.com/...),
前端/浏览器视为不安全请求拒绝加载。

修复:初始化 oss2.Bucket 前检查 endpoint 是否带 http(s):// 前缀,
不带则自动补 https://,确保 sign_url 输出 HTTPS URL。

新增 2 个测试验证 endpoint scheme 处理逻辑。
cleanup: Backend Phase 1 — 5项代码清理任务
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 8s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 3m28s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
276342520f
1. 修复密码重置接口路径不一致 Bug (auth.py)
   - forgot_password 硬编码 localhost → 使用 APP_BASE_URL 配置

2. 删除 8 处死代码(未使用 import/变量)
   - 清理多个文件中的未使用导入和变量

3. 删除 8 个空文件/空模块
   - 删除无内容的 __init__.py 文件

4. 合并 3 对 100% 完全重复的函数
   - 提取 check_project_access/get_user_plan/require_project_and_library
   - 新建 apps/api/app/api/routes/_helpers.py 作为共享模块
   - 6 个路由文件改为从 _helpers 导入

5. 对齐 6 个废弃/异常环境变量
   - 修复 DATABASE_POOL_RECYLE 拼写错误 → DATABASE_POOL_RECYCLE
   - 添加 JWT_ALGORITHM/JWT_ACCESS_TOKEN_EXPIRE_MINUTES/JWT_REFRESH_TOKEN_EXPIRE_DAYS 到 Settings
   - 修复 jwt_service.py hasattr 字段名匹配
   - .env.example: CORS_ORIGINS → CORS_ORIGINS_RAW(逗号分隔格式)
   - .env.example: 启用 APP_ENV
   - 修复 OSS_ENDPOINT 默认值拼写错误 (aliiyuncs.com → aliyuncs.com)
   - 添加 COSYVOICE_* 变量来源注释

修改文件: 52 个(新增 1,删除 8,修改 43)
xiaoxia closed this pull request 2026-07-15 16:18:11 +08:00
Some checks are pending
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 8s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 3m28s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production Runtime Images (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped

Pull request closed

Sign in to join this conversation.