denoland/celldPublic

self-hosted, distributed Durable Objects

Deployment lifecycle: list, preview, rollback, and prune versions

SA

celld v0.4.0 now has a clear single-current deployment model: `celld deploy` moves `deploy/current.json`, then nodes adopt it in place.

What seems missing is the lifecycle of the immutable versions left behind. Previous `deploy/<script>/<version>` objects remain in the bucket, but there is no supported way to:

1. list previous versions; 2. access one directly without changing the current deployment; 3. move current back to one for rollback; 4. safely prune deployments and shared blobs no longer reachable through current or named pointers, queue attachments, or service bindings.

Direct version access might need an explicit contract for stateful applications: whether it runs against the fleet's live cell state or isolated preview state. Cloudflare's version preview URLs, for example, currently exclude Workers implementing Durable Objects. Still, someone picking a rollback version should be able to do so without having to guess whether the version is compatible with the current state of the fleet.

[#175](https://github.com/denoland/celld/issues/175) asks for “a supported way to delete one cell”; this request concerns deployment artifacts instead.

Would a first-party version lifecycle like this be in scope? I have no strong preference on the exact CLI or endpoint shape, but I would prefer not to have external tooling guess celld's reachability and state rules

  1. bartlomiejuassigned bartlomieju2 months ago on GitHub

  2. SA
    Author

    Hi @bartlomieju, sorry for the ping but do you think it would be useful to have a `prune` experimental cli just as a starter?

    Ideally that support some basic customizable usage that deletes N builds for a particular deployment, or older than Y time.

  3. bartlomiejumentionedlast month on GitHub

  4. bartlomiejusubscribedlast month on GitHub

  5. kindysubscribedlast month on GitHub

  6. khaled-mansour-zidreferenced this in Every activation adds a whole-database copy to the bucket, and superseded epochs are never deleted #240last month on GitHub