364e688382
主要改动: backend 业务: - feat(error-codes): 统一错误码表 E1011/E1012 拆码 - E1011 AUTH_PASSWORD_WRONG: 本地密码错误 - E1012 AUTH_FIRST_LOGIN_PASSWORD_REQUIRED: 首次登录请先设置密码 - E1015 AUTH_OLD_PASSWORD_REQUIRED: 改密需要旧密码 - E1016 AUTH_OLD_PASSWORD_WRONG: 旧密码错误 - fix(agents): P0 降级放行时,如坐席已注册但未设密码,正确 raise 1012 (修复前会撞 1011 本地密码错误,与场景不符) - feat(approval): 审批模块 (T审批/A审批) - feat(config): approval_template_resource / approval_template_device 配置 - feat(main): /ready, /metrics, /version 端点(K8s 友好) backend 测试: - test(agents): 新增 test_agents.py — 3 个 Fix-4 降级登录测试 - 错误密码拒绝 - 缺密码拒绝 - 正确密码通过 pytest tests/test_agents.py → 3/3 通过 - test(conftest): 模块级 mock + slowapi 限流重置 + UTF-8 patch 解决 Windows pytest GBK 读 .env 失败 + 降级路径无法测试 仓库治理: - chore(gitignore): 排除 .workbuddy/memory/(workbuddy 本地记忆) - chore(docs): 重命名两份 IT 文档(前缀加智能区分版本) 部署与文档: - docs: RELEASE_NOTES_v0.5.0-beta.md / dashboard.html / 需求-发版预览页面 - docs: 部署、架构、PRD、安全、评审报告等同步 v0.5.0-beta - deploy-server: 打包脚本、nginx、docker-compose 版本号 bump 前端 (frontend-h5 / frontend-agent / frontend-admin / frontend-portal): - index.html / package.json 版本号与构建号 bump 自动验收(RELEASE_NOTES L100-104): - [x] pytest tests/test_agents.py -v → 3 passed - [x] grep Bs7ucT backend frontend-h5 frontend-agent → 无输出 - [x] grep AppException(101[123]) backend → 仅 1 处(登录场景 1012) - [ ] npm run build (frontend-h5 / frontend-agent) → 合并后跑 后续: 合并 feature/t-1-t4-merge → main,tag v0.5.0-beta
87 lines
3.7 KiB
Plaintext
87 lines
3.7 KiB
Plaintext
# =============================================================================
|
||
# 企微IT智能服务台 — Python 依赖声明
|
||
# =============================================================================
|
||
# 说明:列出后端所有 Python 包依赖及版本
|
||
# 用法:pip install -r requirements.txt
|
||
# =============================================================================
|
||
|
||
# --------------------------------------------------------------------------
|
||
# Web 框架
|
||
# --------------------------------------------------------------------------
|
||
# FastAPI: 高性能异步 Web 框架,自动生成 Swagger API 文档
|
||
fastapi==0.111.1
|
||
# Uvicorn: ASGI 服务器,支持热重载和 WebSocket
|
||
uvicorn[standard]==0.30.1
|
||
# python-multipart: FastAPI 文件上传支持(处理 multipart/form-data 请求)
|
||
python-multipart==0.0.12
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 数据库
|
||
# --------------------------------------------------------------------------
|
||
# SQLAlchemy: Python SQL 工具包和 ORM,2.0 版本支持 async session
|
||
sqlalchemy==2.0.31
|
||
# psycopg2-binary: PostgreSQL 数据库驱动(binary 版本无需编译,用于 Alembic 同步迁移)
|
||
psycopg2-binary==2.9.9
|
||
# asyncpg: PostgreSQL 异步驱动(用于 SQLAlchemy 2.0 async engine)
|
||
asyncpg==0.29.0
|
||
# Alembic: 数据库迁移工具,与 SQLAlchemy 配合使用
|
||
alembic==1.13.1
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 缓存
|
||
# --------------------------------------------------------------------------
|
||
# redis: Redis 客户端,用于 access_token 缓存和会话状态管理
|
||
redis==5.0.7
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 数据验证
|
||
# --------------------------------------------------------------------------
|
||
# pydantic: 数据验证和设置管理,FastAPI 的核心依赖
|
||
pydantic==2.7.5
|
||
# pydantic-settings: 从环境变量读取配置,支持 .env 文件
|
||
pydantic-settings==2.3.4
|
||
|
||
# --------------------------------------------------------------------------
|
||
# HTTP 客户端
|
||
# --------------------------------------------------------------------------
|
||
# httpx: 异步 HTTP 客户端,用于调用企微 API(替代同步的 requests)
|
||
httpx==0.27.0
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 加密
|
||
# --------------------------------------------------------------------------
|
||
# cryptography: 企微消息 AES-CBC-256 加解密(官方推荐库)
|
||
cryptography==42.0.8
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 速率限制
|
||
# --------------------------------------------------------------------------
|
||
# slowapi: FastAPI 速率限制中间件(基于 limits 库,支持 Redis 后端)
|
||
slowapi==0.1.9
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 工具
|
||
# --------------------------------------------------------------------------
|
||
# python-dotenv: 从 .env 文件加载环境变量到 os.environ
|
||
python-dotenv==1.0.1
|
||
|
||
# --------------------------------------------------------------------------
|
||
# OTP 二次验证
|
||
# --------------------------------------------------------------------------
|
||
# pyotp: TOTP/HOTP 动态码生成和验证(Google Authenticator 兼容)
|
||
pyotp==2.9.0
|
||
# bcrypt: 密码哈希库(用于本地密码认证)
|
||
bcrypt==4.1.2
|
||
# passlib: 密码哈希兼容库(bcrypt 前端封装)
|
||
passlib[bcrypt]==1.7.4
|
||
# qrcode: 二维码生成(用于 OTP 绑定)
|
||
qrcode[pil]==7.4.2
|
||
# pillow: 图片处理(qrcode[pil] 依赖)
|
||
pillow==10.4.0
|
||
|
||
# --------------------------------------------------------------------------
|
||
# 监控
|
||
# --------------------------------------------------------------------------
|
||
# psutil: 系统监控(用于 /metrics 端点)
|
||
psutil==5.9.8
|