terraform/lang/funcs
Martin Atkins 14336ae6f8 lang/funcs: Conversion functions can handle sensitive values
In order to avoid updating every one of our existing functions with
explicit support for sensitive values, there's a default rule in the
functions system which makes the result of a function sensitive if any
of its arguments contain sensitive values.

We were applying that default to the various type conversion functions,
like tomap and tolist, which meant that converting a complex-typed value
with a sensitive value anywhere inside it would result in a
wholly-sensitive result.

That's unnecessarily conservative because the cty conversion layer (which
these functions are wrapping) already knows how to handle sensitivity
in a more precise way. Therefore we can opt in to handling marked values
(which Terraform uses for sensitivity) here and the only special thing
we need to do is handle errors related to sensitive values differently,
so we won't print their values out literally in case of an error (and so
that the attempt to print them out literally won't panic trying to
extract the marked values).
2021-04-19 12:10:50 -07:00
..
testdata lang/funcs: templatefile function 2018-12-21 08:06:14 -08:00
cidr.go add test cases and remove no-longer-needed validation 2020-07-08 13:53:54 -04:00
cidr_test.go add test cases and remove no-longer-needed validation 2020-07-08 13:53:54 -04:00
collection.go lang/funcs: "one" function 2021-04-12 15:32:03 -07:00
collection_test.go lang/funcs: "one" function 2021-04-12 15:32:03 -07:00
conversion.go lang/funcs: Conversion functions can handle sensitive values 2021-04-19 12:10:50 -07:00
conversion_test.go lang/funcs: Conversion functions can handle sensitive values 2021-04-19 12:10:50 -07:00
crypto.go lang/funcs: Add support for OpenSSH RSA key format 2020-06-03 10:50:38 -04:00
crypto_test.go lang/funcs: Add support for OpenSSH RSA key format 2020-06-03 10:50:38 -04:00
datetime.go cleanup comments for nicer godocs 2018-10-16 18:49:20 -07:00
datetime_test.go cleanup comments for nicer godocs 2018-10-16 18:49:20 -07:00
defaults.go functions: Fix missing defaults for objects/tuples 2021-03-12 18:14:14 -05:00
defaults_test.go functions: Fix missing defaults for objects/tuples 2021-03-12 18:14:14 -05:00
encoding.go lang/funcs: Rename the base64 character encoding functions 2020-10-21 10:56:56 -07:00
encoding_test.go lang/funcs: Rename the base64 character encoding functions 2020-10-21 10:56:56 -07:00
filesystem.go lang/funcs: Filesystem functions hint about dynamically-generated files 2020-06-24 09:02:38 -07:00
filesystem_test.go lang/funcs: Filesystem functions hint about dynamically-generated files 2020-06-24 09:02:38 -07:00
number.go remove old funcs code 2020-03-03 15:23:58 -05:00
number_test.go remove old funcs code 2020-03-03 15:23:58 -05:00
sensitive.go lang/funcs: Make nonsensitive more permissive 2021-04-12 12:31:59 -04:00
sensitive_test.go lang/funcs: Make nonsensitive more permissive 2021-04-12 12:31:59 -04:00
string.go remove old funcs code 2020-03-03 15:23:58 -05:00
string_test.go remove old funcs code 2020-03-03 15:23:58 -05:00