dsh-db-connector
Database connector bundle for DeepSeek Harness (dsh): SQLite/PostgreSQL/MySQL connections, schema introspection, read-only safety, write approval gate, and a JSONL SQL audit trail.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:JohnXu22786/db-connector说明文档
阅读完整 README ↗Plugin configuration
Configuration is the config: block of the plugin row (or a later patch layer
overriding row id db-connector).
- insert:
- id: db-connector
name: 'dsh-db-connector'
inject: [tools, commands]
config:
# Connections pre-registered at boot; each is opened lazily.
connections:
appdata:
driver: sqlite
database: ./data/app.db
warehouse:
driver: postgres
host: db.internal
database: warehouse
user: readonly
passwordEnv: WAREHOUSE_PG_PASSWORD # env var NAME, not the value
# ...or passwordRef: WAREHOUSE_PG_PASSWORD (dsh credentials service)
audit:
enabled: true
path: .dsh-db/audit.jsonl # default; supports ${ENV}
query:
maxRows: 1000 # result row cap
timeoutMs: 30000 # per-statement deadline (ms)
maxSqlChars: 512 # statement text kept per audit record
schema:
ttlMs: 60000 # snapshot cache lifetime
defaultAllowWrite: false # write gate global default (see below)
Environment overrides: DSH_DB_CONNECTOR_AUDIT_PATH,
DSH_DB_CONNECTOR_MAX_ROWS, DSH_DB_CONNECTOR_TIMEOUT_MS. Any f"${VAR}"
placeholder in a string value is expanded from the environment at connect time.
Credentials — never in logs
Security posture: secrets are referenced by name, never embedded.
passwordEnv: PG_PASSWORDreads the value from the environment with that name.passwordRef: MY_REFresolves through the dsh credentials service (ctx.credentials), falling back to a plain env lookup.- Any field may use a
${VAR}placeholder. - Inline
passwordis accepted but strongly discouraged.
The bundle never logs connection configs, passwords, or connection strings:
connection summaries carry only name / driver / host:port / database plus
auth=env|credentials|inline|none. Error messages report environment variable
names, not values. Audit records carry statement digests/summaries and
counts — never connection config.