logstash-output-tcp 6.2.0 → 6.2.2
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/CHANGELOG.md +6 -0
- data/docs/index.asciidoc +1 -1
- data/lib/logstash/outputs/tcp.rb +25 -23
- data/logstash-output-tcp.gemspec +1 -1
- data/spec/fixtures/encrypted/instance.crt +27 -17
- data/spec/fixtures/encrypted/instance.key +50 -26
- data/spec/fixtures/plaintext/instance.crt +27 -17
- data/spec/fixtures/plaintext/instance.key +52 -27
- data/spec/outputs/tcp_spec.rb +43 -6
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12e6eaa4720dc56a6588aae77dd029643860e9ee7bfd92e5afe8893c32773f39
|
4
|
+
data.tar.gz: dd6cc7805773a7a5151aeb43c72a2d5f6122aee654c14cf206a41bdb870ca0be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1a94857cb7891d1c95b30f14e19967e1a46a56c1b3380d479d064b5094318ec598914b268e13bd8c101e5234241ba0534410808152bfe1fd02d03bb63efdf0a
|
7
|
+
data.tar.gz: e16e659b6b97859000185d15321a2dd6c805da96628464b0989db7a6cf1879c7270309ce2eb5ba49266ea4582182f8d04183f2c7ea62094ff38b5a5053c5a168
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 6.2.2
|
2
|
+
- Invoke post_connection_check on connect [#61](https://github.com/logstash-plugins/logstash-output-tcp/pull/61)
|
3
|
+
|
4
|
+
## 6.2.1
|
5
|
+
- Document correct default plugin codec [#54](https://github.com/logstash-plugins/logstash-output-tcp/pull/54)
|
6
|
+
|
1
7
|
## 6.2.0
|
2
8
|
- Reviewed and deprecated SSL settings to comply with Logstash's naming convention [#53](https://github.com/logstash-plugins/logstash-output-tcp/pull/53)
|
3
9
|
- Deprecated `ssl_enable` in favor of `ssl_enabled`
|
data/docs/index.asciidoc
CHANGED
@@ -23,7 +23,7 @@ include::{include_path}/plugin_header.asciidoc[]
|
|
23
23
|
|
24
24
|
Write events over a TCP socket.
|
25
25
|
|
26
|
-
|
26
|
+
By default this plugin uses the `json` codec. In order to have each event json separated by a newline, use the `json_lines` codec.
|
27
27
|
|
28
28
|
Can either accept connections from clients or connect to a server,
|
29
29
|
depending on `mode`.
|
data/lib/logstash/outputs/tcp.rb
CHANGED
@@ -279,7 +279,7 @@ class LogStash::Outputs::Tcp < LogStash::Outputs::Base
|
|
279
279
|
client_socket = nil
|
280
280
|
@codec.on_event do |event, payload|
|
281
281
|
begin
|
282
|
-
client_socket =
|
282
|
+
client_socket = retryable_connect unless client_socket
|
283
283
|
while payload && payload.bytesize > 0
|
284
284
|
begin
|
285
285
|
written_bytes_size = client_socket.write_nonblock(payload)
|
@@ -331,32 +331,34 @@ class LogStash::Outputs::Tcp < LogStash::Outputs::Base
|
|
331
331
|
@logger.error(msg, details)
|
332
332
|
end
|
333
333
|
|
334
|
-
private
|
335
|
-
|
336
334
|
def connect
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
raise
|
348
|
-
end
|
335
|
+
client_socket = TCPSocket.new(@host, @port)
|
336
|
+
if @ssl_enabled
|
337
|
+
client_socket = OpenSSL::SSL::SSLSocket.new(client_socket, @ssl_context)
|
338
|
+
begin
|
339
|
+
client_socket.connect
|
340
|
+
client_socket.post_connection_check(@host) if @ssl_verification_mode == 'full'
|
341
|
+
rescue OpenSSL::SSL::SSLError => ssle
|
342
|
+
log_error 'connect ssl failure:', ssle, backtrace: false
|
343
|
+
client_socket.close rescue nil
|
344
|
+
raise
|
349
345
|
end
|
350
|
-
client_socket.extend(::LogStash::Util::SocketPeer)
|
351
|
-
@logger.debug("opened connection", :client => client_socket.peer)
|
352
|
-
return client_socket
|
353
|
-
rescue => e
|
354
|
-
log_error 'failed to connect:', e
|
355
|
-
sleep @reconnect_interval
|
356
|
-
retry
|
357
346
|
end
|
358
|
-
|
347
|
+
client_socket.extend(::LogStash::Util::SocketPeer)
|
348
|
+
@logger.debug("opened connection", :client => client_socket.peer)
|
349
|
+
client_socket
|
350
|
+
end
|
359
351
|
|
352
|
+
private
|
353
|
+
def retryable_connect
|
354
|
+
connect
|
355
|
+
rescue => e
|
356
|
+
log_error 'failed to connect:', e
|
357
|
+
sleep @reconnect_interval
|
358
|
+
retry
|
359
|
+
end
|
360
|
+
|
361
|
+
private
|
360
362
|
def validate_ssl_config!
|
361
363
|
unless @ssl_enabled
|
362
364
|
ignored_ssl_settings = original_params.select { |k| k != 'ssl_enabled' && k != 'ssl_enable' && k.start_with?('ssl_') }
|
data/logstash-output-tcp.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-output-tcp'
|
4
|
-
s.version = '6.2.
|
4
|
+
s.version = '6.2.2'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Writes events over a TCP socket"
|
7
7
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
|
@@ -1,19 +1,29 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
2
|
+
MIIFCTCCAvGgAwIBAgIUdHG7Xk1l4WxvSlUvAk1mpmlhCTQwDQYJKoZIhvcNAQEL
|
3
|
+
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI1MDQyNDE1MDUzMFoXDTI2MDQy
|
4
|
+
NDE1MDUzMFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEF
|
5
|
+
AAOCAg8AMIICCgKCAgEApPKmPu7+6UxegJTzmS672REWIo+YtCK0I+Wxb4/SYwBo
|
6
|
+
9zbeGPYzs5PDA8kc8slWHsXuItjsRe5aPwtXjgmySpdQJN+RafO+F5r2nDnNftPs
|
7
|
+
oSqINJChKxfGAW+kNWDPU7gJWIujReBBrAojouPxSKsVmldtQONwS6aOJ397iPYH
|
8
|
+
d17eoqlKtQbCSwoNFTj+QkAeZRtbuwyfuwqdv1srn5HAaLMcJfXJ++1J400GLacw
|
9
|
+
Zk54HlPsPfFp092fMh0S2rkUc8ksSF3Ak5vJEgKIu3yYv3Exttvv5C1Hw5i0T1fk
|
10
|
+
26TEpsDkM3v+rJROLWZegolmyOOwPz+5OxhwCf806qatWbqQACBbS/Dpgd9wjeDO
|
11
|
+
cyunucN5zSjRYkRY0otsMOIFAfLumZJBOOJz2J1PkyfE1u38tHTBQ/EGFB/T60IN
|
12
|
+
6IE4xLCV3dlxM29ezEg7Lc+tzgMFWtWmMUlJP0HT8KUkBIyjaNl7PAgwrZvL9clQ
|
13
|
+
5ppLbU2A3e4HDE4PCqjfUq7ZEbgB0kiyvTb8LkOXRqu/jvQt3Askm6WnHGggCLY9
|
14
|
+
MYRzOkYOtCJn8zS/RY4KWrciOJYc8ieKoJ96oHc/gWkeIsL5eZ0RDUmwXbNqff8K
|
15
|
+
Ol2lx/UceoY89qoLBsTcD3Gdq4hKP5opEpsOPrTQA52Os01pEEJx4oB8tkLC00EC
|
16
|
+
AwEAAaNTMFEwHQYDVR0OBBYEFJLCl1hNHzoaJG4yaZTY0tRkBqt3MB8GA1UdIwQY
|
17
|
+
MBaAFJLCl1hNHzoaJG4yaZTY0tRkBqt3MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
|
18
|
+
hvcNAQELBQADggIBADlqdYnWF/dfNwvrP7A0lqiCO8Gc5ia/tP5xepswtKHwTLlf
|
19
|
+
WzvGI9gDDOdaOLU2BNAJjn5o6DA9MF9IWNHYCnEp0ZKTXX69IlJB3/VK2JU0L2pY
|
20
|
+
R9deha5fqAELge9o1dZ4lwvHPCsRO3peNSbQCVXSPSRNw/iQITrL/VM2qT88bJd9
|
21
|
+
v/DK0UNnhmJKNXQSjHwUtkBeKXrIURRlmkXr6YR+wIhQEm8Tx0dJTmUVb1e7bjmm
|
22
|
+
/NwDG+qFFiGScLzmVVk2gAaiPJpOFjyFqsazMUXPD/3uHPwIvVXpLxr0pby2bMHj
|
23
|
+
8FAxYYqIKcx8m0tSFecOx7k1gp1nODygJQwXuqsVbJjM1x1xA8WL0a4dcr7WCqhj
|
24
|
+
bswICLFPHTRhEqK1D8a6TEe156H2b0p4YFhjXDy94ppGEg+1/bKklehihpS2nerO
|
25
|
+
JUiuWrLNirK3Xqs7rNJ1tMx+D3fCJOdnELYjYB7HbIyySF5wTtNKSPGzhI7HMdj9
|
26
|
+
s1B8OuNJTDPKkz3P3OOFUL5Eqs6Ztvzt58+VBMv7X3+8qrSfgmhzKVm4vv3t/pOX
|
27
|
+
M3ACdYyC4y6p2HtoPke1C4ySze7f2LAW+g3Pj7awlSUsnaf2gElke8UszMvl84qI
|
28
|
+
QZ7qExJbYJ7UU9gzNG2rHE/e1OM4OL+W70t44QgNiynQCVfhC+XTAmjF0NZn
|
19
29
|
-----END CERTIFICATE-----
|
@@ -1,30 +1,54 @@
|
|
1
1
|
-----BEGIN RSA PRIVATE KEY-----
|
2
2
|
Proc-Type: 4,ENCRYPTED
|
3
|
-
DEK-Info: AES-128-CBC,
|
3
|
+
DEK-Info: AES-128-CBC,4E027532A0DE587AFF949BA191AB0BC1
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
5
|
+
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
|
30
54
|
-----END RSA PRIVATE KEY-----
|
@@ -1,19 +1,29 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
2
|
+
MIIFCTCCAvGgAwIBAgIUEfdmTh/66Nb7eEdKJ/b0HxO46S8wDQYJKoZIhvcNAQEL
|
3
|
+
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI1MDQyNDE1MDUzMFoXDTI2MDQy
|
4
|
+
NDE1MDUzMFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEF
|
5
|
+
AAOCAg8AMIICCgKCAgEApPKmPu7+6UxegJTzmS672REWIo+YtCK0I+Wxb4/SYwBo
|
6
|
+
9zbeGPYzs5PDA8kc8slWHsXuItjsRe5aPwtXjgmySpdQJN+RafO+F5r2nDnNftPs
|
7
|
+
oSqINJChKxfGAW+kNWDPU7gJWIujReBBrAojouPxSKsVmldtQONwS6aOJ397iPYH
|
8
|
+
d17eoqlKtQbCSwoNFTj+QkAeZRtbuwyfuwqdv1srn5HAaLMcJfXJ++1J400GLacw
|
9
|
+
Zk54HlPsPfFp092fMh0S2rkUc8ksSF3Ak5vJEgKIu3yYv3Exttvv5C1Hw5i0T1fk
|
10
|
+
26TEpsDkM3v+rJROLWZegolmyOOwPz+5OxhwCf806qatWbqQACBbS/Dpgd9wjeDO
|
11
|
+
cyunucN5zSjRYkRY0otsMOIFAfLumZJBOOJz2J1PkyfE1u38tHTBQ/EGFB/T60IN
|
12
|
+
6IE4xLCV3dlxM29ezEg7Lc+tzgMFWtWmMUlJP0HT8KUkBIyjaNl7PAgwrZvL9clQ
|
13
|
+
5ppLbU2A3e4HDE4PCqjfUq7ZEbgB0kiyvTb8LkOXRqu/jvQt3Askm6WnHGggCLY9
|
14
|
+
MYRzOkYOtCJn8zS/RY4KWrciOJYc8ieKoJ96oHc/gWkeIsL5eZ0RDUmwXbNqff8K
|
15
|
+
Ol2lx/UceoY89qoLBsTcD3Gdq4hKP5opEpsOPrTQA52Os01pEEJx4oB8tkLC00EC
|
16
|
+
AwEAAaNTMFEwHQYDVR0OBBYEFJLCl1hNHzoaJG4yaZTY0tRkBqt3MB8GA1UdIwQY
|
17
|
+
MBaAFJLCl1hNHzoaJG4yaZTY0tRkBqt3MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
|
18
|
+
hvcNAQELBQADggIBAGyxaUWK/Xhc8ZZ1TlJ8yz7RCN/wtRdB/Cw+6XIH9pJ86YEm
|
19
|
+
oSmdYj+2hJ650qjAh1rqjoACxcCAIWlBfrG14pVnDdKOVQwX+NZjRZv3V4fRdqSs
|
20
|
+
DgzOLbdZcocL97S42b6qPhlpkiTlQ4Z6nzeB4HjzVln+0bAb9ykFxnyicCHyCPg5
|
21
|
+
rSO5eiLGq/eXQOblBpb/xqOSsiRq6VHBFfOjjFDE2eOiYT5kuZvOWNgHUz/4e2TN
|
22
|
+
7WXNB3eJgNfmttXsQnNMK7G5J7rYlnOSg7bTCZFFbcGKf2CILKxDn4KCv/ZWeeBc
|
23
|
+
bAuAaGAJTO+DLZlah2Yn0bpkmvpsLZ6NmZr9T+BV0xa17Q8VEgd9tensxnmp0gf/
|
24
|
+
xC+kapL6pMu+2VJHQ0V9K32h3hongddofKczL1ztvKhISIVYM+vPwxS9VdXEwUxz
|
25
|
+
HTqu9hP5TBQCHR5cAKBwz3+haWA6iq8rCEXoDgwHgwYARQI6C6f8AVbU9OWLt5Nt
|
26
|
+
RwpJYMYpJhIOyuuRpaCIKAyBaST87MOj6dB31mlZQtXUFJ2ZYNmpZlCwoS1BWj8m
|
27
|
+
gHsv5vqPVHUq0lvxamNPJyGLfv+lckxXQcepMdjl2qLkAQJFYNMwOy9fFVZXOt3k
|
28
|
+
N5J4xyJ3nD50j/y9KeM3s7pDHENyIQtstJ3kMyCaD97SSlcXxTlinYOp2SIl
|
19
29
|
-----END CERTIFICATE-----
|
@@ -1,27 +1,52 @@
|
|
1
|
-
-----BEGIN
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
+
|
27
|
-
|
1
|
+
-----BEGIN PRIVATE KEY-----
|
2
|
+
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
|
51
|
+
o22D2dsjujfyKKiKar1g0pjn2ouLyGI=
|
52
|
+
-----END PRIVATE KEY-----
|
data/spec/outputs/tcp_spec.rb
CHANGED
@@ -125,7 +125,7 @@ describe LogStash::Outputs::Tcp do
|
|
125
125
|
context "client mode" do
|
126
126
|
before { subject.register }
|
127
127
|
|
128
|
-
let(:config) { super().merge
|
128
|
+
let(:config) { super().merge('mode' => 'client', 'host' => 'localhost') }
|
129
129
|
|
130
130
|
it 'writes payload data' do
|
131
131
|
Thread.start { sleep 0.25; subject.receive event }
|
@@ -229,11 +229,48 @@ describe LogStash::Outputs::Tcp do
|
|
229
229
|
expect( read ).to end_with 'foo bar'
|
230
230
|
end
|
231
231
|
|
232
|
+
context 'with ssl_verification_mode => full' do
|
233
|
+
let(:config) do
|
234
|
+
{
|
235
|
+
"mode" => "client",
|
236
|
+
"host" => "localhost",
|
237
|
+
"port" => port,
|
238
|
+
"ssl_enabled" => true,
|
239
|
+
"ssl_certificate_authorities" => crt_file,
|
240
|
+
"ssl_verification_mode" => "full",
|
241
|
+
"codec" => "plain"
|
242
|
+
}
|
243
|
+
end
|
244
|
+
|
245
|
+
context "with right host name" do
|
246
|
+
let(:config) { super().merge("host" => "localhost") }
|
247
|
+
it 'reads plain data' do
|
248
|
+
thread = Thread.start { sleep 0.25; subject.receive event }
|
249
|
+
socket = secure_server.accept
|
250
|
+
read = socket.sysread(100)
|
251
|
+
expect( read.size ).to be > 0
|
252
|
+
expect( read ).to end_with 'foo bar'
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
context "with wrong host name" do
|
257
|
+
let(:config) { super().merge("host" => "127.0.0.1") }
|
258
|
+
it 'closes the connection' do
|
259
|
+
thread = Thread.start do
|
260
|
+
sleep 0.25
|
261
|
+
expect { subject.connect }.to raise_error(OpenSSL::SSL::SSLError, /hostname "127.0.0.1" does not match the server certificate/)
|
262
|
+
end
|
263
|
+
secure_server.accept rescue nil # the other side will close the connection potentially causing a "Socket closed" error
|
264
|
+
thread.join
|
265
|
+
end
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
232
269
|
end
|
233
270
|
|
234
271
|
context 'with unsupported protocol (on server)' do
|
235
272
|
|
236
|
-
let(:config) { super().merge("ssl_supported_protocols" => ['TLSv1.1']) }
|
273
|
+
let(:config) { super().merge("ssl_supported_protocols" => ['TLSv1.1'], "reconnect_interval" => 1) }
|
237
274
|
|
238
275
|
let(:server_min_version) { 'TLS1_2' }
|
239
276
|
|
@@ -241,16 +278,16 @@ describe LogStash::Outputs::Tcp do
|
|
241
278
|
after { secure_server.close }
|
242
279
|
|
243
280
|
it 'fails (and loops retrying)' do
|
244
|
-
expect(subject.logger).to receive(:error).with(/connect ssl failure/i, hash_including(message: /No appropriate protocol/i)).and_call_original
|
245
|
-
expect(subject.logger).to receive(:error).with(/failed to connect/i, hash_including(exception: OpenSSL::SSL::SSLError)).and_call_original
|
281
|
+
expect(subject.logger).to receive(:error).twice.with(/connect ssl failure/i, hash_including(message: /No appropriate protocol/i)).and_call_original
|
282
|
+
expect(subject.logger).to receive(:error).twice.with(/failed to connect/i, hash_including(exception: OpenSSL::SSL::SSLError)).and_call_original
|
246
283
|
expect(subject).to receive(:sleep).once.and_call_original
|
247
284
|
expect(subject).to receive(:sleep).once.and_throw :TEST_DONE # to be able to abort the retry loop
|
248
285
|
|
249
286
|
Thread.start { secure_server.accept rescue nil }
|
250
|
-
expect { subject.receive event }.to throw_symbol(:TEST_DONE)
|
287
|
+
expect { sleep 0.25; subject.receive event }.to throw_symbol(:TEST_DONE)
|
251
288
|
end
|
252
289
|
|
253
|
-
end
|
290
|
+
end
|
254
291
|
|
255
292
|
end
|
256
293
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-tcp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.2.
|
4
|
+
version: 6.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -20,8 +20,8 @@ dependencies:
|
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '2.99'
|
22
22
|
name: logstash-core-plugin-api
|
23
|
-
prerelease: false
|
24
23
|
type: :runtime
|
24
|
+
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
@@ -37,8 +37,8 @@ dependencies:
|
|
37
37
|
- !ruby/object:Gem::Version
|
38
38
|
version: 8.1.0
|
39
39
|
name: logstash-core
|
40
|
-
prerelease: false
|
41
40
|
type: :runtime
|
41
|
+
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - ">="
|
@@ -51,8 +51,8 @@ dependencies:
|
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '0'
|
53
53
|
name: logstash-codec-json
|
54
|
-
prerelease: false
|
55
54
|
type: :runtime
|
55
|
+
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - ">="
|
@@ -65,8 +65,8 @@ dependencies:
|
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '0'
|
67
67
|
name: stud
|
68
|
-
prerelease: false
|
69
68
|
type: :runtime
|
69
|
+
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - ">="
|
@@ -79,8 +79,8 @@ dependencies:
|
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '1.0'
|
81
81
|
name: logstash-mixin-normalize_config_support
|
82
|
-
prerelease: false
|
83
82
|
type: :runtime
|
83
|
+
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
@@ -93,8 +93,8 @@ dependencies:
|
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: 0.12.2
|
95
95
|
name: jruby-openssl
|
96
|
-
prerelease: false
|
97
96
|
type: :runtime
|
97
|
+
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - ">="
|
@@ -107,8 +107,8 @@ dependencies:
|
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: '0'
|
109
109
|
name: logstash-devutils
|
110
|
-
prerelease: false
|
111
110
|
type: :development
|
111
|
+
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
114
|
- - ">="
|
@@ -121,8 +121,8 @@ dependencies:
|
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0'
|
123
123
|
name: logstash-codec-plain
|
124
|
-
prerelease: false
|
125
124
|
type: :development
|
125
|
+
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
128
|
- - ">="
|
@@ -135,8 +135,8 @@ dependencies:
|
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: '0'
|
137
137
|
name: flores
|
138
|
-
prerelease: false
|
139
138
|
type: :development
|
139
|
+
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - ">="
|
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
185
|
- !ruby/object:Gem::Version
|
186
186
|
version: '0'
|
187
187
|
requirements: []
|
188
|
-
rubygems_version: 3.
|
188
|
+
rubygems_version: 3.3.26
|
189
189
|
signing_key:
|
190
190
|
specification_version: 4
|
191
191
|
summary: Writes events over a TCP socket
|