logstash-filter-elasticsearch 4.3.0 → 4.3.1

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: deef535881ed311e6241449028bf6b54b65e0a42e6513b1ab7286de724f5445f
4
- data.tar.gz: 103f17c0b6d6530c90afc412f69c05dc29ec4f76aecb7f82e22d7efd4f497647
3
+ metadata.gz: 57e0e5b17b9f3c454be9379c9dc617fdaad05f961600ec6d002eee6b2841a515
4
+ data.tar.gz: 5b484b241209b5bd9e067d798a6267ba9702734471b2ec99227238b5a2728fdb
5
5
  SHA512:
6
- metadata.gz: 54b3f3b78874934793ac7d7dca148236578b7756a20bddb70d020e14f9b222fbc70b4c8f2b7f132b238ed9d9690d4ac8e684749e959aa64d3ccd0b58aded7790
7
- data.tar.gz: 98e18b162c4dd25827fb1b74ec62d75d152458950b8ee157e635a6c772247774aeaa82ec2ca5031e808361a02b454360438e4fd717deb07987d3d2519e00a327
6
+ metadata.gz: ebb1434c624d486b3f07ccf786b9a277ecf46fe57860a0e665fb487f685045bd3f9e1097ab2fe6457f740f0387b3a987502b98b734508742811196825aad969b
7
+ data.tar.gz: 1bb0519e3894124b26a4c29ecae6683d8be668df51d40f20dd5cd1f231ba7666032bf353d685cd96ed63167e628998a2430e2f67b1594f3e0ae00be4760a9f9a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 4.3.1
2
+ - Added support for encoded and non encoded api-key formats on plugin configuration [#203](https://github.com/logstash-plugins/logstash-filter-elasticsearch/pull/203)
3
+
1
4
  ## 4.3.0
2
5
  - ES|QL support [#194](https://github.com/logstash-plugins/logstash-filter-elasticsearch/pull/194)
3
6
 
@@ -101,12 +101,18 @@ module LogStash
101
101
  end
102
102
 
103
103
  def setup_api_key(api_key)
104
- return {} unless (api_key && api_key.value)
104
+ return {} unless (api_key&.value)
105
105
 
106
- token = ::Base64.strict_encode64(api_key.value)
106
+ token = base64?(api_key.value) ? api_key.value : Base64.strict_encode64(api_key.value)
107
107
  { 'Authorization' => "ApiKey #{token}" }
108
108
  end
109
109
 
110
+ def base64?(string)
111
+ string == Base64.strict_encode64(Base64.strict_decode64(string))
112
+ rescue ArgumentError
113
+ false
114
+ end
115
+
110
116
  def get_transport_client_class
111
117
  # LS-core includes `elasticsearch` gem. The gem is composed of two separate gems: `elasticsearch-api` and `elasticsearch-transport`
112
118
  # And now `elasticsearch-transport` is old, instead we have `elastic-transport`.
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-elasticsearch'
4
- s.version = '4.3.0'
4
+ s.version = '4.3.1'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Copies fields from previous log events in Elasticsearch to current events "
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"
@@ -324,14 +324,28 @@ describe LogStash::Filters::Elasticsearch do
324
324
  end
325
325
 
326
326
  context "with ssl" do
327
- let(:config) { super().merge({ 'api_key' => LogStash::Util::Password.new('foo:bar'), "ssl_enabled" => true }) }
327
+ let(:api_key_value) { nil }
328
+ let(:config) { super().merge("ssl_enabled" => true, 'api_key' => LogStash::Util::Password.new(api_key_value)) }
329
+ let(:encoded_api_key) { Base64.strict_encode64('foo:bar') }
328
330
 
329
- it "should set authorization" do
330
- plugin.register
331
- client = plugin.send(:get_client).client
332
- auth_header = extract_transport(client).options[:transport_options][:headers]['Authorization']
331
+ shared_examples "a plugin that sets the ApiKey authorization header" do
332
+ it "correctly sets the Authorization header" do
333
+ plugin.register
334
+ client= plugin.send(:get_client).client
335
+ auth_header = extract_transport(client).options[:transport_options][:headers]['Authorization']
336
+
337
+ expect(auth_header).to eql("ApiKey #{encoded_api_key}")
338
+ end
339
+ end
340
+
341
+ context "with a non-encoded API key" do
342
+ let(:api_key_value) { "foo:bar" }
343
+ it_behaves_like "a plugin that sets the ApiKey authorization header"
344
+ end
333
345
 
334
- expect( auth_header ).to eql "ApiKey #{Base64.strict_encode64('foo:bar')}"
346
+ context "with an encoded API key" do
347
+ let(:api_key_value) { encoded_api_key }
348
+ it_behaves_like "a plugin that sets the ApiKey authorization header"
335
349
  end
336
350
 
337
351
  context 'user also set' do
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.0
4
+ version: 4.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-07-21 00:00:00.000000000 Z
10
+ date: 2025-09-23 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
13
+ name: logstash-core-plugin-api
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
@@ -19,7 +19,6 @@ dependencies:
19
19
  - - "<="
20
20
  - !ruby/object:Gem::Version
21
21
  version: '2.99'
22
- name: logstash-core-plugin-api
23
22
  type: :runtime
24
23
  prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -31,6 +30,7 @@ dependencies:
31
30
  - !ruby/object:Gem::Version
32
31
  version: '2.99'
33
32
  - !ruby/object:Gem::Dependency
33
+ name: elasticsearch
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
36
36
  - - ">="
@@ -39,7 +39,6 @@ dependencies:
39
39
  - - "<"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '9'
42
- name: elasticsearch
43
42
  type: :runtime
44
43
  prerelease: false
45
44
  version_requirements: !ruby/object:Gem::Requirement
@@ -51,12 +50,12 @@ dependencies:
51
50
  - !ruby/object:Gem::Version
52
51
  version: '9'
53
52
  - !ruby/object:Gem::Dependency
53
+ name: manticore
54
54
  requirement: !ruby/object:Gem::Requirement
55
55
  requirements:
56
56
  - - ">="
57
57
  - !ruby/object:Gem::Version
58
58
  version: 0.7.1
59
- name: manticore
60
59
  type: :runtime
61
60
  prerelease: false
62
61
  version_requirements: !ruby/object:Gem::Requirement
@@ -65,12 +64,12 @@ dependencies:
65
64
  - !ruby/object:Gem::Version
66
65
  version: 0.7.1
67
66
  - !ruby/object:Gem::Dependency
67
+ name: logstash-mixin-ecs_compatibility_support
68
68
  requirement: !ruby/object:Gem::Requirement
69
69
  requirements:
70
70
  - - "~>"
71
71
  - !ruby/object:Gem::Version
72
72
  version: '1.3'
73
- name: logstash-mixin-ecs_compatibility_support
74
73
  type: :runtime
75
74
  prerelease: false
76
75
  version_requirements: !ruby/object:Gem::Requirement
@@ -79,12 +78,12 @@ dependencies:
79
78
  - !ruby/object:Gem::Version
80
79
  version: '1.3'
81
80
  - !ruby/object:Gem::Dependency
81
+ name: logstash-mixin-ca_trusted_fingerprint_support
82
82
  requirement: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
86
  version: '1.0'
87
- name: logstash-mixin-ca_trusted_fingerprint_support
88
87
  type: :runtime
89
88
  prerelease: false
90
89
  version_requirements: !ruby/object:Gem::Requirement
@@ -93,12 +92,12 @@ dependencies:
93
92
  - !ruby/object:Gem::Version
94
93
  version: '1.0'
95
94
  - !ruby/object:Gem::Dependency
95
+ name: logstash-mixin-validator_support
96
96
  requirement: !ruby/object:Gem::Requirement
97
97
  requirements:
98
98
  - - "~>"
99
99
  - !ruby/object:Gem::Version
100
100
  version: '1.0'
101
- name: logstash-mixin-validator_support
102
101
  type: :runtime
103
102
  prerelease: false
104
103
  version_requirements: !ruby/object:Gem::Requirement
@@ -107,12 +106,12 @@ dependencies:
107
106
  - !ruby/object:Gem::Version
108
107
  version: '1.0'
109
108
  - !ruby/object:Gem::Dependency
109
+ name: cabin
110
110
  requirement: !ruby/object:Gem::Requirement
111
111
  requirements:
112
112
  - - "~>"
113
113
  - !ruby/object:Gem::Version
114
114
  version: '0.6'
115
- name: cabin
116
115
  type: :development
117
116
  prerelease: false
118
117
  version_requirements: !ruby/object:Gem::Requirement
@@ -121,12 +120,12 @@ dependencies:
121
120
  - !ruby/object:Gem::Version
122
121
  version: '0.6'
123
122
  - !ruby/object:Gem::Dependency
123
+ name: webrick
124
124
  requirement: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - ">="
127
127
  - !ruby/object:Gem::Version
128
128
  version: '0'
129
- name: webrick
130
129
  type: :development
131
130
  prerelease: false
132
131
  version_requirements: !ruby/object:Gem::Requirement
@@ -135,12 +134,12 @@ dependencies:
135
134
  - !ruby/object:Gem::Version
136
135
  version: '0'
137
136
  - !ruby/object:Gem::Dependency
137
+ name: logstash-devutils
138
138
  requirement: !ruby/object:Gem::Requirement
139
139
  requirements:
140
140
  - - ">="
141
141
  - !ruby/object:Gem::Version
142
142
  version: '0'
143
- name: logstash-devutils
144
143
  type: :development
145
144
  prerelease: false
146
145
  version_requirements: !ruby/object:Gem::Requirement
@@ -205,7 +204,6 @@ licenses:
205
204
  metadata:
206
205
  logstash_plugin: 'true'
207
206
  logstash_group: filter
208
- post_install_message:
209
207
  rdoc_options: []
210
208
  require_paths:
211
209
  - lib
@@ -220,8 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
220
218
  - !ruby/object:Gem::Version
221
219
  version: '0'
222
220
  requirements: []
223
- rubygems_version: 3.3.26
224
- signing_key:
221
+ rubygems_version: 3.6.3
225
222
  specification_version: 4
226
223
  summary: Copies fields from previous log events in Elasticsearch to current events
227
224
  test_files: