Skip to content

Commit cfd5df1

Browse files
committed
Fix sensitive data filtering
1 parent cb2f7ac commit cfd5df1

File tree

2 files changed

+18
-24
lines changed

2 files changed

+18
-24
lines changed

lib/solid/process/event_logs/json_logger_listener.rb

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ class JsonLoggerListener
1616
self.backtrace_cleaner = backtrace__cleaner
1717

1818
def on_finish(event_logs:)
19-
serialized_attributes = filter_and_serialize_attributes(event_logs)
19+
serialized_event_logs = filter_and_serialize(event_logs)
2020

21-
json_data = {event_logs: serialized_attributes}
21+
json_data = {event_logs: serialized_event_logs}
2222

2323
logger.info(json_data.to_json)
2424
end
@@ -30,21 +30,19 @@ def before_interruption(exception:, event_logs:)
3030
backtrace: backtrace_cleaner.clean(exception.backtrace).join("; ")
3131
}
3232

33-
serialized_attributes = filter_and_serialize_attributes(event_logs)
33+
serialized_event_logs = filter_and_serialize(event_logs)
3434

35-
json_data = {event_logs: serialized_attributes, exception: exception_data}
35+
json_data = {event_logs: serialized_event_logs, exception: exception_data}
3636

3737
logger.error(json_data.to_json)
3838
end
3939

4040
private
4141

42-
def filter_and_serialize_attributes(event_logs)
43-
filter_and_serialize(event_logs).attributes(main_records_only: true)
44-
end
45-
4642
def filter_and_serialize(event_logs)
47-
records = event_logs[:records].map do
43+
serialized_attributes = Serialization::Model.serialize(event_logs).attributes(main_records_only: true)
44+
45+
records = serialized_attributes[:records].map do
4846
result = _1[:result]
4947
result_value = parameter_filter.filter(result[:value].dup)
5048
result_filtered = result.merge(value: result_value)
@@ -56,9 +54,7 @@ def filter_and_serialize(event_logs)
5654
_1.merge(result: result_filtered, and_then: and_then_filtered || and_then)
5755
end
5856

59-
filtered_event_logs = event_logs.merge(records: records)
60-
61-
Serialization::Model.serialize(filtered_event_logs)
57+
serialized_attributes.merge(records: records)
6258
end
6359
end
6460
end

lib/solid/process/event_logs/record/listener.rb

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -47,23 +47,23 @@ def create_record(event_logs, exception_data: nil, caller: nil)
4747

4848
def create_record!(event_logs, exception_data:)
4949
::Rails.error.record do
50-
serializad_event_logs = filter_and_serialize(event_logs)
51-
52-
record_attributes = serializad_event_logs.attributes
50+
serialized_event_logs = filter_and_serialize(event_logs)
5351

5452
if exception_data
55-
record_attributes[:category] = "error"
56-
record_attributes[:exception_class] = exception_data[:class]
57-
record_attributes[:exception_message] = exception_data[:message]
58-
record_attributes[:exception_backtrace] = exception_data[:backtrace]
53+
serialized_event_logs[:category] = "error"
54+
serialized_event_logs[:exception_class] = exception_data[:class]
55+
serialized_event_logs[:exception_message] = exception_data[:message]
56+
serialized_event_logs[:exception_backtrace] = exception_data[:backtrace]
5957
end
6058

61-
Record.create!(record_attributes)
59+
Record.create!(serialized_event_logs)
6260
end
6361
end
6462

6563
def filter_and_serialize(event_logs)
66-
records = event_logs[:records].map do
64+
serialized_attributes = Serialization::Model.serialize(event_logs).attributes
65+
66+
records = serialized_attributes[:records].map do
6767
result = _1[:result]
6868
result_value = parameter_filter.filter(result[:value].dup)
6969
result_filtered = result.merge(value: result_value)
@@ -75,9 +75,7 @@ def filter_and_serialize(event_logs)
7575
_1.merge(result: result_filtered, and_then: and_then_filtered || and_then)
7676
end
7777

78-
filtered_event_logs = event_logs.merge(records: records)
79-
80-
Serialization::Model.serialize(filtered_event_logs)
78+
serialized_attributes.merge(records: records)
8179
end
8280
end
8381
end

0 commit comments

Comments
 (0)