Automatic backups and a recovery key

v0.2.21
•Platform

Features

  • Setup: after the owner signs in, the setup wizard asks how to start: fresh, restore from a git backup, or restore from a backup file. A restore keeps the sign-in you just used and finishes setup for you.
  • Backup: snapshots are taken automatically every hour by default, or every day, or never, and every snapshot is pushed to the connected repository straight away. Automatic snapshots start once first-time setup is complete, and a run that finds no change adds no snapshot.
  • Backup: Config Manager shows when the remote last confirmed your latest backup and why a backup failed. A Config Backup alarm is raised when backups keep failing for 15 minutes and clears on the next successful push.
  • Backup: an optional recovery key encrypts every backed-up secret a second time, so passwords and tokens can be restored on a replacement node. The key is shown once, and ControlBird never keeps the part that decrypts.
  • Backup: a restore that meets secrets this node cannot read asks for the recovery key, refuses a wrong key before changing anything, or restores without those secrets if you choose.
  • Backup: Connect GitHub signs in with a short code, lets you pick or create a private repository, and leaves only a deploy key for that one repository on the node. Your GitHub sign-in is not kept.
  • Backup: compiled programs are included in backups, so a restored node runs its programs at once. AI chat history and the automatic backup setting are not included.
  • Cloud: factory restoring or deleting a cloud node is much faster.

Bug Fixes

  • Programs: an entity a program creates is recorded as written by that program, so a program can no longer make a new entity look like the platform wrote it.
  • Backup: backups encrypt secrets only for the encryption keys of the cluster's own nodes.
  • Backup: restoring a backup onto a node whose owner signed in with the same OAuth provider no longer creates a duplicate provider.
  • Backup: the connection to a backup repository stays with the node and is not part of a backup, so restoring never changes where a node pushes to.