Browser Connections
Add personal ClickHouse connections in the browser with AES-256-GCM encrypted credentials and server-side proxy — no config changes needed.
Add personal ClickHouse connections directly in your browser and query them through the chmonitor proxy — without touching server config.
Prop
Type
What it does
chmonitor normally connects to ClickHouse using the server-side CLICKHOUSE_HOST, CLICKHOUSE_USER, and CLICKHOUSE_PASSWORD environment variables. Browser Connections lets individual users add extra ClickHouse hosts directly in their browser, without changing server config.
When a user adds a connection, the credentials are stored in encrypted browser localStorage (AES-256-GCM with a device-bound key). When they query, chmonitor creates a short-lived session token server-side; subsequent chart/table requests use the token instead of sending the password on every request. All queries still proxy through the chmonitor server — the browser never opens a direct connection to ClickHouse.
The connection selector in the header shows both server-configured hosts and browser-stored connections. Switching between them changes which host all dashboard pages query.
This is useful for:
- Personal development — quickly point chmonitor at a local ClickHouse instance.
- Testing — connect to a staging cluster without redeploying.
- Demos — show a read-only user's view without sharing admin credentials.
Using it
Add a connection
Open the connection selector in the header and add a ClickHouse host. Credentials are encrypted in browser localStorage with AES-256-GCM (device-bound key) — nothing is written to server config.
Query through the proxy
On first query, chmonitor mints a short-lived session token server-side; later chart/table requests use the token instead of resending the password. All queries proxy through the chmonitor server.
Switch hosts
Use the header selector to switch between server-configured and browser-stored hosts. The selected host applies to every dashboard page.
Permissions & access
Browser Connections is part of the app shell and has no dedicated feature id. It cannot be disabled independently.
If you want to prevent users from switching hosts at all, restrict access to the dashboard itself using the global auth model (CHM_AUTH_PROVIDER) rather than trying to remove the connection selector.
Configuration
No server-side configuration. Browser connections are managed entirely in the client.
For teams, configure hosts server-side so all users share the same host list without any browser setup:
CLICKHOUSE_HOST=https://host1.example.com:8443,https://host2.example.com:8443
CLICKHOUSE_USER=chmonitor,chmonitor
CLICKHOUSE_PASSWORD=secret1,secret2
CLICKHOUSE_NAME=Production,StagingServer-configured hosts appear for all users without any browser setup.
Notes & limitations
Do not use write-capable credentials on shared devices
Credentials are encrypted in browser localStorage, but XSS on the dashboard could still expose decrypted values in memory. Do not use write-capable production credentials on shared or untrusted devices.
- Session tokens expire after 15 minutes; the client refreshes them automatically when needed.
- Browser connections are per-browser, per-device. They are not shared across users or synchronized.
- All queries still go through the chmonitor server proxy — the browser never connects directly to ClickHouse. The chmonitor server must have network access to the target ClickHouse host.
- For team or multi-user deployments, prefer server-side
CLICKHOUSE_HOST/CLICKHOUSE_USER/CLICKHOUSE_PASSWORDconfiguration so all users share the same host list. - If chmonitor is deployed behind authentication (
CHM_AUTH_PROVIDER=clerkorproxy), the proxy still enforces auth before forwarding any query, regardless of which host is selected.
Related
PeerDB
Monitor PeerDB replication mirrors and peers from within chmonitor — read-only, proxied, no direct database access required.
User Connections (Server Storage)
Save personal ClickHouse connections to the server so they sync across devices when signed in with Clerk — encrypted at rest with AES-256-GCM.