前言¶
DeepSeek Harness(DSH)的设计理念是“一切皆插件”。在单机多用户共用一个 DSH 进程的场景下,默认的 Web 界面对所有登录用户展示全量工作区,缺乏隔离。dsh-multi-user 插件通过登录墙和视图分档机制,解决了这一需求。
插件概览¶
名称:dsh-multi-user
一句话:Single-process multi-user workspace view partitioning for DeepSeek Harness: JWT-in-cookie login wall, per-user workspace/session partitioning, and admin user management.
维护者:nabin-qq273274877
分类:admin-security
许可证:MIT
核心功能¶
- JWT 登录墙:挂载后访问首页需先通过验证,未设主管理员时显示初始化页,已设则显示登录页;登录成功后插件自签 JWT 写入 HttpOnly Cookie。
- 按用户过滤工作区/会话:每个用户(含主管理员)维护一份已加入的工作区路径清单。用户通过目录选择器加入任意路径,只有加入过的路径(及其下会话)对本人可见,其他用户看不到。
- 用户管理:主管理员经初始化后,可在设置页的「用户管理」中添加、删除、重置密码及启用/停用子用户。
- 单进程无侵入架构:无需额外网关进程,直接作为普通插件集成,安装/还原成本低。
安装与启用¶
在终端执行以下命令安装插件:
npx @deepseek-ai/dsh plugin --profile web add dsh-multi-user
安装完成后,重启 dsh web 进程使插件生效。
典型用法¶
- 初始化主管理员:访问
http://127.0.0.1:3080/,根据页面提示设置主管理员账号。 - 添加子用户:登录主管理员账号,进入设置页的「用户管理」区域,添加子用户。
- 用户加入工作区:子用户登录后,在侧边栏通过目录选择器选择本地路径加入工作区,该路径及下属会话仅对该用户可见。
适用场景与注意事项¶
- 安全边界:这不是强隔离方案。同一进程内所有用户共享
workspaceRegistry,Agent 工具仍可操作宿主机任意路径。 - 卸载影响:卸载后
sidebar.workspaces会恢复为官方的全量视图,但插件数据目录$DSH_HOME/plugins-data/dsh-multi-user/会保留。
总结¶
该插件适合需要在同一台机器上实现多用户分档查看、轻量级登录验证的场景。通过 JWT-in-cookie 方式实现身份隔离,配合视图过滤降低管理复杂度。