Skip to main content

vulkro-sf metadiff

Produces a semantic diff between two metadata snapshots of the same project or org. Where a plain text diff drowns you in XML noise, metadiff understands the metadata model: it reports "field Account.Region__c changed type from Text(40) to Picklist" rather than a wall of changed lines. Use it to review a deploy before it ships, to audit what actually changed between two releases, or to confirm a sandbox refresh landed what you expected.

Works over two retrieved snapshots on the local machine. No org connection is opened by the command.

Synopsis

vulkro-sf metadiff --from <path> --to <path> [flags]

Flags

FlagTypeDefaultDescription
--from <path>string(required)The earlier (baseline) metadata snapshot folder.
--to <path>string(required)The later metadata snapshot folder being compared against the baseline.
--format <fmt>enumtableOutput format: table (human-readable grouped summary) or json (machine-readable change records, for piping into a release note generator or a review tool).

Exit codes

  • 0 - the two snapshots are identical within the checked scope.
  • 1 - differences were found and reported.
  • 2 - error: a snapshot folder is missing or unreadable, parse failure, or internal error. The message names the cause and the next step.

What it does

metadiff parses both snapshots into a structured metadata model and reports the difference at the component-attribute level, grouped by change type:

  • Added components present in --to but not --from.
  • Removed components present in --from but not --to.
  • Changed components present in both, with the specific attributes that differ (a field's type, a flow's active version, a validation rule's formula, a permission set's granted scope).

Each change record names the component, the attribute, and the before and after values. The table format groups changes for human review; the json format is the integration surface for generating release notes or feeding a deploy gate.

Example

# Semantic diff between last release and this one.
vulkro-sf metadiff --from ./release-1.4 --to ./release-1.5

# JSON to feed a release-note generator.
vulkro-sf metadiff --from ./release-1.4 --to ./release-1.5 \
--format json > metadiff.json