nabin-qq273274877/dsh-multi-user
nabin-qq273274877★ 0TypeScript最后同步: 2026-08-20
Single-process multi-user workspace view partitioning for DeepSeek Harness
README 摘要
dsh-multi-user 中文 English 为 DeepSeek Harness Web GUI 提供 单进程多用户工作区分档 :JWT 登录墙 + 按用户过滤工作区/会话 + 用户管理。 功能 - JWT 登录墙 :挂载后访问 / 先过登录墙;未设主管理员显示「初始化页」,已设则显示「登录页」;登录成功插件自签 JWT 写 cookie(HttpOnly),跳转回 / ; - 每用户工作区路径清单 :每个用户(含主管理员)维护一份「已加入的工作区路径」清单。用户通过目录选择器加入任意路径(如 D:\Project\foo ),只有加入过的路径(及其下会话)对本人可见,其他用户看不到;未加入的路径不显示。 - 用户管理 :主管理员经 setup 初始化,其他用户在设置页「用户管理」里添加;支持改密码、停用/启用、删除。 安全边界 :这是 视图分档 + 轻量登录 ,不是强隔离。同一进程内所有用户共享同一份 workspaceRegistry / sessionPersistence ,userId 只是展示过滤器;任何能直接操作宿主机文件系统的人都能看到全部数据。 架构 身份链路: 认证调后端 (登录墙 + JWT 签发 + HttpOnly cookie), 分档不重复验签 (client 经 /api/mu/me/grants 一次性拿到 userId/role,经 /api/mu/me/workspaces 拿到本人已加入的路径清单,浏览器自动携带 HttpOnly cookie,Host 侧验签;client 按该清单过滤工作区)。 设计说明 :JWT 存 HttpOnly cookie (JS 读不到 document.cookie ,避免 XSS 窃取令牌)。因此 client 端 不读 cookie ,而是通过 fetch('/api/mu/me/grants') 拿到身份,再经 /api/mu/me/workspaces 拿到本人路径清单。 安全边界 :每个用户的工作区路径清单是「视图分档 + 清单约定」, 不是强隔离 。agent 的工具(bash/文件读写)仍可操作宿主机任意路径;卸载插件后 sidebar.workspaces 回到官方全量视图。真正的物理隔离需多进程/每用户独立数据根。 为什么用插件形态(对比网关方案) 实现「多人共用一台 dsh」有两条路线: 外部网关 (在 dsh 之外另起一个反向代理进程做登录与分流)与 本插件的无侵入插件形态 。二者差异如下: 维度 网关方案(如 dsh-server-deployment 系) 本插件(无侵入插件) 部署形态 在 dsh 之外部署一层独立网关进程,dsh 仍跑在它后面 作为普通插件装进 dsh 组合,与官方插件同级,无额外进程 安装/还原 需额外维护网关的配置、证书、端口…
在 GitHub 查看完整 README →分类
DeepSeek Harness: Everything is a Plugin.
★ 182,325
amruthpillai/reactive-resumeA one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!
★ 41,477
anywhere-labs/deepseek-harness-desktop为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 17,784