Commit Graph

5 Commits

Author SHA1 Message Date
小鱼开发 95e55293c6 security: 全面生产安全加固与部署修复
后端安全:
- DEBUG 默认 True → False
- 彻底移除 AUTH_BYPASS 认证绕过
- 验证码不再明文打印到日志
- 上传接口增加大小限制(500MB/20MB/100MB)与魔数校验
- python-jose → PyJWT, 更新 requirements.lock/uv.lock
- Bandit 恢复关键规则(B104/B301/B305/B314/B324/B603/B607)
- 修复 5 处 try_except_pass, 15 处加 nosec 注释
- 启用 Bandit pre-commit 钩子

前端安全:
- 配置完整 CSP 策略
- 收紧 Capabilities(fs:allow-read-file → $RESOURCE/**)
- 移除硬编码 devToken
- 清理前端 TODO(美家卡智影命名统一)

部署修复:
- docker-compose.prod 增加 alembic 迁移步骤
- api + scheduler 增加 Redis 心跳健康检查
- Nginx 添加安全响应头
- Nginx client_max_body_size 100M → 500M
- .env.example 补充 UPLOAD_MAX_* 配置与安全注释

其他:
- /voice/upload 合并到 /upload/audio
- Rust 上传增加文件大小检查
- 清理 Rust 19 处 println! + 前端 21 处 console.info
- 修复 VideoCompose.tsx toast 未导入(已有bug)
2026-05-10 23:31:34 +08:00
小鱼开发 e58159fc42 refactor: 第三方平台架构改造(Adapter Protocol + Gateway)
Phase 1: 异常体系统一
- 新增 PlatformError / PlatformErrorType 标准定义
- 改造所有 Provider 异常抛出为 PlatformError
- 注册全局 PlatformError exception handler

Phase 2: Adapter Protocol
- 新增 app/ai/adapters/base.py(PlatformAdapter + SyncCapable + TaskCapable + CallbackCapable)
- 新增 app/ai/adapters/constants.py(Method 常量)
- 新增 PlatformConfigLoader(config/platform-config.yaml)

Phase 3: HTTP Client 统一
- ViduProvider 从 aiohttp 迁移到 httpx(注入方式)
- VolcengineCaptionService 改为注入 http_client
- lifespan 统一管理所有 Client 创建和关闭

Phase 4: Gateway 骨架 + Adapter 实现
- 新增 ViduAdapter / VolcengineArkAdapter / VolcengineCaptionAdapter
- 新增 PlatformGateway(call_sync / submit_task / query_task / handle_webhook)
- 新增 LLMGateway(带 Fallback 降级链)
- lifespan 注册所有 Adapter 和 Gateway

Phase 6: 清理与验证
- 从 Settings 移除 VIDU_BASE_URL / VOLCENGINE_BASE_URL
- Provider 改为从 PlatformConfigLoader 读取 base_url
- 清理 volcengine_caption_service 全局单例
- config_loader 默认路径改为 platform-config.yaml
- Scheduler 注入共享 HTTP client
- vidu.py 回调路由使用 Adapter 验签和解析
- ruff 全量通过,应用启动测试通过
2026-05-04 16:07:16 +08:00
小鱼开发 e262134148 refactor: 移除 KlingAI 和 MiniMax 相关代码
删除内容:
- KlingAI Provider、MiniMax Provider
- Kling 视频/图片/TTS/语音克隆/形象克隆 Service 和 Scheduler Handler
- 已废弃的 TTSService、VoiceCloneService
- config 中 KLINGAI_*/MINIMAX_* 配置项
- ai_models.yaml 中 klingai 平台和模型配置
- docker-compose 中相关环境变量
- .env.example 中相关配置示例
- deploy-test.sh 中相关检查
- Makefile 中 klingai 语义检查排除规则
- KlingTaskStatus 枚举

修改内容:
- model_router.py 移除 KlingAI 平台分支
- voice.py 重写,修复批量合成/文件保存中 service 未定义的 Bug
- vidu_service.py 移除 MiniMax 相关注释
- script_handler.py 更新注释
2026-05-02 23:16:14 +08:00
小鱼开发 d419d6732e feat: Vidu 对口型回调机制完整版(B方案)
后端:
- config.py: 新增 APP_BASE_URL 配置,支持 ENV 自动推断公网地址
- vidu.py: POST /lip-sync 自动拼接 callback_url 提交给 Vidu
- vidu.py: 新增 POST /callback 接收 Vidu 异步回调,写入 Redis
- vidu.py: GET /tasks/{id}/status 优先查 Redis,fallback 到 Vidu API

前端:
- types.ts / localStorage.ts: ScriptShot/ProjectSegment 新增 lipSyncVideoPath/VideoUrl/StartTime
- VideoGeneration.tsx: Step 1 提交对口型时保存 lipSyncStartTime(只算一次)
- VideoGeneration.tsx: 新增 Step 2 轮询后端状态(5s×120次),下载对口型视频
- VideoGeneration.tsx: Step 3 拼接时 segment 优先使用对口型视频,startTime=0

部署:
- docker-compose.test.yml / prod.yml: 添加 APP_BASE_URL 环境变量
- .env.example: 添加 APP_BASE_URL 说明

修复:
- 修复 React 闭包陷阱(updateSegment 后 shots 未同步)
- 修复 startTime 不一致(Step1/Step2 各自 random)
2026-04-28 15:23:46 +08:00
小鱼开发 5f3d414a48 chore: 对齐测试与生产 Docker 配置
- 新增 .dockerignore,减少构建上下文体积
- 修复 Dockerfile 缺失 config/ 目录复制
- docker-compose.test.yml: DEBUG=false, ENV=production, SECRET_KEY 强制传入
- 新增 docker-compose.dev.yml(开发专用)和 docker-compose.prod.yml(生产专用)
- deploy-test.sh: 加入 SECRET_KEY 强制检查,统一步骤编号
2026-04-27 12:33:06 +08:00