Generate DBeaver configurations from Pydantic ClickHouse connection models. Use when user mentions "DBeaver config", "ClickHouse connection setup", "database client configuration", "generate connection JSON", "mise SSoT connection", or needs consistent connection configuration across development tools.
Limited to specific tools
Additional assets for this skill
This skill is limited to using the following tools:
references/dbeaver-format.mdreferences/pydantic-model.mdscripts/generate_dbeaver_config.pyscripts/validate_config.pyGenerate DBeaver database client configurations from Pydantic v2 models using mise [env] as Single Source of Truth (SSoT).
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.
Each repository has unique:
.dbeaver/ location may vary)The SSoT principle is the constant; the implementation details are the variables.
# 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
Before using cloud mode, obtain credentials via the skill chain:
clickhouse-cloud-management skill to create read-only users or retrieve existing credentials from 1Password.env file (gitignored):CLICKHOUSE_USER_READONLY=your_user
CLICKHOUSE_PASSWORD_READONLY=your_password
mise run db-client:cloudSkill chain: clickhouse-cloud-management → .env → clickhouse-pydantic-config
[env] as Single Source of TruthAll configurable values live in .mise.toml:
[env]
CLICKHOUSE_NAME = "clickhouse-local"
CLICKHOUSE_MODE = "local" # "local" or "cloud"
CLICKHOUSE_HOST = "localhost"
CLICKHOUSE_PORT = "8123"
CLICKHOUSE_DATABASE = "default"
Scripts read from os.environ.get() with backward-compatible defaults—works with or without mise installed.
| 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.
# .env (gitignored)
CLICKHOUSE_USER_READONLY=readonly_user
CLICKHOUSE_PASSWORD_READONLY=your-secret-password
Before writing any code, the executor MUST:
# 1. Discover existing configuration patterns
fd -t f ".mise.toml" .
fd -t f ".env*" .
fd -t d ".dbeaver" .
# 2. Test ClickHouse connectivity (local)
clickhouse-client --host localhost --port 9000 --query "SELECT 1"
# 3. Check for existing connection configs
fd -t f "data-sources.json" .
fd -t f "dataSources.xml" .
| Discovery Finding | Adaptation Action |
|---|---|
Existing .mise.toml at repo root | Extend existing [env] section, don't create new file |
Existing .dbeaver/ directory | Merge connections, preserve existing entries |
| Non-standard CLICKHOUSE_* vars | Map to repository's naming convention |
| Multiple databases (local + cloud) | Generate multiple connection entries |
| No ClickHouse available | Warn and generate placeholder config |
The executor MUST verify:
jq . .dbeaver/data-sources.json)mise run db-client-generate).dbeaver/ added to .gitignoreThe ClickHouseConnection model provides:
from_env() class methodSee references/pydantic-model.md for complete model documentation.
DBeaver uses .dbeaver/data-sources.json with this structure:
{
"folders": {},
"connections": {
"clickhouse-jdbc-{random-hex}": {
"provider": "clickhouse",
"driver": "com_clickhouse",
"name": "Connection Name",
"configuration": { ... }
}
}
}
Important: DBeaver does NOT support ${VAR} substitution—values must be pre-populated at generation time.
See references/dbeaver-format.md for complete format specification.
/Applications/DBeaver.app/Contents/MacOS/dbeaver (NOT open -a).dbeaver/ to .gitignore| Skill | Integration |
|---|---|
devops-tools:clickhouse-cloud-management | Credential retrieval for cloud mode |
quality-tools:clickhouse-architect | Schema design context |
itp:mise-configuration | SSoT environment variable patterns |
For Python application code connecting to ClickHouse (not DBeaver), use clickhouse-connect (official HTTP driver). See clickhouse-architect for:
clickhouse-driver (community)| Reference | Content |
|---|---|
| references/pydantic-model.md | Complete model documentation |
| references/dbeaver-format.md | DBeaver JSON format spec |