Web 控制台使用本地用户和 Bearer token 鉴权:
/api/auth/setup初始化首个用户/api/auth/login返回 token- 普通
/api/*请求需要Authorization: Bearer <token>
例外:
/api/auth/*:公开,用于初始化和登录/api/recorder/cases:可通过AI_TESTER_RECORDER_TOKEN保护/api/internal/*:只接受后端运行时生成的 internal token
GET /api/config 会返回脱敏后的 OPENAI_API_KEY,并返回 OPENAI_API_KEY_SET 表示是否已配置密钥。
POST /api/config 如果没有传入新 key,或传入空 key,会保留已有 key,避免误清空。
默认只允许本地 Vite 来源:
http://127.0.0.1:5173http://localhost:5173
可以通过 AI_TESTER_CORS_ORIGINS 覆盖,多个来源用逗号分隔。
后端使用受控目录和安全路径校验,保护:
- 上传脚本文件名
- Prompt 文件名
- run/suite/case id 中的路径穿越
相关工具位于 web_server/runtime_utils.py。
不要提交:
.envtests/- 运行日志
- 截图
- Prompt 中的真实业务密钥或账号
如果误提交过包含敏感信息的文件,即使后续删除,也应按公司流程轮换密钥。
如果部署在共享环境,建议设置:
AI_TESTER_RECORDER_TOKEN=your-secretChrome 插件同步时需要携带匹配 token,否则后端拒绝写入用例。