Every system collects secrets the way a coat pocket collects lint. A token here. A password there. A key minted in a hurry and pasted into a config file you’ll never think about again — until the machine it lived on dies, and you discover the only copy of the thing that unlocked half your fleet went with it.
The spec behind all this existed to end exactly that. (A power cut interrupted me in the middle of building it, which is its own story — but this post is about why it was worth building in the first place.)
The mess it was replacing
Before it, the secrets were scattered — a dozen-odd credentials spread across a handful of machines, each sitting in whatever file happened to consume it. No list of what existed. No copy anywhere but the one place it ran. Deliberately kept out of version control — because you don’t commit secrets — which meant the one safe-from-prying-eyes property doubled as a never-backed-up property. If a machine burned down, recovery wasn’t “restore from backup.” It was archaeology: sitting in front of a blank file asking what was supposed to be in here, rebuilding each value from memory and scattered notes, one at a time, for hours.
And the quieter cost: nobody could answer the simple questions. What secrets do we even have? When was this one last changed? What breaks if I rotate it? Those answers lived in one place — a head — and heads don’t survive power cuts either.
The one idea
The spec’s whole purpose was to convert secrets from artifacts of memory into reproducible artifacts.
The move is almost embarrassingly simple to state: seal every secret as ciphertext, then put the ciphertext where you put everything else you care about — in version control, with history, with an off-machine copy. Plaintext exists only at the exact spot a service reaches for it, and only while it’s being read. The sealed form is the source of truth; the live file is just a projection of it.
That single inversion buys everything else for free:
- An inventory falls out automatically — the list of secrets is the list of files.
- A backup falls out automatically — the sealed copies live off the machine, in the same remote that already holds the code.
- Rebuilding a dead machine stops being archaeology and becomes a command: clone, decrypt, apply. Minutes, not hours.
- Rotation stops being a furtive hand-edit and becomes the same edit-commit-push as everything else — with a history that records who changed what, and when.
The price, stated honestly
There is a cost, and the spec doesn’t hide it: you’ve taken risk that used to be smeared across a dozen files on a dozen machines and concentrated all of it into a single key. Lose that key and every sealed secret becomes noise. Leak it and everything opens at once.
But that’s the good trade. Diffuse risk feels safer and is worse — it’s the kind you can’t see, can’t audit, and can’t defend, because it’s everywhere and nowhere at the same time. Concentrated risk you can actually protect: it’s one file. You can copy it to safe places. You can guard it like it matters, because now it visibly does. The spec doesn’t shrink the danger so much as gather it — pull it into one bright spot where it can be watched, instead of leaving it scattered through the whole system in the dark.
What it’s really arguing
Underneath the mechanics, the spec makes one claim: a secret you can only restore from memory isn’t backed up — it’s just unspilled. Its purpose was to stop trusting memory with the things that unlock everything, and to make each of them something you could recreate from record — sealed, versioned, reproducible — so that no single machine’s death, and no single session’s death, could carry a secret into the grave with it.
Which is exactly why a session dying halfway through building it was so survivable. It was assembling the one thing whose entire point is that nothing important should live in only one place. It just hadn’t finished applying that lesson to its own keystone yet — which is the story of the day the power went out.
# comments (0)
no comments yet — be the first.