Files
WonderQ-Admin/AGENTS.md
duanshuwen 75f5a5a48b feat: add WonderQ admin backend
Add FastAPI admin/public API service, database setup, Docker deployment files, docs, and tests.
2026-06-30 13:56:45 +08:00

99 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AGENTS.md
## 全局协作规则
- 默认全程使用中文回答;除非用户明确要求,不切换语言。
- 回答保持简洁直接,避免无效铺垫和空话。
- 需求不清晰时先提问确认;不要自行猜测并执行有风险操作。
- 默认只读优先。创建、修改、删除文件必须有用户明确授权。
- 严格按当前需求工作,不额外加功能、不扩大改动范围。
- 识别到密钥、Token、真实环境变量、账号密码、隐私配置时禁止展示、复述或输出。
- 不读取、输出或提交 `.env``.env.local` 等真实环境文件。
## 项目定位
`WonderQ-Admin` 是独立的 WonderQ 后端 API 服务,当前技术栈为 Python + FastAPI + SQLAlchemy 2 + Alembic + PostgreSQL + JWT + Pydantic。项目为 H5 前台提供 Public API为后台管理端提供 Admin API并通过 Docker Compose 部署 API、PostgreSQL 和 Redis。
## 当前目录结构
```text
WonderQ-Admin/
├─ app/
│ ├─ main.py # FastAPI 应用入口、CORS、错误处理、路由注册
│ ├─ config.py # 环境变量配置
│ ├─ database.py # SQLAlchemy engine/session/Base
│ ├─ models.py # ORM 模型,兼容原 Prisma 表结构
│ ├─ schemas.py # Pydantic 请求校验
│ ├─ auth.py # JWT 与后台鉴权
│ ├─ serializers.py # SQLAlchemy 对象响应序列化
│ ├─ content.py # Python seed 内容源
│ ├─ seed.py # 初始化/重置数据命令
│ └─ routers/
│ ├─ public.py # H5 Public API
│ ├─ admin.py # 后台 Admin API
│ └─ shared.py # 路由共享查询
├─ alembic/ # 数据库迁移 baseline
├─ data/generated-products.json
├─ tests/ # 单元测试和接口冒烟测试
├─ Dockerfile # API 镜像
├─ docker-compose.yml # api/postgres/redis 编排
├─ requirements.txt # Python 依赖
├─ pyproject.toml # Python 项目元数据与 pytest 配置
├─ .env.example # 环境变量模板
└─ README.md # 启动、部署、迁移说明
```
## 启动方式
本地开发:
```bash
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
docker compose up -d postgres redis
alembic upgrade head
python -m app.seed
uvicorn app.main:app --host 0.0.0.0 --port 4000 --reload
```
Docker 全量启动:
```bash
docker compose up --build
```
健康检查:`http://localhost:4000/health`
## 测试流程
- 修改 Python 代码后运行 `pytest`
- 修改数据库模型或迁移后运行 `alembic upgrade head`,并在空库验证 `python -m app.seed`
- 保留已有 PostgreSQL 数据时,先备份,再使用 `alembic stamp head` 标记 baseline。
- Docker 相关变更后运行 `docker compose up --build` 并检查 `/health`
## 开发准则
- 优先保持现有 API 路径和响应结构兼容,不主动重设计接口。
- 外部输入必须通过 Pydantic schema 校验。
- 数据库访问统一通过 `app/database.py` 提供的 Session。
- 表名和字段名需要兼容原 Prisma 生成的 mixed-case PostgreSQL 结构。
- Admin API 默认需要 `require_admin`,登录接口除外。
- 后台数据变更继续记录 `AuditLog`
- 真实密钥只从环境变量读取,禁止写入源码、测试或文档。
- `python -m app.seed` 会重置内容数据,生产环境使用前必须明确确认。
## 锁定核心文件
未经用户明确授权禁止修改:
- `.env``.env.local`、生产环境变量和任何密钥配置。
- `app/models.py``alembic/versions/*`:数据库结构和迁移。
- `app/auth.py`:后台鉴权逻辑。
- `app/routers/admin.py``app/routers/public.py`:核心 API 行为。
- `app/seed.py``app/content.py``data/generated-products.json`:初始化内容和迁移数据源。
- `Dockerfile``docker-compose.yml`:部署入口。
- `requirements.txt``pyproject.toml`:依赖和测试配置。
如确需修改上述文件,先说明原因、影响范围、验证方式,并等待用户确认。