DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Credentials Mysql — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
C

@sandersyao/dsh-credentials-mysql

Credentials Mysql

基于 MySQL 的 DeepSeek Harness 凭据库提供程序(ctx.credentials)

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:sandersyao/dsh-credentials-mysql#90a639ef30eb2b6a28dde0dfafc63a0dfa2fa1ac
README兼容性版本

兼容性与来源证明

Credentials Mysql 以 @sandersyao/dsh-credentials-mysql 发布,当前版本为 0.1.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/9/10

版本

0.1.2stable
2026/9/10
0.1.1stable
2026/9/4

相关插件

正在加载相关插件…

最新版
0.1.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/9/10
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 security-access 分类下经过校验的插件。

DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。Auto Reviewdsh-auto-review针对 DeepSeek Harness 审批请求的第二模型 AI 自动审查:只读审查子代理在审批应答链上决定允许或拒绝,并采用故障关闭回退机制和完整的会话日志审计。Mcp Paneldsh-mcp-panel官方 DeepSeek Harness MCP 客户端的 MCP 管理控制台:包含带健康诊断和流水线试调用的 /mcp 命令、带服务器 CRUD 的 Settings MCP 选项卡(仅追加的配置文件补丁片段、需审批的写入并自动备份)、一个Agy Linkdsh-agy-link适用于 DeepSeek Harness 的 Google Antigravity(agy CLI)模型——将 Gemini/Claude/GPT-OSS 订阅流式接入 DSH,并支持思考过程、工具活动、令牌使用量以及在 GUI 中通过 Google OAuth 登录。

README

@sandersyao/dsh-credentials-mysql

A cartoon dolphin tapping away at a typewriter

English | 中文

The MySQL credentials vault for the DeepSeek Harness — a concrete CredentialProvider (the dsh-credentials seam). Load it as a plugin; it registers ctx.credentials and persists both key spaces (refs and records) into MySQL, behavior-contract-equivalent to dsh-credentials-local, with optional field-level AES-256-GCM encryption.

Companion plugins (distributed dsh deployment)

This MySQL vault is the credentials component of a shared-MySQL distributed dsh deployment, designed to run alongside three sibling plugins — dsh-workspace-bootstrap, dsh-storage-mysql, and dsh-session-persistence-mysql — which switch the default workspace / storage / session-persistence backends to shared MySQL (this plugin switches the credentials backend):

PluginGitHub repositorynpm package page
@sandersyao/dsh-workspace-bootstraphttps://github.com/sandersyao/dsh-workspace-bootstraphttps://www.npmjs.com/package/@sandersyao/dsh-workspace-bootstrap
@sandersyao/dsh-storage-mysqlhttps://github.com/sandersyao/dsh-storage-mysqlhttps://www.npmjs.com/package/@sandersyao/dsh-storage-mysql
@sandersyao/dsh-session-persistence-mysqlhttps://github.com/sandersyao/dsh-session-persistence-mysqlhttps://www.npmjs.com/package/@sandersyao/dsh-session-persistence-mysql

Install & usage

import { MysqlCredentialProvider } from '@sandersyao/dsh-credentials-mysql'

await ctx.plugin(MysqlCredentialProvider, {
  connection: { tablePrefix: process.env.CREDENTIALS_TABLE_PREFIX },
})
// ctx.credentials is now backed by the MySQL vault.

Guides

  • Try it in a dsh profile without touching existing credentials — docs/DSH_PROFILE_TRIAL.md.
  • Production / npm install & cordis.patch.yml integration (replace the default file provider) — docs/DEPLOYMENT.md §8.

Configuration

Credentials, table prefix and the encryption key come from environment variables / a .env file (see .env.example). Independent CREDENTIALS_* win; they fall back to the shared MYSQL_* — reuse the same connection when co-existing with dsh-session-persistence-mysql, or configure independently. The plugin Config is fully optional — environment is the source of truth for credentials (never hard-code a password).

EnvFallbackDefaultPurpose
CREDENTIALS_HOSTMYSQL_HOST127.0.0.1MySQL host.
CREDENTIALS_PORTMYSQL_PORT3306Port.
CREDENTIALS_USERMYSQL_USER— (required)Least-privilege DB user.
CREDENTIALS_PASSWORDMYSQL_PASSWORD— (required)Password.
CREDENTIALS_DATABASEMYSQL_DATABASE— (required)Target database.
CREDENTIALS_TABLE_PREFIXMYSQL_TABLE_PREFIX— (required)Table prefix; validated against ^[A-Za-z0-9_]+$; base names distinct from session tables to avoid collision.
CREDENTIALS_ENCRYPTION_KEYENCRYPTION_KEY(empty)Field-encryption key; empty = plaintext (startup warning).
CREDENTIALS_SSL_REQUIREDMYSQL_SSL_REQUIREDfalseReserved for TLS enforcement (deferred).
CREDENTIALS_POOL_SIZEMYSQL_POOL_SIZE10Pool sizing.
CREDENTIALS_SCHEMA_AUTO_MIGRATEMYSQL_SCHEMA_AUTO_MIGRATEtrueAuto-migrate schema on startup; false only validates.

Test isolation. Automated tests (vitest) run against a separate database to avoid touching the production one: CREDENTIALS_TEST_DATABASE (default test) overrides CREDENTIALS_DATABASE during tests, and MYSQL_ROOT_PASSWORD is used only by the test harness to create/grant the test DB. See docs/MANUAL_TEST_PLAN.md.

Storage layout

Three tables, all under CREDENTIALS_TABLE_PREFIX:

  • ${prefix}credential_refs — the refs space: ref_name(PK) + value.
  • ${prefix}credential_records — the records space: rec_key(<scope>/<id>, PK) + kind + payload(JSON).
  • ${prefix}credential_meta — applied schema version.

The base names deliberately differ from dsh-session-persistence-mysql's sessions / events / _meta, so even sharing a database and prefix causes no collision.

Resolution layering (contract-equivalent to dsh-credentials-local)

inherited process environment   (read-only, always wins)
> MySQL managed store           (writable)
> project .env → user .env
  • An empty stored value equals absent: empty strings are rejected on write; resolve skips and describe reports unconfigured.
  • Shadowing rule: set/unset reject explicitly while a read-only process environment supplies the ref; describe().writable is false.
  • Per-invocation env overrides represent this run's intent; a MySQL write takes effect immediately.

Concurrency & crash semantics

  • modifyRecord is mutually exclusive across processes: SELECT … FOR UPDATE + an InnoDB transaction implements read-decide-replace, so concurrent token refresh is safe — a structural advantage over the file provider's cross-process write lock.
  • Transactional atomicity: writes commit in a single transaction, so no torn rows; ER_LOCK_DEADLOCK(1213) retries with bounded backoff.
  • Crash safety: InnoDB guarantees committed writes are not lost.

Schema & migration

Startup performs a connection test + idempotent CREATE TABLE IF NOT EXISTS, then reads ${prefix}credential_meta; an applied version higher than expected fails closed (downgrade unsupported). With CREDENTIALS_SCHEMA_AUTO_MIGRATE=false, a version mismatch fails instead of migrating.

Field encryption (vault feature)

When CREDENTIALS_ENCRYPTION_KEY is set (32-byte hex or any string, key derived via SHA-256):

  • ref values and a record's key / env / payload are AES-256-GCM encrypted before write (per-row random IV + auth tag); the key is never stored in the DB and never logged.
  • Storage uses a versioned envelope string (v1:<iv>.<cipher+tag>); plaintext data is unaffected.
  • Without a key it's plaintext mode (startup warning); the switch does not change the seam's behavior contract (values still round-trip).

Model experience

Indirect, through the LLM adapters that consume it: a resolved value authorizes an adapter's request to its provider; all model-visible surfaces are the adapter's responsibility. Credentials never enter the request prefix.

Known limitations & deferred items

  • No hot-publishing of external edits — no file watcher; rows changed directly in MySQL are picked up by consumers' per-operation re-resolution (the seam already resolves per operation, so this is usually invisible).
  • set/unset reject while shadowed by the environment (seam rule, same as the local provider).
  • No automatic migration from $DSH_HOME/.credentials.yaml — switching providers does not import the old file into MySQL (see docs/DEPLOYMENT.md §8.3).
  • TLS / transport deferred — CREDENTIALS_SSL_REQUIRED is a reserved bit.
  • Peer ranges target the dsh v0.1.5-rc.1 line (^0.1.5-rc.1); re-align peerDependencies when the official seam release moves on.