- guide.md 补「升级同步(git upstream+merge)+ 可定制面三条铁律」 - shared/platform 主 spec 新增「脚手架可定制面」需求 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
Platform Specification
Purpose
定义跨前后端、跨模块的全局规范:时间、多租户隔离、URL 契约与安全红线,作为所有 spec 的共同约束。
Requirements
Requirement: 统一时间戳格式
系统 SHALL 在 API 层以 Unix 毫秒时间戳(number)表示所有时间字段,前端负责本地化显示。
Scenario: 接口返回时间
- WHEN 任一接口返回时间字段
- THEN 该字段为 Unix 毫秒整数(number),不返回格式化字符串
Requirement: 多租户数据隔离
所有业务数据 SHALL 归属某一租户;任何业务接口 SHALL 仅返回当前租户的数据。
Scenario: 跨租户越权
- WHEN 用户 A(租户 1)请求租户 2 的数据
- THEN 系统拒绝或返回空,绝不返回租户 2 的数据
Requirement: URL 契约
所有 API SHALL 统一挂载在 /api/v1 前缀下。
Scenario: 版本前缀
- WHEN 客户端调用任一业务接口
- THEN 路径以
/api/v1开头
Requirement: 安全红线
系统 SHALL 不以明文存储或传输密码;日志 SHALL 对手机号、邮箱、密码等敏感信息脱敏。
Scenario: 密码存储
- WHEN 用户设置或修改密码
- THEN 系统仅存储不可逆哈希,绝不落明文
Scenario: 日志脱敏
- WHEN 记录操作/登录日志
- THEN 密码字段不落日志,手机号/邮箱部分打码
Requirement: 脚手架可定制面
脚手架 SHALL 为 fork 项目划定「可定制面」:框架自带模块/页面/服务为框架代码,fork 项目只读不改;业务新增代码落入独立业务目录,与框架目录分离,保证上游升级可经 git merge 干净同步。
Scenario: 框架代码只读
- WHEN fork 项目需要扩展能力
- THEN 不修改框架自带模块/页面/服务,而是新增业务模块/页面或经扩展点定制
Scenario: 业务代码落点
- WHEN fork 项目新增业务
- THEN 代码落入独立业务目录(后端新域
src/<domain>/、前端新页面src/pages/<biz>/),不侵入框架目录
Scenario: 数据驱动扩展点
- WHEN fork 项目需要定制外观或权限
- THEN 优先经数据驱动扩展点(租户品牌、字典、主题色、资源注册 tenant-template)而非改源码