Logo
NeoArc Studio

Versioning Graph Diagrams

Track changes to graph diagrams with snapshot versioning and lifecycle tagging. Create named snapshots, compare versions, and manage entity lifecycles with active, planned, and deprecated states.

Graph diagrams support version history, allowing you to track changes over time, create named snapshots, and restore previous states. Combined with lifecycle tagging, you can manage entity evolution by marking nodes as active, planned, or deprecated.

Version Storage

Graph diagram versions are stored in the same JSON file as the main diagram:

What Gets Versioned

Version snapshots capture the complete diagram state:

ComponentVersioned
Nodes (positions, labels, colours)Yes
Node properties (types, constraints, values)Yes
Node lifecycle status (active, planned, deprecated)Yes
Edges (connections, labels, cardinality)Yes
Edge propertiesYes
Tags and filtering stateYes
View settings (zoom, pan)No
Force simulation settingsNo

Creating a Version

Lifecycle Tagging on Graph Nodes

Individual nodes in a graph diagram can carry lifecycle status, providing a visual overlay of architectural intent.

StatusMeaningVisual Treatment
ActiveEntity is live in productionDefault styling, fully opaque
PlannedEntity is approved but not yet implementedDashed border or muted styling
DeprecatedEntity is being phased outFaded or strikethrough styling

Lifecycle status propagates to derived views. An entity marked as deprecated in the graph diagram appears as deprecated in ERD views, graph views, and search views automatically.

Succession Edges

When deprecating a node, assign its replacement using the replaced-by field. This creates traceable succession:

Version Metadata

Each version includes:

FieldDescription
IDUnique identifier (auto-generated UUID)
NameUser-provided version name
DescriptionOptional description of changes
TimestampWhen the version was created
Node CountNumber of nodes in this version
Edge CountNumber of edges in this version

Viewing Version History

The History panel shows all versions in chronological order with the most recent at the top.

Version List
Scrollable list of all snapshots with names and timestamps
Quick Preview
Hover over a version to see a thumbnail preview
Change Summary
See node/edge counts to understand version scope
Expand Details
Click to expand and see full description

Restoring a Version

Comparing Versions

You can compare any two versions to see what changed:

Change Detection

The versioning system detects changes at multiple levels:

Change TypeDetection
Node addedNew node ID not in previous version
Node removedNode ID missing from current version
Node movedPosition changed beyond threshold
Node label changedLabel text differs
Lifecycle status changedStatus value changed (e.g., planned to active)
Property addedNew property ID on existing node
Property modifiedProperty value, type, or constraints changed
Edge added/removedEdge ID presence changed
Edge label changedEdge label text differs

Version Naming Conventions

Use descriptive names that indicate what changed:

Good NamesAvoid
Added Customer relationshipsv2
Refactored Order propertiesUpdate
Pre-review baselineSnapshot 1
After stakeholder feedbackChanges
Deprecated legacy payment entitiesCleanup

Versioning vs Lifecycle Tagging

These two features serve different purposes and work together:

FeatureVersioningLifecycle Tagging
PurposeTrack change historyIndicate architectural intent
ScopeEntire diagram snapshotIndividual node or edge
Question answeredWhat did this look like before?Is this element live, planned, or retiring?
Use caseUndo/restore, audit trailMigration planning, governance, roadmaps