sidekiq-field-encryptor 0.3.0 → 0.4.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 +4 -4
- data/.github/workflows/test.yml +2 -2
- data/.rubocop-https---raw-githubusercontent-com-aptible-dryer-lint-main--rubocop-base-yml +27 -0
- data/Makefile +7 -0
- data/lib/sidekiq-field-encryptor/encryptor.rb +5 -0
- data/lib/sidekiq-field-encryptor/version.rb +1 -1
- data/sidekiq-field-encryptor.gemspec +3 -1
- metadata +36 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 930fe1d92b017b2b44b2102082cf4775cd2285e553d1243569807212453c83ca
|
|
4
|
+
data.tar.gz: 66280ab60c4e52985dc36b29d37669d9a8576cfd66c1ba296230359eceae7d72
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ef8f4ec59c3ac5a6a99b5fc25bc9681727963c2ce29c7c1a5a06860bdb2872664e9a3fffb8930da405a34f30164162faaab4741edf717843742cdbb486daf408
|
|
7
|
+
data.tar.gz: 0bbaea48f3ea6b9ab97c4492454ee3148fb998d9f4c6f6207f87b22c47c28a6b5322c1ae70b510d60d7923117bdf53951f7c54f7393c54a4a47d5ae0e1d301ff
|
data/.github/workflows/test.yml
CHANGED
|
@@ -245,6 +245,33 @@ RSpec/StubbedMock:
|
|
|
245
245
|
RSpec/VerifiedDoubleReference:
|
|
246
246
|
Enabled: true
|
|
247
247
|
|
|
248
|
+
Capybara/NegationMatcher:
|
|
249
|
+
Enabled: true
|
|
250
|
+
|
|
251
|
+
Capybara/SpecificActions:
|
|
252
|
+
Enabled: true
|
|
253
|
+
|
|
254
|
+
Capybara/SpecificFinders:
|
|
255
|
+
Enabled: true
|
|
256
|
+
|
|
257
|
+
Capybara/SpecificMatcher:
|
|
258
|
+
Enabled: true
|
|
259
|
+
|
|
260
|
+
FactoryBot/ConsistentParenthesesStyle:
|
|
261
|
+
Enabled: true
|
|
262
|
+
|
|
263
|
+
FactoryBot/SyntaxMethods:
|
|
264
|
+
Enabled: true
|
|
265
|
+
|
|
266
|
+
RSpecRails/AvoidSetupHook:
|
|
267
|
+
Enabled: true
|
|
268
|
+
|
|
269
|
+
RSpecRails/HaveHttpStatus:
|
|
270
|
+
Enabled: true
|
|
271
|
+
|
|
272
|
+
RSpecRails/InferredSpecType:
|
|
273
|
+
Enabled: true
|
|
274
|
+
|
|
248
275
|
###############################################################################
|
|
249
276
|
## Customizations ##
|
|
250
277
|
###############################################################################
|
data/Makefile
ADDED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
require 'base64'
|
|
4
4
|
require 'encryptor'
|
|
5
5
|
require 'json'
|
|
6
|
+
require 'sidekiq'
|
|
6
7
|
require 'sidekiq-field-encryptor/version'
|
|
7
8
|
|
|
8
9
|
# This middleware configures encryption of any fields that can contain sensitive
|
|
@@ -88,6 +89,8 @@ module SidekiqFieldEncryptor
|
|
|
88
89
|
args = { key: @encryption_key, iv: iv, algorithm: @encryption_algorithm }
|
|
89
90
|
plaintext = ::Encryptor.decrypt(ciphertext, **args)
|
|
90
91
|
deserialize(serialization_method, plaintext)
|
|
92
|
+
rescue OpenSSL::Cipher::CipherError
|
|
93
|
+
raise 'Could not decrypt - is the encryption key correct?'
|
|
91
94
|
end
|
|
92
95
|
|
|
93
96
|
def process_message(message)
|
|
@@ -114,6 +117,7 @@ module SidekiqFieldEncryptor
|
|
|
114
117
|
|
|
115
118
|
# Used when encrypting fields
|
|
116
119
|
class Client < Base
|
|
120
|
+
include Sidekiq::ClientMiddleware
|
|
117
121
|
def call(_, message, _, _)
|
|
118
122
|
process_message(message) { |value| encrypt(value) }
|
|
119
123
|
yield
|
|
@@ -122,6 +126,7 @@ module SidekiqFieldEncryptor
|
|
|
122
126
|
|
|
123
127
|
# Used when decrypting fields
|
|
124
128
|
class Server < Base
|
|
129
|
+
include Sidekiq::ServerMiddleware
|
|
125
130
|
def call(_, message, _)
|
|
126
131
|
process_message(message) { |value| decrypt(value) }
|
|
127
132
|
yield
|
|
@@ -20,10 +20,12 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
spec.require_paths = ['lib']
|
|
21
21
|
|
|
22
22
|
spec.add_dependency 'encryptor'
|
|
23
|
+
spec.add_dependency 'sidekiq'
|
|
23
24
|
|
|
24
25
|
spec.add_development_dependency 'bundler'
|
|
25
26
|
spec.add_development_dependency 'rake'
|
|
26
27
|
spec.add_development_dependency 'rspec', '~> 3.12'
|
|
27
|
-
spec.add_development_dependency 'rubocop
|
|
28
|
+
spec.add_development_dependency 'rubocop', '< 1.78'
|
|
29
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.16.0'
|
|
28
30
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
29
31
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sidekiq-field-encryptor
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Blake Pettersson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-11-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: encryptor
|
|
@@ -24,6 +24,20 @@ dependencies:
|
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: sidekiq
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
27
41
|
- !ruby/object:Gem::Dependency
|
|
28
42
|
name: bundler
|
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,20 +80,34 @@ dependencies:
|
|
|
66
80
|
- - "~>"
|
|
67
81
|
- !ruby/object:Gem::Version
|
|
68
82
|
version: '3.12'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: rubocop
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "<"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '1.78'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "<"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '1.78'
|
|
69
97
|
- !ruby/object:Gem::Dependency
|
|
70
98
|
name: rubocop-rspec
|
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
|
72
100
|
requirements:
|
|
73
|
-
- - "
|
|
101
|
+
- - "~>"
|
|
74
102
|
- !ruby/object:Gem::Version
|
|
75
|
-
version:
|
|
103
|
+
version: 2.16.0
|
|
76
104
|
type: :development
|
|
77
105
|
prerelease: false
|
|
78
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
107
|
requirements:
|
|
80
|
-
- - "
|
|
108
|
+
- - "~>"
|
|
81
109
|
- !ruby/object:Gem::Version
|
|
82
|
-
version:
|
|
110
|
+
version: 2.16.0
|
|
83
111
|
description: Selectively encrypt fields in Sidekiq
|
|
84
112
|
email:
|
|
85
113
|
- blake@aptible.com
|
|
@@ -96,6 +124,7 @@ files:
|
|
|
96
124
|
- ".rubocop_ignore.yml"
|
|
97
125
|
- Gemfile
|
|
98
126
|
- LICENSE.md
|
|
127
|
+
- Makefile
|
|
99
128
|
- README.md
|
|
100
129
|
- Rakefile
|
|
101
130
|
- SECURITY.md
|
|
@@ -125,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
125
154
|
- !ruby/object:Gem::Version
|
|
126
155
|
version: '0'
|
|
127
156
|
requirements: []
|
|
128
|
-
rubygems_version: 3.
|
|
157
|
+
rubygems_version: 3.4.10
|
|
129
158
|
signing_key:
|
|
130
159
|
specification_version: 4
|
|
131
160
|
summary: Selectively encrypt fields sent into Sidekiq
|