Concise diff makes it harder to understand the effect of this plan

Bumping this to add:

Using Terraform 0.15.5 and about to move to 1.X, however, the inability to disable the concise diff is proving problematic for certain resources.

For example:

-/+ resource "google_bigquery_table" "super_awesome_table" {
      <snip>
      ~ schema              = jsonencode(
          ~ [ # forces replacement
                # (18 unchanged elements hidden)
                {
                    mode = "NULLABLE"
                    name = "column_name_000"
                    type = "STRING"
                },
              ~ {
                  ~ type = "FLOAT" -> "STRING"
                    # (2 unchanged elements hidden)
                } # forces replacement,
              ~ {
                  ~ type = "FLOAT" -> "STRING"
                    # (2 unchanged elements hidden)
                } # forces replacement,
              ~ {
                  ~ type = "FLOAT" -> "STRING"
                    # (2 unchanged elements hidden)
                } # forces replacement,
                {
                    mode = "NULLABLE"
                    name = "column_name_001"
                    type = "STRING"
                },
              ~ {
                  ~ type = "FLOAT" -> "STRING"
                    # (2 unchanged elements hidden)
                } # forces replacement,
              ~ {
                  ~ type = "FLOAT" -> "STRING"
                    # (2 unchanged elements hidden)
                } # forces replacement,
              ~ {
                  ~ type = "FLOAT" -> "STRING"
                    # (2 unchanged elements hidden)
                } # forces replacement,
              ~ {
                  ~ type = "FLOAT" -> "STRING"
                    # (2 unchanged elements hidden)
                } # forces replacement,
              ~ {
                  ~ type = "FLOAT" -> "STRING"
                    # (2 unchanged elements hidden)
                } # forces replacement,
                {
                    mode = "NULLABLE"
                    name = "column_name_002"
                    type = "STRING"
                },
                # (26 unchanged elements hidden)
                {
                    mode = "NULLABLE"
                    name = "column_name_003"
                    type = "STRING"
                },
              ~ {
                  ~ name = "column_name_004" -> "column_name_005"
                    # (2 unchanged elements hidden)
                } # forces replacement,
            ]
        )

Note that in this case I’ve got columns of a datatable defined and an external person/process has caused some column types to change their datatype for whatever special reason.

Now, instead of writing an automated response to go through and alert on the changes I’ve got to go through the definition manually (worst case) or write a vastly more complicated automated process to cover this.

In this particular instance, being able to disable the concise diff for certain runs (as a flag on the cli or an env…preferably a flag on the cli) would be extremely helpful, and should be relatively simple to implement.

Hi @phowellp6! Thanks for sharing this feedback.

I want to make sure I understand fully the problem you encountered. Are you saying that the challenge here is that the diff has hidden the name attribute and so you can’t tell which of the columns have had their types changed?

I’m not the original poster, but I conceptually have the same problem: I’m managing AWS IAM policies, which can have multiple statements each, which in turn can have multiple actions each, but often too many attributes are hidden by the concise diff output so that identifying which policy statement (or which statement action) a section of the diff is about becomes impossible. I tried setting TF_X_CONCISE_DIFF=0 in my environment with Terraform 1.0.1, but that no longer seems to disable the concise diff output. I need a way to disable concise diff output, and I can’t find documentation about how to do that (nor documentation stating that it cannot be disabled, which would be better than no documentation at all).