# # Masking Smoke # # We expect the masking rules to be as follows: # # { # "rules": [ # { # "replace": { # "column": "a" # }, # "with": { # "fill": "X" # } # }, # { # "replace": { # "column": "b" # }, # "with": { # "value": "012345-ABCD" # } # }, # { # "replace": { # "column": "c" # }, # "with": { # "value": "012345-ABCD", # "fill": "X" # } # } # ] # } --disable_warnings drop database if exists maskingdb; --enable_warnings create database maskingdb; use maskingdb; # # Each table contains a single column 'a' of a type subject # to masking. # create table masking (a TEXT, b TEXT, c TEXT); # - a should be just "X...", # - b should be unchanged as the length does not match the string of "value", and # there is no catch all "fill". # - c should be just "X..." as the length does not match, so "value" is not applied # and has "fill", which is applied. # #a b c #XXXX 012345-ABC XXXXXXXXXX insert into masking values ("blah", "012345-ABC", "012345-ABC"); select * from masking; delete from masking; # - a should be just "X...", # - b should be changed as the length matches the length of the string of "value" # - c should be just "X..." as the length does not match, so "value" is not applied # and has "fill", which is applied. # #a b c #XXXXXXXX 012345-ABCD XXXXXXXXXX insert into masking values ("blahblah", "221073-01AB", "012345-ABC"); select * from masking; delete from masking; # - a should be just "X...", # - b should be changed as the length matches the length of the string of "value" # - c should be chanched into a specific string as the length matches the string of # "value" # #a b c #a b c #XXXXXXXXXXX 012345-ABCD 012345-ABCD # a should still be just "X", b should be "012345-ABCD" and c should be "012345-ABCD" insert into masking values ("221073-01AB", "221073-01AB", "221073-01AB"); select * from masking; delete from masking;