plugin: Fix an error when evaluating sensitive values #1501
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1457
See also terraform-linters/tflint-plugin-sdk#174
When evaluating a variable with
sensitive = true
, TFLint fails with the following error:This happens because sensitive values are implemented as cty marked values. Marked values will cause an error when encoded in the message pack format to respond to plugins.
https://github.com/terraform-linters/tflint-plugin-sdk/blob/v0.11.0/plugin/plugin2host/server.go#L132
https://github.com/zclconf/go-cty/blob/v1.11.0/cty/msgpack/marshal.go#L45-L47
This behavior works very well with sensitive values and avoids unintentional disclosure unless explicitly unmarked.
In this PR, to prevent unintentional disclosure of sensitive values, return an error and stop evaluation instead of unmarking sensitive values.