# 论文生成平台 **Repository Path**: kayCancer/paper-generation-platform ## Basic Information - **Project Name**: 论文生成平台 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-27 - **Last Updated**: 2026-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VZ Test Platform 基于《开发文档》落地的统一产品测试平台。当前已完成 **第一阶段(后端基础可用版骨架)+ 第二阶段(前端管理台基础页面)+ 第三阶段核心能力(状态机/重试)+ 第四阶段核心能力(用例断言)+ 第五阶段核心能力(安全与审计)+ 第六阶段(RBAC 配置化)+ 第七阶段(API Key 范围化)+ 第八阶段(监控与日志可视化)+ 第十阶段(测试计划 Cron 与 API Key 模拟服务工具)**。 ## 当前完成 - 后端技术栈:Python 3.11 + FastAPI + SQLAlchemy - 核心模型:用户/角色/权限、产品/版本、论文、测试计划/任务/结果、API Key - 核心接口(第一批): - 管理端:`/api/admin/auth`、`/users`、`/products`、`/papers`、`/test`、`/orders`、`/api-keys` - 用户管理增强:`PUT/DELETE /api/admin/users/{id}` - 订单管理:`GET /api/admin/orders`、`POST /api/admin/orders/{id}/manual-submit` - 资源删除增强:`DELETE /api/admin/roles/{id}`、`DELETE /api/admin/products/{id}`、`DELETE /api/admin/products/versions/{id}`、`DELETE /api/admin/papers/{id}`、`DELETE /api/admin/test/batches/{id}`、`DELETE /api/admin/api-keys/{id}` - API Key 管理增强:`GET/PUT /api/admin/api-keys/{id}`、`POST /api/admin/api-keys/{id}/rotate-secret` - API Key 统计:`GET /api/admin/api-keys/stats`、`GET /api/admin/api-keys/{id}/stats` - 角色权限:`/api/admin/roles`、`/api/admin/roles/permissions`、`/api/admin/roles/{id}/permissions`、`/api/admin/users/{id}/roles` - 仪表盘:`/api/admin/dashboard/overview` - 重试重跑:`/api/admin/test/tasks/{task_id}/retry`、`/api/admin/test/batches/{batch_id}/rerun-failed` - 用例管理:`/api/admin/test-cases/sets|cases|rules|runs` - 断言执行:`/api/admin/test-cases/assertions/tasks/{task_id}/run`、`/api/admin/test-cases/assertions/batches/{batch_id}/run` - 断言趋势:`/api/admin/test-cases/assertions/trend?days=7` - 审计日志:`/api/admin/logs/api-calls`、`/api/admin/logs/operations` - 日志查询增强:`GET /api/admin/logs/api-calls/query`、`GET /api/admin/logs/operations/query`、`GET /api/admin/logs/overview` - 对外接口:`/api/open/products`、`/api/open/products/{code}/schema`、`/api/open/test/result/{task_id}` - 对外任务服务:`POST /api/open/tasks/heartbeat`、`POST /api/open/tasks/pull`、`POST /api/open/tasks/{task_id}/submit` - 测试任务状态机(核心流转): - `pending -> processing -> success|failed|timeout|cancelled` - `failed|timeout|cancelled -> pending`(重试/重跑) - 对外接口安全(open API): - Header 必填:`x-api-key`、`x-timestamp`、`x-nonce`、`x-signature` - 签名串格式:`METHOD\\nPATH_WITH_QUERY\\nTIMESTAMP\\nNONCE\\nBODY_SHA256` - 签名算法:`HMAC-SHA256(secret, payload)`(十六进制小写) - 支持时间戳偏移校验、nonce 防重放、IP 白名单、限流 - 支持 API Key 级别路径范围、产品范围、独立白名单、独立限流 - 任务服务推荐调用顺序:`heartbeat(可选)` -> `pull` -> `submit` - 后台安全与审计: - 管理端接口启用细粒度权限点(`require_permission`) - 自动记录后台操作审计日志(含操作人、对象、摘要、耗时、状态) - 自动记录对外接口调用日志(open API) - RBAC 配置接口: - 支持角色创建、权限列表、角色权限绑定 - 支持用户角色绑定(按 `role_code` 集合覆盖更新) - 用户管理能力: - 支持用户新增、启停与密码重置、删除 - 支持用户角色文件弹窗管理(子表弹窗模式) - 订单管理能力: - 订单以测试任务为最小单位(例如测试某产品 100 篇论文即 100 单) - 支持订单列表分页筛选与手动提交(含结果/指标/报告/原始响应) - 手动提交保留状态流转校验并触发断言与批次汇总刷新 - API Key 范围化管理: - 创建时可配置:`allowed_path_prefixes`、`allowed_product_codes`、`ip_whitelist`、`rate_limit_per_minute` - 支持管理端更新配置和 Secret 轮换 - `/api/open/products`、`/api/open/products/{code}/schema`、`/api/open/test/result/{task_id}`、`/api/open/tasks/*` 按产品范围校验/过滤 - API Key 调用统计: - 支持近 N 天(默认 7 天)调用量、错误数、错误率、平均耗时、最近调用时间 - 支持总体统计和单 Key 统计 - 日志查询增强: - 接口调用日志与操作日志支持分页、时间范围筛选、路径模糊筛选 - 提供最近 N 天日志概览统计(总量与错误量) - 管理台 CRUD 规范: - 统一使用通用表格组件,默认分页 10 条,单页自动隐藏分页 - 主表在页面内进行 CRUD;相关子表统一通过右上角“文件”按钮进入弹窗 CRUD - 新增/创建统一采用弹窗,删除统一置于操作列 - 断言引擎: - 支持操作符:`eq/ne/gt/gte/lt/lte/between/in/not_in/contains/not_contains/exists/not_exists/regex` - Open API 任务 `submit` 后自动执行断言并写入 `test_results.assertion_result` + `test_case_runs` - 启动自动建表 + 默认管理员初始化 - 前端管理台页面: - 登录页(Token 鉴权) - 仪表盘(统计卡片 + 趋势图) - 产品管理(产品 + 版本) - 论文管理(元信息录入) - 测试计划(规则选择 + 运行计划 + 任务列表) - 用户管理(新增、编辑、删除、角色文件) - 订单管理(分页筛选、手动提交) - 角色权限(角色创建、权限绑定、用户绑定角色) - API 密钥(创建、范围配置、状态更新、Secret 轮换、7天统计卡) - 日志审计(接口调用日志、操作审计日志、分页筛选) ## 快速启动 ```bash cd /Users/chenhongli/dev/srcs/3E4/vztest/backend python3 -m pip install -e . uvicorn app.main:app --reload --port 8000 ``` 默认管理员: - 用户名:`admin` - 密码:`admin123` Swagger: - ## 前端启动 ```bash cd /Users/chenhongli/dev/srcs/3E4/vztest/frontend cp .env.local.example .env.local npm install npm run dev ``` 访问: - ## 目录结构 ```text backend/ app/ api/ core/ db/ models/ schemas/ frontend/ src/app/ src/components/ src/lib/ mock-test-service/ mock_service.py sdk/ services/ README.md docs/ STEP_BY_STEP.md OPEN_TASK_API.md 开发文档.txt ```