terraform/backend
Alisdair McDiarmid 09d8355f43 command: Add experimental concise diff renderer
When rendering a diff between current state and projected state, we only
show resources and outputs which have changes. However, we show a full
structural diff for these values, which includes all attributes and
blocks for a changed resource or output. The result can be a very long
diff, which makes it difficult to verify what the changed fields are.

This commit adds an experimental concise diff renderer, which suppresses
most unchanged fields, only displaying the most relevant changes and
some identifying context. This means:

- Always show all identifying attributes, initially defined as `id`,
  `name`, and `tags`, even if unchanged;
- Only show changed, added, or removed primitive values: `string`,
  `number`, or `bool`;
- Only show added or removed elements in unordered collections and
  structural types: `map`, `set`, and `object`;
- Show added or removed elements with any surrounding unchanged elements
  for sequence types: `list` and `tuple`;
- Only show added or removed nested blocks, or blocks with changed
  attributes.

If any attributes, collection elements, or blocks are hidden, a count
is kept and displayed at the end of the parent scope. This ensures that
it is clear that the diff is only displaying a subset of the resource.

The experiment is currently enabled by default, but can be disabled by
setting the TF_X_CONCISE_DIFF environment variable to 0.
2020-09-10 10:35:55 -04:00
..
atlas state: remove deprecated state package (#25490) 2020-08-11 11:43:01 -04:00
init Add kubernetes backend 2020-06-04 02:29:57 -04:00
local command: Add experimental concise diff renderer 2020-09-10 10:35:55 -04:00
remote state: remove deprecated state package (#25490) 2020-08-11 11:43:01 -04:00
remote-state backend/http: add support for configuration by environment variable (#25439) 2020-09-02 08:35:08 -04:00
backend.go state: remove deprecated state package (#25490) 2020-08-11 11:43:01 -04:00
cli.go backend: Update interface and implementations for new config loader 2018-10-16 18:39:12 -07:00
nil.go Change backend.ValidateConfig to PrepareConfig 2019-02-25 18:37:20 -05:00
nil_test.go backend: introduce the backend set of interfaces 2017-01-26 14:33:49 -08:00
operation_type.go Version tools per Go convention under tools.go 2019-10-17 22:23:39 +02:00
operationtype_string.go stringer: Regenerate files with latest version 2019-05-13 15:34:27 +01:00
testing.go state: remove deprecated state package (#25490) 2020-08-11 11:43:01 -04:00
unparsed_value.go Avoid leaking sensitive values in undeclared warnings 2019-11-05 17:32:57 -08:00
unparsed_value_test.go backend/local: Handle interactive prompts for variables in UI layer 2019-10-10 10:07:01 -07:00