rails_surrogate_key_logging 1.3.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea7560b27adda872ef0742f8d5be560541849824d8cf3ec5ceaba42b50e2a4f7
4
- data.tar.gz: a5ed6d8ced6c1fca2067dea1c4c975df569534542e2c0f8caf53ddac9298bb7b
3
+ metadata.gz: f5d3a0747a79affaf71480538b5ca2567c962ddf03c6af176661ea082b7427e5
4
+ data.tar.gz: aec5af8fb44ca382501cef61b9d142328a8befa571df08821e4b9f5ef365490c
5
5
  SHA512:
6
- metadata.gz: 5ea28f7ec2eae90380bf4d786fa640bcf3d6489ca594ee7b76fe8f36b87d284fb3e6d8b1d3c7349f32fb947ee123c3614e98be1859f9e77313b7f3acf6e3a20c
7
- data.tar.gz: 2d23b23e491b82ee53daa5987666797622912c9d915d8f63213668811fcfc7bf2b7ce248b316b1c5ede1d2702f4e637f9bbb3fb19e548340476a8d3c4cd240f9
6
+ metadata.gz: f8ec40ce47168317e745ed14d707ca7c8a35ce7bd9eec78c7224baf4bcaa5f2a92b8eeade6024a745aa66d018ea11bbb65fb5989461923d635df60cf0eb0f060
7
+ data.tar.gz: b245a066710ba8440584f4fb51588bf0a968e969ef41eef0ae52e739bfdf266cc40d63770ccc4866917a806437b7d1ebb8eb5bcfdc48f914ee47df44ca60f26e
@@ -5,11 +5,11 @@ require 'active_support/concern'
5
5
  module SurrogateKeyLogging
6
6
  module ActionController
7
7
  module Params
8
- extend ActiveSupport::Concern
8
+ extend ::ActiveSupport::Concern
9
9
 
10
10
  class_methods do
11
11
  def surrogate_params(*params, action: '*')
12
- @surrogate_params ||= ActiveSupport::HashWithIndifferentAccess.new {|h,k| h[k] = [] }
12
+ @surrogate_params ||= ::ActiveSupport::HashWithIndifferentAccess.new {|h,k| h[k] = [] }
13
13
  params.each do |param|
14
14
  param = param.to_s
15
15
  @surrogate_params[action] << param
@@ -2,7 +2,7 @@
2
2
 
3
3
  module SurrogateKeyLogging
4
4
  module ActionController
5
- extend ActiveSupport::Autoload
5
+ extend ::ActiveSupport::Autoload
6
6
 
7
7
  autoload :LogSubscriber
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module SurrogateKeyLogging
4
4
  module ActionDispatch
5
- extend ActiveSupport::Autoload
5
+ extend ::ActiveSupport::Autoload
6
6
 
7
7
  autoload :ParamsFilter
8
8
  autoload :QueryStringFilter
@@ -5,7 +5,7 @@ require 'active_support/concern'
5
5
  module SurrogateKeyLogging
6
6
  module ActiveRecord
7
7
  module Attributes
8
- extend ActiveSupport::Concern
8
+ extend ::ActiveSupport::Concern
9
9
 
10
10
  class_methods do
11
11
  def surrogate_parent_names(*names)
@@ -2,7 +2,7 @@
2
2
 
3
3
  module SurrogateKeyLogging
4
4
  module ActiveRecord
5
- extend ActiveSupport::Autoload
5
+ extend ::ActiveSupport::Autoload
6
6
 
7
7
  autoload :Attributes
8
8
  autoload :LogSubscriber
@@ -1,36 +1,31 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/parameter_filter'
4
-
5
- # Add ability for @mask to be a class/instance/lambda/proc
6
- module ActiveSupport
7
- class ParameterFilter
8
- class CompiledFilter
9
-
10
- def value_for_key(key, value, parents = [], original_params = nil) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
11
- parents.push(key) if deep_regexps
12
- if regexps.any? { |r| r.match?(key.to_s) }
13
- value = @mask.respond_to?(:call) ? @mask.call(key, value, parents, original_params) : @mask
14
- elsif deep_regexps && (joined = parents.join('.')) && deep_regexps.any? { |r| r.match?(joined) } # rubocop:disable Lint/DuplicateBranch
15
- value = @mask.respond_to?(:call) ? @mask.call(key, value, parents, original_params) : @mask
16
- elsif value.is_a?(Hash)
17
- value = call(value, parents, original_params)
18
- elsif value.is_a?(Array)
19
- # If we don't pop the current parent it will be duplicated as we
20
- # process each array value.
21
- parents.pop if deep_regexps
22
- value = value.map { |v| value_for_key(key, v, parents, original_params) }
23
- # Restore the parent stack after processing the array.
24
- parents.push(key) if deep_regexps
25
- elsif blocks.any?
26
- key = key.dup if key.duplicable?
27
- value = value.dup if value.duplicable?
28
- blocks.each { |b| b.arity == 2 ? b.call(key, value) : b.call(key, value, original_params) }
29
- end
3
+ module SurrogateKeyLogging
4
+ module ActiveSupport
5
+ # Add ability for @mask to be a class/instance/lambda/proc
6
+ def value_for_key(key, value, parents = [], original_params = nil) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
7
+ parents.push(key) if deep_regexps
8
+ if regexps.any? { |r| r.match?(key.to_s) }
9
+ value = @mask.respond_to?(:call) ? @mask.call(key, value, parents, original_params) : @mask
10
+ elsif deep_regexps && (joined = parents.join('.')) && deep_regexps.any? { |r| r.match?(joined) } # rubocop:disable Lint/DuplicateBranch
11
+ value = @mask.respond_to?(:call) ? @mask.call(key, value, parents, original_params) : @mask
12
+ elsif value.is_a?(Hash)
13
+ value = call(value, parents, original_params)
14
+ elsif value.is_a?(Array)
15
+ # If we don't pop the current parent it will be duplicated as we
16
+ # process each array value.
30
17
  parents.pop if deep_regexps
31
- value
18
+ value = value.map { |v| value_for_key(key, v, parents, original_params) }
19
+ # Restore the parent stack after processing the array.
20
+ parents.push(key) if deep_regexps
21
+ elsif blocks.any?
22
+ key = key.dup if key.duplicable?
23
+ value = value.dup if value.duplicable?
24
+ blocks.each { |b| b.arity == 2 ? b.call(key, value) : b.call(key, value, original_params) }
32
25
  end
33
-
26
+ parents.pop if deep_regexps
27
+ value
34
28
  end
29
+
35
30
  end
36
31
  end
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SurrogateKeyLogging
4
- class Config < ActiveSupport::OrderedOptions
4
+ class Config < ::ActiveSupport::OrderedOptions
5
5
  end
6
6
 
7
7
  module Configuration
8
- extend ActiveSupport::Concern
8
+ extend ::ActiveSupport::Concern
9
9
 
10
10
  def surrogate_key_logging
11
11
  SurrogateKeyLogging.config
@@ -17,11 +17,6 @@ module SurrogateKeyLogging
17
17
  g.templates.unshift File.expand_path('lib/templates', root)
18
18
  end
19
19
 
20
- rake_tasks do
21
- # load 'tasks/surrogate_key_logging.rake'
22
- # load 'tasks/key_store/active_record.rake'
23
- end
24
-
25
20
  initializer 'surrogate_key_logging.config' do |app|
26
21
  SurrogateKeyLogging.configure do |config|
27
22
  config.enabled = Rails.env.production? unless config.key?(:enabled)
@@ -35,7 +30,9 @@ module SurrogateKeyLogging
35
30
  end
36
31
 
37
32
  initializer 'surrogate_key_logging.middleware' do |app|
38
- app.middleware.insert_before(0, Middleware)
33
+ if SurrogateKeyLogging.config.enabled
34
+ app.middleware.insert_before(0, Middleware)
35
+ end
39
36
  end
40
37
 
41
38
  initializer 'surrogate_key_logging.filter_parameters' do
@@ -53,5 +50,15 @@ module SurrogateKeyLogging
53
50
  end
54
51
  end
55
52
 
53
+ initializer 'surrogate_key_logging.sidekiq' do
54
+ if SurrogateKeyLogging.config.enabled && defined?(::Sidekiq)
55
+ Sidekiq.configure_server do |config|
56
+ config.server_middleware do |chain|
57
+ chain.prepend SurrogateKeyLogging::SidekiqMiddleware
58
+ end
59
+ end
60
+ end
61
+ end
62
+
56
63
  end
57
64
  end
@@ -33,6 +33,7 @@ module SurrogateKeyLogging
33
33
 
34
34
  def call(_key, value, _parents = [], _original_params = nil)
35
35
  return "" if value.blank?
36
+ return value unless SurrogateKeyLogging.config.enabled
36
37
  surrogate = get(value)
37
38
  Rails.logger.tagged('SurrogateKeyLogging') { Rails.logger.info "Surrogate: `#{surrogate}`, value: `#{value}`" } if SurrogateKeyLogging.config.debug
38
39
  surrogate
@@ -2,7 +2,7 @@
2
2
 
3
3
  module SurrogateKeyLogging
4
4
  module KeyStore
5
- extend ActiveSupport::Autoload
5
+ extend ::ActiveSupport::Autoload
6
6
 
7
7
  eager_autoload do
8
8
  autoload :Base
@@ -39,3 +39,14 @@ if defined?(::Sidekiq)
39
39
 
40
40
  end
41
41
  end
42
+
43
+ module SurrogateKeyLogging
44
+ class SidekiqMiddleware
45
+
46
+ def call(env)
47
+ yield
48
+ SurrogateKeyLogging.reset
49
+ end
50
+
51
+ end
52
+ end
@@ -4,7 +4,7 @@ module SurrogateKeyLogging
4
4
 
5
5
  module Version
6
6
  MAJOR = 1
7
- MINOR = 3
7
+ MINOR = 5
8
8
  PATCH = 0
9
9
 
10
10
  end
@@ -4,7 +4,7 @@ require 'active_support'
4
4
 
5
5
  # Container Module
6
6
  module SurrogateKeyLogging
7
- extend ActiveSupport::Autoload
7
+ extend ::ActiveSupport::Autoload
8
8
 
9
9
  autoload :ActionController
10
10
  autoload :ActionDispatch
@@ -41,7 +41,7 @@ module SurrogateKeyLogging
41
41
  def reset
42
42
  reset! if config.cache
43
43
  end
44
-
44
+
45
45
  def reset!
46
46
  @key_manager = @parameter_filter = nil
47
47
  end
@@ -55,7 +55,7 @@ module SurrogateKeyLogging
55
55
  end
56
56
 
57
57
  def filter_for_attributes(attrs)
58
- ::ActiveSupport::ParameterFilter.new(attrs, mask: key_manager)
58
+ ::ActiveSupport::ParameterFilter.new(config.enabled ? attrs : [], mask: key_manager)
59
59
  end
60
60
 
61
61
  def key_store
@@ -63,11 +63,11 @@ module SurrogateKeyLogging
63
63
  end
64
64
 
65
65
  def filter_parameters(params)
66
- parameter_filter.filter params
66
+ parameter_filter.filter(params)
67
67
  end
68
68
 
69
69
  def surrogate_for(value)
70
- key_manager.get(value)
70
+ config.enabled ? key_manager.get(value) : value
71
71
  end
72
72
 
73
73
  def add_param_to_filter(attr, *parents)
@@ -84,6 +84,8 @@ module SurrogateKeyLogging
84
84
 
85
85
  end
86
86
 
87
+ require 'active_support/parameter_filter'
88
+ ::ActiveSupport::ParameterFilter::CompiledFilter.send(:prepend, ActiveSupport)
87
89
  KeyStore.eager_load!
88
90
  ::Rails::Application::Configuration.send(:include, Configuration)
89
91
  require 'surrogate_key_logging/engine'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_surrogate_key_logging
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Yelverton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-01 00:00:00.000000000 Z
11
+ date: 2023-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack