fluent-plugin-masking 1.0.3 → 1.0.4
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/.gitignore +2 -1
- data/.gitlab-ci.yml +15 -17
- data/Gemfile.lock +1 -1
- data/lib/fluent/plugin/filter_masking.rb +3 -3
- data/lib/fluent/plugin/version.rb +1 -1
- data/test/fields-to-mask +3 -1
- data/test/test_filter_masking.rb +23 -28
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3af98b34958dbe69aded48cc35ea83ebeada5e020773f041dcf0f787ce70dfdf
|
4
|
+
data.tar.gz: 7a19b3898868e5bc8d6118419287c59f777be1d56cf177aa059df29c4d13edaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 874630b83c4dc1131521af3444c3f3bc1d1638a929e73049817cfdacfb55353587c8d1bfa424ebee4b3669d3c488ee38a5ae74b88ec545ef1e64d92a963ffd5f
|
7
|
+
data.tar.gz: 8574105ab4603323527e4d5d000043dd0c201990530afec23634f3195b815cacd6853748d60c0855eadbf26baafd718a0f3239b5289e0b906353c6be06063b86
|
data/.gitignore
CHANGED
data/.gitlab-ci.yml
CHANGED
@@ -11,24 +11,24 @@ before_script:
|
|
11
11
|
- bundle install -j $(nproc) --path vendor # Install dependencies into ./vendor/ruby
|
12
12
|
|
13
13
|
stages:
|
14
|
-
- test
|
15
|
-
- release
|
14
|
+
- test
|
15
|
+
- release
|
16
16
|
|
17
17
|
variables:
|
18
18
|
DOCKER_TLS_CERTDIR: ""
|
19
19
|
|
20
20
|
unit-test:
|
21
21
|
tags:
|
22
|
-
|
22
|
+
- dcos-multi-runner
|
23
23
|
stage: test
|
24
24
|
script:
|
25
|
-
|
25
|
+
- bundle exec rake test
|
26
26
|
except:
|
27
|
-
|
27
|
+
- tags
|
28
28
|
|
29
29
|
.release: &release
|
30
30
|
tags:
|
31
|
-
|
31
|
+
- dcos-multi-runner
|
32
32
|
stage: release
|
33
33
|
before_script:
|
34
34
|
- echo "Setup ssh inside the runner.."
|
@@ -45,19 +45,17 @@ unit-test:
|
|
45
45
|
- cd $CI_PROJECT_NAME
|
46
46
|
- git reset --hard $CI_COMMIT_SHA
|
47
47
|
script:
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
- export VERSION=$(cat ./lib/fluent/plugin/version.rb | grep VERSION | sed -ne 's/[^0-9]*\(\([0-9]\.\)\{0,4\}[0-9][^.]\).*/\1/p' | sed 's/"$//')
|
57
|
-
- gem push fluent-plugin-masking-$VERSION.gem
|
48
|
+
- mkdir -p ~/.gem
|
49
|
+
- 'echo -e "---\n:rubygems_api_key: $GEM_HOST_API_KEY" > ~/.gem/credentials && echo "created gem credentials"'
|
50
|
+
- chmod 0600 ~/.gem/credentials
|
51
|
+
- gem install gem-release
|
52
|
+
- gem bump fluent-plugin-masking --version $TYPE --file ./lib/fluent/plugin/version.rb --commit --push --tag
|
53
|
+
- gem build fluent-plugin-masking.gemspec
|
54
|
+
- export VERSION=$(cat ./lib/fluent/plugin/version.rb | grep VERSION | sed -ne 's/[^0-9]*\(\([0-9]\.\)\{0,4\}[0-9][^.]\).*/\1/p' | sed 's/"$//')
|
55
|
+
- gem push fluent-plugin-masking-$VERSION.gem
|
58
56
|
when: manual
|
59
57
|
only:
|
60
|
-
|
58
|
+
- master
|
61
59
|
|
62
60
|
release:patch:
|
63
61
|
extends: .release
|
data/Gemfile.lock
CHANGED
@@ -16,12 +16,12 @@ module Fluent
|
|
16
16
|
# the original record is return
|
17
17
|
def maskRecord(record)
|
18
18
|
maskedRecord = record
|
19
|
-
|
19
|
+
|
20
20
|
begin
|
21
21
|
recordStr = record.to_s
|
22
|
-
|
23
22
|
@fields_to_mask.each do | fieldToMask |
|
24
|
-
recordStr = recordStr.gsub(/
|
23
|
+
recordStr = recordStr.gsub(/(?::#{fieldToMask}=>")(.*?)(?:")/m, ":#{fieldToMask}=>\"#{MASK_STRING}\"") # mask element in hash object
|
24
|
+
recordStr = recordStr.gsub(/\\+"#{fieldToMask}\\+":\\+.+?((?=(}\\+",)|,( *|)(\s|\\+)\")|(?=}"$))/m, "\\\"#{fieldToMask}\\\":\\\"#{MASK_STRING}\\\"") # mask element in json string
|
25
25
|
end
|
26
26
|
|
27
27
|
maskedRecord = strToHash(recordStr)
|
data/test/fields-to-mask
CHANGED
data/test/test_filter_masking.rb
CHANGED
@@ -6,6 +6,7 @@ require "fluent/test/driver/filter"
|
|
6
6
|
require "fluent/test/helpers"
|
7
7
|
require "./lib/fluent/plugin/filter_masking.rb"
|
8
8
|
|
9
|
+
|
9
10
|
MASK_STRING = "*******"
|
10
11
|
|
11
12
|
class YourOwnFilterTest < Test::Unit::TestCase
|
@@ -32,59 +33,53 @@ class YourOwnFilterTest < Test::Unit::TestCase
|
|
32
33
|
d.filtered_records
|
33
34
|
end
|
34
35
|
|
35
|
-
# sub_test_case 'configured with invalid configuration' do
|
36
|
-
# test 'empty configuration' do
|
37
|
-
# assert_raise(Fluent::ConfigError) do
|
38
|
-
# create_driver('')
|
39
|
-
# end
|
40
|
-
# end
|
41
|
-
|
42
|
-
# test 'param1 should reject too short string' do
|
43
|
-
# conf = %[
|
44
|
-
# param1 a
|
45
|
-
# ]
|
46
|
-
# assert_raise(Fluent::ConfigError) do
|
47
|
-
# create_driver(conf)
|
48
|
-
# end
|
49
|
-
# end
|
50
|
-
# # ...
|
51
|
-
# end
|
52
|
-
|
53
36
|
sub_test_case 'plugin will mask all fields that need masking' do
|
54
|
-
test 'mask
|
37
|
+
test 'mask field in hash object' do
|
38
|
+
conf = CONFIG
|
39
|
+
messages = [
|
40
|
+
{:not_masked_field=>"mickey-the-dog", :email=>"mickey-the-dog@zooz.com"}
|
41
|
+
]
|
42
|
+
expected = [
|
43
|
+
{:not_masked_field=>"mickey-the-dog", :email=>MASK_STRING}
|
44
|
+
]
|
45
|
+
filtered_records = filter(conf, messages)
|
46
|
+
assert_equal(expected, filtered_records)
|
47
|
+
end
|
48
|
+
|
49
|
+
test 'mask field in json string' do
|
55
50
|
conf = CONFIG
|
56
51
|
messages = [
|
57
|
-
{
|
52
|
+
{ :body => "{\"first_name\":\"mickey\",\"last_name\":\"the-dog\", \"type\":\"puggle\"}" }
|
58
53
|
]
|
59
54
|
expected = [
|
60
|
-
{ "first_name"
|
55
|
+
{ :body => "{\"first_name\":\"*******\",\"last_name\":\"*******\", \"type\":\"puggle\"}" }
|
61
56
|
]
|
62
57
|
filtered_records = filter(conf, messages)
|
63
58
|
assert_equal(expected, filtered_records)
|
64
59
|
end
|
65
60
|
|
66
|
-
test 'mask
|
61
|
+
test 'mask field in nested json string' do
|
67
62
|
conf = CONFIG
|
68
63
|
messages = [
|
69
|
-
{
|
64
|
+
{ :body => "{\"first_name\":\"mickey\",\"last_name\":\"the-dog\",\"address\":\"{\"street\":\"Austin\",\"number\":\"89\"}\", \"type\":\"puggle\"}" }
|
70
65
|
]
|
71
66
|
expected = [
|
72
|
-
{
|
67
|
+
{ :body => "{\"first_name\":\"*******\",\"last_name\":\"*******\",\"address\":\"{\"street\":\"*******\",\"number\":\"*******\"}\", \"type\":\"puggle\"}" }
|
73
68
|
]
|
74
69
|
filtered_records = filter(conf, messages)
|
75
70
|
assert_equal(expected, filtered_records)
|
76
71
|
end
|
77
72
|
|
78
|
-
test 'mask
|
73
|
+
test 'mask field in nested json escaped strubg' do
|
79
74
|
conf = CONFIG
|
80
75
|
messages = [
|
81
|
-
{
|
76
|
+
{ :body => "{\"first_name\":\"mickey\",\"last_name\":\"the-dog\",\"address\":\"{\\\"street\":\\\"Austin\\\",\\\"number\":\\\"89\\\"}\", \"type\":\"puggle\"}" }
|
82
77
|
]
|
83
78
|
expected = [
|
84
|
-
{
|
79
|
+
{ :body => "{\"first_name\":\"*******\",\"last_name\":\"*******\",\"address\":\"{\"street\":\"*******\",\"number\":\"*******\"}\", \"type\":\"puggle\"}" }
|
85
80
|
]
|
86
81
|
filtered_records = filter(conf, messages)
|
87
82
|
assert_equal(expected, filtered_records)
|
88
83
|
end
|
89
84
|
end
|
90
|
-
end
|
85
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-masking
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shai Moria
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-08-
|
12
|
+
date: 2019-08-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|