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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eac8728e8ab2116246c15dc8b97352fb317b0c774d4cbd19e2578f2d426fd5de
4
- data.tar.gz: a9dc09d8ed9b0d72285e1bd9c10bbcc825e33b097090a7afb286a8841a0b4d28
3
+ metadata.gz: 3af98b34958dbe69aded48cc35ea83ebeada5e020773f041dcf0f787ce70dfdf
4
+ data.tar.gz: 7a19b3898868e5bc8d6118419287c59f777be1d56cf177aa059df29c4d13edaa
5
5
  SHA512:
6
- metadata.gz: effefbecab3678855e6ca8e903c9eac426a5d27b62be6e3931c625a7abd40c9c4aafcdded96b6b28dcdaa2b905228e6f5705b62c5d81ce5c9a15970a24c4fe58
7
- data.tar.gz: f17f1fd48b7484668a8210994a26cdc73c603a9106d3e1f4a4fb8f793029496458e962f9e2fe2462fb607d54c1526655402271054e43fbd1df7135469f7b5d1b
6
+ metadata.gz: 874630b83c4dc1131521af3444c3f3bc1d1638a929e73049817cfdacfb55353587c8d1bfa424ebee4b3669d3c488ee38a5ae74b88ec545ef1e64d92a963ffd5f
7
+ data.tar.gz: 8574105ab4603323527e4d5d000043dd0c201990530afec23634f3195b815cacd6853748d60c0855eadbf26baafd718a0f3239b5289e0b906353c6be06063b86
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  .bundle/
2
2
  vendor/
3
- *.gem
3
+ *.gem
4
+ .idea/
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
- - dcos-multi-runner
22
+ - dcos-multi-runner
23
23
  stage: test
24
24
  script:
25
- - bundle exec rake test
25
+ - bundle exec rake test
26
26
  except:
27
- - tags
27
+ - tags
28
28
 
29
29
  .release: &release
30
30
  tags:
31
- - dcos-multi-runner
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
- - 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
53
- # - gem release fluent-plugin-masking --push --key rubygems_api_key
54
- - gem build fluent-plugin-masking.gemspec
55
- # - export VERSION=$(gem bump --pretend --file ./lib/fluent/plugin/version.rb --no-commit | awk '{ print $4 }')
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
- - master
58
+ - master
61
59
 
62
60
  release:patch:
63
61
  extends: .release
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fluent-plugin-masking (1.0.2)
4
+ fluent-plugin-masking (1.0.3)
5
5
  fluentd (>= 0.14.0, < 2)
6
6
 
7
7
  GEM
@@ -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(/"#{fieldToMask}"=>.+?((?=,\s\")|(?=}{1}$))/m, "\"#{fieldToMask}\"=>\"#{MASK_STRING}\"")
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)
@@ -1,3 +1,3 @@
1
1
  module FilterMasking
2
- VERSION = "1.0.3"
2
+ VERSION = "1.0.4"
3
3
  end
data/test/fields-to-mask CHANGED
@@ -1,3 +1,5 @@
1
1
  email
2
2
  first_name
3
- last_name
3
+ last_name
4
+ street
5
+ number
@@ -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 first_name and last_name' do
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
- { "first_name" => "mickey", "last_name" => "the-dog" }
52
+ { :body => "{\"first_name\":\"mickey\",\"last_name\":\"the-dog\", \"type\":\"puggle\"}" }
58
53
  ]
59
54
  expected = [
60
- { "first_name" => MASK_STRING, "last_name" => MASK_STRING }
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 only email' do
61
+ test 'mask field in nested json string' do
67
62
  conf = CONFIG
68
63
  messages = [
69
- { "not_masked_field" => "mickey-the-dog", "email" => "mickey-the-dog@zooz.com" }
64
+ { :body => "{\"first_name\":\"mickey\",\"last_name\":\"the-dog\",\"address\":\"{\"street\":\"Austin\",\"number\":\"89\"}\", \"type\":\"puggle\"}" }
70
65
  ]
71
66
  expected = [
72
- { "not_masked_field" => "mickey-the-dog", "email" => MASK_STRING }
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 nothing' do
73
+ test 'mask field in nested json escaped strubg' do
79
74
  conf = CONFIG
80
75
  messages = [
81
- { "not_masked_field_1" => "mickey-the-dog", "not_masked_field_2" => "nully_the_carpet" }
76
+ { :body => "{\"first_name\":\"mickey\",\"last_name\":\"the-dog\",\"address\":\"{\\\"street\":\\\"Austin\\\",\\\"number\":\\\"89\\\"}\", \"type\":\"puggle\"}" }
82
77
  ]
83
78
  expected = [
84
- { "not_masked_field_1" => "mickey-the-dog", "not_masked_field_2" => "nully_the_carpet" }
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.3
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-17 00:00:00.000000000 Z
12
+ date: 2019-08-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd