minato_logger 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c9bf719d37bf79a26579772b2753989b316b3f78866f3533298df2f3aa3088dd
4
- data.tar.gz: 6339f31ad25bed2e5518e7a73a63e213fc2d3712043c075cfcd3759b0cacdf9a
3
+ metadata.gz: ae12d37ff687c3a12794e66161bc0989f52fc13dd47d7129f7ff45d50bf1283a
4
+ data.tar.gz: aa99d5be84564803b4cf84b91c40afec7b2eaa1e587f901452d939e015853d4d
5
5
  SHA512:
6
- metadata.gz: 647f83adf955ffb6f147759a0cd6ef3fc4be7bd523c79fdc63587eb507f6da4c3dabaf5f7624f0b636d0f2be867ea2cab2ccd353a43a75cbb7fdae8ee8ff4b0d
7
- data.tar.gz: 8831bb2737316ed30688f3fbdd08c585cbc0d51618ce19a95d76c1fc928cbb1fe64f573269c18f8102f170c411ed5d7e9cca45dc085e41fb465b3deeef1f3676
6
+ metadata.gz: 6a7705a362eaab5eb09c9b458ecab47f79f46d07ea6f6c77e5e4cd0253f3649678e78b9f93e58bc22530462418ad496c249dc18e4002c88c07b1b8a257949e61
7
+ data.tar.gz: 324f3264fd3b156f08e04e993e58f6c080036ad620e5630d978cafc7ec63c28bad580ce1eeda4179b75197d5aa6d1566fb92e26f59d9442001c5a5cf6a083db4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.5.2]
4
+
5
+ - Filter sensitive keys (per `config.filter_parameters`) inside logged request and response bodies, not just `params`
6
+
3
7
  ## [0.1.0] - 2023-11-10
4
8
 
5
9
  - Initial release
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'rails'
4
+ require_relative 'middlewares/sensitive_body_filter'
4
5
  require_relative 'middlewares/request_response_logger'
5
6
  require_relative 'middlewares/request_context_enricher'
6
7
  require_relative 'configuration'
@@ -134,11 +134,15 @@ module MinatoLogger
134
134
  def safe_parse_json(body)
135
135
  return nil if body.blank?
136
136
 
137
- JSON.parse(body)
137
+ sensitive_body_filter.call(JSON.parse(body))
138
138
  rescue JSON::ParserError
139
139
  body.to_s
140
140
  end
141
141
 
142
+ def sensitive_body_filter
143
+ @sensitive_body_filter ||= SensitiveBodyFilter.new
144
+ end
145
+
142
146
  def extract_request_body(request)
143
147
  return nil unless request.body
144
148
  return '[Multipart Form Data / File Upload]' if request.content_type.to_s.include?('multipart/form-data')
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MinatoLogger
4
+ module Middlewares
5
+ class SensitiveBodyFilter
6
+ def initialize(filters = Rails.application.config.filter_parameters)
7
+ @parameter_filter = ActiveSupport::ParameterFilter.new(filters)
8
+ end
9
+
10
+ def call(value)
11
+ case value
12
+ when Hash
13
+ @parameter_filter.filter(value)
14
+ when Array
15
+ value.map { |item| call(item) }
16
+ else
17
+ value
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MinatoLogger
4
- VERSION = '0.5.1'
4
+ VERSION = '0.5.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minato_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ferreri
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-06-01 00:00:00.000000000 Z
11
+ date: 2026-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -66,6 +66,7 @@ files:
66
66
  - lib/minato_logger/middleware.rb
67
67
  - lib/minato_logger/middlewares/request_context_enricher.rb
68
68
  - lib/minato_logger/middlewares/request_response_logger.rb
69
+ - lib/minato_logger/middlewares/sensitive_body_filter.rb
69
70
  - lib/minato_logger/version.rb
70
71
  - minato_logger.gemspec
71
72
  - sig/minato_logger.rbs