feat: enable literal scrubbed user query logging #26
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.
Description
This changeset improves the openCypher front end by adding an emitter type that can contain output configuration information. This type is used to add a switch in the format functions for stripping literals when outputting openCypher from the query model.
Stripped literals are replaced with a parameter named
$STRIPPED
. This allows the query to remain syntactically correct while removing any sensitive information contained in the literal values.Property names and other syntax elements are currently not considered sensitive.
Output Example
Other Changes
io.Writer
type for flexibility.Motivation and Context
It's very hard to trace what queries may be problematic from the BH application log. In order to enable log output for user queries we need to first scrub any literal data in it.
How Has This Been Tested?
Added unit tests to cover the new path.
Types of changes
Checklist: