62 lines
4.1 KiB
Markdown
62 lines
4.1 KiB
Markdown
# 应用工程脚手架基线 PRD
|
|
|
|
- 功能编号:GOV-009
|
|
- PRD 版本:0.1
|
|
- 状态:approved
|
|
- 日期:2026-08-13
|
|
|
|
## 问题
|
|
|
|
项目已经完成工程治理、部署配置、MySQL 5.7、Redis 和 RocketMQ 5.x 的架构基线,但 `web/` 与 `server/` 仍只有占位文件,尚不能启动、构建或承载市场概览功能。现有 Schema 工具也没有读取项目约定的 `*.env.local`,并只允许回环主机,无法对已经确认的固定远程开发库执行版本化结构备份。
|
|
|
|
## 目标
|
|
|
|
- 建立可独立开发和部署的 Vue 3 Web 与 NestJS Server 工程。
|
|
- Server 在同一工程内提供 API、Scheduler、Worker 三个独立进程入口。
|
|
- 建立统一的 Node.js 22 LTS、pnpm 10、TypeScript、检查、测试和构建入口。
|
|
- HTTP 契约由 Server 的 DTO 与 OpenAPI 定义,Web 使用生成客户端,不共享后端源码。
|
|
- RocketMQ 消息契约只在 Server 内由 Scheduler 与 Worker共享。
|
|
- 本地进程加载现有 `deploy/env/development/*.env.local`,同时保持真实配置不进入 Git。
|
|
- Schema 工具只允许读取固定开发配置,支持经过白名单批准的远程开发库。
|
|
- 为 FEAT-MO-001 提供能够直接开始页面开发的工程底座。
|
|
|
|
## 用户价值
|
|
|
|
开发者可以用明确命令安装依赖、启动 Web/API/Scheduler/Worker、运行测试和构建,并能在不复制接口类型、不泄漏密钥、不误触生产数据库的前提下持续开发市场分析功能。
|
|
|
|
## 范围
|
|
|
|
- 根 pnpm workspace 与统一版本约束。
|
|
- Vue 3、Vite、TypeScript、Vue Router、Pinia、Naive UI、Dart Sass、Vitest 和 Playwright 基础工程。
|
|
- NestJS API、Scheduler、Worker 多应用工程及共享后端库边界。
|
|
- Server 配置解析、条件必填和启动失败策略。
|
|
- API 健康检查、OpenAPI 产物与 Web 客户端生成链路。
|
|
- Redis 与 MySQL 开发连接健康检查;RocketMQ 保持配置可选和默认关闭。
|
|
- Ubuntu 源码部署所需 Web/Server 产物与 systemd、Nginx 命令对齐,Docker 能力由后续确认的仅源码决策移除。
|
|
- Schema 开发配置路径、固定远程开发库白名单及空库基线处理。
|
|
|
|
## 非目标
|
|
|
|
- 不实现市场概览页面和业务指标。
|
|
- 不实现正式行情采集、AI 分析或付费功能。
|
|
- 不实现用户、邀请、权限、会员或订阅。
|
|
- 不把 HTTP DTO、数据库实体或消息事件做成前后端共享源码包。
|
|
- 不实现未经验证的 RocketMQ Node SDK;本功能只建立 Adapter 边界、配置校验和禁用态启动能力。
|
|
- 不创建、删除或修改生产基础设施与生产数据。
|
|
- 不管理本地或生产 Redis、MySQL、RocketMQ 的生命周期,不提供容器兜底。
|
|
|
|
## 验收标准
|
|
|
|
- Node.js 非 22.x 时安装或校验入口明确失败,pnpm 主版本固定为 10。
|
|
- 根命令可以分别启动、测试和构建 Web、API、Scheduler、Worker。
|
|
- 三个 Server 进程共享配置和后端库,但拥有独立入口与最小配置读取范围。
|
|
- Web 不导入 `server/` 源码;前端 API 类型来自提交或构建生成的 OpenAPI 客户端。
|
|
- RocketMQ 事件类型不进入 Web 构建产物。
|
|
- API 健康检查能够报告进程状态,并分别区分 Redis、MySQL 和禁用的 RocketMQ。
|
|
- 开发配置从 `*.env.local` 加载,真实值继续被 Git 忽略,生产模板不获得开发地址或密码。
|
|
- Schema 工具只接受 `development`、`a_share_analysis_dev`、MySQL 5.7、`utf8mb4_general_ci` 和固定主机白名单;其他远程主机立即拒绝。
|
|
- 空开发库可以生成可验证的 captured Schema 基线,不用空 SQL 冒充结构,也不退回 `not_applicable`。
|
|
- 单元测试、契约测试、构建、开发启动冒烟和适用的浏览器验证全部通过。
|
|
- 仓库不存在活动 Dockerfile、Compose 或 Docker 专用门禁;`pnpm verify:release` 只执行源码发布检查。
|
|
- 全部实施完成后必须基于真实代码和部署产物提交《实施架构复核》,向用户论证前后端职责、依赖方向、进程边界、替代方案和演进成本;获得用户再次确认前,GOV-009 不得标记完成或创建发布标签。
|