One read-only workbench for five data engines
Query MySQL, ClickHouse, MongoDB, Redis and Kafka from one desktop workbench with tabs, filters and CSV export, using each engine's read-only mode.

What it is
The workbench is the 中间件 (Middleware) side of DevOpsPad: a Navicat-style layout with a connection tree on the left, query tabs on top, a CodeMirror editor and a dense result grid. It covers the data systems a small team usually runs — MySQL, ClickHouse, MongoDB, Redis and Kafka — so you don’t need a separate client for each.
It is built for looking, not changing. When something breaks in production you can open the database, inspect a table or key, run a query and export the result. There are no edit grids or write buttons, and each engine adds its own read-only guard.
How it works
- Explorer. Each connection expands into its databases, tables, collections, keys or topics. Tables open their columns, indexes and DDL with Structure.
- Tabs with their own scope. Every query tab keeps its own connection and database (or Kubernetes context and namespace), so switching the tree doesn’t change what an open tab runs against.
- Editor. SQL, JSON or plain-text mode depending on the engine. Run with Cmd/Ctrl+Enter; cancel at any time. Queries time out after 20 seconds.
- Results. Sort, filter, page, double-click a row to inspect it, and Export CSV. Numbers keep their full precision instead of being rounded through JavaScript floats.
- History and saved queries. The last 100 queries of the session, saved queries on this device, and a Cmd/Ctrl+K connection palette.
- Draft recovery. Optionally restore query text, tabs and scopes on the next launch. Restored queries never run by themselves.
Read-only on every engine
| Engine | How read-only is enforced |
|---|---|
| MySQL | Each query runs inside a server-side READ ONLY transaction, which rejects INSERT, UPDATE and DELETE |
| ClickHouse | Queries are sent over HTTP with readonly=1 |
| Redis | Only an allowlist of read-only commands is accepted (GET, SCAN, TYPE, TTL, HGET, INFO and similar) |
| MongoDB | The editor runs find with filter, projection, sort, skip and limit |
| Kafka | Topic, partition, leader and replica metadata only |
DevOpsPad’s read-only mode is a second layer, not a replacement for permissions. In MySQL, DDL such as DROP or ALTER causes an implicit commit and is not reliably stopped by a read-only transaction, so connect with a SELECT-only user. See least-privilege accounts.
Limits
Results are capped at 500 rows or documents, and most engines enforce an 8 MiB encoded result budget; see result limits. Not implemented yet: editable grids and write queries, schema editing, import, backup and restore, migrations, schema-aware autocomplete, MongoDB SRV and replica sets, Redis Cluster and Sentinel, and Kafka message browsing and consumer groups.
Help articles
Run read-only MySQL queries
How DevOpsPad runs MySQL queries inside server-side read-only transactions, which statements fail, and why you should still use a read-only MySQL account.
Work with query tabs
Open several query tabs per connection, each with its own database, context or namespace scope, and keep them open while you switch between workspaces.
Run and cancel a query
Run a query with Cmd or Ctrl+Enter, cancel it while it runs and understand the 20-second timeout and what cancelling does on the database server.
Filter, sort and inspect results
Filter fetched rows by text, sort any column, page through 50 rows at a time and open a row in the inspector to read long values or copy it as JSON.
Export query results to CSV
Save the current query result as a CSV file from DevOpsPad, with every field quoted, spreadsheet formula injection guarded and file permissions limited to you.
What is read-only in DevOpsPad
How each engine keeps DevOpsPad queries read-only, where the protection has gaps such as MySQL DDL, and which Infra console actions are allowed to write.
Frequently asked questions
Can I edit rows or run UPDATE and DELETE statements in DevOpsPad?
The workbench has no editing features. MySQL queries run in server-side read-only transactions, which reject INSERT, UPDATE and DELETE, but MySQL does not reliably block DDL that way, so connect with a SELECT-only account. Editable grids are not implemented.
Which databases does the workbench support?
MySQL, ClickHouse, MongoDB, Redis and Kafka. Kubernetes and K3s use the same tabs and editor for resource queries.
How many rows can a query return?
Up to 500 rows or documents per query, with an 8 MiB result budget on most engines. The result grid shows when a preview is partial.