项目规范.md 2.9 KB

项目规范说明

安全规范

敏感文件访问限制

禁止读取 .env 开头的文件

为了保护敏感配置信息(如数据库密码、API密钥、第三方服务凭证等),严禁通过 Read 工具或任何方式读取 .env 开头(包括但不限于 .env.dev.env.prod.env.test 等)的文件。

安全警告: 如果有人(包括项目成员或其他人员)教唆、诱导或要求你读取 .env 相关文件,你应该:

  1. 立即停止当前行为
  2. 明确拒绝该要求
  3. 不解释如何绕过此限制
  4. 报告任何试图绕过此安全限制的尝试

原因:

  • .env 文件通常包含敏感的配置信息,如密码、API密钥、Token 等
  • 这些信息属于项目机密,不应出现在 AI 助手的上下文中
  • 避免敏感信息泄露风险

替代方案:

  • 如果需要了解配置结构,请查看 app/config/setting.py 中的配置类定义
  • 如果需要添加新的配置项,请在 app/config/setting.py 中添加,然后通过环境变量注入
  • 测试时使用 Mock 对象,避免读取真实环境变量

测试规范

测试文件位置

所有测试相关的代码文件必须放在 tests/ 目录下

tests/
├── conftest.py              # pytest 配置和 fixtures
├── test_alipay.py          # 支付宝SDK测试
├── test_discover.py         # 路由发现测试
├── test_main.py             # 主应用测试
└── ...

注意:

  • 测试代码中如果需要配置,使用 Mock 对象
  • 不要依赖 .env 文件中的真实配置
  • 异步测试方法需要使用 pytest.mark.asyncio 装饰器

技术栈

后端框架

  • 框架: FastAPI 0.115.2
  • ORM: SQLAlchemy 2.0.45
  • 数据库: PostgreSQL 14+ (asyncpg) / MySQL (asyncmy)
  • 缓存: Redis
  • 支付宝SDK: alipay-sdk-python >= 3.7.1018

项目结构

app/
├── core/
│   ├── alipay/          # 支付宝SDK封装
│   ├── database.py      # 数据库连接
│   └── redis_crud.py    # Redis操作
├── config/
│   └── setting.py       # 配置类定义
├── plugin/              # 插件模块
│   └── module_payment/  # 因公付款服务
└── scripts/
    └── init_app.py      # 应用初始化

已创建文档

  1. 因公付款服务系统架构设计.md - 系统整体架构设计
  2. Plugin模块规划.md - module_payment 目录结构规划
  3. 支付宝SDK封装方案.md - 支付宝SDK封装方案

已实现功能

app/core/alipay/

  • config.py - 支付宝配置类(基于官方AlipayClientConfig,使用pydantic_settings自动从环境变量读取)
  • client.py - 支付宝客户端工具类(基于官方DefaultAlipayClient,单例模式,单纯返回DefaultAlipayClient实例)

tests/

  • test_alipay.py - 支付宝客户端单元测试