secrets_parser 0.0.5 → 0.1.0

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
- SHA1:
3
- metadata.gz: 30084b08de2283f2b2c3bb313c3dfbe3d57ca15d
4
- data.tar.gz: 2715b1bc6044484f8a63f4b368c6c7223da8ae60
2
+ SHA256:
3
+ metadata.gz: 482b595adb191ed6b889340e239cdcc376e84a3ee3e0e0e15a4df745ee28009f
4
+ data.tar.gz: 3e077fcda36d288afaebac53430bc567aae58b50e936e66cad5464e3dd4c1e9e
5
5
  SHA512:
6
- metadata.gz: 0c8201ba248c880d24856bcb9b0499342ca2d854254af2779821997801ceeacfc894eddf90142811c5866d1a5808490d814f83fc0ce72c9c5b9717ddf5371701
7
- data.tar.gz: ecf987be6b1e3f5eac87e55642e9636088d77ef7b7673dc48e3069d2e3853fb89c34f570f2025337ddb9a3f6248a3c9fadd7eebb35dc90288bc0bcb155cf184e
6
+ metadata.gz: 48775396ba15fa9ff16ec517d13ee4e53a8349072ed9704c455c24cb42c53f5c627b1f00cbfc7e6b070ce5db96ed6044aa1822299fc46656c9b6e092bb8bb851
7
+ data.tar.gz: eb1f9e854bb59043f2f9bc50f190b03e4177fbe76d7f110302bdd470cf769a9f449e25b64c5b1cae909a897f737aa89ade8e8420365f24e67bc7af0f65410949
data/README.md CHANGED
@@ -91,3 +91,19 @@ puts JSON.pretty_generate(parsed_file)
91
91
  }
92
92
  }
93
93
  ```
94
+
95
+ ### Logging
96
+
97
+ To enable logging feature just configure `:logger` key injecting a logger that implements [Logger interface](https://ruby-doc.org/stdlib-2.5.0/libdoc/logger/rdoc/Logger.html).
98
+
99
+ Sample using ruby's Logger stdlib:
100
+
101
+ ```
102
+ require 'secrets_parser'
103
+ require 'logger'
104
+
105
+ parser = Secrets::Parser.new
106
+ parser.set_config do |config|
107
+ config[:logger] = Logger.new(STDOUT)
108
+ end
109
+ ```
@@ -9,7 +9,8 @@ module Secrets
9
9
  def initialize
10
10
  @config = {
11
11
  s3_client: nil,
12
- kms_client: nil
12
+ kms_client: nil,
13
+ logger: nil
13
14
  }
14
15
  end
15
16
 
@@ -25,6 +26,8 @@ module Secrets
25
26
  app_json = JSON.parse(IO.read(file_to_parse))
26
27
  app_variables = app_json[field_to_parse]
27
28
 
29
+ logger.info "Parsing #{field_to_parse} section of #{file_to_parse}" if logger?
30
+
28
31
  app_json[field_to_parse] = parse_secrets_from app_variables
29
32
 
30
33
  app_json
@@ -54,6 +57,8 @@ module Secrets
54
57
  file = file[file.index('/') + 1..file.length] + SECRETS_FILE_SUFFIX
55
58
  tmp_file = "/tmp/secrets#{SECRETS_FILE_SUFFIX}"
56
59
 
60
+ logger.info "Downloading #{file} from #{bucket_name}" if logger?
61
+
57
62
  File.open(tmp_file, 'wb') do |secret_file|
58
63
  @config[:s3_client].get_object({ bucket: bucket_name, key: file }, target: secret_file)
59
64
  end
@@ -79,23 +84,32 @@ module Secrets
79
84
  def parse_secrets_from(variables)
80
85
  secret_variables = {}
81
86
 
82
- variables.each_pair do |k, v|
83
- next unless secret? v
87
+ variables.each_pair do |key, value|
88
+ next unless secret?(value)
84
89
 
85
- secret = v
90
+ secret = value
86
91
 
87
92
  secret_file = secret_file_path_from(secret)
88
93
  secret_key = secret_key_from(secret)
89
94
 
90
- unless secret_variables.key? secret_file
95
+ unless secret_variables.key?(secret_file)
91
96
  secret_variables[secret_file] = extract_secrets_from secret_file
92
97
  end
93
98
 
94
- variables[k] = secret_variables[secret_file][secret_key]
99
+ logger.info "Updating #{key} value" if logger?
100
+
101
+ variables[key] = secret_variables[secret_file][secret_key]
95
102
  end
96
103
 
97
104
  variables
98
105
  end
99
106
 
107
+ def logger?
108
+ !logger.nil?
109
+ end
110
+
111
+ def logger
112
+ @config[:logger]
113
+ end
100
114
  end
101
115
  end
@@ -1,3 +1,3 @@
1
1
  module SecretsParser
2
- VERSION = "0.0.5"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = 'https://github.com/peertransfer/secrets_parser'
15
15
 
16
16
  if spec.respond_to?(:metadata)
17
- #spec.metadata['allowed_push_host'] = 'https://travis-ci.org/'
17
+ spec.metadata['allowed_push_host'] = 'https://travis-ci.org/'
18
18
  else
19
19
  raise 'RubyGems 2.0 or newer is required to protect against ' \
20
20
  'public gem pushes.'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: secrets_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paco Sanchez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-03 00:00:00.000000000 Z
11
+ date: 2018-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,7 +71,8 @@ files:
71
71
  homepage: https://github.com/peertransfer/secrets_parser
72
72
  licenses:
73
73
  - MIT
74
- metadata: {}
74
+ metadata:
75
+ allowed_push_host: https://travis-ci.org/
75
76
  post_install_message:
76
77
  rdoc_options: []
77
78
  require_paths:
@@ -88,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
89
  version: '0'
89
90
  requirements: []
90
91
  rubyforge_project:
91
- rubygems_version: 2.5.1
92
+ rubygems_version: 2.7.7
92
93
  signing_key:
93
94
  specification_version: 4
94
95
  summary: Write a short summary, because RubyGems requires one.