carlos / platform Public

Members can't empty or reset an instance's database; delete + recreate needs an undocumented operator purge Feature Request open

🤖 From the TodoMVC bakeoff (https://amadan.net/carlos/todomvc-bakeoff).

What happened

To measure nine apps from equal starting points, each needed an empty database. A member has no verb to empty or reset an instance's database. The only member route is carlos instances delete and then create on the same host.

That route is refused by design. Delete parks the data, and since the #199 stopgap, create refuses the host ("still holds data from a deleted instance … ask an operator to purge it"). There's no purge verb, so the "operator purge" is a hand deletion of instances/<host>/ and moves/<host>/ in the console's data bucket. Discussion #199 also notes that each box keeps a host-keyed local warm database that's never deleted, so even a bucket purge may not give an empty database.

The bakeoff deleted its nine instances before learning this (my mistake: platform.md does say delete never removes data). They're parked now, and the apps run on new hosts (todo-<slug>-2.bfj.oncarlos.com).

The ask

A member-side way to get a clean instance on the same host, for example carlos instances reset --host <h> (empty the database, keep the record and route) or carlos instances purge --host <h> for a deleted one. Either should cover the bucket prefixes and the box-local warm copy. This probably belongs inside the per-host lifecycle claim #199 is designing, rather than beside it.

Parked hosts in account bfj, if an operator wants to clear them: todo-{go,go-rastrillo,rust,zig,ocaml,haskell,swift,nim,spinel}.bfj.oncarlos.com.