ToolJovia
Developer

Environment File Drift Review

Compare multiple supplied dotenv snapshots for missing keys and exact value-equivalence groups while omitting all assignment values and value hashes.

✓ Browser-local processing

Loading tool…

How to use Environment File Drift Review

Compare multiple supplied dotenv snapshots for missing keys and exact value-equivalence groups while omitting all assignment values and value hashes. Choose an explicit baseline and inspect source-line witnesses, duplicate shadowing and ignored keys. The report helps review deployment configuration drift without expanding or exporting secrets.

  1. Provide optional environment comparison json bundle, named environment sources and baseline as json.
  2. Choose the supported mode and run the tool. Review its assumptions and any reported errors.
  3. Copy the result or download a separate output; reset to clear the current form.

Good to know

  • One explicit JSON bundle {baseline,files:[{name,source}],ignoreKeys?}; 2–12 uniquely named snapshots. Bundle at most 200 KB, combined decoded source 150,000 UTF-8 bytes, each source 65,536 bytes/2,000 physical lines/500 assignments, each line 8,192 characters. Public snapshot names use 1–64 ASCII letters, digits, dot, underscore or hyphen.
  • Selected strict Node-style dotenv grammar: ASCII NAME=value, optional literal export followed by a space, ASCII outer space/tab trimming, hash comments, single/double quotes and quoted multiline values. Double-quoted \n becomes a newline; other backslashes remain literal. Backtick quoting, unclosed quotes, suffix text after a closing quote, BOM, bare CR and prohibited controls are refused. This is not every dotenv package/shell or Node permissive-error behavior.
  • Variable names are case-sensitive ASCII letters/digits/underscore, begin with a letter/underscore and are at most 128 characters. Duplicate names in one source use its last assignment while showing shadowed line numbers. Prototype-like variable names stay literal row strings instead of being assigned to object prototypes; native object emission is not promised. Empty strings are present values, distinct from missing variables. At most 1,000 nonignored distinct names and 100 unique ignored names.
  • Assignment values, source lines, comments, value lengths and value hashes are never returned. Equality groups such as v1/v2 are local ordinal labels that expose only which supplied values match for that key. Errors identify snapshot indexes/line numbers and fixed messages; even invalid input must not echo secret source fragments. The local input form itself retains your source until cleared.
  • No process environment is read or changed, ${NAME} expanded, command run, file discovered, URL visited or secret validated. Baseline comparison does not infer application defaults, runtime precedence, Windows name folding, deployment completeness or safe credentials.
  • A dedicated same-origin module Worker has a 10-second preparation limit and a separate 2-second computation deadline. Actual browser/Worker/CSP and platform behavior require their own validation; a source comparison is not a successful deployment check.
  • Structured text output is limited to 500,000 characters. Reduce the supplied source when that separate output budget is exceeded.
  • Inputs are processed on this device and are not automatically saved or uploaded.

Common questions

How can values be compared without appearing in the report?

The local computation compares the decoded source strings in memory and assigns ordinal equivalence labels for each variable. It exports those labels, presence and line witnesses, while omitting both the values and their hashes. This still reveals equality relationships, so review the report before sharing it.

Does this change my original input?

No. The tool returns a separate result. Review that output before using it in another application.

Keep going with related tools

All developer →