A deployment record can finally describe everything its portal runs with

Every portal we operate has a record that says what it is: its host, its database, how much memory it gets, which secrets it reads. The idea is simple — change the record, regenerate the configuration, deploy. The record is the source of truth and nothing is kept in step by hand.

That only works if the record can describe the portal. Ours could not, and the gap was the dangerous kind: regenerating a portal's configuration from its own record deleted settings that were keeping it running, silently, because the record had nowhere to put them.

What was wrong

A portal reads its passwords and API keys out of a secure vault. The record had room for one such connection. Our own portal uses two — one holding its database connection, its GitHub key and its AI provider keys, and a second, newly added, holding the credential it uses to fetch plugin updates.

With room for only one, the record described one and the second existed only in a separate file. Regenerating from the record would have deleted the plugin credential added that same morning to fix a broken update feed, detached thirteen other keys from the running portal, and pointed it at a vault entry that does not exist — which stops new instances from starting at all. Measured against the deployed configuration, forty-one settings would have been lost.

There was a second, quieter problem. The record refused to let one vault entry be read under two names — and that is exactly what the plugin-update fix needed, because two parts of the portal look for the same credential under different names. The same refusal had already been quietly losing one of the AI provider keys on the public portal.

What changes

A record can now describe as many secret stores as the portal actually reads, and one vault entry may be read under as many names as the portal looks for. The reverse is now checked instead, which is the rule that matters: a single setting may only come from one place. Two sources for one setting means whichever the system happens to read last wins, and that is how a portal once crashed on startup with half its email configuration.

A record can also now write down two things that only ever existed on the running machine:

Along the way, this made a few things visible that nobody had written down: a setting the public portal reads as off while every file says on; three settings that would simply vanish if someone "tidied up" the cluster, because nothing else supplies them; and a vault entry two portals are configured to read that has never been created — which will stall their next deploy until it is.

Credentials themselves are still never recorded. A setting that carries one says so and leaves the value out, and a record that tries to keep both is refused rather than quietly trimmed.

Reconnecting…
The server was updated. Reloading the page to pick up the latest version.