fluent-plugin-masking 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
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