notable 0.6.1 → 0.7.0

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: 5541640f476e0e97318e6767a54afaa5cdeb0d35891372f87eef3d528e5ceaaa
4
- data.tar.gz: 8d16fd5688ad556b83c72ab9787ccac3fb2c0ba55468a3d6c829a4166110e64a
3
+ metadata.gz: ee82589dc34dfe74acd8795e2c089121c53eb41a00287f716ac52ea2ced317cc
4
+ data.tar.gz: c17132eb0b6332e7a48aa6a9618a40f838ccb21cd241da502f52621a2324ee73
5
5
  SHA512:
6
- metadata.gz: ba086c17aa9de949c21349d6c754addb8de84f31635b3a57f7a52bce63aee66cce22476926c347a231456f4cd837765c83543636624f61237e197f5896ec227c
7
- data.tar.gz: 135bebfd4c0acfa206d6acd39099040db35a90c98b5b13fe01e056253e953e685fe6ad00836a98e8443d412324d7e517ead6332ed2332f6c891b2a7dd146bb9c
6
+ metadata.gz: 9844579f84fa695a6f5333e279d3b51b2872dc915e2dd116250b6c9950a0b4dfe5cf0849120d0fbd4d2bb58990f07a168eedbe2959391bb925b7bf3b68d228e9
7
+ data.tar.gz: 44597e910a31f9c6c9d4905c428663d3b64c9c03b7bdb18cc300487d067b2171acda11eb70d1f7548e0b2aea413902342450fe95df7983a0ecd2d7156b5857cf
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.7.0 (2026-04-15)
2
+
3
+ - Enabled `scrub_invalid_utf8` by default
4
+ - Dropped support for Ruby < 3.3 and Rails < 7.2
5
+
1
6
  ## 0.6.1 (2026-02-07)
2
7
 
3
8
  - Added `scrub_invalid_utf8` option
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2025 Andrew Kane
1
+ Copyright (c) 2014-2026 Andrew Kane
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -106,12 +106,6 @@ Anonymize IP addresses
106
106
  Notable.mask_ips = true
107
107
  ```
108
108
 
109
- Scrub invalid UTF-8 from data
110
-
111
- ```ruby
112
- Notable.scrub_invalid_utf8 = true
113
- ```
114
-
115
109
  ### Jobs
116
110
 
117
111
  Set slow threshold
@@ -6,8 +6,9 @@ module Notable
6
6
  if Notable.requests_enabled?
7
7
  # insert in same place as request_store
8
8
  app.config.middleware.insert_after ActionDispatch::RequestId, Notable::Middleware
9
- # TODO switch to register_interceptor in 0.7.0
10
- ActionDispatch::DebugExceptions.prepend Notable::DebugExceptions
9
+ ActionDispatch::DebugExceptions.register_interceptor do |request, exception|
10
+ request.env["action_dispatch.exception"] = exception
11
+ end
11
12
  end
12
13
  end
13
14
  end
@@ -4,8 +4,7 @@ module Notable
4
4
 
5
5
  included do
6
6
  around_perform do |job, block|
7
- # enqueued_at is only available in Active Job 6+
8
- Notable.track_job(job.class.name, job.job_id, job.queue_name, job.try(:enqueued_at), try(:notable_slow_job_threshold)) do
7
+ Notable.track_job(job.class.name, job.job_id, job.queue_name, job.enqueued_at, try(:notable_slow_job_threshold)) do
9
8
  block.call
10
9
  end
11
10
  end
@@ -45,8 +45,8 @@ module Notable
45
45
  referrer = request.referer
46
46
 
47
47
  if Notable.scrub_invalid_utf8
48
- user_agent = user_agent.scrub
49
- referrer = referrer.scrub
48
+ user_agent = user_agent&.scrub
49
+ referrer = referrer&.scrub
50
50
  end
51
51
 
52
52
  notes.each do |note|
@@ -1,4 +1,4 @@
1
- ActiveSupport::Notifications.subscribe "rack.attack" do |_name, _start, _finish, _request_id, req|
1
+ ActiveSupport::Notifications.subscribe "rack.attack" do |_, _, _, _, req|
2
2
  request = req.is_a?(Hash) ? req[:request] : req
3
3
 
4
4
  if [:blacklist, :blocklist, :throttle].include?(request.env["rack.attack.match_type"])
@@ -6,7 +6,6 @@ ActiveSupport::Notifications.subscribe "rack.attack" do |_name, _start, _finish,
6
6
  end
7
7
  end
8
8
 
9
- # TODO uncomment in 0.7.0
10
- # ActiveSupport::Notifications.subscribe "rate_limit.action_controller" do |_|
11
- # Notable.track "Throttle", "throttle note"
12
- # end
9
+ ActiveSupport::Notifications.subscribe "rate_limit.action_controller" do |_, _, _, _, _|
10
+ Notable.track "Throttle", "throttle note"
11
+ end
@@ -1,3 +1,3 @@
1
- ActiveSupport::Notifications.subscribe "unpermitted_parameters.action_controller" do |_name, _start, _finish, _id, payload|
1
+ ActiveSupport::Notifications.subscribe "unpermitted_parameters.action_controller" do |_, _, _, _, payload|
2
2
  Notable.track "Unpermitted Parameters", payload[:keys].join(", ")
3
3
  end
@@ -1,3 +1,3 @@
1
1
  module Notable
2
- VERSION = "0.6.1"
2
+ VERSION = "0.7.0"
3
3
  end
data/lib/notable.rb CHANGED
@@ -3,7 +3,6 @@ require "active_support"
3
3
  require "safely/core"
4
4
 
5
5
  # modules
6
- require_relative "notable/debug_exceptions"
7
6
  require_relative "notable/middleware"
8
7
  require_relative "notable/throttle"
9
8
  require_relative "notable/unpermitted_parameters"
@@ -32,8 +31,7 @@ module Notable
32
31
  self.requests_enabled = true
33
32
  self.jobs_enabled = true
34
33
  self.mask_ips = false
35
- # TODO default to true in 0.7.0
36
- self.scrub_invalid_utf8 = false
34
+ self.scrub_invalid_utf8 = true
37
35
 
38
36
  def self.requests_enabled?
39
37
  enabled && requests_enabled
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
@@ -15,28 +15,28 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '7.1'
18
+ version: '7.2'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: '7.1'
25
+ version: '7.2'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: safely_block
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '0.4'
32
+ version: '1'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '0.4'
39
+ version: '1'
40
40
  email: andrew@ankane.org
41
41
  executables: []
42
42
  extensions: []
@@ -52,7 +52,6 @@ files:
52
52
  - lib/generators/notable/templates/create_jobs.rb.tt
53
53
  - lib/generators/notable/templates/create_requests.rb.tt
54
54
  - lib/notable.rb
55
- - lib/notable/debug_exceptions.rb
56
55
  - lib/notable/engine.rb
57
56
  - lib/notable/job_extensions.rb
58
57
  - lib/notable/middleware.rb
@@ -72,14 +71,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - ">="
74
73
  - !ruby/object:Gem::Version
75
- version: '3.2'
74
+ version: '3.3'
76
75
  required_rubygems_version: !ruby/object:Gem::Requirement
77
76
  requirements:
78
77
  - - ">="
79
78
  - !ruby/object:Gem::Version
80
79
  version: '0'
81
80
  requirements: []
82
- rubygems_version: 4.0.3
81
+ rubygems_version: 4.0.6
83
82
  specification_version: 4
84
83
  summary: Track notable requests and background jobs
85
84
  test_files: []
@@ -1,8 +0,0 @@
1
- module Notable
2
- module DebugExceptions
3
- def render_exception(request, exception, *)
4
- request.env["action_dispatch.exception"] = exception
5
- super
6
- end
7
- end
8
- end