架构总览
LY Fullstack 是一个 Monorepo,其中包含三个可独立运行的应用和三个共享包。Monorepo 解决代码组织与协作,模块化单体解决业务边界;两者不是同一个概念。
运行单元
它们分别构建、启动和部署。独立进程不自动等于微服务:当前没有网关、服务注册发现、分布式配置、消息可靠性或链路治理。
共享能力
工程控制面
workspace.config.json:应用注册和本地端口真相源。scripts/setup.mjs:本地数据库、环境文件、migration 和 seed。scripts/dev.mjs:选择应用、注入端口、启动与停止进程。scripts/check-architecture.mjs:机器化检查依赖与目录边界。turbo.json:编排 workspace 包的构建、类型检查和测试。.github/workflows/ci.yml:Pull Request 与 main 的质量和集成门禁。
请求链路示例
管理员访问用户管理页面时:
- Admin 路由守卫检查本地是否存在 Token。
- 首次进入受保护页面时调用
/api/auth/me恢复会话。 - Admin API 的 JWT Guard 读取 Token 中的账号标识与
tokenVersion。 - Guard 从数据库重新读取账号、角色、菜单和权限状态。
- Permission Guard 检查当前接口声明的权限码。
- Controller 调用 Service,Service 通过 Prisma 访问 PostgreSQL。
- 响应映射为共享契约,Admin composable 更新页面状态。
这条链路确保权限不是只靠前端菜单隐藏。