Skip to main content
Versions is the history of this server’s managed state, and the screen most of the product’s other work starts from.

Capturing

Press Create Version, on Overview or on Versions. Blueprints asks every available adapter for its whole domain, normalises what comes back, and writes one immutable document to your server. A capture is all-or-nothing per adapter: if a domain cannot be read completely, that capture fails and names the adapter, rather than recording a partial world that would later read as mass deletion. A Version records:
  • every managed object, with its identity, type, transform, bounds and properties;
  • the map it was taken on;
  • which adapters were authoritative, and the data format each was writing;
  • when it was taken, and by whom.
Capturing does not touch the world. It is a read.

The list

Each row is one Version: its id, when it was captured, the map, the object count, and its origin. Selecting a Version gives you the actions along the top: Clone exists as the honest answer to “I want another copy of this”. It copies the document under a new local id and changes nothing about where it came from: a clone of an imported Version is still imported.

Comparing two Versions

Compare lives inside Versions rather than as its own nav entry, because comparing is something you do to two Versions and has no meaning without them. The result is per object, in three classes:
Present in the later Version, absent from the earlier one.
Present in both, with a different transform or a different property value. The report shows the old value and the new one, per field.
Present in the earlier Version, absent from the later one.
Numbers compare with a small tolerance, so a coordinate that lost a little precision on its way through JSON is not reported as a change for ever after.
A diff is only meaningful within one map. Comparing Versions from two different maps is refused rather than offered behind a flag: the objects in them are not the same objects, and a report that pretended otherwise would be worse than no report. Moving a build to another map is what Migration is for.

Why the diff is readable

Because identity is stable. A prop you dragged three metres is one changed row, not one removed plus one added. That is the whole point of the identity contract, and it is also why an adapter that derives an object’s id from its position destroys a build the first time somebody moves something. See Identity. Where identity genuinely cannot be established, the diff says so, in a closed vocabulary, rather than guessing:

Imported Versions

A Version imported from another Vetra installation behaves differently in exactly one way.
An imported Version cannot be restored on this server. It can be inspected, compared and used as a migration source, and it is what a deployment applies. It cannot be restored, because the object identities inside it belong to the server that captured it, and the same id means something different here.
That refusal is read from the Version’s own immutable origin marker, not from a sidecar file, so deleting something cannot turn it off. To apply an imported Version to this server, use Deploy.

Where they live

On your own server, as ordinary files. Blueprints does not send them anywhere on its own. See Where your work is stored.