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.