diff --git a/datadog_lambda/tag_object.py b/datadog_lambda/tag_object.py index 744e4893..67f6a14d 100644 --- a/datadog_lambda/tag_object.py +++ b/datadog_lambda/tag_object.py @@ -62,6 +62,6 @@ def _should_try_string(obj): def _redact_val(k, v): split_key = k.split(".").pop() or k - if split_key in redactable_keys: + if split_key.lower() in redactable_keys: return "redacted" return v diff --git a/tests/test_tag_object.py b/tests/test_tag_object.py index 574bb331..bd04bf4c 100644 --- a/tests/test_tag_object.py +++ b/tests/test_tag_object.py @@ -73,13 +73,14 @@ def test_tag_object_max_depth_0(self): "vals": [{"thingOne": 1}, {"thingTwo": 2}], } spanMock = MagicMock() + expected_value = str(payload) tag_object(spanMock, "function.request", payload) spanMock.set_tag.assert_has_calls( [ call( "function.request", - "{'hello': 'world', 'level1': {'level2_dict': {'level3': 3}, 'level2_list': [None, True, 'nice', {'l3': 'v3'}], 'level2_bool': True, 'level2_int': 2}, 'vals': [{'thingOne': 1}, {'thingTwo': 2}]}", + expected_value, ), ], True, @@ -105,6 +106,18 @@ def test_redacted_tag_object(self): True, ) + def test_redacted_tag_object_case_insensitive(self): + payload = { + "Authorization": "secret", + "headers": {"X-AUTHORIZATION": "another"}, + } + spanMock = MagicMock() + tag_object(spanMock, "function.request", payload) + spanMock.set_tag.assert_any_call("function.request.Authorization", "redacted") + spanMock.set_tag.assert_any_call( + "function.request.headers.X-AUTHORIZATION", "redacted" + ) + def test_json_tag_object(self): payload = { "token": "world",