0.1.0
The first release of DataKlin, a desktop database IDE for macOS, Windows and Linux. It supports PostgreSQL, with an explorer, a SQL console, a results grid and query history.
Added
- PostgreSQL. Connect to PostgreSQL 14 to 18 with a user name and password. Values are shown exactly as the server stores them, including large integers, decimals, dates, intervals, JSON and binary data. Long queries can be cancelled. Errors show the SQLSTATE and point to the failing position in the editor. Each connection can carry a read-only marker; in 0.1.0 it’s a label only and isn’t enforced (enforcement is planned).
- Connections. Save connections in nested folders, and edit, duplicate or delete them. Each connection can have an environment badge, a color and a read-only marker. You can test a connection before saving it, then connect or disconnect from the list.
- Password storage. Passwords are encrypted with the operating system’s secure storage and are never written to the connections file. For each connection, choose whether DataKlin keeps the password, keeps it only until DataKlin quits, or asks every time. On Linux without a desktop keyring, passwords aren’t saved to disk unless you choose to save them for that connection.
- Database explorer. A sidebar tree of every connection’s schemas, tables, views, columns, keys, indexes and other objects, loaded as you expand it. You can filter it by schema, type to search it, and refresh one node or everything. It opens fast at start-up from a cached copy, and works with a keyboard or a screen reader. You can open an object’s definition (DDL) in a read-only tab.
- SQL console. Open several consoles per connection, each with its own session. Highlighting
follows the database’s SQL dialect. Run the statement at the caret, the selection or the whole
script, one statement after another, with a timer and a Cancel button. Each statement gets its
own result tab, plus an output log. Consoles are saved automatically and restored after a
restart. You can also open and save
.sqlfiles. - Results grid. A fast, virtualized grid that keeps memory use bounded on large results: rows
that are fetched but not on screen are held outside the window, and spill to an encrypted
temporary file that is deleted when the result closes. Fetch more rows, or fetch all rows up to a
cap that you can change (100,000 by default). It never truncates rows without telling you, and
never re-runs a query on its own. It also has:
- sorting and filtering over every fetched row, with a notice when more rows exist on the server
- column resizing, reordering and hiding
- range selection and full keyboard navigation
- copy as TSV, CSV, JSON or SQL
INSERT, keeping line breaks inside values - an “Open value” popover for long values (Shift+Enter)
- Query history. Each statement you run is saved locally with its time, connection, duration and status. You can search it, filter it, reopen an entry in a console, copy it, delete entries or clear it all. History can be turned off globally or per connection, and keeps up to 50,000 entries for up to 90 days (both settings). Passwords in statements that set credentials are masked, and results are never stored.
- Workbench. A resizable layout with a sidebar, editor tabs, a bottom panel and a status bar, a command palette, keyboard shortcuts you can change, light, dark and system themes, notifications and a settings screen.
- Extensions. Each database connector runs in its own sandboxed process. A connector that crashes or stops responding is restarted without restarting DataKlin, and a password is sent only to the connector that needs it. In 0.1.0, only the built-in PostgreSQL extension is loaded.
- Downloads. Installers for macOS (Apple silicon and Intel,
.dmgand.zip), Windows x64 (.exe) and Linux x64 (.AppImageand.deb), with aSHA256SUMSfile.
Extension API
@dataklin/extension-api0.1.0, the first version of the extension API. It covers the manifest, connectors, sessions, a paged introspection tree, execution with pull-based paging and cancel, exact cell values, errors, security declaration types, declarative SQL dialects and capabilities. An extension states the API range it needs inengines.dataklin, and DataKlin refuses to load an extension whose range doesn’t match. The full list is inpackages/extension-api/CHANGELOG.md.@dataklin/extension-test-kit0.1.0, conformance suites for connectors written against API 0.1: connect, introspect, execute, paging, cancel, errors and values.- Installing third-party extensions isn’t supported yet, so in this release the API is used only by the built-in PostgreSQL extension. The packages aren’t published to npm.
Known issues
- Unsigned builds. The macOS and Windows builds aren’t signed. macOS Gatekeeper and Windows SmartScreen warn when you first open DataKlin. There is no auto-update yet: to update, download the new version.
- No TLS for PostgreSQL. Connections to PostgreSQL aren’t encrypted in this release, so use it
only on trusted networks, such as
localhost. TLS, client certificates and SSH tunnels are planned for 0.2.0. - Read-only marker isn’t enforced. Marking a connection read-only doesn’t stop writes in 0.1.0. Use a database role without write privileges if you need that guarantee.
- History file growth. While
DataKlin is running, the history database’s write-ahead log (
app.db-wal) grows with each statement run. It shrinks when you clear or prune history, or at the next start after a crash. - History erasure. Deleting some history entries, or clearing one connection’s history, can leave fragments of the removed statements in the local database file until it is compacted. Clearing all history leaves none. DataKlin says this where you clear history.
- Test and CI issues that don’t affect the app: the nightly benchmark budgets, two nightly test races, and flaky tests.