dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
在 DSH 设置页加一张凭据面板:列出凭据库里的引用名与它们的状态,并允许新增、覆盖、删除。
DSH 的凭据服务由 harness 自带(@deepseek-ai/dsh-credentials-local,profile 里 id 为 credentials,默认落在 $DSH_HOME/.credentials.yaml)。设置页只在模型 provider 那一行画一个已配置/未配置的点 —— 插件自定义的引用名(如 `QBT_API_KEY`)没有任何界面入口,因为按契约引用那一半根本不可枚举。本面板把名字从存储文件的 refs: 段读出来,其余一切仍走服务。
面 · 处置 值 · 从不离开宿主。读取只返回 describe() 的三件事:是否已配置、来源层、可否写 跨站请求 · 同源校验(sec-fetch-site 与 Origin 对 Host),不合规 403 写入 · 需要面板令牌。宿主不为插件路由做会话鉴权,所以写入默认失败关闭:没配令牌就一律拒绝,而不是放开 令牌比对 · 两边各取 SHA-256 摘要后 timingSafeEqual,不在比较路径上留明文 只读来源 · 被进程环境等只读层遮蔽的名字标为 read-only,服务会拒绝这类写入(返回 409)
面板令牌本身也存在凭据库里,配置只写它的引用名,不写值。
dsh plugin --profile web add @wuzhican/dsh-credential-panelprofile 未启用 dsh-hmr 时改动需重启 dsh web。
先给面板令牌生成一个值并存进凭据库:
node -e 'console.log(require("crypto").randomBytes(24).toString("base64url"))'把输出存成引用 DSH_CREDENTIAL_PANEL_TOKEN(在面板里新增该名字并粘贴,或写进 $DSH_HOME/.credentials.yaml 的 refs: 段)。之后在面板的“面板令牌”框里输入同一个值即可新增/删除。
换名字或改行为:
- insert:
- id: credential-panel
name: '@wuzhican/dsh-credential-panel'
config:
tokenRef: MY_PANEL_TOKEN
readOnly: true # 只给看,禁一切写入refs: 段,只取冒号前的键名,值文本在匹配时即丢弃。DSH 若改了该文件的布局,这里会跟着失效;此时读取仍走服务,写入仍受令牌约束,只是列表会空。records(插件自持记录)用官方 listRecords() 枚举,只展示地址与类型。MIT