Skip to content

0.2.0

Released

DataKlin 0.2.0 adds three databases: MySQL and MariaDB, SQLite, and Apache Cassandra.

Added

  • MySQL and MariaDB. Connect to MySQL 8.0, 8.4 and 9.7, and MariaDB 10.11 and 11.8, with the explorer, SQL console, results grid and query history. Connections are hardened by default: the cleartext password plugin, LOCAL INFILE and multi-statement queries are off, and DataKlin doesn’t fetch the server’s RSA public key over an unencrypted connection unless you allow it for that connection. Long queries can be cancelled, and a cancel never reaches the next statement.
  • SQLite. Open or create a database file with a file picker, or drag a file onto the connection form. Attach more database files to a connection, and open a file read-only, which DataKlin enforces. Long queries can be cancelled.
  • Apache Cassandra (core). Connect to Cassandra 4.1 and 5.0 with a user name and password. Browse keyspaces, tables and other objects in the explorer, open their definitions (DESCRIBE), and run CQL with results fetched page by page. The “Contact points only” option keeps DataKlin connected to the hosts you list, without discovering the rest of the cluster.

Fixed

  • Cancelling right after pressing Run could leave the statement running on the server.

Extension API

  • No change. @dataklin/extension-api and @dataklin/extension-test-kit stay at 0.1.0. The MySQL, SQLite and Cassandra extensions are built on API 0.1, like PostgreSQL. Installing third-party extensions still isn’t supported, and 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 any connector. Connections to PostgreSQL, MySQL, MariaDB and Cassandra aren’t encrypted in this release, so use them only on trusted networks, such as localhost. TLS, client certificates and SSH tunnels are planned for a later release.
  • Read-only marker isn’t enforced. Marking a connection read-only is still a label only and doesn’t stop writes. The exception is a SQLite file opened read-only, which is enforced. Use a database role without write privileges if you need that guarantee.
  • SQLite. Cancelling a long statement that runs as a single step stops it from the user’s point of view, but it keeps using one CPU core in the background until that step finishes. Very large TEXT values show as a capped “unsupported” cell until the next extension API version.
  • Cassandra. Connections are plaintext only. With peer discovery on (the default), your credentials are sent to every node in the local data center; to limit them to the hosts you list, choose “Contact points only”. Cancel is client-side: DataKlin stops waiting for the result, but the server may finish the query.
  • 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.

All release notes