feat: add local sharing and containerized web/server layout

This commit is contained in:
lofyer
2026-10-01 12:01:44 +08:00
parent 599a0a6645
commit c9d5e63276
51 changed files with 2212 additions and 233 deletions
+46 -2
View File
@@ -10,6 +10,21 @@
| 关联 PRD | [ShareServer PRD](./prd.md) |
| 共享规则 | [共享网络总体设计](../../../../goodbuddy/docs/architecture/share-network-architecture.md) |
## 本地目录首期状态规则
当前本地联调仅实现设备与发布元数据,使用[技术设计第 4.1 节](./technical-design.md#41-本地共享目录契约已实现)
的独立接口。下文组织身份、Grant、任务和文档归属规则属于目标设计。
- 注册相同设备 ID 更新名称、平台及版本,保留首次注册时间;相同内容重试不改变时间。
- 注册不自动发布内容,也不表示设备在线。设备列表目前没有心跳或离线判断。
- 发布必须关联已有设备。新 ID 创建 `published` 条目;相同 ID、相同内容返回已有记录,
相同 ID、不同内容报冲突,不覆盖原记录。
- 撤销将状态变为 `revoked` 并保留目录记录。重复撤销不改变结果;重试旧发布请求不恢复已撤销记录。
- 能力与知识按 `kind` 区分。知识的搜索、原文、下载标志分别存储,不相互推导;
`server` 来源也只是发布者声明,不表示文件已经上传或同步。
- 当前没有用户主体或组织所有权,因此真实目录按设备查看。按用户查看仍使用组织示例,
不把设备名称推定为用户身份。
## 1. 核心不变量
### INV-1 组织隔离先于角色
@@ -66,10 +81,16 @@ ShareServer 只路由调用方冻结的 provider,不在离线、繁忙或失
### INV-11 服务端检查点不等于源文件已保存
ONLYOFFICE 保存只产生 ShareServer 权威的 `DocumentCheckpoint`。只有 Desktop 或远程
在显式的本地来源导入/回写模式中,ONLYOFFICE 保存只产生 ShareServer 权威的 `DocumentCheckpoint`。只有 Desktop 或远程
GoodBuddy Agent 校验源文件基准并完成原子替换后,源文件才是已保存状态。ShareServer 不根据
callback 成功推断本机或 SSH 文件已经更新。
文档默认以 ShareServer 为主存储,日常操作在 GoodBuddy 中完成。服务端主存模式不要求本地
回写确认;主文档生命周期独立于编辑会话,不能因会话关闭或检查点清理而删除主文档。
个人创建者可删除自己的文档或确认转移所有权给组织。转移后原个人删除权立即失效,删除和
恢复按当前组织权限判断;恢复不改变归属。管理身份和归属元数据可见性不授予个人正文访问权。
### INV-12 Office 凭据单用途
设备 API 凭据、编辑器一次性启动授权、ONLYOFFICE 文件令牌和 callback token 分别绑定不同
@@ -140,6 +161,8 @@ active <-> paused
### 2.7 DocumentEditSession
以下包含上传阶段的流程描述本地来源模式;不将其作为服务端主文档的生命周期。
```text
creating -> uploading -> ready -> editing
creating/uploading -> failed | cancelled | expired
@@ -287,6 +310,11 @@ Publication/Grant,本人草稿确认也不能绕过当前访问权限。
### 5.2 来源、受众与动作
共享知识区分服务器同步副本和远程设备取用。已就绪的服务器副本不因来源设备离线而失效,
但更新需等待设备连接;远程取用在设备离线时不可用。发布暂停或设备撤销仍阻止使用,不能
以已有副本绕过撤销。搜索、读取原文、下载分别判断权限;可用状态、共享对象和管理员元数据
可见性均不替代动作授权。当前共享中心只演示这些状态,无真实内容请求。
可用内容为来源授权、当前入口受众、动作、空间权限、组织策略及 Provider 本地权限的交集。
个人外部入口与组织空间独立授权;同一分身身份复用不复制其所有来源权限。
@@ -313,6 +341,20 @@ Publication/Grant,本人草稿确认也不能绕过当前访问权限。
任何权限扩大都从自动路径转为 `require_approval`。降级只有在目标版本仍被签名目录允许且
策略明确指定时才提供,不自动视为故障回滚。
### 6.1 网关配置演示
模型网关负责向其他服务转发,不托管模型。原型仅在上游与映射均启用、目标组被允许时判定
模型可用;模拟调用记录允许/拒绝及路由元数据,不发送请求或记录正文。
配置演示与上述签名能力包更新分开。草稿选择目标组可用模型,发布时重新检查策略;每组
独立记录发布历史。回退仅选择该组上一条记录,并重新检查其模型可用性,恢复版本及默认
模型后移除当前历史末项。发布和回退仅更新目标组在线示例设备;离线设备保留已应用版本,
目标版本随发布变化并显示待下发,未模拟重连交付。
这些状态仅保存在三页共享的会话内存中,刷新重置;角色开关不构成实际授权,发布状态不构成
设备确认。文档演示中仅本人可删除/转移个人文档,组织删除/恢复要求显式模拟组织文档管理员
角色,其他成员个人文档仅显示元数据,回收站不提供永久删除。
## 7. 联邦可见性
联邦目录只导出对方明确允许的能力投影:组织显示名、能力、版本范围、数据政策和可用性摘要。
@@ -326,11 +368,13 @@ Publication/Grant,本人草稿确认也不能绕过当前访问权限。
- 撤销设备、Publication、Grant、Package 或联邦后立即阻止新令牌。
- 对象存储中的未完成任务正文按任务期限清理;审计元数据按组织保留策略清理。
- Office 会话关闭、撤销或到期后停止签发新启动、文件和 callback 令牌。工作副本与 checkpoint
按 Office 保留策略清理;法定保留只能保留匹配对象和审计,不能恢复会话权限。
按 Office 保留策略清理,不连带删除服务端主文档;法定保留只能保留匹配对象和审计,不能恢复会话权限。
- 法定保留只锁定匹配审计事件,不使被撤销身份重新可用。
### 8.1 Office 保存与回写结果
下表的源文件确认与冲突项仅适用于本地来源导入/回写模式。
| 条件 | ShareServer 结果 |
| --- | --- |
| callback 通过验证且对象完整 | 原子发布新 checkpoint,通知 Desktop |