racecar 1.0.1 → 1.2.1

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: a9808fa9b69cd97d91c47686eb0dad2ab32067ee5656b9356981cbe3f9fd601e
4
- data.tar.gz: 41fb0f0534f86a093e4a2f93f459fc7411fabc8764fe388e5a1bdb446b6ba30e
3
+ metadata.gz: 5d02ea2aa60d2c35df3d9b16571e1bc7552fc0125f7c17dce6c2599c322c0787
4
+ data.tar.gz: 207a860bbe56b1e20f29d0a9d37cef2e47fa21b9232224cdfe38449ca16ec7f3
5
5
  SHA512:
6
- metadata.gz: 4d89573210bc7293105eda4a93560f51c2521b1a7e5ec044375539d8fd39a0f4a78321313e13fb58fa87f99c0e9fe5e758cf594d4adbd8388568d55d84a658a7
7
- data.tar.gz: 663e5e97c0b2693e600b74fe7f7474c509933c7b60529c5e27943cb909aa392e0410ea7625c7f2e1f9d6f3b13646e7112eff7c26c2d20c7f55fad29f33785acc
6
+ metadata.gz: 5cc66fc91f13067bd7106f0d05af602e198f9c3bbb52943a0582fee255ff0bb7521b5c120ed3e519a46744475b41ed4979bb1a070255faec7ef00ef414e36f3b
7
+ data.tar.gz: 3b931445476dd4f0cf1900b22c43cc912fae377942d1b5ee6c0f81e3b7cc9b148e3e828a0004171ce46c0c161e4f5754bdb6e00391bd1fbf824f0489643c0b56
data/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## racecar v1.2.1
6
+
7
+ * Require king_konf v1.0 or higher.
8
+
9
+ ## racecar v1.2.0
10
+
11
+ * Support for `ssl_client_cert_key_password` (#173).
12
+ * Support for `OAUTHBEARER` authentication (`sasl_oauth_token_provider`) (#178).
13
+
14
+ ## racecar v1.1.0
15
+
16
+ * Require ruby-kafka v1.0 or higher.
17
+ * Add error handling for required libraries (#149).
18
+
19
+ ## racecar v1.0.1
20
+
21
+ * Add `--without-rails` option to boot consumer without Rails (#139).
22
+
5
23
  ## racecar v1.0.0
6
24
 
7
25
  Unchanged from v0.5.0.
data/README.md CHANGED
@@ -294,6 +294,7 @@ The memory usage limit is roughly estimated as `max_bytes * max_fetch_queue_size
294
294
  * `ssl_ca_cert_file_path` - The path to a valid SSL certificate authority file.
295
295
  * `ssl_client_cert` – A valid SSL client certificate, as a string.
296
296
  * `ssl_client_cert_key` – A valid SSL client certificate key, as a string.
297
+ * `ssl_client_cert_key_password` – The password for the client cert key, as a string (optional).
297
298
 
298
299
  #### SASL encryption, authentication & authorization
299
300
 
@@ -316,6 +317,15 @@ If using SCRAM:
316
317
  * `sasl_scram_password` – The password used to authenticate.
317
318
  * `sasl_scram_mechanism` – The SCRAM mechanism to use, either `sha256` or `sha512`.
318
319
 
320
+ If using OAUTHBEARER:
321
+
322
+ * `sasl_oauth_token_provider`- In order to authenticate using OAUTHBEARER, you must set the client with an instance of a class that implements a token method (the interface is described in Kafka::Sasl::OAuth) which returns an ID/Access token.
323
+ This mechanism is supported in kafka >= 2.0.0 as of KIP-255.
324
+
325
+ See more at [here](https://github.com/zendesk/ruby-kafka/tree/master#oauthbearer).
326
+
327
+ NOTE: `sasl_oauth_token_provider` only works using the `config/racecar.rb` configuration file.
328
+
319
329
  #### Producing messages
320
330
 
321
331
  These settings are related to consumers that _produce messages to Kafka_.
data/lib/racecar/cli.rb CHANGED
@@ -102,7 +102,12 @@ module Racecar
102
102
  opts.on("-r", "--require STRING", "Require a library before starting the consumer") do |lib|
103
103
  $LOAD_PATH.unshift(Dir.pwd) unless load_path_modified
104
104
  load_path_modified = true
105
- require lib
105
+ begin
106
+ require lib
107
+ rescue => e
108
+ $stderr.puts "=> #{lib} failed to load: #{e.message}"
109
+ exit
110
+ end
106
111
  end
107
112
 
108
113
  opts.on("-l", "--log STRING", "Log to the specified file") do |logfile|
@@ -73,6 +73,9 @@ module Racecar
73
73
  desc "A valid SSL client certificate key"
74
74
  string :ssl_client_cert_key
75
75
 
76
+ desc "The password for the SSL client certificate key"
77
+ string :ssl_client_cert_key_password
78
+
76
79
  desc "Support for using the CA certs installed on your system by default for SSL. More info, see: https://github.com/zendesk/ruby-kafka/pull/521"
77
80
  boolean :ssl_ca_certs_from_system, default: false
78
81
 
@@ -138,6 +141,9 @@ module Racecar
138
141
 
139
142
  attr_accessor :subscriptions, :logger
140
143
 
144
+ # The OAUTHBEARER token provider class.
145
+ attr_accessor :sasl_oauth_token_provider
146
+
141
147
  def initialize(env: ENV)
142
148
  super(env: env)
143
149
  @error_handler = proc {}
@@ -168,6 +174,10 @@ module Racecar
168
174
  if max_pause_timeout && !pause_with_exponential_backoff?
169
175
  raise ConfigError, "`max_pause_timeout` only makes sense when `pause_with_exponential_backoff` is enabled"
170
176
  end
177
+
178
+ if ssl_client_cert_key_password && !ssl_client_cert_key
179
+ raise ConfigError, "`ssl_client_cert_key_password` must be used in conjunction with `ssl_client_cert_key`"
180
+ end
171
181
  end
172
182
 
173
183
  def load_consumer_class(consumer_class)
@@ -27,11 +27,13 @@ module Racecar
27
27
  ssl_ca_cert_file_path: config.ssl_ca_cert_file_path,
28
28
  ssl_client_cert: config.ssl_client_cert,
29
29
  ssl_client_cert_key: config.ssl_client_cert_key,
30
+ ssl_client_cert_key_password: config.ssl_client_cert_key_password,
30
31
  sasl_plain_username: config.sasl_plain_username,
31
32
  sasl_plain_password: config.sasl_plain_password,
32
33
  sasl_scram_username: config.sasl_scram_username,
33
34
  sasl_scram_password: config.sasl_scram_password,
34
35
  sasl_scram_mechanism: config.sasl_scram_mechanism,
36
+ sasl_oauth_token_provider: config.sasl_oauth_token_provider,
35
37
  sasl_over_ssl: config.sasl_over_ssl,
36
38
  ssl_ca_certs_from_system: config.ssl_ca_certs_from_system,
37
39
  ssl_verify_hostname: config.ssl_verify_hostname
@@ -1,3 +1,3 @@
1
1
  module Racecar
2
- VERSION = "1.0.1"
2
+ VERSION = "1.2.1"
3
3
  end
data/racecar.gemspec CHANGED
@@ -20,8 +20,8 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_runtime_dependency "king_konf", "~> 0.3.7"
24
- spec.add_runtime_dependency "ruby-kafka", "~> 0.7.8"
23
+ spec.add_runtime_dependency "king_konf", "~> 1.0"
24
+ spec.add_runtime_dependency "ruby-kafka", "~> 1.0"
25
25
 
26
26
  spec.add_development_dependency "bundler", [">= 1.13", "< 3"]
27
27
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: racecar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Schierbeck
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-01-07 00:00:00.000000000 Z
12
+ date: 2021-04-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: king_konf
@@ -17,28 +17,28 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 0.3.7
20
+ version: '1.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 0.3.7
27
+ version: '1.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: ruby-kafka
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 0.7.8
34
+ version: '1.0'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 0.7.8
41
+ version: '1.0'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: bundler
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -145,8 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  requirements: []
148
- rubyforge_project:
149
- rubygems_version: 2.7.6
148
+ rubygems_version: 3.1.2
150
149
  signing_key:
151
150
  specification_version: 4
152
151
  summary: A framework for running Kafka consumers