logstash-output-opensearch 1.3.0-java → 2.0.3-java

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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/COMPATIBILITY.md +5 -3
  4. data/DEVELOPER_GUIDE.md +6 -1
  5. data/MAINTAINERS.md +15 -64
  6. data/README.md +57 -35
  7. data/RELEASING.md +5 -1
  8. data/docs/building_custom_docker_images.md +79 -0
  9. data/docs/ecs_compatibility.md +42 -0
  10. data/lib/logstash/outputs/opensearch/http_client/manticore_adapter.rb +47 -14
  11. data/lib/logstash/outputs/opensearch/http_client/pool.rb +11 -2
  12. data/lib/logstash/outputs/opensearch/http_client.rb +28 -6
  13. data/lib/logstash/outputs/opensearch/http_client_builder.rb +4 -2
  14. data/lib/logstash/outputs/opensearch/template_manager.rb +6 -5
  15. data/lib/logstash/outputs/opensearch/templates/ecs-disabled/1x_index.json +66 -0
  16. data/lib/logstash/outputs/opensearch/templates/ecs-disabled/2x_index.json +66 -0
  17. data/lib/logstash/outputs/opensearch/templates/ecs-disabled/7x_index.json +66 -0
  18. data/lib/logstash/outputs/opensearch/templates/ecs-v8/1x_index.json +5254 -0
  19. data/lib/logstash/outputs/opensearch/templates/ecs-v8/2x_index.json +5254 -0
  20. data/lib/logstash/outputs/opensearch/templates/ecs-v8/7x_index.json +5254 -0
  21. data/lib/logstash/outputs/opensearch.rb +7 -0
  22. data/lib/logstash/plugin_mixins/opensearch/common.rb +1 -0
  23. data/logstash-output-opensearch.gemspec +2 -2
  24. data/spec/integration/outputs/index_spec.rb +3 -2
  25. data/spec/opensearch_spec_helper.rb +9 -0
  26. data/spec/unit/outputs/opensearch/http_client/manticore_adapter_spec.rb +72 -14
  27. data/spec/unit/outputs/opensearch/http_client_spec.rb +20 -0
  28. data/spec/unit/outputs/opensearch/template_manager_spec.rb +8 -20
  29. data/spec/unit/outputs/opensearch_spec.rb +24 -0
  30. data.tar.gz.sig +0 -0
  31. metadata +32 -30
  32. metadata.gz.sig +0 -0
@@ -199,6 +199,13 @@ class LogStash::Outputs::OpenSearch < LogStash::Outputs::Base
199
199
  # Set which ingest pipeline you wish to execute for an event. You can also use event dependent configuration
200
200
  # here like `pipeline => "%{INGEST_PIPELINE}"`
201
201
  config :pipeline, :validate => :string, :default => nil
202
+
203
+ # When set to true, use legacy templates via the _template API
204
+ # When false, use index templates using the _index_template API
205
+ config :legacy_template, :validate => :boolean, :default => true
206
+
207
+ # The OpenSearch server major version to use when it's not available from the Healthcheck endpoint.
208
+ config :default_server_major_version, :validate => :number
202
209
 
203
210
  attr_reader :client
204
211
  attr_reader :default_index
@@ -87,6 +87,7 @@ module LogStash; module PluginMixins; module OpenSearch
87
87
 
88
88
  def discover_cluster_uuid
89
89
  return unless defined?(plugin_metadata)
90
+ return if params && params['auth_type'] && params['auth_type']['service_name'] == "aoss" # AOSS doesn't support GET /
90
91
  cluster_info = client.get('/')
91
92
  plugin_metadata.set(:cluster_uuid, cluster_info['cluster_uuid'])
92
93
  rescue => e
@@ -11,7 +11,7 @@ signing_key_path = "gem-private_key.pem"
11
11
 
12
12
  Gem::Specification.new do |s|
13
13
  s.name = 'logstash-output-opensearch'
14
- s.version = '1.3.0'
14
+ s.version = '2.0.3'
15
15
 
16
16
  s.licenses = ['Apache-2.0']
17
17
  s.summary = "Stores logs in OpenSearch"
@@ -45,7 +45,7 @@ Gem::Specification.new do |s|
45
45
  s.add_runtime_dependency 'stud', ['>= 0.0.17', '~> 0.0']
46
46
  s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
47
47
  s.add_runtime_dependency 'logstash-mixin-ecs_compatibility_support', '~>1.0'
48
- s.add_runtime_dependency 'aws-sdk', '>= 2.11.632', '~> 2'
48
+ s.add_runtime_dependency 'aws-sdk', '~> 3'
49
49
  s.add_runtime_dependency 'json', '>= 2.3.0', '~> 2'
50
50
 
51
51
  s.add_development_dependency 'logstash-codec-plain'
@@ -140,7 +140,7 @@ describe "indexing" do
140
140
  end
141
141
  describe "a secured indexer", :secure_integration => true do
142
142
  let(:user) { "admin" }
143
- let(:password) { "admin" }
143
+ let(:password) { OpenSearchHelper.admin_password }
144
144
  let(:opensearch_url) {"https://integration:9200"}
145
145
  let(:config) do
146
146
  {
@@ -172,7 +172,8 @@ describe "indexing" do
172
172
  :auth_type => {
173
173
  "type"=>"basic",
174
174
  "user" => "admin",
175
- "password" => "admin"}
175
+ "password" => OpenSearchHelper.admin_password
176
+ }
176
177
  } }
177
178
  let(:user) {options[:auth_type]["user"]}
178
179
  let(:password) {options[:auth_type]["password"]}
@@ -72,6 +72,15 @@ module OpenSearchHelper
72
72
  end
73
73
  end
74
74
 
75
+ # set admin password based on version
76
+ def self.admin_password
77
+ if check_version?('< 2.12.0') || check_version?('> 7')
78
+ "admin"
79
+ else
80
+ "myStrongPassword123!"
81
+ end
82
+ end
83
+
75
84
  def clean(client)
76
85
  client.indices.delete_template(:name => "*")
77
86
  client.indices.delete_index_template(:name => "logstash*") rescue nil
@@ -61,31 +61,89 @@ describe LogStash::Outputs::OpenSearch::HttpClient::ManticoreAdapter do
61
61
  "aws_access_key_id"=>"AAAAAAAAAAAAAAAAAAAA",
62
62
  "aws_secret_access_key"=>"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}
63
63
  } }
64
+ let(:options_svc) { {
65
+ :auth_type => {
66
+ "type"=>"aws_iam",
67
+ "aws_access_key_id"=>"AAAAAAAAAAAAAAAAAAAA",
68
+ "aws_secret_access_key"=>"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
69
+ "service_name"=>"svc_test"}
70
+ } }
64
71
  subject { described_class.new(logger, options) }
65
72
  let(:uri) { ::LogStash::Util::SafeURI.new("http://localhost:9200") }
66
- let(:sign_aws_request) { }
67
73
 
68
- it "should validate AWS IAM credentials initialization" do
69
- expect(subject.aws_iam_auth_initialization(options)).not_to be_nil
70
- end
74
+ let(:expected_uri) {
75
+ expected_uri = uri.clone
76
+ expected_uri.path = "/"
77
+ expected_uri
78
+ }
71
79
 
72
- it "should validate signing aws request" do
80
+ let(:resp) {
73
81
  resp = double("response")
74
82
  allow(resp).to receive(:call)
75
83
  allow(resp).to receive(:code).and_return(200)
76
- allow(subject).to receive(:sign_aws_request).with(any_args).and_return(sign_aws_request)
84
+ resp
85
+ }
77
86
 
78
- expected_uri = uri.clone
79
- expected_uri.path = "/"
87
+ context 'with a signer' do
88
+ let(:sign_aws_request) { }
80
89
 
81
- expect(subject.manticore).to receive(:get).
82
- with(expected_uri.to_s, {
83
- :headers => {"content-type"=> "application/json"}
84
- }
90
+ it "should validate AWS IAM credentials initialization" do
91
+ expect(subject.aws_iam_auth_initialization(options)).not_to be_nil
92
+ expect(subject.get_service_name).to eq("es")
93
+ end
94
+
95
+ it "should validate AWS IAM service_name config" do
96
+ expect(subject.aws_iam_auth_initialization(options_svc)).not_to be_nil
97
+ expect(subject.get_service_name).to eq("svc_test")
98
+ end
99
+
100
+ it "should validate signing aws request" do
101
+ allow(subject).to receive(:sign_aws_request).with(any_args).and_return(sign_aws_request)
102
+
103
+ expect(subject.manticore).to receive(:get).
104
+ with(expected_uri.to_s, {
105
+ :headers => {"content-type"=> "application/json"}
106
+ }
107
+ ).and_return resp
108
+
109
+ expect(subject).to receive(:sign_aws_request)
110
+ subject.perform_request(uri, :get, "/")
111
+ end
112
+ end
113
+
114
+ context 'sign_aws_request' do
115
+ it 'handles UTF-8' do
116
+ encoded_body = body = "boîte de réception"
117
+ expect_any_instance_of(Aws::Sigv4::Signer).to receive(:sign_request).with(hash_including({
118
+ body: body,
119
+ })).and_return(
120
+ double(headers: {})
121
+ )
122
+ expect(subject.manticore).to receive(:post).
123
+ with(expected_uri.to_s, {
124
+ :body => encoded_body,
125
+ :headers => {"content-type"=> "application/json"}
126
+ }
85
127
  ).and_return resp
128
+ subject.perform_request(uri, :post, "/", { body: encoded_body })
129
+ end
86
130
 
87
- expect(subject).to receive(:sign_aws_request)
88
- subject.perform_request(uri, :get, "/")
131
+ it 'encodes body before signing to match manticore adapter encoding' do
132
+ body = "boîte de réception"
133
+ encoded_body = body.encode("ISO-8859-1")
134
+ expect_any_instance_of(Aws::Sigv4::Signer).to receive(:sign_request).with(hash_including({
135
+ body: body,
136
+ })).and_return(
137
+ double(headers: {})
138
+ )
139
+ expect(subject.manticore).to receive(:post).
140
+ with(expected_uri.to_s, {
141
+ :body => encoded_body,
142
+ :headers => {"content-type"=> "application/json"}
143
+ }
144
+ ).and_return resp
145
+ subject.perform_request(uri, :post, "/", { body: encoded_body })
146
+ end
89
147
  end
90
148
  end
91
149
 
@@ -162,6 +162,26 @@ describe LogStash::Outputs::OpenSearch::HttpClient do
162
162
  end
163
163
  end
164
164
 
165
+ describe "legacy_template" do
166
+ let(:template_name) { "logstash" }
167
+ let(:template) { {} }
168
+ let(:get_response) {
169
+ double("response", :body => {}, :code => 404)
170
+ }
171
+ [true, false].each do |legacy_template|
172
+ context "when legacy_template => #{legacy_template}" do
173
+ let(:base_options) { super().merge(:client_settings => {:legacy_template => legacy_template}) }
174
+ subject { described_class.new(base_options) }
175
+ endpoint = legacy_template ? "_template" : "_index_template"
176
+ it "should call template_endpoint #{endpoint}" do
177
+ expect(subject.pool).to receive(:head).with("/#{endpoint}/#{template_name}").and_return(get_response)
178
+ expect(subject.pool).to receive(:put).with("/#{endpoint}/#{template_name}", nil, anything).and_return(get_response)
179
+ subject.template_install(template_name, template)
180
+ end
181
+ end
182
+ end
183
+ end
184
+
165
185
  describe "join_bulk_responses" do
166
186
  subject { described_class.new(base_options) }
167
187
 
@@ -13,27 +13,15 @@ require "logstash/outputs/opensearch/template_manager"
13
13
  describe LogStash::Outputs::OpenSearch::TemplateManager do
14
14
 
15
15
  describe ".default_template_path" do
16
- [1, 2].each do |major_version|
17
- context "when ECS is disabled with OpenSearch #{major_version}.x" do
18
- it 'resolves' do
19
- expect(described_class.default_template_path(major_version)).to end_with("/templates/ecs-disabled/#{major_version}x.json")
20
- end
21
- it 'resolves' do
22
- expect(described_class.default_template_path(major_version, :disabled)).to end_with("/templates/ecs-disabled/#{major_version}x.json")
23
- end
24
- end
25
- end
26
16
  [7, 1, 2].each do |major_version|
27
- context "when ECS v1 is requested with OpenSearch #{major_version}.x" do
28
- it 'resolves' do
29
- expect(described_class.default_template_path(major_version, :v1)).to end_with("/templates/ecs-v1/#{major_version}x.json")
30
- end
31
- end
32
- end
33
- [1, 2].each do |major_version|
34
- context "when ECS v8 is requested with OpenSearch #{major_version}.x" do
35
- it 'resolves' do
36
- expect(described_class.default_template_path(major_version, :v8)).to end_with("/templates/ecs-v8/#{major_version}x.json")
17
+ [:disabled, :v1, :v8].each do |ecs_ver|
18
+ [true, false].each do |legacy_template|
19
+ context "when ECS is #{ecs_ver} with OpenSearch #{major_version}.x legacy_template:#{legacy_template}" do
20
+ suffix = legacy_template ? "" : "_index"
21
+ it 'resolves' do
22
+ expect(described_class.default_template_path(major_version, ecs_ver, legacy_template)).to end_with("/templates/ecs-#{ecs_ver}/#{major_version}x#{suffix}.json")
23
+ end
24
+ end
37
25
  end
38
26
  end
39
27
  end
@@ -776,6 +776,30 @@ describe LogStash::Outputs::OpenSearch do
776
776
  expect(logger).to have_received(:error).with(/Unable to retrieve OpenSearch cluster uuid/i, anything)
777
777
  end
778
778
 
779
+ context 'with iam auth' do
780
+ context 'es' do
781
+ let(:options) { { 'hosts' => '127.0.0.1:9999', 'auth_type' => { 'service_name' => 'es' } } }
782
+ it "logs inability to retrieve uuid" do
783
+ allow(subject).to receive(:install_template)
784
+ subject.register
785
+ subject.send :wait_for_successful_connection
786
+
787
+ expect(logger).to have_received(:error).with(/Unable to retrieve OpenSearch cluster uuid/i, anything)
788
+ end
789
+ end
790
+
791
+ context 'aoss' do
792
+ let(:options) { { 'hosts' => '127.0.0.1:9999', 'auth_type' => { 'service_name' => 'aoss' } } }
793
+ it "does not attempt to retrieve uuid" do
794
+ allow(subject).to receive(:install_template)
795
+ subject.register
796
+ subject.send :wait_for_successful_connection
797
+
798
+ expect(logger).to_not have_received(:error)
799
+ end
800
+ end
801
+ end
802
+
779
803
  it "logs template install failure" do
780
804
  allow(subject).to receive(:discover_cluster_uuid)
781
805
  subject.register
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-opensearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.0.3
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
@@ -11,9 +11,9 @@ bindir: bin
11
11
  cert_chain:
12
12
  - |
13
13
  -----BEGIN CERTIFICATE-----
14
- MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQUFADBCMRMwEQYDVQQDDApvcGVu
14
+ MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQsFADBCMRMwEQYDVQQDDApvcGVu
15
15
  c2VhcmNoMRYwFAYKCZImiZPyLGQBGRYGYW1hem9uMRMwEQYKCZImiZPyLGQBGRYD
16
- Y29tMB4XDTIyMDgxNzE3NTIzNFoXDTIzMDgxNzE3NTIzNFowQjETMBEGA1UEAwwK
16
+ Y29tMB4XDTI0MDcyNjIzMjIyN1oXDTI1MDcyNjIzMjIyN1owQjETMBEGA1UEAwwK
17
17
  b3BlbnNlYXJjaDEWMBQGCgmSJomT8ixkARkWBmFtYXpvbjETMBEGCgmSJomT8ixk
18
18
  ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM1z3/jcitjV
19
19
  umXwRFn+JSBBd36qZB54Dtucf6+E2fmNPzBRhgYN5XJy/+clQJ9NIJV7C8H52P3V
@@ -24,14 +24,14 @@ cert_chain:
24
24
  zfR37/NQFkECAwEAAaN9MHswCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
25
25
  BBYEFJJ2myhLXK742btavNbG0IWrMNBIMCAGA1UdEQQZMBeBFW9wZW5zZWFyY2hA
26
26
  YW1hem9uLmNvbTAgBgNVHRIEGTAXgRVvcGVuc2VhcmNoQGFtYXpvbi5jb20wDQYJ
27
- KoZIhvcNAQEFBQADggEBAH5pWLYwKWFh1OjdCReGz/VEAiF4jXXputoN5Z8ga+1Z
28
- lg8/diJf0PlP2B46PdmxH/TVc/o+qglNO2cHVEp8xZfEd83dfioOBeK90URQUpC5
29
- UZmO0LZusg46SQKwKa2ukpIy2fNi3PeHRiV+W2Zv69GoWppyLun+fMez7wVoah2r
30
- r5ROUYuAvFUvga1Vm+49pKiPM5n+MAYP5t/vWhgymY3SYQ1TfewkvKAFiFXikOR+
31
- r+j7FLyKuk5DzIxiCp8QN5dU71BbGUmsHf/C5UV76WLPOFX/szeaHhPwpjR3sK7r
32
- 5zLgCV1KP7cgDdCYMlmZGeSViU8NV+Yy8/ghrzGpqVw=
27
+ KoZIhvcNAQELBQADggEBAB1D6Ba88KkTApeUl0Iv/WKie1WNi+6o3KQhqqLt+xjB
28
+ oiBLLdQpKwH7k/TkCmfo9/8lY1sa3Pxckuw2fNVDaVhEHX56fmTUPoOjkyPS4H19
29
+ YEKFBeY6U1aF7a2piN58j4EcPP7Kv0KD3RlaEwKbYJTiOy/0f5XjWqVYKOS+DrjM
30
+ EMhX0gWR5oucydDNSi5hkggPYqCZnW9q6yo+k/FW+DK33CeUm69D6elFx7qPGhEx
31
+ m0rB25J1sO2yjlalRdBoV5p7OKaWG4CGMr+q6vCC2za7yrtZiYOOv+KpWmheTwds
32
+ P1nbdIL2eAXGfNU3cbtYisS1sSYi7VSkS52pVk8Jgtw=
33
33
  -----END CERTIFICATE-----
34
- date: 2022-08-17 00:00:00.000000000 Z
34
+ date: 2024-11-04 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  requirement: !ruby/object:Gem::Requirement
@@ -43,8 +43,8 @@ dependencies:
43
43
  - !ruby/object:Gem::Version
44
44
  version: 1.0.0
45
45
  name: manticore
46
- prerelease: false
47
46
  type: :runtime
47
+ prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - ">="
@@ -63,8 +63,8 @@ dependencies:
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0.0'
65
65
  name: stud
66
- prerelease: false
67
66
  type: :runtime
67
+ prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
70
  - - ">="
@@ -83,8 +83,8 @@ dependencies:
83
83
  - !ruby/object:Gem::Version
84
84
  version: '2.99'
85
85
  name: logstash-core-plugin-api
86
- prerelease: false
87
86
  type: :runtime
87
+ prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  requirements:
90
90
  - - ">="
@@ -100,8 +100,8 @@ dependencies:
100
100
  - !ruby/object:Gem::Version
101
101
  version: '1.0'
102
102
  name: logstash-mixin-ecs_compatibility_support
103
- prerelease: false
104
103
  type: :runtime
104
+ prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
@@ -110,23 +110,17 @@ dependencies:
110
110
  - !ruby/object:Gem::Dependency
111
111
  requirement: !ruby/object:Gem::Requirement
112
112
  requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: 2.11.632
116
113
  - - "~>"
117
114
  - !ruby/object:Gem::Version
118
- version: '2'
115
+ version: '3'
119
116
  name: aws-sdk
120
- prerelease: false
121
117
  type: :runtime
118
+ prerelease: false
122
119
  version_requirements: !ruby/object:Gem::Requirement
123
120
  requirements:
124
- - - ">="
125
- - !ruby/object:Gem::Version
126
- version: 2.11.632
127
121
  - - "~>"
128
122
  - !ruby/object:Gem::Version
129
- version: '2'
123
+ version: '3'
130
124
  - !ruby/object:Gem::Dependency
131
125
  requirement: !ruby/object:Gem::Requirement
132
126
  requirements:
@@ -137,8 +131,8 @@ dependencies:
137
131
  - !ruby/object:Gem::Version
138
132
  version: '2'
139
133
  name: json
140
- prerelease: false
141
134
  type: :runtime
135
+ prerelease: false
142
136
  version_requirements: !ruby/object:Gem::Requirement
143
137
  requirements:
144
138
  - - ">="
@@ -154,8 +148,8 @@ dependencies:
154
148
  - !ruby/object:Gem::Version
155
149
  version: '0'
156
150
  name: logstash-codec-plain
157
- prerelease: false
158
151
  type: :development
152
+ prerelease: false
159
153
  version_requirements: !ruby/object:Gem::Requirement
160
154
  requirements:
161
155
  - - ">="
@@ -168,8 +162,8 @@ dependencies:
168
162
  - !ruby/object:Gem::Version
169
163
  version: '0'
170
164
  name: logstash-devutils
171
- prerelease: false
172
165
  type: :development
166
+ prerelease: false
173
167
  version_requirements: !ruby/object:Gem::Requirement
174
168
  requirements:
175
169
  - - ">="
@@ -182,8 +176,8 @@ dependencies:
182
176
  - !ruby/object:Gem::Version
183
177
  version: '0'
184
178
  name: flores
185
- prerelease: false
186
179
  type: :development
180
+ prerelease: false
187
181
  version_requirements: !ruby/object:Gem::Requirement
188
182
  requirements:
189
183
  - - ">="
@@ -196,8 +190,8 @@ dependencies:
196
190
  - !ruby/object:Gem::Version
197
191
  version: '0.6'
198
192
  name: cabin
199
- prerelease: false
200
193
  type: :development
194
+ prerelease: false
201
195
  version_requirements: !ruby/object:Gem::Requirement
202
196
  requirements:
203
197
  - - "~>"
@@ -210,8 +204,8 @@ dependencies:
210
204
  - !ruby/object:Gem::Version
211
205
  version: '1'
212
206
  name: opensearch-ruby
213
- prerelease: false
214
207
  type: :development
208
+ prerelease: false
215
209
  version_requirements: !ruby/object:Gem::Requirement
216
210
  requirements:
217
211
  - - "~>"
@@ -237,6 +231,8 @@ files:
237
231
  - README.md
238
232
  - RELEASING.md
239
233
  - SECURITY.md
234
+ - docs/building_custom_docker_images.md
235
+ - docs/ecs_compatibility.md
240
236
  - lib/logstash/outputs/opensearch.rb
241
237
  - lib/logstash/outputs/opensearch/http_client.rb
242
238
  - lib/logstash/outputs/opensearch/http_client/manticore_adapter.rb
@@ -244,11 +240,17 @@ files:
244
240
  - lib/logstash/outputs/opensearch/http_client_builder.rb
245
241
  - lib/logstash/outputs/opensearch/template_manager.rb
246
242
  - lib/logstash/outputs/opensearch/templates/ecs-disabled/1x.json
243
+ - lib/logstash/outputs/opensearch/templates/ecs-disabled/1x_index.json
247
244
  - lib/logstash/outputs/opensearch/templates/ecs-disabled/2x.json
245
+ - lib/logstash/outputs/opensearch/templates/ecs-disabled/2x_index.json
248
246
  - lib/logstash/outputs/opensearch/templates/ecs-disabled/7x.json
247
+ - lib/logstash/outputs/opensearch/templates/ecs-disabled/7x_index.json
249
248
  - lib/logstash/outputs/opensearch/templates/ecs-v8/1x.json
249
+ - lib/logstash/outputs/opensearch/templates/ecs-v8/1x_index.json
250
250
  - lib/logstash/outputs/opensearch/templates/ecs-v8/2x.json
251
+ - lib/logstash/outputs/opensearch/templates/ecs-v8/2x_index.json
251
252
  - lib/logstash/outputs/opensearch/templates/ecs-v8/7x.json
253
+ - lib/logstash/outputs/opensearch/templates/ecs-v8/7x_index.json
252
254
  - lib/logstash/plugin_mixins/opensearch/api_configs.rb
253
255
  - lib/logstash/plugin_mixins/opensearch/common.rb
254
256
  - logstash-output-opensearch.gemspec
@@ -306,7 +308,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
306
308
  - !ruby/object:Gem::Version
307
309
  version: '0'
308
310
  requirements: []
309
- rubygems_version: 3.3.20
311
+ rubygems_version: 3.3.26
310
312
  signing_key:
311
313
  specification_version: 4
312
314
  summary: Stores logs in OpenSearch
metadata.gz.sig CHANGED
Binary file