- 服务端(Gin + modernc.org/sqlite,data/opsxapi.db WAL): - users/tokens/teams/team_members/workspaces 表;注册登录(加盐哈希 + Bearer 令牌) - /api:auth register/login/logout、me(用户+团队+空间)、teams CRUD/邀请成员、workspaces 读写(20MB 上限,成员鉴权) - 前端: - account.ts 客户端 + store 账号态:登录/注册/登出/团队/空间切换 - 顶栏账号区:未登录「登录」按钮;登录后用户胶囊(头像+空间名+已同步/同步中/失败)+ 空间切换菜单 + ⋯(立即同步/团队管理/退出) - 空间模型:本地(localStorage)与云端(SQLite)隔离,切云端空空间自动播种本地数据;云端改动 1.5s 去抖自动同步;切回本地恢复快照 - 登录/注册弹窗 + 团队管理弹窗(建团队、邮箱邀请);vite 代理 /api;docs 新增「账号与团队」页 - 验证:curl E2E(注册/冲突 409/错误密码 401/团队共享写/越权 401)+ 浏览器全链路(注册→播种上云 17KB→云端编辑自动同步→本地快照隔离)
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { defineConfig } from "vite";
|
|
import react from "@vitejs/plugin-react";
|
|
import path from "node:path";
|
|
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
resolve: {
|
|
alias: {
|
|
"@opsxapi/core": path.resolve(__dirname, "../../packages/core/src/index.ts"),
|
|
"@opsxapi/transport": path.resolve(__dirname, "../../packages/transport/src/index.ts"),
|
|
"@opsxapi/ui": path.resolve(__dirname, "../../packages/ui/src/index.ts"),
|
|
},
|
|
},
|
|
server: {
|
|
host: "127.0.0.1",
|
|
port: 5173,
|
|
strictPort: true,
|
|
proxy: {
|
|
"/api": {
|
|
target: "http://127.0.0.1:8787",
|
|
changeOrigin: true,
|
|
},
|
|
"/v1": {
|
|
target: "http://127.0.0.1:8787",
|
|
changeOrigin: true,
|
|
},
|
|
"/health": {
|
|
target: "http://127.0.0.1:8787",
|
|
changeOrigin: true,
|
|
},
|
|
"/docs": {
|
|
target: "http://127.0.0.1:8787",
|
|
changeOrigin: true,
|
|
},
|
|
"/home": {
|
|
target: "http://127.0.0.1:8787",
|
|
changeOrigin: true,
|
|
},
|
|
"/site": {
|
|
target: "http://127.0.0.1:8787",
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
},
|
|
});
|