Drift Detection
A diagram is only useful if it matches reality. Drift detection compares the diagram on your canvas against a baseline — a snapshot of what should (or does) exist — and highlights exactly what differs: resources that were added, removed, or changed.
Use it to answer questions like:
- Does my design still match what’s actually deployed? (compare against a live cloud export)
- Have I drifted from the IaC I’m targeting? (compare against a Terraform or CloudFormation file)
- What changed between this diagram and the one a teammate saved? (compare against an exported Strata JSON)
Run a comparison
- Open the Data ▾ menu and choose Compare for drift… (also in the ⌘K command palette). A picker opens.
- Choose a baseline to compare against — either:
- A saved diagram — any diagram saved in this browser (great for comparing against an earlier version of the same design); or
- A file — click Choose a file… and pick:
- Strata JSON — a diagram exported with Export JSON (any file with a
resourcesarray is treated as a native graph); or - Infrastructure-as-Code — CloudFormation (
.json,.yaml,.yml,.template), an Azure ARM template, or Terraform / OpenTofu (.tf,.tofu,.tfstate). These run through the same importer as Importing IaC.
- Strata JSON — a diagram exported with Export JSON (any file with a
- Strata diffs the baseline against the current canvas and opens the drift results panel.
The diagram on screen is always the current side; the baseline you pick is the baseline. So “added” means on your canvas but not in the baseline, and “removed” means in the baseline but not on your canvas.
Reading the results
When there are differences, drifted nodes are dotted on the canvas:
- Green dot — added (present in your diagram, missing from the baseline).
- Amber dot — changed (matched in both, but some configuration differs).
The drift results panel (top-right of the canvas) summarises everything:
- Counts — added / removed / changed / in-sync.
- Estimated cost delta — the rough monthly cost of your diagram vs the baseline, with the difference (e.g. $120/mo → $184/mo · ▲ +$64/mo). It’s the same heuristic as the cost estimate, so treat it as a relative signal — handy for “what does this change cost?” before you build it.
- Added & changed lists — click any entry to jump to and select that node. Changed entries show which configuration keys differ.
- Removed list — resources in the baseline that aren’t on your canvas. These have no node to dot, so they only appear here.
When nothing differs, the panel reads ”✓ In sync — no differences.” Close the panel (✕) to clear the dots.
How resources are matched
Diagrams and imports rarely share the same identifiers — a hand-built diagram uses internal IDs, while an import uses logical names or addresses. So Strata matches a resource to its baseline counterpart in this order:
- By ID, when both sides happen to share one.
- By ARN, when the resource has one.
- By service type + name otherwise.
This means a VPC named Main in your diagram matches a VPC named Main in the
baseline even if their underlying IDs are completely different — and renaming a
resource that has an ARN still matches by its ARN.
Configuration is compared key by key: a resource is changed if any configuration value differs between the two sides.
Drift is a point-in-time comparison against the file you load — it doesn’t poll your cloud. To check against live state, run a discovery export first, then compare against it.