Masked backups
In progressOne more option in Backup to take a copy with personal data replaced by fake but realistic values, meant for development and testing.
- Screens
- MaciPadiPhoneApple Vision Pro
What is being built, what is being weighed, what I have decided not to build, and what has just landed.
This page describes Calíope 1.8. It is the version I am building right now; 1.7 is on the App Store on every device, the Mac included, so everything listed below as shipped in 1.7 can be downloaded; what is marked 1.8 comes with the next update.
Calíope grows from three things: what arrives through support, the diagnostic reports people choose to share, and daily work against real databases. This page says where each item stands — including the ones I decided not to build, with the reason, because a roadmap that only lists promises is not telling you much. Something missing? Suggest a feature.
One more option in Backup to take a copy with personal data replaced by fake but realistic values, meant for development and testing.
A scheduled backup or report now runs even with Calíope closed. On the Mac it runs on time, through a small helper that appears in System Settings › Login Items & Extensions; on iPad and iPhone, whenever the system allows it —usually overnight while charging—, with no exact time; on Apple Vision Pro it waits for you to open the app, and the schedule editor says so. Still to come: after each backup, Calíope would restore it into a test connection you choose, check that it is complete and delete it.
A record of every CREATE, ALTER and DROP, with who and when, that also flags changes made outside Calíope.
See who is blocking whom right now and end the session causing the block, with a history of deadlocks.
A button that reviews account privileges and tells you what is worth fixing, without changing anything on its own.
Today those three tools only work with a server. With a SQLite or DuckDB file open, you would see its execution plan drawn, the diagram of its tables and relationships, and you could build queries without writing SQL, just as with a remote database.
With a larger text size in Settings, part of the interface still keeps its fixed type: lists, headers and labels in several tools. I want all of it to follow your setting, accessibility sizes included, with columns, rows and icons rearranging themselves instead of clipping. Nothing changes on the Mac.
Nothing right now: everything decided for 1.8 is under In progress.
Portuguese as the seventh interface language, after Japanese.
The SQLite Editor opens unencrypted databases only. Supporting SQLCipher means shipping and maintaining a fork of SQLite inside a sandboxed App Store app, and the tool is meant for inspecting Core Data stores and embedded application databases, which are not encrypted.
Showing where you are would require a location permission and a matching entry in the App Store privacy label, in exchange for something this tool does not need: what matters on the map is where your data is, not where you are.
It would be tempting to test the main and the alternate host in parallel and pick the fastest. Opening and dropping TCP connections without completing the handshake increases aborted_connects on the server and can end in Host is blocked because of many connection errors. The failover happens on the real attempt instead.
MongoDB is a self-contained tool with its own session and its own set of tabs, not a new engine behind the existing ones. The relational abstraction models foreign keys, binlogs, replication and EXPLAIN; a document database would leave most of that empty, and every tool would have to start asking what kind of session it is looking at.
On Apple Vision Pro, “Open in space” in the ER Diagram lays the diagram out in the room around you, without hiding the room or the Calíope window: each table becomes a card with its columns, each foreign key a line from its column to the other, and each schema has its own layer. You move the cards with your hand, or from the panel in front of you, which does everything without gestures; tap a card to see its relationships and its CREATE TABLE, and save the arrangement on this device. With more than 200 tables the lines are not drawn, except those of the card you select. The space only reads: nothing you do in it changes the server. More in the Help.
Elasticsearch and OpenSearch join with tools of their own, the way MongoDB, Redis and Cassandra do, over a client I wrote only from the official REST API specifications of both products, without borrowing from Kibana or other tools, like every other driver in Calíope: Query in Query DSL, SQL, ES|QL or PPL, Indices, Cluster health, Node, Running tasks, Snapshots, and Users and roles. OpenSearch began as a fork of Elasticsearch, so one client serves both, and Test connection tells them apart. Twelve chapters in the DBA Handbook. What Kibana and OpenSearch Dashboards do stays outside. Elasticsearch 8.18 and OpenSearch 2.19 or newer.
A backup — a scheduled one included —, a restore or a long query shows its progress on the iPhone’s Lock Screen and in its Dynamic Island, on the iPad’s Lock Screen and in the Smart Stack of the paired Apple Watch: the connection, how far along it is and what is left when that is known. Tapping it takes you back to its tab, and “Stop” stops it from there. It all happens while Calíope is open: if you leave it with a backup running, the system gives it about half a minute, then the backup pauses with what is done saved and carries on when you come back. SQL alerts now tell you when a rule fires, too. Apple Vision Pro has none: there the task is followed in the activity panel. More in the Help.
In progress means I have committed and work is underway.
Planned means I have decided to build it and say why; work has not started yet. No delivery date is implied.
Under consideration means I am weighing scope, technical fit and demand. No delivery date is implied.
Not planned means I decided against it. The entry stays visible with its reason, so the decision is transparent rather than silent.
Shipped means it is in the app today. The version it landed in is on each entry — and note that the newest version may not be on the App Store yet; the notice at the top says which one is.
Looking for the full list of what has shipped? See the changelog →