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
| Flag | Type | Default | Description |
|---|---|---|---|
--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> | enum | table | Output 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
--tobut not--from. - Removed components present in
--frombut 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