first commit
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# AI Safety Console Web
|
||||
|
||||
AI 模型内部安全测试平台的独立 React 前端。UI 使用官方 [AgentScope Spark Design](https://sparkdesign.agentscope.io/),提供可持久化切换的蓝色安全控制台和浅色专业两套主题。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```text
|
||||
src/
|
||||
├── api/ # Fetch 客户端与 Zod 响应校验
|
||||
├── auth/ # 会话、身份恢复和登退录
|
||||
├── design/ # Spark tokens、两套主题与切换状态
|
||||
├── errors/ # 错误类型、归一化和 React Error Boundary
|
||||
├── logging/ # 结构化日志与敏感数据脱敏
|
||||
├── schemas/ # Zod 请求/响应和业务不变量
|
||||
├── services/ # 与全部后端端点对应的业务服务
|
||||
├── pages/ # 页面交互
|
||||
└── components/ # 可复用 UI 状态和主题切换
|
||||
tests/
|
||||
├── unit/ # 日志、错误、schema、API 和主题单元测试
|
||||
└── integration/ # 端点契约和 UI 切换集成测试
|
||||
docs/ # UI、交互、架构、API、测试与部署文档
|
||||
```
|
||||
|
||||
认证支持 access/refresh token 原子轮换、活跃用户静默续约、标签页内/跨标签页 single-flight,以及业务请求 401 后的一次续约与重放。跨标签页协调使用浏览器 Web Locks API。
|
||||
|
||||
## 本地开发
|
||||
|
||||
需要 Node.js 20–24 和 Corepack。
|
||||
|
||||
```bash
|
||||
corepack enable
|
||||
pnpm install --frozen-lockfile
|
||||
cp .env.example .env
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
默认访问 `http://localhost:5173`,API 默认为 `http://127.0.0.1:8000/api/v1`。不要将模型 API Key 放入前端 `.env`;密钥只由后端保管。
|
||||
|
||||
## 质量检查
|
||||
|
||||
```bash
|
||||
pnpm check
|
||||
```
|
||||
|
||||
真实后端检查(不会使用 mock,需提供测试账户):
|
||||
|
||||
```bash
|
||||
E2E_API_BASE_URL=http://localhost:8000/api/v1 E2E_USERNAME=admin E2E_PASSWORD=密码 pnpm test:e2e
|
||||
```
|
||||
|
||||
该命令依次运行 ESLint、Vitest 和生产构建。
|
||||
|
||||
## 容器部署
|
||||
|
||||
```bash
|
||||
VITE_API_BASE_URL=https://api.example.com/api/v1 docker compose up --build -d
|
||||
```
|
||||
|
||||
默认映射到 `http://localhost:8080`。`VITE_API_BASE_URL` 是构建时变量,修改后需重新构建镜像。
|
||||
|
||||
## 文档
|
||||
|
||||
- [UI 规范(强制令牌与提交门禁)](docs/ui-design.md)
|
||||
- [交互设计](docs/interaction-design.md)
|
||||
- [架构与主题](docs/architecture.md)
|
||||
- [API 映射](docs/api-contracts.md)
|
||||
- [测试、安全与运维](docs/operations.md)
|
||||
Reference in New Issue
Block a user