Keel

Secret version history and rollback

Changing a secret should never mean losing the value it replaced. Keel records each change as a numbered version and lets authorised people restore an earlier one.

Why version history matters

A bad value in production is one of the faster ways to cause an outage. When a credential is changed by mistake, or a new key turns out to be wrong, the quickest fix is to put the previous value back. Without history that value is gone, or lives in someone's terminal scrollback.

What is recorded

  • Each create, update, and restore produces a new version number.
  • Versions store the encrypted value, never plain text.
  • Writes are guarded so two people changing the same secret at once cannot silently overwrite each other.
  • Viewing an old value is recorded in the audit log.

Restoring a value

Restoring version 3 does not rewind history. It creates a new latest version containing the value from version 3, and every earlier version stays in place. The audit log records the restore and which version it came from.

A note on secrets that leaked

History helps you recover from mistakes. It does not make a leaked credential safe. If a secret has been exposed, change it at the provider that issued it, then update Keel. See how to keep secrets out of Git repositories for the full cleanup order.

Frequently asked questions

Can I see the old values?
Yes, if your role allows reading secrets in that environment. Viewing an earlier version is recorded in the audit log.
Does restoring delete the newer versions?
No. A restore adds a new version with the older value. Nothing is removed.
What about secrets created before versioning existed?
Their current value becomes version 1. No earlier history is invented.