dsh-database:在 DSH 对话侧栏里连 MySQL、Oracle、Redis 与 Kafka

前言

做智能体或运维排查时,常见做法是另开数据库客户端、Redis CLI 或 Kafka 控制台,再在 DSH 对话里口述连接信息和 SQL。上下文容易断,AI 也拿不到结构化结果。DeepSeek Harness(DSH)支持通过插件扩展对话界面;dsh-database 把 MySQL、Oracle、Redis、Kafka 接到会话右侧 Database 面板,支持浏览对象、执行查询,并与 AI 共享查询编辑器。仓库说明该插件由 AI 全程参与编写,许可证为 MIT,维护者为 zhuoxiaoshuai,社区目录分类为 admin-security。

这是什么

dsh-database 是 DSH 的 Web 侧栏插件:在对话右侧连接上述四类数据源,完成库表/键/Topic 浏览、SQL 或命令执行、结果网格维护,以及面向 AI 的 AI Query 协作入口。MySQL 与 Oracle 侧重 schema 浏览、批 SQL、执行计划与 SQL 知识分析;Redis 提供 DB/键浏览与单命令控制台;Kafka 提供 Topic/消费组、水位与 lag、有限范围消息预览,以及在 SIT 下的发布/修复类操作。各源共用查询、AI Query、历史与知识库入口,编辑器与结果保留各源语义。

核心功能

下面按数据源归纳 README 中已列能力。

共用能力

  • 右侧 Database 标签:我的连接 管理地址、凭据与环境标签(SIT / UAT / PVT)。
  • 普通查询页与 AI Query 分离;在 AI Query 输入或点击 接管 会由人控制文档,归还 AI 后模型可继续协作。
  • 权限随环境区分:例如 AI 在 UAT/PVT 上 SQL 只读,网格 DDL 在非 SIT 禁用;Kafka 写操作在非 SIT 禁用。人类在 UAT/PVT 仍可执行有权限的 SQL/Redis 写操作,需配合只读账号或 ACL。详见仓库 Permissions 一节。

MySQL / Oracle

能力 说明
浏览 MySQL:库 → 表 → 列;Oracle:按 schema 组织对象
查询 对象/查询标签、SQL 批处理、执行计划(Oracle 使用 EXPLAIN PLAN FOR)
维护 网格编辑(参数化 DML、预览确认);DDL 多步审批(步数与时效见 README)
驱动 MySQL:mysql2,默认端口 3306;Oracle:oracledb Thin,默认 1521,支持 Service Name / SID

Redis

  • 要求 Redis 7.2+;树形结构为 DB → keys,SCAN 分页可能空页或重复,界面会提示游标未结束。
  • 支持单机、单 Sentinel 或单 Cluster 种子;可选 ACL、TLS 与自定义 CA。
  • 键浏览器与命令控制台使用不同连接;控制台执行一条 CLI 风格命令后关闭。

Kafka

  • Topic/消费组、分区、水位、lag、消息预览、有界搜索。
  • SIT 下支持需确认的发布/修复类操作;读操作在各环境按策略允许。

安装与启用

插件以当前 dsh 进程权限运行,安装前应阅读仓库源码与 MIT 许可证。需要 Node.js 24 或更新版本。官方 release 包不含从 github: 直接安装的路径(仓库不附带预构建 lib/)。

Web 配置安装(安装后需重启 dsh web):

dsh plugin --profile web add https://github.com/zhuoxiaoshuai/dsh-database/releases/download/v0.1.0-alpha.12.15/dsh-database.tgz

Desktop 需在托盘打开 DSH Terminal(dsh 不在 PATH 时),使用 --profile desktop,与 web 配置互不安装:

dsh plugin --profile desktop add https://github.com/zhuoxiaoshuai/dsh-database/releases/download/v0.1.0-alpha.12.15/dsh-database.tgz

卸载:

dsh plugin --profile web remove dsh-database

勿手动把 cordis.patch.yml 复制进 profile。若从源码打包,可在克隆目录执行 npm ci --legacy-peer-deps 与 npm pack,再用 dsh plugin --profile web add ./dsh-database-<npm pack 打印的版本>.tgz 安装;源码 package.json 当前版本为 0.1.0-alpha.12.18,与上述 release 包版本可能不一致,以实际文件名与验收说明为准。

典型用法

经过安装并重启对应 profile 后,按 README First use 操作:

  1. 打开对话右侧 Database,在 我的连接 旁点 +,选择数据源并填写地址、凭据及库/Service Name/DB 或 brokers,选择 SIT、UAT 或 PVT。
  2. 可选 测试连接,再 连接(仅测试不会保存连接)。
  3. 为 SQL 选择 database/schema,在查询页做连通性检查:
    - MySQL:SELECT 1;
    - Oracle:SELECT 1 FROM DUAL;
    - Redis:PING
    - Kafka:TOPICS
  4. 需要 AI 协作时打开 AI Query,在对话中说明连接、对象与任务(例如让模型解读当前 SQL);执行前确认目标与环境权限。

MySQL 大整数示例(README 说明 BIGINT 以字符串返回):

SELECT 9007199254740993 AS id;

Redis 控制台示例:

PING

适用场景与注意

  • 适合:已在用 DSH Web/Desktop 做开发或排障,希望在同一对话里查库、改网格、让 AI 读 SQL 或结构化库表信息,且能区分 SIT/UAT/PVT 的团队。
  • 环境:插件注入 Web 客户端侧栏(cordis.patch.yml);与社区目录 skillhub.cn 插件页 为社区收录,与 DeepSeek / 幻方无官方从属关系。
  • 安全:密码默认留在 Host 内存;Windows 可选 记住密码 使用当前用户 DPAPI。中断的写操作可能报 unknown,不会自动重放;重连会使旧请求失效。AI 在 SIT 上 SQL 结果会未脱敏返回模型,普通人查询结果不会自动发给模型。
  • 限制摘录:Oracle 含 LOB 列的查询会失败;Redis 集群模式 host 为种子且 DB 须为 0;查询结果默认 100 行,上限 500 行或 1 MiB。

结尾

dsh-database 把关系库、缓存与消息队列收进 DSH 会话侧栏,并用环境标签约束 AI 与写操作,适合「对话 + 库表/键/Topic」一体的工作流。进一步了解可查看社区目录页与 GitHub 仓库(含中文 README、SECURITY.md 与 docs)。

  • 目录页:https://www.skillhub.cn/plugins/zhuoxiaoshuai/dsh-database
  • GitHub:https://github.com/zhuoxiaoshuai/dsh-database
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye