#113 Improved rendering of config arrays and objects in logs. #117
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.
Improved rendering of config trees. Now arrays and objects are flattened and every line of the rendered config corresponds to a primitive value or array of primitive values.
Because of the flattened keys like
pramen.sources[1].jdbc.password
, thegetRedactedFlatConfig()
method should now work properly on matching the "password" token inside the key and redacting the value. Before, the password was hiding insidepramen.sources
array as a value and was not redacted.I was thinking how to do this in a nice way and discovered the
ConfigValue
,ConfigList
andConfigObject
interfaces which can be pattern matched against to traverse the config tree.ConfigValueType
can then be used to check if theConfigList
only consists of primitive types.Some ideas for discussion
I don't know if
getFlatConfigOfPrimitiveValues()
is a good name.I only substituted the
getFlatConfig()
for the newgetFlatConfigOfPrimitiveValues()
inlogEffectiveConfigProps()
function which logs the config when running a pipeline. But I did not substitute it in other uses ofgetFlatConfig()
(for example, creating .properties from the Config for Kafka configuration or rendering the smtp config in Sendable,getExtraOptions()
) because in those other places, it may be undesirable.