@@ -69,14 +69,18 @@ def preserve_sensitive_values(
6969 original_nested = original_config .get (key , {})
7070 preserved_config [key ] = preserve_sensitive_values (new_value , original_nested )
7171 elif isinstance (new_value , list ):
72- # Process list items (preserve original if matching structure)
7372 original_list = original_config .get (key , [])
74- preserved_config [key ] = [
75- preserve_sensitive_values (new_item , orig_item )
76- if isinstance (new_item , dict ) and isinstance (orig_item , dict )
77- else new_item
78- for new_item , orig_item in zip (new_value , original_list )
79- ] if len (new_value ) == len (original_list ) else new_value
73+ preserved_list = []
74+ for i , new_item in enumerate (new_value ):
75+ if i < len (original_list ):
76+ orig_item = original_list [i ]
77+ if isinstance (new_item , dict ) and isinstance (orig_item , dict ):
78+ preserved_list .append (preserve_sensitive_values (new_item , orig_item ))
79+ else :
80+ preserved_list .append (new_item )
81+ else :
82+ preserved_list .append (new_item )
83+ preserved_config [key ] = preserved_list
8084 else :
8185 # Keep non-sensitive/non-masked values
8286 preserved_config [key ] = new_value
@@ -139,18 +143,17 @@ def mask_sensitive_info(text: str) -> str:
139143
140144 for field in SENSITIVE_FIELDS :
141145 patterns = [
142- rf'"{ field } "\s*:\s*"[^"]*"' ,
143146 rf'"{ field } "\s*:\s*"[^"]*"' ,
144147 rf'{ field } \s*=\s*[^\s,\]]+' ,
145148 rf"'{ field } '\s*:\s*'[^']*'" ,
146149 ]
147150
148151 for pattern in patterns :
149152 if '"' in pattern :
150- masked_text = re .sub (pattern , f'"{ field } ": "{ MASK_PATTERN } "' , masked_text )
153+ masked_text = re .sub (pattern , f'"{ field } ": "{ MASK_PATTERN } "' , masked_text , flags = re . IGNORECASE )
151154 elif "'" in pattern :
152- masked_text = re .sub (pattern , f"'{ field } ': '{ MASK_PATTERN } '" , masked_text )
155+ masked_text = re .sub (pattern , f"'{ field } ': '{ MASK_PATTERN } '" , masked_text , flags = re . IGNORECASE )
153156 else :
154- masked_text = re .sub (pattern , f'{ field } ={ MASK_PATTERN } ' , masked_text )
157+ masked_text = re .sub (pattern , f'{ field } ={ MASK_PATTERN } ' , masked_text , flags = re . IGNORECASE )
155158
156159 return masked_text
0 commit comments