terraform/internal/configs
Alisdair McDiarmid b06fe04621 core: Check rule error message expressions
Error messages for preconditions, postconditions, and custom variable
validations have until now been string literals. This commit changes
this to treat the field as an HCL expression, which must evaluate to a
string. Most commonly this will either be a string literal or a template
expression.

When the check rule condition is evaluated, we also evaluate the error
message. This means that the error message should always evaluate to a
string value, even if the condition passes. If it does not, this will
result in an error diagnostic.

If the condition fails, and the error message also fails to evaluate, we
fall back to a default error message. This means that the check rule
failure will still be reported, alongside diagnostics explaining why the
custom error message failed to render.

As part of this change, we also necessarily remove the heuristic about
the error message format. This guidance can be readded in future as part
of a configuration hint system.
2022-03-04 15:35:39 -05:00
..
configload configs/configload: snapshotDir must be used via pointer 2021-10-12 11:42:17 -07:00
configschema configs: Add sensitive marks for nested attributes 2021-11-25 11:55:17 -05:00
hcl2shim Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
testdata core: Check rule error message expressions 2022-03-04 15:35:39 -05:00
backend.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
checks.go core: Check rule error message expressions 2022-03-04 15:35:39 -05:00
cloud.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
compat_shim.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
config.go backend/local: Check dependency lock consistency before any operations 2021-10-01 14:43:58 -07:00
config_build.go skip provider resolution when there are errors 2021-12-06 14:28:34 -05:00
config_build_test.go Refactoring of module source addresses and module installation 2021-06-03 08:50:34 -07:00
config_test.go backend/local: Check dependency lock consistency before any operations 2021-10-01 14:43:58 -07:00
depends_on.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
doc.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
escaping_blocks_test.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
experiments.go configs: Decode preconditions and postconditions 2022-01-28 11:00:29 -05:00
experiments_test.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
module.go Allow cloud block overrides 2021-10-28 19:29:09 -05:00
module_call.go addrs: Expose the registry address parser's error messages 2021-11-30 15:46:16 -08:00
module_call_test.go addrs: ModuleRegistryPackage for representing module registry packages 2021-06-03 08:50:34 -07:00
module_merge.go IgnoreAllChanges should override during merge 2021-11-01 19:08:30 +00:00
module_merge_body.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
module_merge_test.go add failing test for IgnoreAllChanges override 2021-11-01 19:00:54 +00:00
module_test.go Allow cloud block overrides 2021-10-28 19:29:09 -05:00
moved.go configs: For Moved blocks, use addrs.MoveEndpoint instead of addrs.Target 2021-07-01 08:28:02 -07:00
moved_test.go normalise test names 2021-11-14 21:51:53 +00:00
named_values.go core: Check rule error message expressions 2022-03-04 15:35:39 -05:00
parser.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
parser_config.go configs: Decode preconditions and postconditions 2022-01-28 11:00:29 -05:00
parser_config_dir.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
parser_config_dir_test.go configs: valid-modules test ignores experimental features warning 2021-07-01 08:28:02 -07:00
parser_config_test.go configs: Decode preconditions and postconditions 2022-01-28 11:00:29 -05:00
parser_test.go Refactoring of module source addresses and module installation 2021-06-03 08:50:34 -07:00
parser_values.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
parser_values_test.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
provider.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
provider_meta.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
provider_requirements.go de-linting 2021-09-01 11:36:21 -04:00
provider_requirements_test.go addrs: Rename DefaultRegistryHost to DefaultProviderRegistryHost 2021-06-03 08:50:34 -07:00
provider_test.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
provider_validation.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
provisioner.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
provisioneronfailure_string.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
provisionerwhen_string.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
resource.go configs: Validate pre/postcondition self-refs 2022-02-03 09:37:22 -05:00
synth_body.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
synth_body_test.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
util.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
variable_type_hint.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
variabletypehint_string.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
version_constraint.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00