Generate DBeaver database client configurations from Pydantic v2 models using mise [env] as Single Source of Truth (SSoT).
Schema documentation principle: ClickHouse table/column COMMENTs are the SSoT for what each column means and how it's computed. See quality-tools:clickhouse-architect for the full COMMENT policy.
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
When to Use This Skill
Use this skill when:
Setting up DBeaver connections for ClickHouse databases
Generating database client configurations from environment variables
Managing local vs cloud ClickHouse connection profiles
Integrating ClickHouse with mise-based development workflows
This skill is NOT a rigid template. It provides a SSoT pattern that MUST be adapted to each repository's structure and local database situation.
Why This Matters
Each repository has unique:
Directory layouts (.dbeaver/ location may vary)
Environment variable naming conventions
Existing connection management patterns
Local vs cloud database mix
The SSoT principle is the constant; the implementation details are the variables.
Quick Start
# Generate local connection config
mise run db-client-generate
# Generate cloud connection config
mise run db-client:cloud
# Preview without writing
mise run db-client:dry-run
# Launch DBeaver
mise run dbeaver
Credential Prerequisites (Cloud Mode)
Before using cloud mode, obtain credentials via the skill chain:
Create/retrieve user: Use clickhouse-cloud-management skill to create read-only users or retrieve existing credentials from 1Password
Scripts read from os.environ.get() with backward-compatible defaults—works with or without mise installed.
Credential Handling by Mode
Mode
Approach
Rationale
Local
Hardcode default user, empty password
Zero friction, no security concern
Cloud
Pre-populate from .env
Read from environment, write to gitignored JSON
Key principle: The generated data-sources.json is gitignored anyway. Pre-populating credentials trades zero security risk for maximum developer convenience.
Did the command succeed? — If not, fix the instruction or error table that caused the failure.
Did parameters or output change? — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
Was a workaround needed? — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.
Only update if the issue is real and reproducible — not speculative.