Files
my_site/docs/architecture.md

1165 lines
25 KiB
Markdown

# 企业级目标业务架构文档
本文档定义的是本项目后续重构应对齐的**目标态企业级业务架构**。
如果当前实现与本文档不一致,以本文档作为未来架构和业务规则的基线。
本文档只讨论:
- 业务目标
- 领域划分
- 核心业务对象
- 模块职责
- 核心流程
- 统一业务规则
- 状态定义与状态流转
- 权限模型
本文档不讨论:
- 实施计划
- 任务排期
- 测试清单
- 当前实现细节的迁移步骤
## 1. 文档目标与适用范围
### 1.1 文档目标
这份文档用于建立一个可长期演进的企业级业务架构基线,使后续开发、重构、测试设计和 Code Review 都围绕同一套业务语义进行,而不是继续围绕局部实现细节做增量修补。
### 1.2 适用范围
本文适用于以下业务域:
- 身份与访问控制
- 用户工作空间
- 文件内容资产
- 分享与外部分发
- 快传
- 后台任务
- 存储治理
- 运营与管理
## 2. 系统定位
系统定位为:
**以个人和组织成员文件资产为中心的统一文件服务平台**
平台的核心价值不是“存文件”本身,而是:
1. 统一身份
2. 统一文件资产模型
3. 统一分享与传输能力
4. 统一治理、审计和存储策略
平台面向三类对象:
- 最终用户
- 运营/支持人员
- 系统管理员
## 3. 架构原则
### 3.1 业务规则必须有唯一归属
每一条核心业务规则都必须有唯一归属域,不允许在多个 Service、多个控制器或多个前端页面中各自实现一套。
### 3.2 逻辑文件与物理内容分离
用户看到的文件、目录、分享、回收站等都属于**逻辑资产层**。
对象存储中的字节内容、版本、缩略图、转码产物等属于**内容资产层**。
### 3.3 权限模型独立于页面和接口
权限必须由统一授权模型决定,而不是由页面入口、控制器路径或配置白名单临时拼接。
### 3.4 同类能力统一入口
分享、上传、后台任务、管理设置等同类能力必须有统一入口和统一语义,不允许长期双轨并存。
### 3.5 业务状态优先于技术状态
系统对外表达的状态必须是业务状态,而不是底层实现状态的直接暴露。
### 3.6 删除是业务动作,不是物理动作
删除、恢复、过期清理必须服从业务生命周期,不允许把物理对象操作直接等同于业务删除。
## 4. 角色模型
目标态采用四层角色模型:
- `VISITOR`
- `MEMBER`
- `OPERATOR`
- `ADMIN`
### 4.1 `VISITOR`
定义:
- 未登录访问者
可执行:
- 访问公开分享
- 接收公开可接收的传输会话
不可执行:
- 访问个人工作空间
- 创建需要归属主体的业务对象
- 执行管理操作
### 4.2 `MEMBER`
定义:
- 普通登录用户
可执行:
- 管理自己的工作空间
- 上传、下载、删除、恢复、复制、移动、重命名自己的文件
- 创建和管理自己的分享
- 创建和管理自己的传输会话
- 导入外部文件到自己的工作空间
- 查看和管理自己的后台任务
### 4.3 `OPERATOR`
定义:
- 运营或支持角色
职责:
- 处理支持型治理工作
- 查看全局业务对象
- 处理受控的运营动作
限制:
- 不直接拥有系统级配置权限
- 不直接替代系统管理员
### 4.4 `ADMIN`
定义:
- 系统治理角色
职责:
- 管理系统级策略、权限、存储、任务与全局设置
### 4.5 角色模型规则
- 角色是授权模型的一部分,不是页面装饰字段
- 所有管理能力必须绑定 `OPERATOR``ADMIN`
- 工作空间资源的所有权规则优先于角色扩权
- 高风险管理动作必须具备审计记录
## 5. 领域划分
目标态系统划分为八个核心业务域。
### 5.1 身份与访问控制域
职责:
- 注册
- 登录
- 会话管理
- 令牌刷新
- 账号状态
- 角色授权
- 邀请码控制
产出对象:
- 账号
- 会话
- 角色
- 授权上下文
### 5.2 用户工作空间域
职责:
- 管理用户视角下的目录树
- 管理逻辑文件节点
- 管理回收站生命周期
- 管理工作空间内的复制、移动、重命名、恢复
产出对象:
- 工作空间
- 工作空间节点
- 回收站记录
### 5.3 内容资产域
职责:
- 管理物理内容对象
- 管理内容版本
- 管理内容引用关系
- 管理派生产物
产出对象:
- 内容资产
- 内容版本
- 派生资产
### 5.4 分享与外部分发域
职责:
- 管理公开分享
- 管理分享口令、额度、有效期、权限范围
- 管理通过分享进入系统的导入动作
产出对象:
- 分享链接
- 分享策略
- 分享访问记录
### 5.5 快传域
职责:
- 管理在线传输会话
- 管理离线传输会话
- 管理传输文件清单
- 管理传输接收、导入与过期
产出对象:
- 传输会话
- 传输条目
- 取件码
### 5.6 后台任务域
职责:
- 管理异步任务生命周期
- 管理任务重试
- 管理租约、心跳、进度
- 承载需要异步执行的文件处理任务
产出对象:
- 任务
- 任务执行记录
### 5.7 存储治理域
职责:
- 管理存储策略
- 管理对象落点规则
- 管理上传能力矩阵
- 管理存储策略迁移
产出对象:
- 存储策略
- 存储能力
- 存储迁移批次
### 5.8 运营与管理域
职责:
- 提供全局治理能力
- 管理系统配置
- 提供运营视图与审计入口
产出对象:
- 系统设置
- 审计记录
- 管理操作记录
## 6. 核心业务对象
目标态采用以下统一业务对象模型。
### 6.1 `Account`
表示平台主体账号。
关键属性:
- `accountId`
- `username`
- `email`
- `phoneNumber`
- `status`
- `role`
- `quotaPolicy`
### 6.2 `Session`
表示一个被授权的登录会话。
关键属性:
- `sessionId`
- `accountId`
- `clientType`
- `status`
- `issuedAt`
- `expiresAt`
### 6.3 `Workspace`
表示用户的逻辑文件空间。
关键属性:
- `workspaceId`
- `ownerAccountId`
- `status`
### 6.4 `WorkspaceNode`
表示工作空间中的逻辑节点。
节点类型:
- `DIRECTORY`
- `FILE`
关键属性:
- `nodeId`
- `workspaceId`
- `parentNodeId`
- `name`
- `nodeType`
- `lifecycleState`
- `contentBinding`
说明:
- 目录节点只承担层级结构
- 文件节点绑定内容资产引用
### 6.5 `ContentAsset`
表示可被逻辑节点引用的内容资产。
关键属性:
- `assetId`
- `assetType`
- `currentVersionId`
- `ownerScope`
- `retentionPolicy`
### 6.6 `ContentVersion`
表示一份具体内容版本。
关键属性:
- `versionId`
- `assetId`
- `objectKey`
- `storagePolicyId`
- `size`
- `contentType`
- `checksum`
- `versionState`
规则:
- 内容版本一旦完成写入后应视为不可变
### 6.7 `ShareGrant`
表示一条对外分享授权。
关键属性:
- `shareId`
- `ownerAccountId`
- `targetNodeId`
- `accessPolicy`
- `status`
- `expiresAt`
### 6.8 `TransferSession`
表示一条临时传输会话。
关键属性:
- `transferId`
- `mode`
- `ownerAccountId`
- `status`
- `pickupCode`
- `expiresAt`
模式:
- `ONLINE`
- `OFFLINE`
### 6.9 `TransferItem`
表示一条传输会话中的文件项。
关键属性:
- `transferItemId`
- `transferId`
- `name`
- `relativePath`
- `size`
- `contentType`
- `state`
### 6.10 `AsyncJob`
表示系统异步任务。
关键属性:
- `jobId`
- `jobType`
- `ownerAccountId`
- `status`
- `retryPolicy`
- `lease`
### 6.11 `StoragePolicy`
表示一类存储落点规则。
关键属性:
- `storagePolicyId`
- `policyType`
- `capabilitySet`
- `maxObjectSize`
- `status`
- `isDefault`
### 6.12 `SystemSetting`
表示系统级业务配置。
关键属性:
- `settingKey`
- `settingScope`
- `value`
- `mutability`
## 7. 模块职责与协作边界
### 7.1 身份模块
负责:
- 账号生命周期
- 会话与令牌
- 角色与授权上下文
不得负责:
- 文件配额判断
- 工作空间结构
- 存储策略选择
### 7.2 工作空间模块
负责:
- 目录树
- 文件节点生命周期
- 删除、恢复、移动、复制、重命名
不得负责:
- 内容对象的物理写入
- 分享规则
- 传输协议
### 7.3 内容资产模块
负责:
- 内容对象写入完成后的登记
- 版本不可变规则
- 引用关系
- 内容级派生产物
不得负责:
- 工作空间路径语义
- 分享口令和访问额度
### 7.4 分享模块
负责:
- 对外访问授权
- 过期、口令、额度和权限范围
不得负责:
- 目录树变更
- 内容落库存储
### 7.5 快传模块
负责:
- 传输会话组织
- 在线传输的时效和接收关系
- 离线传输的文件接收与导入
不得负责:
- 普通分享
- 工作空间目录治理
### 7.6 后台任务模块
负责:
- 长耗时业务处理
- 重试和失败分类
不得负责:
- 同步主流程判断
### 7.7 存储治理模块
负责:
- 定义上传能力
- 定义内容落点
- 定义迁移规则
不得负责:
- 页面或客户端自己决定上传模式
### 7.8 管理模块
负责:
- 全局治理入口
- 系统设置和审计入口
不得负责:
- 绕开领域规则直接改写核心业务对象
## 8. 核心业务流程
### 8.1 账号注册流程
1. 用户提交注册信息
2. 系统校验唯一性与注册策略
3. 系统验证邀请码
4. 创建 `Account`
5. 初始化 `Workspace`
6. 签发首个 `Session`
### 8.2 登录流程
1. 用户提交凭证
2. 系统校验账号状态
3. 创建或替换对应客户端的 `Session`
4. 发放访问令牌与刷新令牌
### 8.3 文件接入流程
1. 用户发起上传
2. 系统依据 `StoragePolicy` 返回可用上传策略
3. 内容写入完成后登记 `ContentVersion`
4. 创建或绑定 `ContentAsset`
5.`Workspace` 中创建 `WorkspaceNode`
### 8.4 文件操作流程
1. 用户选择目标节点
2. 工作空间模块校验所有权和路径规则
3. 执行重命名、移动、复制或删除
4. 如为复制,仅复制逻辑节点,不复制内容版本
### 8.5 删除与恢复流程
1. 删除动作只改变 `WorkspaceNode.lifecycleState`
2. 被删除节点进入回收区
3. 恢复时校验路径冲突和配额
4. 真正的物理清理由保留策略驱动
### 8.6 分享流程
1. 用户选择一个文件节点创建 `ShareGrant`
2. 系统记录分享访问策略
3. 访客通过分享入口访问
4. 系统按口令、期限、额度和动作权限进行授权判断
5. 允许时执行下载或导入
### 8.7 快传流程
#### 在线快传
1. 创建 `TransferSession(mode=ONLINE)`
2. 接收方加入
3. 完成信令交换
4. 传输完成或会话过期
#### 离线快传
1. 创建 `TransferSession(mode=OFFLINE)`
2. 写入 `TransferItem` 清单
3. 上传离线内容
4. 全部完成后进入可接收状态
5. 接收方下载或导入
### 8.8 异步处理流程
1. 主流程触发 `AsyncJob`
2. Worker 认领任务
3. 执行中上报租约和进度
4. 成功、失败、重试或取消
### 8.9 存储迁移流程
1. 创建迁移批次
2. 读取符合条件的 `ContentVersion`
3. 复制到目标存储策略
4. 切换引用
5. 清理旧内容对象
## 9. 统一业务规则
### 9.1 身份规则
- 账号必须有明确状态
- 被停用账号不得继续生成有效会话
- 一个客户端类型同一时刻只能有一个活跃会话
- 会话失效必须是统一规则,而不是接口局部处理
### 9.2 工作空间规则
- 所有文件和目录都必须存在于某个 `Workspace`
- `WorkspaceNode` 的路径语义由父子关系决定,不允许把完整路径字符串当作唯一真相
- 同一父节点下名称必须唯一
- 文件复制复制的是节点,不是内容版本
### 9.3 内容规则
- 内容版本写入完成后不可变
- 逻辑节点与物理内容必须解耦
- 派生产物属于内容资产域,不属于工作空间域
- 物理对象删除必须晚于业务生命周期结束
### 9.4 删除与保留规则
- 删除是进入回收区,不是直接物理删除
- 恢复必须回到原有工作空间语义下
- 物理清理只能由保留策略和引用关系共同决定
### 9.5 分享规则
- 分享是对单一目标节点的授权对象
- 分享权限必须显式区分查看、下载、导入
- 分享过期、额度耗尽、被撤销后必须立即失效
- 公开访问规则必须只由分享模块负责
### 9.6 传输规则
- 分享与快传是两个独立能力,不允许语义混用
- 在线快传是临时连接能力,不承担长期存储责任
- 离线快传是临时托管能力,不等于工作空间文件
- 导入动作必须显式把传输内容转化为工作空间资产
### 9.7 上传规则
- 上传能力由服务器根据存储策略决定
- 客户端只能消费上传策略,不自行定义上传模式
- 上传完成之前不得产生正式工作空间节点
### 9.8 任务规则
- 所有长耗时业务必须通过 `AsyncJob` 进入统一任务体系
- 相同语义的自动任务必须具备幂等键
- 任务状态机必须统一
### 9.9 管理规则
- 所有管理写操作必须具备审计能力
- 管理能力应基于角色和权限模型,不基于用户名白名单硬编码
- 系统设置必须区分可变业务配置和只读运行快照
## 10. 状态定义与状态流转
## 10.1 `AccountStatus`
状态:
- `PENDING`
- `ACTIVE`
- `SUSPENDED`
- `CLOSED`
流转:
- `PENDING -> ACTIVE`
- `ACTIVE -> SUSPENDED`
- `SUSPENDED -> ACTIVE`
- `ACTIVE/SUSPENDED -> CLOSED`
## 10.2 `SessionStatus`
状态:
- `ACTIVE`
- `REVOKED`
- `EXPIRED`
流转:
- `ACTIVE -> REVOKED`
- `ACTIVE -> EXPIRED`
## 10.3 `WorkspaceNodeLifecycleState`
状态:
- `ACTIVE`
- `RECYCLED`
- `PURGED`
流转:
- `ACTIVE -> RECYCLED`
- `RECYCLED -> ACTIVE`
- `RECYCLED -> PURGED`
## 10.4 `ContentVersionState`
状态:
- `PENDING_UPLOAD`
- `AVAILABLE`
- `ARCHIVED`
- `DELETED`
流转:
- `PENDING_UPLOAD -> AVAILABLE`
- `AVAILABLE -> ARCHIVED`
- `ARCHIVED -> DELETED`
## 10.5 `ShareGrantStatus`
状态:
- `ACTIVE`
- `LOCKED`
- `EXHAUSTED`
- `EXPIRED`
- `REVOKED`
流转:
- `ACTIVE -> LOCKED`
- `ACTIVE -> EXHAUSTED`
- `ACTIVE -> EXPIRED`
- `ACTIVE/LOCKED -> REVOKED`
## 10.6 `TransferSessionStatus`
状态:
- `CREATED`
- `AWAITING_UPLOAD`
- `READY`
- `IN_PROGRESS`
- `COMPLETED`
- `EXPIRED`
- `CANCELLED`
流转:
- 在线快传:`CREATED -> IN_PROGRESS -> COMPLETED/EXPIRED/CANCELLED`
- 离线快传:`CREATED -> AWAITING_UPLOAD -> READY -> COMPLETED/EXPIRED/CANCELLED`
## 10.7 `AsyncJobStatus`
状态:
- `QUEUED`
- `RUNNING`
- `RETRY_WAITING`
- `SUCCEEDED`
- `FAILED`
- `CANCELLED`
流转:
- `QUEUED -> RUNNING`
- `RUNNING -> SUCCEEDED`
- `RUNNING -> RETRY_WAITING`
- `RETRY_WAITING -> RUNNING`
- `RUNNING/RETRY_WAITING -> FAILED`
- `QUEUED/RUNNING/RETRY_WAITING -> CANCELLED`
## 11. 权限模型
目标态采用三层授权模型:
### 11.1 第一层:身份层
回答:
- 用户是谁
- 是否已登录
- 会话是否有效
### 11.2 第二层:角色层
回答:
- 用户具有什么系统级能力
例如:
- `MEMBER`
- `OPERATOR`
- `ADMIN`
### 11.3 第三层:资源层
回答:
- 用户是否可以对某个具体资源执行某个动作
资源授权判断必须同时考虑:
- 资源所有权
- 资源状态
- 角色权限
- 动作策略
### 11.4 授权规则
- 公开资源只允许暴露明确可公开的动作
- 所有者默认拥有自己资源的成员级权限
- 管理角色拥有治理权限,但不应破坏审计边界
- 导入、删除、恢复、迁移都属于高风险动作,必须有明确授权检查
## 12. 企业级目标模块结构
目标态后端应围绕业务域而不是技术层进行组织,建议演进为以下模块边界:
- `identity-access`
- `workspace`
- `content-asset`
- `sharing`
- `transfer`
- `async-job`
- `storage-governance`
- `operations-admin`
- `common-kernel`
每个模块内部再区分:
- domain
- application
- infra
- api
前端也应围绕业务域组织,而不是单纯围绕页面散落:
- account
- workspace
- sharing
- transfer
- admin
- common
## 13. 统一架构结论
目标态架构的核心不是“把当前代码整理得更漂亮”,而是把系统重构成以下稳定形态:
1. 账号、会话、角色、授权是独立的身份域
2. 工作空间节点与物理内容版本彻底分离
3. 分享与快传是两个独立分发域
4. 上传只是内容接入机制,不直接等同于业务文件创建
5. 后台任务是统一异步处理底座
6. 存储策略是系统级治理能力,不是控制器附属逻辑
7. 管理端是治理入口,不是绕过业务规则的特殊通道
后续所有重构都应围绕上述七条进行对齐。
## 14. 规则判定矩阵
本矩阵用于明确“某类规则到底由哪个业务域负责判定”,避免后续继续把同一规则散落在多个模块中。
| 规则类别 | 判定主体 | 触发时机 | 输出结果 | 不应由谁判定 |
| --- | --- | --- | --- | --- |
| 是否允许注册 | `identity-access` | 用户提交注册请求时 | 允许注册 / 拒绝注册 | 页面层、管理台聚合层 |
| 邀请码是否有效 | `identity-access` | 注册前 | 有效 / 无效 / 已消费 | Controller 私有分支 |
| 会话是否有效 | `identity-access` | 每次受保护请求进入时 | 允许访问 / 拒绝访问 | 业务 Service 各自重复判断 |
| 用户是否具备系统管理能力 | `identity-access` | 访问管理能力前 | `OPERATOR` / `ADMIN` 是否可执行 | 用户名白名单硬编码 |
| 用户是否可操作某个工作空间节点 | `workspace` + 授权层 | 文件相关动作前 | 允许 / 拒绝 | Controller 层手写所有权判断 |
| 路径是否合法 | `workspace` | 创建、移动、复制、恢复前 | 合法 / 非法 | 上传模块重复实现 |
| 同目录是否允许重名 | `workspace` | 节点写入前 | 允许 / 拒绝 | 分享模块、传输模块各自决定 |
| 是否允许创建正式文件节点 | `workspace` | 内容接入完成后 | 创建 / 拒绝 | 上传接入层直接决定 |
| 内容版本是否可复用 | `content-asset` | 导入、复制、分享导入时 | 复用 / 新建版本 | 工作空间模块 |
| 是否允许物理删除对象 | `content-asset` | 清理流程中 | 删除 / 保留 | 工作空间模块直接删除对象 |
| 上传模式如何选择 | `storage-governance` | 创建上传会话时 | `PROXY` / `DIRECT_SINGLE` / `DIRECT_MULTIPART` | 前端、自定义工具类 |
| 上传大小是否超限 | `storage-governance` + `identity-access` | 上传前 | 允许 / 拒绝 | `FileService``UploadSessionService` 各自重复算 |
| 分享是否允许访问 | `sharing` | 访问分享链接时 | 允许查看 / 拒绝查看 | 工作空间模块 |
| 分享是否允许下载 | `sharing` | 下载分享文件时 | 允许下载 / 拒绝下载 | Controller 查询参数分支 |
| 分享是否允许导入 | `sharing` | 导入分享文件时 | 允许导入 / 拒绝导入 | 工作空间模块 |
| 分享是否过期或额度耗尽 | `sharing` | 每次分享动作前 | 可用 / 不可用 | 前端缓存判断 |
| 传输会话是否允许加入 | `transfer` | 加入在线快传时 | 允许加入 / 拒绝加入 | 信令基础设施 |
| 离线传输是否可接收 | `transfer` | 下载/导入前 | 可接收 / 不可接收 | 文件接入层 |
| 离线传输是否超出全局容量 | `transfer` + `storage-governance` | 离线上传前 | 允许上传 / 拒绝上传 | 管理指标聚合层 |
| 是否需要进入异步任务 | `async-job` 的调用方域 | 长耗时动作提交时 | 直接处理 / 创建任务 | Controller 层直接排队 |
| 任务是否允许重试 | `async-job` | 任务失败后 | 自动重试 / 人工重试 / 不可重试 | 具体任务 handler 自己决定 |
| 任务是否重复 | `async-job` | 创建任务时 | 新建 / 幂等忽略 | broker 消费者临时判断 |
| 设置是否允许修改 | `operations-admin` + 授权层 | 管理写操作时 | 可写 / 只读 | 聚合 DTO 提示字段单独决定 |
### 14.1 矩阵使用规则
- 所有新业务规则必须先映射到矩阵中的一个判定主体。
- 如果某条规则找不到唯一判定主体,说明领域边界还没有收敛。
- 同一规则只能有一个“最终判定主体”,其他模块只能消费判定结果,不能复制规则。
## 15. 高风险测试场景清单
本清单不是为了堆测试数量,而是定义目标架构下必须被自动化约束的关键业务场景。
### 15.1 身份与授权
1. 同一客户端类型再次登录后,旧会话失效
2. 桌面端与移动端会话可并存,但互不覆盖
3. 改密后所有活跃会话和 refresh token 失效
4. 账号被停用后无法继续访问受保护资源
5. `OPERATOR``ADMIN` 的授权边界按统一角色模型生效
### 15.2 工作空间
1. 同一父节点下禁止重名文件或目录
2. 目录不能移动到自身或自身子树
3. 目录不能复制到自身或自身子树
4. 删除进入回收区而不是立即物理删除
5. 恢复时如果原位置冲突则整体拒绝恢复
6. 恢复时如果超出配额则整体拒绝恢复
### 15.3 内容资产
1. 复制逻辑节点时不复制物理内容版本
2. 多个逻辑节点绑定同一内容版本时,删除其中一个不会删除物理对象
3. 最后一个逻辑引用消失后,物理对象才允许清理
4. 内容版本一旦 `AVAILABLE` 后不可变
### 15.4 上传与存储治理
1. 上传模式严格由存储策略能力决定
2. 非法路径、非法名称、超大小、超配额都会被统一拒绝
3. 已完成、已取消、已失败、已过期的上传会话不能继续写入
4. 分片上传必须完整记录分片后才能完成
5. 上传完成前不创建正式工作空间节点
### 15.5 分享
1. 有口令的分享必须先验密
2. 过期分享不可查看、不可下载、不可导入
3. `allowDownload``allowImport` 必须分别生效
4. 分享额度耗尽后所有授权动作失效
5. 分享被撤销后立即失效
### 15.6 快传
1. 在线快传只允许有效接收方进入会话
2. 离线快传只有全部文件上传完成后才可接收
3. 匿名可接收,但不可导入到工作空间
4. 离线传输容量达到上限时拒绝继续上传
5. 过期传输会话不可继续接收或导入
### 15.7 异步任务
1. 相同业务语义的自动任务不会重复创建
2. 任务租约过期后能够安全回收
3. retryable 失败会进入统一重试流程
4. non-retryable 失败进入终态
5. 只有允许人工重试的任务才能被人工重试
### 15.8 管理与治理
1. 只读系统快照不可通过写接口修改
2. 可写业务设置必须经过统一管理授权
3. 高风险治理动作必须产生审计记录
4. 存储迁移只能在合法策略组合下执行
## 16. 重构迁移与模块落地顺序
本顺序定义的是目标架构的落地路径,不是一次性重写方案。
### 16.1 第一阶段:身份与授权先行
目标:
- 统一角色模型
- 统一会话失效规则
- 统一管理权限事实源
优先原因:
- 如果权限模型不先收敛,后续所有模块重构都会继续携带错误边界
落地模块:
- `identity-access`
- `operations-admin` 中与授权入口直接相关的部分
### 16.2 第二阶段:工作空间与内容资产拆分
目标:
- 把逻辑节点与物理内容彻底拆开
优先原因:
- 这是后续分享、快传、上传、删除、恢复、迁移的共同基础
落地模块:
- `workspace`
- `content-asset`
### 16.3 第三阶段:上传与存储治理收口
目标:
- 让上传成为内容接入能力
- 让存储策略成为系统级能力
优先原因:
- 当前上传规则和文件业务耦合过深,不先切开,内容资产域无法稳定
落地模块:
- `storage-governance`
- `content-asset` 接入层
### 16.4 第四阶段:分享域收口
目标:
- 统一旧分享和新分享
- 让分享只围绕 `ShareGrant` 和逻辑节点授权
优先原因:
- 分享对外暴露面大,必须建立在稳定工作空间与内容模型之上
落地模块:
- `sharing`
### 16.5 第五阶段:快传域拆分
目标:
- 分开在线快传与离线快传
- 明确临时传输与正式工作空间资产的边界
优先原因:
- 快传与分享的边界只有在工作空间与分享域稳定后才容易落定
落地模块:
- `transfer`
### 16.6 第六阶段:异步任务统一底座
目标:
-`AsyncJob` 成为跨域底座
优先原因:
- 当工作空间、内容资产、分享、快传都稳定后,异步任务才可以真正服务多个领域,而不是继续附属在文件模块里
落地模块:
- `async-job`
### 16.7 第七阶段:管理域治理化
目标:
- 管理端只做治理编排
- 业务规则回归各自领域
优先原因:
- 管理端必须建立在稳定的领域边界之上,否则只会继续膨胀为超级入口
落地模块:
- `operations-admin`
### 16.8 第八阶段:前端按领域重组
目标:
- 前端与后端围绕同一业务域组织
优先原因:
- 前端结构必须跟随稳定后的后端领域,而不是反向牵引后端设计
落地模块:
- `account`
- `workspace`
- `sharing`
- `transfer`
- `admin`
- `common`
### 16.9 模块落地顺序总表
1. `identity-access`
2. `workspace`
3. `content-asset`
4. `storage-governance`
5. `sharing`
6. `transfer`
7. `async-job`
8. `operations-admin`
9. 前端领域化重组
### 16.10 落地顺序约束
- 未统一身份与授权前,不进入大规模治理侧重构
- 未拆开工作空间与内容资产前,不收口分享和快传
- 未收口上传与存储治理前,不把内容资产域视为稳定
- 未稳定后端领域边界前,不开始前端大规模域化重组