feat: add local sharing and containerized web/server layout
This commit is contained in:
@@ -4,6 +4,13 @@ ShareServer 是 GoodBuddy 设备共享网络的独立 Web 服务。它为一个
|
||||
目录、能力发布、授权策略、任务路由、可选数据中继、能力包更新、网关联邦、Office 编辑和
|
||||
审计管理。目标范围还包括共享工作空间的实时消息、成员处理请求和资料同步。
|
||||
|
||||
成员的日常操作在 GoodBuddy 中完成,ShareServer 提供组织后台。模型网关向其他模型服务转发
|
||||
请求,不托管模型或运行推理。文档主要存储在 ShareServer;个人创建者可删除自己的文档或将
|
||||
所有权转移给组织,转移后删除由组织权限决定,原创建者不再保留个人删除权。
|
||||
|
||||
Office 区分服务端主存文档与显式的本地来源导入/回写模式。既有 Desktop 源文件、检查点和
|
||||
冲突契约用于后者;编辑会话结束不删除服务端主文档,检查点可用也不等于本地或 SSH 源文件已回写。
|
||||
|
||||
ShareServer 不属于 Electron Main,不负责桌面端局域网发现,也不自动取得设备上的能力、
|
||||
文件、凭据或 SSH Host。
|
||||
|
||||
@@ -21,11 +28,31 @@ ShareServer 不属于 Electron Main,不负责桌面端局域网发现,也不
|
||||
| [Desktop Office 协同编辑](../../../../goodbuddy/docs/features/office-document-editing/README.md) | 文档 Tab、源文件回写、冲突和 AI 选区编辑(GoodBuddy 仓库) |
|
||||
|
||||
工作空间协作场景由用户故事追踪;管理员、能力发布者、审计员等既有场景继续由 PRD 与逻辑
|
||||
设计覆盖。仓库已建立可运行的全控制台交互原型;它用于确认信息架构与交互,不代表生产服务已经
|
||||
实现。当前边界和运行方法见[实施进度](./progress.md)与
|
||||
设计覆盖。仓库已有全控制台交互原型及本地共享目录服务,后者持久化 GoodBuddy 注册和发布的元数据。
|
||||
组织生产服务尚未实现。当前边界和运行方法见[实施进度](./progress.md)与
|
||||
[`README.md`](../../../README.md)。跨仓库文档链接要求将 `goodbuddy` 与
|
||||
`goodbuddy-shareserver` 克隆到同一级目录;服务构建和运行不依赖桌面端仓库。
|
||||
|
||||
当前源码按 `web/src/`、`server/src/` 和根 `shared/` 组织,构建、测试与依赖仍由根目录统一管理。
|
||||
目录和产物路径见[技术设计第 1 节](./technical-design.md#1-仓库与运行边界)。
|
||||
|
||||
## GoodBuddy 服务演示
|
||||
|
||||
当前新增 `/model-gateway`(模型网关)、`/documents`(文档与协作)、`/distribution`(配置下发)
|
||||
三个路由,演示策略判断、文档归属与回收站、OnlyOffice 实例配置和检查、按组发布与回退。
|
||||
三页导航共享会话内存,刷新重置;服务演示操作不发网络请求、不写本地存储。角色开关、检查
|
||||
结果和在线设备应用状态均为模拟,未实现推理、真实转发、Office 编辑保存或设备交付。
|
||||
具体交互见 [UI 设计第 16.1 节](./ui-design.md#161-goodbuddy-服务演示)。
|
||||
|
||||
共享中心沿用 `/capabilities`。能力目录、共享知识库、按用户查看和按设备查看使用示例数据;
|
||||
“本地服务目录”页签读取真实本地记录。来源模式、权限展示与跳转约定见
|
||||
[UI 设计](./ui-design.md),本地 API 见[技术设计第 4.1 节](./technical-design.md#41-本地共享目录契约已实现)。
|
||||
|
||||
本地体验:在本仓库运行 `npm run dev`,在 GoodBuddy 仓库运行 `npm run dev`,从桌面应用中心
|
||||
进入设备共享,连接 `http://127.0.0.1:8787`,注册、发布,再打开
|
||||
`http://127.0.0.1:5174/capabilities?view=local` 查看。服务数据默认保存到 `data/sharing.json`。
|
||||
完整桌面范围与验证见[设备共享文档](../../../../goodbuddy/docs/features/device-sharing/README.md)。
|
||||
|
||||
## 角色
|
||||
|
||||
- **系统管理员**:维护实例、身份源、域名、证书、存储和全局限制。
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
| 项目 | 内容 |
|
||||
| --- | --- |
|
||||
| 状态 | 设计中 |
|
||||
| 版本 | 0.6 |
|
||||
| 日期 | 2026-09-28 |
|
||||
| 版本 | 0.7 |
|
||||
| 日期 | 2026-09-30 |
|
||||
| 适用产品 | 独立部署的 ShareServer 与 Web 管理控制台 |
|
||||
| 关联架构 | [共享网络总体设计](../../../../goodbuddy/docs/architecture/share-network-architecture.md) |
|
||||
| 关联文档 | [功能逻辑](./logic-design.md)、[管理界面](./ui-design.md)、[技术设计](./technical-design.md) |
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
1. 组织可在自有网络、私有云或公网独立部署 ShareServer。
|
||||
2. 管理员可统一管理用户、组、设备、能力、权限、更新和审计。
|
||||
3. 成员通过桌面端使用获准能力,无需日常进入管理控制台。
|
||||
3. 成员在 GoodBuddy 中完成日常操作;ShareServer 提供组织后台,无需日常进入管理控制台。
|
||||
4. 设备离线、用户撤销或策略变化能准确影响新任务,不破坏历史证据。
|
||||
5. 两个组织可经双边确认建立有限范围的联邦协作。
|
||||
6. ShareServer 可以只运行控制面,也可按部署策略提供数据中继和包存储。
|
||||
@@ -31,6 +31,16 @@
|
||||
|
||||
## 3. 产品范围
|
||||
|
||||
### 本地首期交付
|
||||
|
||||
先验证 GoodBuddy 应用中心中的设备共享与 ShareServer 目录互通:用户保存本地服务地址、
|
||||
注册本机,显式发布能力或知识的名称、描述、来源及权限声明,再撤销发布。Web 共享中心能查询
|
||||
相同记录,服务重启后记录仍保留。此阶段不自动枚举本地能力或上传知识文件。
|
||||
|
||||
验收要求:注册不自动发布,撤销后刷新仍为已撤销,网络失败有可重试反馈,知识权限独立保存;
|
||||
真实目录与组织样例分别展示。API、状态和验证证据分别由技术设计、逻辑设计和实施进度维护。
|
||||
身份认证、组织授权、内容同步与远程调用仍按以下完整产品范围继续实现。
|
||||
|
||||
### 3.1 包含
|
||||
|
||||
- 本地账号及可配置 OIDC 身份源。
|
||||
@@ -46,12 +56,14 @@
|
||||
- Web 管理控制台和成员自助页面。
|
||||
- 工作空间的组织共享关联、成员访问、实时普通消息与线程、提及通知、处理请求和资料同步。
|
||||
- 选定知识与监督回顾的共享授权,及数字分身对这些来源的复用。
|
||||
- 模型网关接入其他模型服务,管理模型映射、访问策略和调用审计,以及按用户组分配网关模型配置。
|
||||
- 以 ShareServer 为主存储的文档、个人与组织归属管理;本地来源导入/回写为显式选择的独立模式。
|
||||
|
||||
### 3.2 不包含
|
||||
|
||||
- 远程管理设备桌面、任意 Shell 或任意文件系统。
|
||||
- 发现未注册的局域网设备。
|
||||
- 保存或分发用户 API Key、Cookie 和桌面登录状态。
|
||||
- 收集或分发用户个人 API Key、Cookie 和桌面登录状态。模型网关所需的组织上游凭据由管理员单独配置、服务端保管,不下发给客户端;当前原型不接收凭据。
|
||||
- 默认查看任务正文、附件和模型输出。
|
||||
- 自动上传、同步或浏览数字人所有者的本地个人、项目、会话和原始 Agent 记忆;用户明确发布的知识与选定回顾按 FR-18 单独管理。
|
||||
- 因为成员加入组织而自动开放其数字人、记忆、Runtime、工作区或工具。
|
||||
@@ -60,7 +72,8 @@
|
||||
- 公共开放市场、计费结算或匿名能力调用。
|
||||
- 替代 GoodBuddy 官方客户端、模型和 Agent 发布源。
|
||||
- 自行实现 Office 渲染器,或把 ONLYOFFICE Document Server 打进 Desktop 安装包。
|
||||
- 默认永久保存用户文档、选区、提示词或模型输出。
|
||||
- 模型托管与推理运行。
|
||||
- 在普通日志或审计中保存文档正文、选区、提示词或模型输出;服务端主文档按归属、删除和保留规则管理。
|
||||
- 首期不含私聊、语音视频、已读回执、正在输入及分身输出逐字广播;空间协作按轻量 IM 范围实现。
|
||||
|
||||
## 4. 功能需求
|
||||
@@ -144,6 +157,15 @@
|
||||
- 普通成员只看到自己的设备、授权和待办;管理员栏目按权限隐藏并在 API 再次校验。
|
||||
- 普通成员可以管理自己发布的数字人,并发现和 `@` 当前组织内获准调用的数字人。
|
||||
- 所有高影响操作说明对象、范围和后果。
|
||||
- 共享中心扩展既有共享能力入口,保留 `/capabilities`;提供能力目录、共享知识库、按用户查看、
|
||||
按设备查看四个页签。内容展示发布者、提供设备、版本、在线与发布状态、共享对象;用户和
|
||||
设备视图列出关联内容并可进入详情,既有设备详情提供对应共享视图入口。
|
||||
|
||||
当前“GoodBuddy 服务”原型提供 `/model-gateway`、`/documents`、`/distribution` 三页,覆盖
|
||||
网关策略判断、文档归属与回收站、OnlyOffice 实例检查、配置发布和回退。操作仅修改会话内存,
|
||||
跨页保留、刷新重置,不发送服务请求或写入本地存储;模拟角色不构成授权,模拟成功不构成
|
||||
推理、转发、Office 保存或设备交付的验收。离线设备保持待下发与原已应用版本;发布和回退
|
||||
都检查目标组当前可用模型,回退同时恢复版本及默认模型。细节见 UI 设计第 16.1 节。
|
||||
|
||||
### FR-12 可部署性
|
||||
|
||||
@@ -190,6 +212,13 @@
|
||||
|
||||
### FR-14 Office 编辑服务
|
||||
|
||||
- 日常文档使用在 GoodBuddy 中完成,ShareServer 主存文档与临时编辑会话分别管理。个人创建者
|
||||
可删除自己的文档或确认转移给组织;转移后按组织权限删除,原创建者的个人删除权失效。
|
||||
管理后台展示归属元数据不授予个人正文访问权。原型以显式“组织文档管理员”角色模拟组织
|
||||
文档删除/恢复,恢复保持归属,不提供永久删除。
|
||||
- 本节既有工作副本上传、检查点下载和源文件回写流程适用于显式选择的本地来源导入/回写
|
||||
模式,保留 Desktop/SSH 源文件基准校验与冲突契约。服务端主存模式不以本地回写作为保存
|
||||
完成条件;关闭编辑会话不删除主文档,也不改变归属。
|
||||
- Office 编辑是可选服务能力。未配置或健康检查失败时,ShareServer 仍可运行其他控制面功能,
|
||||
并向 Desktop 返回明确不可用原因。
|
||||
- 首选 ONLYOFFICE Docs Developer Edition,目标支持 DOCX、XLSX 和 PPTX。正式采用前必须完成
|
||||
@@ -202,11 +231,11 @@
|
||||
修改定位与高亮、撤销重做;源文件回写仍以检查点为依据。客户端需求与选型验证以
|
||||
[Office PRD](../../../../goodbuddy/docs/features/office-document-editing/prd.md) 的 `FR-6`、
|
||||
`FR-13`、`FR-14` 为准。
|
||||
- Desktop 使用设备身份创建 `DocumentEditSession`,上传经过大小、格式和 SHA-256 声明的工作
|
||||
- 本地来源模式下,Desktop 使用设备身份创建 `DocumentEditSession`,上传经过大小、格式和 SHA-256 声明的工作
|
||||
副本。ShareServer 不接收本机或 SSH 绝对路径,也不允许文件名决定对象存储路径。
|
||||
- ShareServer 为编辑器签发一次性启动授权,为 ONLYOFFICE 签发独立的短期文件和 callback
|
||||
凭据;设备、编辑器和 callback audience 不能互换。
|
||||
- ONLYOFFICE 保存先形成不可变 `DocumentCheckpoint`。ShareServer 只宣称检查点可用,不宣称
|
||||
- 本地来源模式下,ONLYOFFICE 保存先形成不可变 `DocumentCheckpoint`。ShareServer 只宣称检查点可用,不宣称
|
||||
Desktop 本地或 SSH 源文件已经回写成功。
|
||||
- 服务端保存组织、主体、会话、文档类型、大小、策略、编辑器版本、checkpoint 和清理审计;
|
||||
默认不保存文档正文、选区正文、提示词或模型输出到普通日志和审计表。
|
||||
@@ -217,7 +246,7 @@
|
||||
- Ask 只能取得 AI 修改建议;只有 Desktop 确认的 Execute 请求可以取得绑定单会话、revision
|
||||
和选区的短期编辑授权。
|
||||
- 会话关闭、撤销或到期后停止新读取、保存和 AI 操作,并按组织保留策略清理工作副本、
|
||||
checkpoint、Cookie 和对象令牌。
|
||||
checkpoint、Cookie 和对象令牌;服务端主文档不随临时会话清理。
|
||||
|
||||
### FR-15 工作空间与共享属性
|
||||
|
||||
@@ -263,6 +292,8 @@
|
||||
|
||||
### FR-18 共享知识与个人分身来源
|
||||
|
||||
- 知识库明确区分服务器同步副本与远程设备取用,分别展示来源可用性。搜索、读取原文、下载
|
||||
独立授权;管理员的元数据可见性不产生内容权限。当前 Web 原型仅展示示例规则,不接入内容操作。
|
||||
- 知识库可独立共享,也可被空间和分身引用。复用来源身份与版本,各入口按来源授权、受众、
|
||||
使用动作及组织策略求交集;关联资料不自动扩大权限。
|
||||
- 用户可设置分身身份、表达提示词和选定知识来源。提示词不授予权限,开启分身不共享全部
|
||||
|
||||
@@ -2,8 +2,83 @@
|
||||
|
||||
## 当前状态
|
||||
|
||||
ShareServer 已进入可运行交互原型阶段。当前实现用于验证完整控制台信息架构、视觉方向与操作
|
||||
流程,不提供生产身份、组织隔离、设备连接、授权、任务路由或数据持久化。
|
||||
ShareServer 包含控制台交互原型和可持久化的本地共享目录服务。GoodBuddy 已能注册设备、发布与
|
||||
撤销元数据,Web 能查看真实目录;生产身份、组织隔离、设备控制连接、授权及任务路由仍未实现。
|
||||
|
||||
### 2026-10-01:Web 与服务端目录整理
|
||||
|
||||
- Web 源码与测试迁至 `web/src/`,HTML、Vite 和 Web TypeScript 配置置于 `web/`;
|
||||
Hono 源码与测试迁至 `server/src/`,服务端配置置于 `server/tsconfig.json`。根 `shared/` 保留。
|
||||
- 根目录统一管理依赖、脚本、Vitest、ESLint 与 TypeScript 项目引用,未新增依赖或 workspace。
|
||||
构建产物为 `dist/web/` 和 `dist/server/`,启动入口为 `dist/server/server/src/index.js`。
|
||||
- 根 Node v24.16.0 环境下,`npm test` 的 5 个文件、51 个测试通过;`npm run typecheck`、
|
||||
`npm run lint`、`npm run build` 和 `git diff --check` 通过。
|
||||
- `docker compose -f docker/compose.yaml build` 与
|
||||
`docker compose -f docker/compose.yaml up -d --wait --wait-timeout 60` 通过,现有服务重建后健康。
|
||||
HTTP 验证覆盖首页、JS/CSS 资源、共享中心路由回退、health、ready 和本地元数据读取。
|
||||
- Compose 的 `../data` 保持不变,实际挂载为仓库根 `data/` 到 `/app/data`;重启前后
|
||||
`sharing.json` 的 SHA-256 一致。Vite 开发服务验证前端模块、根共享模块及 API 代理可访问。
|
||||
- 本轮未做浏览器视觉验收。Docker 安装时完整依赖集报告 4 项 audit 问题,运行时依赖报告 0 项;
|
||||
本轮未调整依赖版本。原型与本地元数据服务边界不变,readiness 仍报告 `productionReady: false`。
|
||||
|
||||
### 2026-10-01:本地目录与 GoodBuddy 联调
|
||||
|
||||
- 新增五个本地共享 HTTP 接口,覆盖设备注册和查询、发布查询和创建、撤销。JSON 文件保存真实
|
||||
记录,重启后仍可查询;API 的输入限制、错误与部署范围见技术设计第 4.1 节。
|
||||
- GoodBuddy 应用中心新增设备共享入口,通过生产页面、preload、可信 IPC 与 Main HTTP 服务
|
||||
操作本地目录,持久化服务配置和本机 ID。两仓分别构建,没有源码跨仓依赖。
|
||||
- Web 共享中心新增“本地服务目录”,提供真实设备与发布记录、组合筛选、错误重试和刷新;
|
||||
既有组织示例保留。注册时间不解释为在线状态,来源及知识权限按声明显示。
|
||||
- ShareServer `npm test`:5 个文件、51 个测试通过;`npm run typecheck`、`npm run lint`、
|
||||
`npm run build` 和 `git diff --check` 通过。服务测试包含真实 HTTP 和独立进程重启持久化。
|
||||
- Web 使用隔离临时数据及真实 API 完成发布、撤销、筛选、重载、刷新和空目录验证;注入 503 后
|
||||
重试通过。Edge/Playwright 检查 1440px 桌面和 390px 手机深浅主题,无横向溢出或脚本错误。
|
||||
- GoodBuddy 真实 Electron 组件组合联调通过,覆盖应用中心入口、注册、知识独立权限、发布、
|
||||
撤销、刷新、设备 ID 重读及 480px 深浅主题。未验收完整生产 App、安装包或跨平台原生窗口。
|
||||
定向检查与全仓测试差异见[桌面验证记录](../../../../goodbuddy/docs/features/device-sharing/progress.md#2026-10-01桌面实现轮次的独立验证):
|
||||
全仓测试曾有两项失败,修正配置样例及单独复跑后通过,未将全仓结果记为一次全绿。
|
||||
|
||||
本轮完成本地元数据流程;设备认证、组织归属、能力执行、知识正文检索和同步、模型转发、
|
||||
OnlyOffice 编辑与真实配置下发仍待实现。测试使用独立端口和临时目录,不修改既有服务数据。
|
||||
本次中文文档经过 deai-writing 扫描,无阻断项;枚举、权限边界和历史验证限制按原义保留。
|
||||
最终本地预览在 `http://127.0.0.1:8787` 启动,readiness 返回本地 JSON 元数据模式。
|
||||
浏览器打开 `/capabilities?view=local` 正常读取空目录,显示 0 台设备和 0 项发布,未填入测试样例。
|
||||
|
||||
### 2026-09-30:共享中心交互原型
|
||||
|
||||
- 既有 `/capabilities` 扩展为共享中心,提供能力目录、共享知识库、按用户查看、按设备查看。
|
||||
本地示例包含 3 项能力和 4 项知识,关联现有成员与设备;搜索、筛选、详情及主体定位由 URL 保存。
|
||||
- 知识详情分别展示来源模式、可用性及搜索/读取原文/下载权限,覆盖离线服务器副本、离线
|
||||
远程取用和仅元数据可见场景。内容操作均未接入,管理员身份不增加内容权限。
|
||||
- `/devices` 详情可跳转对应设备共享视图,内容详情可跳转发布用户与提供设备。修复顶栏搜索
|
||||
按钮在手机宽度下无法收缩造成的横向溢出,保留本轮之前的服务演示改动。
|
||||
- `npm test` 通过 3 个文件、16 个用例,其中新增 7 个共享中心用例;`npm run lint`、
|
||||
`npm run build` 通过,构建包含前后端类型检查。测试覆盖离线语义、独立权限、组合筛选与重置、
|
||||
URL 恢复、用户/设备跳转、既有设备入口、键盘页签及无效详情链接。
|
||||
- 构建后使用现有 8791 服务完成 HTTP 冒烟和 Edge 浏览器检查。1440×1000、390×844 的深浅
|
||||
主题均无页面横向溢出,详情在视口内;设备详情到共享设备、知识详情及发布用户的跳转通过,
|
||||
无页面脚本错误。截图复核了桌面深色列表、手机浅色列表和手机深色详情;现有服务保持运行。
|
||||
- 中文文档经 deai-writing 扫描与本次修改范围复核;无阻断项,字段枚举和权限限制按原义保留。
|
||||
当前没有新增内容 API、真实同步、内容检索、读取、下载或生产授权,也未进行真实设备集成验证。
|
||||
|
||||
### 2026-09-30:GoodBuddy 服务联动演示
|
||||
|
||||
- 新增模型网关、文档与协作、配置下发三个管理员页面,并在导航和概览中集中展示入口。
|
||||
模型网关只转发其他模型服务,不提供模型托管或推理。
|
||||
- 网关演示支持添加上游、启停、模型映射、用户组策略和模拟调用审计。停用上游或限制用户组
|
||||
后,相应模型无法用于配置发布。
|
||||
- 文档演示支持本人将个人文档转交组织、删除至回收站、恢复,以及 OnlyOffice 实例配置与
|
||||
预设健康检查。转交后个人删除权失效,组织文档删除与恢复依赖显式模拟角色;不展示个人正文。
|
||||
- 配置演示支持草稿、按组发布、在线设备模拟生效、离线待下发和回退版本及默认模型。
|
||||
三页共享内存状态,跨页导航保留,刷新重置;没有真实转发、文件存储、Office 编辑或客户端下发。
|
||||
- 修复既有列表页切换路由时沿用上一页数据分类的问题。前端测试显式清理组件,避免测试间
|
||||
留存的对话框和路由影响后续用例。
|
||||
- `npm test` 通过 2 个文件、9 个用例;类型检查、lint 和前后端生产构建通过。
|
||||
新增用例覆盖跨页数据、网关停用阻止发布、离线等待、版本与模型回退、归属与删除权限、
|
||||
回收恢复、拒绝审计和成员菜单范围。
|
||||
- 构建服务在回环地址通过浏览器加载验证;实际操作验证了文档转交和 OnlyOffice 模拟检查,
|
||||
截图复核了折叠导航布局及深浅主题。尚未完成指定桌面/手机尺寸的完整视觉回归,
|
||||
也未进行真实 GoodBuddy、上游模型或 OnlyOffice 集成测试。
|
||||
|
||||
### 2026-09-09:Office 编辑目标设计
|
||||
|
||||
@@ -58,7 +133,7 @@ ShareServer 的实现与验证在后续功能开发中单独推进;真实 Desk
|
||||
- 成员自助覆盖自己的设备、授权和申请;角色切换后导航和 URL 范围同步变化。
|
||||
- 控制台支持深浅主题、组织范围、全局搜索、列表搜索、状态筛选、详情、表单、确认、成功/
|
||||
失败反馈、响应式侧栏和键盘对话框。
|
||||
- 构建后的 Web 由 Hono 同源托管;`Dockerfile` 使用多阶段构建和非 root 运行用户。
|
||||
- 构建后的 Web 由 Hono 同源托管;`docker/Dockerfile` 使用多阶段构建和非 root 运行用户。
|
||||
- readiness 明确返回 `interactive-prototype` 与 `productionReady=false`,避免把 fixture
|
||||
误认为生产服务。
|
||||
|
||||
@@ -96,7 +171,7 @@ npm run build # typecheck + Vite Web + server TypeScript passed
|
||||
8. `FR-15` 至 `FR-18` 本地空间共享关联、资料定期/按需同步、实时消息、显式处理请求和共享来源授权;
|
||||
对照用户故事完成服务端契约与 Desktop 集成,不能把静态 demo 当作真实消息服务。
|
||||
|
||||
当前尚未满足 PRD 的产品验收,也未进行真实 Desktop/ShareServer 集成测试。
|
||||
当前尚未满足 PRD 的组织产品验收;本地元数据范围的真实 Desktop/ShareServer 联调记录见上文。
|
||||
|
||||
2026-09-05 PRD `FR-13` 新增组织数字人发布和 `@数字人` 调用。当前交互原型尚无“数字人”
|
||||
目录、发布管理、提及选择器或 Agent 记忆边界展示,因此这些能力仍属于剩余生产与原型工作,
|
||||
|
||||
@@ -19,11 +19,22 @@ ShareServer 在独立的 `goodbuddy-shareserver` 仓库根目录维护。当前
|
||||
goodbuddy-shareserver/
|
||||
README.md
|
||||
package.json
|
||||
server/ # Hono API 与同源静态资源服务
|
||||
server/
|
||||
src/ # Hono API、测试与同源静态资源服务
|
||||
tsconfig.json
|
||||
shared/ # 原型 fixture 与类型
|
||||
src/ # React Web 控制台
|
||||
web/
|
||||
src/ # React Web 控制台与测试
|
||||
index.html
|
||||
vite.config.ts
|
||||
tsconfig.json
|
||||
vitest.config.ts # Web 与 API 测试统一入口
|
||||
tsconfig.json # 引用 Web 与服务端配置
|
||||
dist/ # 生成产物,不提交
|
||||
web/
|
||||
server/
|
||||
docs/features/share-server/
|
||||
Dockerfile
|
||||
docker/ # Dockerfile、Compose 与构建忽略规则
|
||||
```
|
||||
|
||||
以下是后续生产实现的建议模块结构,尚未创建,不代表已实现:
|
||||
@@ -32,7 +43,7 @@ goodbuddy-shareserver/
|
||||
goodbuddy-shareserver/
|
||||
README.md
|
||||
package.json
|
||||
src/
|
||||
server/src/
|
||||
api/
|
||||
auth/
|
||||
organizations/
|
||||
@@ -52,9 +63,15 @@ goodbuddy-shareserver/
|
||||
tests/
|
||||
```
|
||||
|
||||
仓库根目录是可独立运行的全控制台交互原型。原型使用 Hono 提供健康、就绪、
|
||||
界面快照和无持久化操作确认 API,并同源托管 React/Vite Web 控制台;它不依赖 Electron 的
|
||||
`src/shared`。当前尚未建立生产数据库、认证、设备连接和共享协议,因此也不提前创建空的
|
||||
依赖与命令统一由根 `package.json` 管理,不拆分 workspace。Vite 输出到 `dist/web/`;
|
||||
服务端 TypeScript 以仓库根为 `rootDir`,输出到 `dist/server/`,因此启动入口为
|
||||
`dist/server/server/src/index.js`,共享模块位于 `dist/server/shared/`。根目录运行
|
||||
`npm start` 或容器启动后,Hono 同源托管 `dist/web/`。Docker 配置仍在 `docker/`,
|
||||
Compose 的 `../data` 仍映射仓库根 `data/` 到容器 `/app/data`。
|
||||
|
||||
仓库根目录包含全控制台交互原型和本地共享目录服务。Hono 提供健康、就绪、
|
||||
界面快照、原型操作确认与真实元数据 API,并同源托管 React/Vite Web 控制台;它不依赖 Electron 的
|
||||
`src/shared`。本地目录使用 JSON 文件持久化,契约见第 4.1 节。当前尚未建立生产数据库、认证、设备控制连接,因此也不提前创建空的
|
||||
`packages/share-protocol`。进入真实 Desktop 协议实现时,服务端和 Desktop 共同依赖
|
||||
独立发布的 `share-protocol` 协议包,具体归属在真实协议实现时确定;
|
||||
ShareServer 仍不得导入 Electron 的 `src/shared`,也不得依赖相邻桌面仓库构建。
|
||||
@@ -112,8 +129,49 @@ audience,并绑定单个 `DocumentEditSession`。
|
||||
所有请求经 schema、认证、organization scope、授权、速率和大小边界。列表使用游标分页和固定
|
||||
最大页;错误返回 request ID、稳定 code 和有界参数。
|
||||
|
||||
### 4.1 本地共享目录契约(已实现)
|
||||
|
||||
此接口供同机 GoodBuddy 与 Web Demo 联调,默认监听 `127.0.0.1:8787`。没有登录、组织隔离
|
||||
或设备认证;可访问接口的客户端均可修改目录。设备 ID 仅标识记录,客户端只显示本机撤销按钮
|
||||
不构成服务端所有权校验。`productionReady` 保持 `false`。上文 audience、组织授权及 WebSocket
|
||||
规则是后续组织服务目标,不由这些本地接口实现。
|
||||
|
||||
| 方法与路径 | 输入 | 成功响应 |
|
||||
| --- | --- | --- |
|
||||
| `POST /api/v1/sharing/devices/register` | `id,name,platform,appVersion` | Device |
|
||||
| `GET /api/v1/sharing/devices` | 无 | `{devices: Device[]}` |
|
||||
| `GET /api/v1/sharing/publications` | 可选查询参数 `deviceId` | `{publications: Publication[]}` |
|
||||
| `POST /api/v1/sharing/publications` | PublicationInput | Publication |
|
||||
| `POST /api/v1/sharing/publications/:id/revoke` | 路径 ID | Publication |
|
||||
|
||||
成功状态码为 200。Device 增加 `registeredAt,updatedAt`,均为服务端 ISO UTC 时间。
|
||||
PublicationInput 包含 `id,deviceId,name,kind,description,sourceMode,permissions`;
|
||||
`kind` 为 `capability|knowledge`,`sourceMode` 为 `device|server`,`permissions` 包含
|
||||
独立布尔字段 `search,read,download`。Publication 增加 `status: published|revoked` 及
|
||||
`createdAt,updatedAt`。来源和权限目前只保存声明,不传输正文、不执行授权或能力调用。
|
||||
源码类型见 `shared/sharing.ts`,状态规则见[本地目录逻辑](./logic-design.md#本地目录首期状态规则)。
|
||||
|
||||
创建与注册要求 `application/json`,不接收额外字段。ID 长度 1–128,首位为 ASCII 字母或数字,
|
||||
其余允许字母、数字、点、下划线、连字符。名称最多 200 字符,平台与版本最多 64 字符,描述
|
||||
最多 4000 字符且可为空。请求体上限 32768 字节。
|
||||
|
||||
错误响应为 `{code,message,requestId}`:输入或 JSON 无效返回 400,设备或条目不存在返回 404,
|
||||
发布 ID 内容冲突返回 409,超限返回 413,媒体类型错误返回 415,存储故障返回 503。
|
||||
未知 API 路径返回 JSON 404,不进入 SPA 回退。列表暂不分页,适用于本地小规模验证。
|
||||
|
||||
`SHARESERVER_DATA_DIR` 指定数据目录,默认 `./data`;其中 `sharing.json` 保存设备和发布记录。
|
||||
每个目录只供一个进程中的一个 Store 使用。读写排队,写入临时文件并同步后 rename,写失败不更新
|
||||
内存。坏文件返回存储错误,不自动清空。服务重启重新加载文件;就绪接口不验证存储是否可写。
|
||||
生产组织服务仍计划使用 PostgreSQL,当前没有文件到 PostgreSQL 的迁移实现。
|
||||
|
||||
GoodBuddy 通过 `页面 → preload → 可信 IPC → Main HTTP 服务` 调用,Main 保存稳定设备 ID、
|
||||
服务地址与设备名称,并设置请求超时。Web 同源读取目录,不保存桌面设备凭据。
|
||||
两仓独立构建;桌面实现与验证见[设备共享文档](../../../../goodbuddy/docs/features/device-sharing/README.md)。
|
||||
|
||||
## 5. 数据模型
|
||||
|
||||
下列数据库模型属于组织服务目标设计。本地目录首期使用第 4.1 节的文件存储,不将本地设备 ID 当作组织身份。
|
||||
|
||||
核心表建议为:
|
||||
|
||||
```text
|
||||
@@ -225,7 +283,15 @@ Release catalog 使用独立签名域。服务器不能重打包已签名 payloa
|
||||
|
||||
### 10.1 部署边界
|
||||
|
||||
ShareServer 集成 ONLYOFFICE Docs Developer Edition,但不把 Document Server 代码并入 Hono
|
||||
文档以 ShareServer 为主存储,GoodBuddy 承担日常操作。个人创建者可删除或转移给组织,转移
|
||||
后删除按组织权限判断;管理元数据可见性不授予个人正文访问权。服务端主文档与编辑会话分开
|
||||
管理,主文档纳入备份及自身删除/保留规则,不随会话过期清理。
|
||||
|
||||
第 10.2、10.3 节既有上传、检查点下载和 `source-commit` 契约描述显式的本地来源导入/回写
|
||||
模式,继续保留 Desktop/SSH 源文件基准校验和冲突处理。服务端主存模式不要求本地回写确认;
|
||||
其具体存取接口未在本次演示中实现,不由会话 API 推定已经具备文档持久化。
|
||||
|
||||
目标设计集成 ONLYOFFICE Docs Developer Edition,但不把 Document Server 代码并入 Hono
|
||||
进程。生产部署使用独立容器和内部网络:
|
||||
|
||||
```text
|
||||
@@ -281,6 +347,7 @@ ShareServer 负责中继有界事件,不持久化选区正文、Prompt 或模
|
||||
### 10.5 生命周期和清理
|
||||
|
||||
- 会话、工作副本、checkpoint、启动 Cookie 和对象 token 分别设置明确期限。
|
||||
- 服务端主文档独立保留,清理临时会话对象不得连带删除主文档。
|
||||
- 关闭、撤销或到期立即拒绝新读取、保存和 AI 操作。
|
||||
- 清理使用对象标签和数据库状态,重复执行保持幂等,不根据用户文件名构造删除前缀。
|
||||
- 法定保留只能延长明确匹配的工作副本、checkpoint 或审计元数据,不能恢复访问授权。
|
||||
@@ -334,7 +401,7 @@ Office 配置包括启用状态、Document Server 内部地址、公开编辑 or
|
||||
- 指标覆盖请求、WebSocket、授权结果、任务状态、中继、Package、Office 会话/callback 和联邦,
|
||||
不包含能力正文、文档正文或选区。
|
||||
- tracing 跨内部服务传播关联 ID,跨联邦只传播双方同意的关联标识。
|
||||
- 备份 PostgreSQL、Package 对象、策略要求保留的 Office checkpoint 和网关身份;不备份缓存、
|
||||
- 备份 PostgreSQL、服务端主文档、Package 对象、策略要求保留的 Office checkpoint 和网关身份;不备份缓存、
|
||||
Web session、nonce、Office 短期 token 或中继暂存。
|
||||
- 恢复后撤销列表、组织 ID、签名目录和审计序列保持有效,所有设备重新连接。
|
||||
|
||||
@@ -382,8 +449,30 @@ Office 配置包括启用状态、Document Server 内部地址、公开编辑 or
|
||||
`productionReady=false`。原型 fixture、角色切换和操作确认只用于评审信息架构,不得被
|
||||
Desktop 或部署脚本当作真实身份、策略、任务或审计 API。下一实施阶段必须从 FR-1
|
||||
初始化、本地身份、PostgreSQL 组织作用域和事务审计开始,不在 fixture 上叠加生产状态。
|
||||
当前原型没有 Office 导航、配置、会话 API、对象存储、ONLYOFFICE、callback 或 Desktop 文档
|
||||
Tab 集成;上述章节仅定义目标设计。
|
||||
当前 `/documents` 已有 OnlyOffice 实例配置与预设检查模拟;Office 会话 API、对象存储、
|
||||
ONLYOFFICE 编辑、callback、文档保存和 Desktop 文档 Tab 集成仍未实现。
|
||||
|
||||
`web/src/app-config.ts` 将 `/model-gateway`、`/documents`、`/distribution` 放入管理员的
|
||||
“GoodBuddy 服务”分组。`web/src/components/services-demo.tsx` 使用 `ServicesDemo` 的 React
|
||||
Context 与 `useState` 共享演示状态,跨路由导航保留、刷新重置。服务演示操作不使用 Hono
|
||||
操作确认 API、不发网络请求、不写本地存储,也不保存凭据;页面角色与权限判断均为内存模拟。
|
||||
控制台启动仍通过既有快照 API 加载示例数据,此边界仅指三个服务页的模拟操作。
|
||||
|
||||
模型网关只模拟上游/映射启用与用户组策略判断及最近 50 条有界调用审计;产品职责是转发
|
||||
其他模型服务,不托管模型或执行推理。文档仅保存示例名称、归属及回收站标记;转移清除个人
|
||||
删除权,组织删除/恢复依赖显式模拟角色,恢复保留归属。OnlyOffice 检查使用预设结果。
|
||||
|
||||
配置演示保存单个草稿和按组发布历史,发布与回退均重新检查模型可用性;回退取上一条记录并
|
||||
移除当前末项,恢复版本及默认模型。仅目标组在线示例设备更新 `applied`,离线设备保持原值与
|
||||
待下发状态。这里没有设备连接、重连投递或持久化版本记录,不能作为真实配置交付证据。
|
||||
|
||||
共享中心原型由 `web/src/components/sharing-center.tsx` 和 `web/src/lib/sharing-fixtures.ts` 提供。
|
||||
条目使用现有快照中的成员、设备 ID 建立关联,本地 fixture 仅含元数据和显式权限标记。
|
||||
既有 `/capabilities` 路由不变;查询参数 `view=catalog|knowledge|users|devices` 选择页签,
|
||||
`user`/`device` 定位主体,`item` 打开详情,`q`、`status=ready|unavailable`、
|
||||
`source=synced|remote`、`audience` 保存筛选。刷新恢复 URL 状态;内容链接保留筛选,
|
||||
跨主体链接清除旧条件,无效条目链接显示可关闭的错误详情。除启动快照外不新增 API 请求,
|
||||
不保存正文、不模拟下载;真实授权和同步仍属后续实现。
|
||||
|
||||
## 17. 工作空间协作的待实现契约
|
||||
|
||||
|
||||
@@ -16,6 +16,15 @@ ShareServer 是独立 Web 产品,不直接复用 Electron 页面壳层实现
|
||||
|
||||
## 1. 使用对象
|
||||
|
||||
当前本地首期在 `/capabilities?view=local` 提供“本地服务目录”页签,读取真实设备和发布数据。
|
||||
其余四个共享中心页签保留组织演示。真实页不使用示例组织、用户归属或在线状态解释本地记录。
|
||||
|
||||
GoodBuddy 从应用菜单或应用中心进入“设备共享”,完成地址与名称保存、注册、发布、撤销和刷新。
|
||||
Web 提供设备、类型、状态、关键词筛选,显示注册时间、来源声明及独立知识权限;提供加载、空目录、
|
||||
无匹配结果、失败重试和刷新状态。Web 不重复提供本机发布表单。权限与来源提示跟随真实目录展示,
|
||||
不把元数据发布成功写成能力可执行或知识可读取。桌面交互详见
|
||||
[设备共享 UI 设计](../../../../goodbuddy/docs/features/device-sharing/ui-design.md)。
|
||||
|
||||
- 普通成员主要在 GoodBuddy Desktop 协作和使用能力;Web 端管理自己的设备、申请、授权和已发布数字人。
|
||||
- 组织管理员使用完整组织控制台。
|
||||
- 系统管理员使用与组织控制台分开的实例管理范围。
|
||||
@@ -30,16 +39,16 @@ ShareServer 是独立 Web 产品,不直接复用 Electron 页面壳层实现
|
||||
|
||||
侧栏:
|
||||
概览
|
||||
GoodBuddy 服务:模型网关 | 文档与协作 | 配置下发
|
||||
组织与成员
|
||||
设备
|
||||
能力目录
|
||||
GoodBuddy 接入
|
||||
共享中心
|
||||
数字人
|
||||
权限策略
|
||||
审批
|
||||
发布与更新
|
||||
网关联邦
|
||||
任务与中继
|
||||
Office 编辑
|
||||
审计
|
||||
系统设置(仅系统管理员)
|
||||
```
|
||||
@@ -81,17 +90,19 @@ GPU-Worker-02 AI Team Linux 离线 8 2 小时前
|
||||
设备详情包含概览、连接、已发布能力、Grant 和活动。设备状态与 Publication 状态分别显示。
|
||||
撤销设备使用危险确认,说明新任务、活动任务和重新注册影响。
|
||||
|
||||
## 6. 能力目录
|
||||
## 6. 共享中心
|
||||
|
||||
目录以能力为第一列,提供者为可展开信息:
|
||||
沿用 `/capabilities`,页签依次为“能力目录”“共享知识库”“按用户查看”“按设备查看”。
|
||||
各内容展示发布者、提供设备、版本、设备在线状态、发布状态及共享对象,名称进入元数据详情。
|
||||
发布者和设备链接切换到对应分组并清除旧筛选;既有 `/devices` 详情链接定位同一设备的共享视图。
|
||||
|
||||
```text
|
||||
能力 版本 提供者 可见范围 可用性
|
||||
图像生成 2.1.0 3 个节点 设计组 2/3 在线
|
||||
```
|
||||
四个页签支持元数据搜索、可用状态、来源和共享对象筛选,用户/设备视图增加主体选择。
|
||||
显示当前结果数量、无结果说明及“清除筛选”,重置保留当前页签。页签支持方向键、Home、End,
|
||||
窄屏横向滚动;筛选和列表随宽度换行,复用本地主题、按钮、状态徽标和详情对话框。
|
||||
|
||||
详情包含 manifest、provider、Publication、允许输入、数据政策、调用趋势和最近错误。管理员
|
||||
看到的是组织元数据,不通过目录读取能力内部数据。
|
||||
知识库同时显示来源模式与搜索、读取原文、下载三项显式权限。详情解释服务器副本和远程取用
|
||||
的离线差异,管理员查看元数据不会获得正文权限。当前仅搜索示例元数据;内容按钮禁用并标注
|
||||
“未接入”,不返回虚构正文或下载成功。能力就绪也不代表获得调用权限。
|
||||
|
||||
### 6.1 数字人
|
||||
|
||||
@@ -178,9 +189,13 @@ GPU-Worker-02 AI Team Linux 离线 8 2 小时前
|
||||
时区和字段范围;大导出作为后台任务生成有时效下载。审计详情保持只读,不把原始内部错误、
|
||||
认证信息或任务正文显示给管理员。
|
||||
|
||||
## 13. Office 编辑
|
||||
## 13. Office 编辑目标设计
|
||||
|
||||
Office 编辑页面属于系统管理员的服务配置和组织管理员的策略管理,不提供文档正文浏览器。
|
||||
Office 编辑管理归入“文档与协作”,属于系统管理员的服务配置和组织管理员的策略管理,不提供
|
||||
文档正文浏览器。以下是生产目标,当前实例配置与预设检查演示见第 16.1 节。
|
||||
|
||||
日常文档操作在 GoodBuddy 中完成。文档以 ShareServer 为主存储;显式选择本地来源导入/回写
|
||||
时,另行显示检查点与源文件回写状态。关闭会话不表示删除主文档,检查点可用不表示本地源文件已保存。
|
||||
|
||||
系统管理员视图显示:
|
||||
|
||||
@@ -223,10 +238,32 @@ shadcn/ui 的本地组件模式和 Radix 可访问 primitives,布局参考成
|
||||
|
||||
原型已覆盖数字人需求加入前的一级栏目、管理员与成员自助视图切换、组织范围、搜索筛选、
|
||||
页签、详情、创建表单、危险确认和 390px 窄屏导航。动态发光、网格和网络脉冲只用于运行状态
|
||||
与品牌氛围;业务表格仍保持克制,状态继续同时使用图标与文字。原型操作会调用无持久化确认
|
||||
与品牌氛围;业务表格仍保持克制,状态继续同时使用图标与文字。既有 fixture 页面操作会调用无持久化确认
|
||||
API,并持续标明不会写入生产数据,不能据此宣称真实审批、撤销、策略或任务操作已实现。
|
||||
`FR-13` 新增的数字人目录、“我的数字人”和 `@` 选择器尚未进入当前原型。
|
||||
`FR-14` 新增的 Office 编辑导航、配置、健康和会话管理也尚未进入当前原型。
|
||||
“文档与协作”已提供 OnlyOffice 实例配置和预设健康检查模拟;真实 Office 编辑与会话管理尚未实现。
|
||||
|
||||
### 16.1 GoodBuddy 服务演示
|
||||
|
||||
侧栏“GoodBuddy 服务”分组提供三个管理员路由。页首持续标注模拟边界:三页共享当前会话
|
||||
内存,导航保留状态、刷新重置;操作不调用网络或写本地存储。角色选择仅用于评审,不构成
|
||||
真实授权;未接入模型推理、网关转发、OnlyOffice 编辑保存或设备交付。
|
||||
|
||||
| 路由 | 交互与结果 |
|
||||
| --- | --- |
|
||||
| `/model-gateway` 模型网关 | “上游服务”“模型映射 / 访问策略”“调用审计”页签;可添加和启停上游,切换映射上游、允许组及启停状态,选择调用组模拟允许/拒绝。最近 50 条审计仅含路由与策略结果,可查看详情,不含请求/响应正文 |
|
||||
| `/documents` 文档与协作 | “组织文档”“归属元数据”“OnlyOffice 服务器”“回收站”页签;展示名称与归属,无个人正文预览。OnlyOffice 可添加实例、预设健康/失败并累计模拟检查次数,不访问实例或建立编辑会话 |
|
||||
| `/distribution` 配置下发 | 创建一个配置草稿,选择目标组、当前可用默认模型和三段数字版本;发布前再次检查模型与组策略。按组展示当前/上一版本、设备已应用/目标版本,并可回退到上一条发布记录 |
|
||||
|
||||
“打开模拟 GoodBuddy 客户端”仅打开对话框,个人创建者可删除自己的示例文档或确认转移给
|
||||
当前组织,不启动真实客户端或上传文件。转移后从个人列表移除,原个人删除权失效;显式
|
||||
勾选模拟“组织文档管理员”才可删除/恢复组织文档。其他成员个人文档不可操作,恢复保留
|
||||
原归属,演示不提供永久删除。
|
||||
|
||||
配置发布与回退仅更新目标组在线示例设备;离线设备保持原已应用版本并标记待下发,无重连
|
||||
交付模拟。回退同时恢复版本和默认模型;历史模型停用或当前组策略不允许时禁止回退,不能
|
||||
仅改版本标签。上游及 OnlyOffice 地址表单只接受不含账号、密码、查询参数或片段的 HTTPS
|
||||
地址,不提供密钥字段,也不验证连接。
|
||||
|
||||
## 17. Desktop 工作空间协作目标交互
|
||||
|
||||
|
||||
Reference in New Issue
Block a user