govuk_sidekiq 4.0.0 → 6.0.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: 2df36f07a855664bcd0022727e6b7e6d0b255df9e28d82e256d8542cc68a99ae
4
- data.tar.gz: 61e191ea3d6f277a5bfc72d50c0e794d2bc58471e91b3af5bbf97d0586b5fd4b
3
+ metadata.gz: 0b29995a70caf772608c804cddc8f38fedc0d79c5a02157a8c9d1c46576403fc
4
+ data.tar.gz: 660d8a260f5a175c4bea49e978eb2d302fad1d0a35672e2740770908e134f789
5
5
  SHA512:
6
- metadata.gz: 9dbf5756a97595d4ceaa3e02ce941d949f44f904ad43b5f0bd7e0a713a2cef45e4976c50ae13cafc2ae654a49d29c06955dd4ec0d05fc808e26c2621f9ad8263
7
- data.tar.gz: 21ac94434996452d35bde7ffed3e1ca46ed64b5482573dc2a5ffb0d5b2cfc64d822f4f1a72b042a527b6d434b9a2448f58e52af963f80f54143f16b766e2bec6
6
+ metadata.gz: 2c2ef5066358f76e4c6b4452bb452d498f8c4e7fe38363b570488457cbe3d8c687aec4fac3fee9c5a6208e9e8f57015b7e8ee6fc277246e7e1626b6dcd25c5f2
7
+ data.tar.gz: 9982cee079fc37d903726c2c6ef259d48884802fa410b071a07ae16d32f1169d0f5a7bba1d4484fac0836dfa9fbbf062f0afb8606e223f232f56851390423981
data/README.md CHANGED
@@ -25,7 +25,7 @@ What does `govuk_sidekiq` do for you?
25
25
 
26
26
  ```ruby
27
27
  # Gemfile
28
- gem "govuk_sidekiq", "~> VERSION"
28
+ gem "govuk_sidekiq"
29
29
  ```
30
30
 
31
31
  ### 2. Add a Sidekiq config file
@@ -50,12 +50,10 @@ worker: bundle exec sidekiq -C ./config/sidekiq.yml
50
50
 
51
51
  ### 4. Configure puppet
52
52
 
53
- - Set `REDIS_HOST` and `REDIS_PORT` variables. `GOVUK_APP_NAME` should also be
54
- set, but this is already done by the default `govuk::app::config`. If your Redis instance
55
- requires more advanced connection settings (eg username and password) you can instead
56
- set a `REDIS_URL` variable, this will take precidence over `REDIS_HOST` and `REDIS_PORT`.
53
+ - Set a `REDIS_URL` environment variable. `GOVUK_APP_NAME` should also be
54
+ set, but this is already done by the default `govuk::app::config`.
57
55
 
58
- Apply redis variables for your app in [the default config](https://github.com/alphagov/govuk-puppet/blob/master/hieradata/common.yaml). For example:
56
+ Apply redis variables for your app in [the default config](https://github.com/alphagov/govuk-puppet/blob/main/hieradata_aws/common.yaml). For example:
59
57
 
60
58
  ```
61
59
  govuk::apps::your_app::redis_host: "%{hiera('sidekiq_host')}"
@@ -63,7 +61,7 @@ set a `REDIS_URL` variable, this will take precidence over `REDIS_HOST` and `RED
63
61
  ```
64
62
  - Make sure puppet creates and starts the Procfile worker.
65
63
 
66
- There's no step-by-step guide for this, but [you can copy the config from collections-publisher](https://github.com/alphagov/govuk-puppet/blob/master/modules/govuk/manifests/apps/collections_publisher.pp).
64
+ There's no step-by-step guide for this, but [you can copy the config from collections-publisher](https://github.com/alphagov/govuk-puppet/blob/main/modules/govuk/manifests/apps/collections_publisher.pp).
67
65
 
68
66
  ### 5. Configure deployment scripts
69
67
 
@@ -74,18 +72,9 @@ Make sure you restart the worker after deploying by adding a hook to the [capist
74
72
  after "deploy:restart", "deploy:restart_procfile_worker"
75
73
  ```
76
74
 
77
- ### 6. Add your worker to the Procfile & Pinfile
75
+ ### 6. Add app to sidekiq-monitoring
78
76
 
79
- This makes sure that your development environment behaves like production.
80
-
81
- See the [Pinfile][] and [Procfile][] for examples.
82
-
83
- [Pinfile]: https://github.com/alphagov/govuk-puppet/tree/master/development-vm/Pinfile
84
- [Procfile]: https://github.com/alphagov/govuk-puppet/tree/master/development-vm/Procfile
85
-
86
- ### 7. Add app to sidekiq-monitoring
87
-
88
- See the opsmanual for a step-by-step guide: [Add sidekiq-monitoring to your application][monitoring]
77
+ See the dev docs for a step-by-step guide: [Add sidekiq-monitoring to your application][monitoring]
89
78
 
90
79
  [monitoring]: https://docs.publishing.service.gov.uk/manual/setting-up-new-sidekiq-monitoring-app.html
91
80
 
@@ -121,7 +110,3 @@ require 'govuk_sidekiq/testing'
121
110
  ## Licence
122
111
 
123
112
  [MIT License](LICENCE)
124
-
125
- ## Versioning policy
126
-
127
- See https://github.com/alphagov/styleguides/blob/master/rubygems.md#versioning
@@ -22,8 +22,8 @@ module GovukSidekiq
22
22
 
23
23
  def header_arguments
24
24
  {
25
- authenticated_user: GdsApi::GovukHeaders.headers[:x_govuk_authenticated_user],
26
- request_id: GdsApi::GovukHeaders.headers[:govuk_request_id],
25
+ "authenticated_user" => GdsApi::GovukHeaders.headers[:x_govuk_authenticated_user],
26
+ "request_id" => GdsApi::GovukHeaders.headers[:govuk_request_id],
27
27
  }
28
28
  end
29
29
 
@@ -3,18 +3,9 @@ require "govuk_sidekiq/sidekiq_initializer"
3
3
  module GovukSidekiq
4
4
  class Railtie < Rails::Railtie
5
5
  initializer "govuk_sidekiq.initialize_sidekiq" do |app|
6
- config = if ENV["REDIS_URL"]
7
- { url: ENV["REDIS_URL"] }
8
- else
9
- {
10
- host: ENV.fetch("REDIS_HOST", "127.0.0.1"),
11
- port: ENV.fetch("REDIS_PORT", 6379),
12
- }
13
- end
14
-
15
6
  SidekiqInitializer.setup_sidekiq(
16
- ENV["GOVUK_APP_NAME"] || app.root.basename.to_s,
17
- config,
7
+ ENV.fetch("GOVUK_APP_NAME", app.root.basename.to_s),
8
+ { url: ENV.fetch("REDIS_URL", "redis://127.0.0.1:6379") },
18
9
  )
19
10
  end
20
11
  end
@@ -1,18 +1,28 @@
1
1
  require "sidekiq"
2
- require "sidekiq/logging/json"
3
2
  require "sidekiq-statsd"
4
3
  require "govuk_sidekiq/api_headers"
5
4
  require "govuk_app_config/govuk_statsd"
6
5
 
7
6
  module GovukSidekiq
8
7
  module SidekiqInitializer
9
- def self.setup_sidekiq(govuk_app_name, redis_config)
8
+ def self.setup_sidekiq(govuk_app_name, redis_config = {})
10
9
  redis_config = redis_config.merge(
11
10
  namespace: govuk_app_name,
12
11
  reconnect_attempts: 1,
13
12
  )
14
13
 
15
14
  Sidekiq.configure_server do |config|
15
+ config.log_formatter = Sidekiq::Logger::Formatters::JSON.new if ENV["GOVUK_SIDEKIQ_JSON_LOGGING"]
16
+
17
+ # $real_stdout is defined by govuk_app_config and is used to point to
18
+ # STDOUT as that redirects $stdout to actually be $stderr.
19
+ # When govuk_app_config does this we need to use $real_stdout to output logs to STDOUT.
20
+ # https://github.com/alphagov/govuk_app_config/blob/08fd9cf6a848615261b3cef021e34490ed72ee55/lib/govuk_app_config/govuk_logging.rb#L18-L24
21
+
22
+ # rubocop:disable Style/GlobalVars
23
+ config.logger = Sidekiq::Logger.new($real_stdout) if defined?($real_stdout)
24
+ # rubocop:enable Style/GlobalVars
25
+
16
26
  config.redis = redis_config
17
27
 
18
28
  config.server_middleware do |chain|
@@ -28,8 +38,6 @@ module GovukSidekiq
28
38
  chain.add GovukSidekiq::APIHeaders::ClientMiddleware
29
39
  end
30
40
  end
31
-
32
- Sidekiq.logger.formatter = Sidekiq::Logging::Json::Logger.new if Sidekiq.options[:logfile]
33
41
  end
34
42
  end
35
43
  end
@@ -1,3 +1,3 @@
1
1
  module GovukSidekiq
2
- VERSION = "4.0.0".freeze
2
+ VERSION = "6.0.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-31 00:00:00.000000000 Z
11
+ date: 2023-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gds-api-adapters
@@ -54,38 +54,18 @@ dependencies:
54
54
  version: '1.6'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sidekiq
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '5'
62
- - - "<"
63
- - !ruby/object:Gem::Version
64
- version: '6'
65
- type: :runtime
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: '5'
72
- - - "<"
73
- - !ruby/object:Gem::Version
74
- version: '6'
75
- - !ruby/object:Gem::Dependency
76
- name: sidekiq-logging-json
77
57
  requirement: !ruby/object:Gem::Requirement
78
58
  requirements:
79
59
  - - "~>"
80
60
  - !ruby/object:Gem::Version
81
- version: '0.0'
61
+ version: '6'
82
62
  type: :runtime
83
63
  prerelease: false
84
64
  version_requirements: !ruby/object:Gem::Requirement
85
65
  requirements:
86
66
  - - "~>"
87
67
  - !ruby/object:Gem::Version
88
- version: '0.0'
68
+ version: '6'
89
69
  - !ruby/object:Gem::Dependency
90
70
  name: sidekiq-statsd
91
71
  requirement: !ruby/object:Gem::Requirement
@@ -101,75 +81,75 @@ dependencies:
101
81
  - !ruby/object:Gem::Version
102
82
  version: '2.1'
103
83
  - !ruby/object:Gem::Dependency
104
- name: railties
84
+ name: climate_control
105
85
  requirement: !ruby/object:Gem::Requirement
106
86
  requirements:
107
87
  - - "~>"
108
88
  - !ruby/object:Gem::Version
109
- version: '5.0'
89
+ version: '1.2'
110
90
  type: :development
111
91
  prerelease: false
112
92
  version_requirements: !ruby/object:Gem::Requirement
113
93
  requirements:
114
94
  - - "~>"
115
95
  - !ruby/object:Gem::Version
116
- version: '5.0'
96
+ version: '1.2'
117
97
  - !ruby/object:Gem::Dependency
118
- name: rake
98
+ name: railties
119
99
  requirement: !ruby/object:Gem::Requirement
120
100
  requirements:
121
101
  - - "~>"
122
102
  - !ruby/object:Gem::Version
123
- version: '12.3'
103
+ version: '7'
124
104
  type: :development
125
105
  prerelease: false
126
106
  version_requirements: !ruby/object:Gem::Requirement
127
107
  requirements:
128
108
  - - "~>"
129
109
  - !ruby/object:Gem::Version
130
- version: '12.3'
110
+ version: '7'
131
111
  - !ruby/object:Gem::Dependency
132
- name: rspec
112
+ name: rake
133
113
  requirement: !ruby/object:Gem::Requirement
134
114
  requirements:
135
- - - "~>"
115
+ - - ">="
136
116
  - !ruby/object:Gem::Version
137
- version: '3.4'
117
+ version: '0'
138
118
  type: :development
139
119
  prerelease: false
140
120
  version_requirements: !ruby/object:Gem::Requirement
141
121
  requirements:
142
- - - "~>"
122
+ - - ">="
143
123
  - !ruby/object:Gem::Version
144
- version: '3.4'
124
+ version: '0'
145
125
  - !ruby/object:Gem::Dependency
146
- name: bundler
126
+ name: rspec
147
127
  requirement: !ruby/object:Gem::Requirement
148
128
  requirements:
149
- - - ">="
129
+ - - "~>"
150
130
  - !ruby/object:Gem::Version
151
- version: '1.10'
131
+ version: '3.4'
152
132
  type: :development
153
133
  prerelease: false
154
134
  version_requirements: !ruby/object:Gem::Requirement
155
135
  requirements:
156
- - - ">="
136
+ - - "~>"
157
137
  - !ruby/object:Gem::Version
158
- version: '1.10'
138
+ version: '3.4'
159
139
  - !ruby/object:Gem::Dependency
160
140
  name: rubocop-govuk
161
141
  requirement: !ruby/object:Gem::Requirement
162
142
  requirements:
163
- - - ">="
143
+ - - '='
164
144
  - !ruby/object:Gem::Version
165
- version: '0'
145
+ version: 4.9.0
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
149
  requirements:
170
- - - ">="
150
+ - - '='
171
151
  - !ruby/object:Gem::Version
172
- version: '0'
152
+ version: 4.9.0
173
153
  description:
174
154
  email:
175
155
  - govuk-dev@digital.cabinet-office.gov.uk
@@ -197,14 +177,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
197
177
  requirements:
198
178
  - - ">="
199
179
  - !ruby/object:Gem::Version
200
- version: '2.6'
180
+ version: '2.7'
201
181
  required_rubygems_version: !ruby/object:Gem::Requirement
202
182
  requirements:
203
183
  - - ">="
204
184
  - !ruby/object:Gem::Version
205
185
  version: '0'
206
186
  requirements: []
207
- rubygems_version: 3.0.3
187
+ rubygems_version: 3.4.2
208
188
  signing_key:
209
189
  specification_version: 4
210
190
  summary: Provides standard setup and behaviour for Sidekiq in GOV.UK applications.