DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

wuzhican /

wuzhican/dsh-credential-panel

Verified

dsh credential pannel plugin

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@b66ba082

dsh-credential-panel

在 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-panel

profile 未启用 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

—/ 5

No ratings yet

Verified DSH bundle

Commit b66ba082124f

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout