govuk_sidekiq 4.0.0 → 6.0.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: 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.