logstash-filter-csv 3.1.0 → 3.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 61380dfaee5f7c768ba33dbeb372644941053ccf3694c441b5f6bc5b7758af46
4
- data.tar.gz: c9a4bfd2b2a2c0f4d4ccac90ba8d01722a5ed7833294e8cb749f1b4c2685d2ba
3
+ metadata.gz: a6e1d5c4a9456c7ed4da52880dca210609aae85fdb731f182f86890496c660dd
4
+ data.tar.gz: bf907d1f5c1282f746764e569f0d31169393704f07766bf047937d2247b5e4f9
5
5
  SHA512:
6
- metadata.gz: 472e1b1028701925b45aaa1990349cd6f277326e1151ba8eaacc7d48125d67528f8873c08bab7698237cdb1e35eaf39506de51623758327f91a29af36f4059f1
7
- data.tar.gz: 0cc77c798c6fa3319f63aa4c9d56314686fa5bab7f6cbb0d6f221532e2007aacc1545235bfbe37fb3822125b62201bd78ef7fd3e6d48732e18f7d1990674db7b
6
+ metadata.gz: 34b7b25aceb6e6881b8e8ec9929a8ec1a01fee93fae4f2c476f627f07069153e0139a6afcb93339e7941bbde01e0f80f4613b3d464ea587de5f36376c2919d94
7
+ data.tar.gz: aa382ae6e47d1e5a62b1944532197b54eca873a6a7a24937722ca1fc741bc53f173a6ab428a270297591380f29a0dd4c28218e993fb6bb8dc2109ff70e206a4d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 3.1.2
2
+ - Pin `csv` dependency to `< 3.2.6` to avoid a JRuby CSV.parse_line performance regression introduced in csv 3.2.6 [#94](https://github.com/logstash-plugins/logstash-filter-csv/pull/94)
3
+
4
+ ## 3.1.1
5
+ - Refactor: unified ECS target + validate field reference [#86](https://github.com/logstash-plugins/logstash-filter-csv/pull/86)
6
+
1
7
  ## 3.1.0
2
8
  - Add ECS support [#85](https://github.com/logstash-plugins/logstash-filter-csv/pull/85)
3
9
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Logstash Plugin
2
2
 
3
- [![Travis Build Status](https://travis-ci.com/logstash-plugins/logstash-filter-csv.svg)](https://travis-ci.com/logstash-plugins/logstash-filter-csv)
3
+ [![Unit Tests](https://github.com/logstash-plugins/logstash-filter-csv/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/logstash-plugins/logstash-filter-csv/actions/workflows/unit-tests.yml)
4
4
 
5
5
  This is a plugin for [Logstash](https://github.com/elastic/logstash).
6
6
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.1.0
1
+ 3.1.2
@@ -1,7 +1,9 @@
1
1
  # encoding: utf-8
2
2
  require "logstash/filters/base"
3
3
  require "logstash/namespace"
4
- require "logstash/plugin_mixins/ecs_compatibility_support"
4
+ require 'logstash/plugin_mixins/ecs_compatibility_support'
5
+ require 'logstash/plugin_mixins/ecs_compatibility_support/target_check'
6
+ require 'logstash/plugin_mixins/validator_support/field_reference_validation_adapter'
5
7
 
6
8
  require "csv"
7
9
 
@@ -10,6 +12,9 @@ require "csv"
10
12
  # This filter can also parse data with any separator, not just commas.
11
13
  class LogStash::Filters::CSV < LogStash::Filters::Base
12
14
  include LogStash::PluginMixins::ECSCompatibilitySupport(:disabled, :v1, :v8 => :v1)
15
+ include LogStash::PluginMixins::ECSCompatibilitySupport::TargetCheck
16
+
17
+ extend LogStash::PluginMixins::ValidatorSupport::FieldReferenceValidationAdapter
13
18
 
14
19
  config_name "csv"
15
20
 
@@ -38,7 +43,7 @@ class LogStash::Filters::CSV < LogStash::Filters::Base
38
43
 
39
44
  # Define target field for placing the data.
40
45
  # Defaults to writing to the root of the event.
41
- config :target, :validate => :string
46
+ config :target, :validate => :field_reference
42
47
 
43
48
  # Define whether column names should autogenerated or not.
44
49
  # Defaults to true. If set to false, columns not having a header specified will not be parsed.
@@ -105,15 +110,6 @@ class LogStash::Filters::CSV < LogStash::Filters::Base
105
110
  CONVERTERS.default = lambda {|v| v}
106
111
  CONVERTERS.freeze
107
112
 
108
- def initialize(params)
109
- super
110
- if ecs_compatibility != :disabled && @target.nil?
111
- logger.info('ECS compatibility is enabled but no ``target`` option was specified, it is recommended'\
112
- ' to set the option to avoid potential schema conflicts (if your data is ECS compliant or'\
113
- ' non-conflicting feel free to ignore this message)')
114
- end
115
- end
116
-
117
113
  def register
118
114
  # validate conversion types to be the valid ones.
119
115
  bad_types = @convert.values.select do |type|
@@ -125,7 +121,7 @@ class LogStash::Filters::CSV < LogStash::Filters::Base
125
121
  # @convert_symbols contains the symbolized types to avoid symbol conversion in the transform method
126
122
  @convert_symbols = @convert.inject({}){|result, (k, v)| result[k] = v.to_sym; result}
127
123
 
128
- # make sure @target is in the format [field name] if defined, i.e. surrounded by brakets
124
+ # make sure @target is in the format [field name] if defined, i.e. surrounded by brackets
129
125
  @target = "[#{@target}]" if @target && !@target.start_with?("[")
130
126
 
131
127
  # if the zero byte character is entered in the config, set the value
@@ -137,7 +133,7 @@ class LogStash::Filters::CSV < LogStash::Filters::Base
137
133
  end
138
134
 
139
135
  def filter(event)
140
- @logger.debug? && @logger.debug("Running csv filter", :event => event)
136
+ @logger.debug? && @logger.debug("Running csv filter", :event => event.to_hash)
141
137
 
142
138
  if (source = event.get(@source))
143
139
  begin
@@ -178,7 +174,7 @@ class LogStash::Filters::CSV < LogStash::Filters::Base
178
174
  end
179
175
  end
180
176
 
181
- @logger.debug? && @logger.debug("Event after csv filter", :event => event)
177
+ @logger.debug? && @logger.debug("Event after csv filter", :event => event.to_hash)
182
178
  end
183
179
 
184
180
  private
@@ -23,7 +23,11 @@ Gem::Specification.new do |s|
23
23
 
24
24
  # Gem dependencies
25
25
  s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
26
+ s.add_runtime_dependency 'logstash-mixin-ecs_compatibility_support', '~> 1.3'
27
+ s.add_runtime_dependency 'logstash-mixin-validator_support', '~> 1.0'
28
+ # TODO: unpin once https://github.com/ruby/csv/issues/361 is resolved
29
+ s.add_runtime_dependency 'csv', '< 3.2.6'
30
+
26
31
  s.add_development_dependency 'logstash-devutils'
27
- s.add_runtime_dependency 'logstash-mixin-ecs_compatibility_support', '~>1.2'
28
32
  end
29
33
 
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-csv
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-06-03 00:00:00.000000000 Z
10
+ date: 2026-07-24 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,9 +19,8 @@ dependencies:
19
19
  - - "<="
20
20
  - !ruby/object:Gem::Version
21
21
  version: '2.99'
22
- name: logstash-core-plugin-api
23
- prerelease: false
24
22
  type: :runtime
23
+ prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
26
25
  requirements:
27
26
  - - ">="
@@ -31,33 +30,61 @@ dependencies:
31
30
  - !ruby/object:Gem::Version
32
31
  version: '2.99'
33
32
  - !ruby/object:Gem::Dependency
33
+ name: logstash-mixin-ecs_compatibility_support
34
34
  requirement: !ruby/object:Gem::Requirement
35
35
  requirements:
36
- - - ">="
36
+ - - "~>"
37
37
  - !ruby/object:Gem::Version
38
- version: '0'
39
- name: logstash-devutils
38
+ version: '1.3'
39
+ type: :runtime
40
40
  prerelease: false
41
- type: :development
42
41
  version_requirements: !ruby/object:Gem::Requirement
43
42
  requirements:
44
- - - ">="
43
+ - - "~>"
45
44
  - !ruby/object:Gem::Version
46
- version: '0'
45
+ version: '1.3'
47
46
  - !ruby/object:Gem::Dependency
47
+ name: logstash-mixin-validator_support
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  requirements:
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: '1.2'
53
- name: logstash-mixin-ecs_compatibility_support
54
- prerelease: false
52
+ version: '1.0'
55
53
  type: :runtime
54
+ prerelease: false
56
55
  version_requirements: !ruby/object:Gem::Requirement
57
56
  requirements:
58
57
  - - "~>"
59
58
  - !ruby/object:Gem::Version
60
- version: '1.2'
59
+ version: '1.0'
60
+ - !ruby/object:Gem::Dependency
61
+ name: csv
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "<"
65
+ - !ruby/object:Gem::Version
66
+ version: 3.2.6
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "<"
72
+ - !ruby/object:Gem::Version
73
+ version: 3.2.6
74
+ - !ruby/object:Gem::Dependency
75
+ name: logstash-devutils
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ type: :development
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
61
88
  description: This gem is a Logstash plugin required to be installed on top of the
62
89
  Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This
63
90
  gem is not a stand-alone program
@@ -83,7 +110,6 @@ licenses:
83
110
  metadata:
84
111
  logstash_plugin: 'true'
85
112
  logstash_group: filter
86
- post_install_message:
87
113
  rdoc_options: []
88
114
  require_paths:
89
115
  - lib
@@ -98,9 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
124
  - !ruby/object:Gem::Version
99
125
  version: '0'
100
126
  requirements: []
101
- rubyforge_project:
102
- rubygems_version: 2.6.13
103
- signing_key:
127
+ rubygems_version: 3.6.3
104
128
  specification_version: 4
105
129
  summary: Parses comma-separated value data into individual fields
106
130
  test_files: