Skip to content

Versions and publishing

Publishing moves a pointer. Rolling back and rolling forward are the same operation.

concept~2 minVerified v0.66.0

A version is a server-assigned positive integer, rendered v1, v2, and so on. The client does not choose it: the server reads the current record and increments.

Versions are immutable once written. A correction is a new version, never an edit of an old one.

One version is live at a time

An artifact serves exactly one version — its published version. A new deploy publishes itself, so deploying feels like deploying. Publishing any other version is a separate, deliberate act.

Publishing is a pointer move rather than a rebuild, so rolling back and rolling forward are the same operation. The version's data policy moves with the pointer: only the owner may publish a version that collects under a different policy from the live one.

Previewing an unpublished version

GET /{id}/_v/{n}/ serves version n directly. For the owner that works for any version; for anybody else it only works when n is the published one — otherwise unpublished drafts would be readable by URL, which would defeat the point of publishing being a choice.

What this buys you

  • A deploy that went wrong is undone by publishing the version before it, in one action.
  • A superseded version stays until you delete it. Any version but the published one can be deleted from the Versions tab, for good; its number is never reused.
  • The history says which agent wrote each version and when, and the activity ledger records which version a reader opened.