param_store 0.0.1 → 1.0.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
2
  SHA256:
3
- metadata.gz: 333fc97381cc05055d9111ff26983d53d34fe14964c3498c21b0c4d182dc64e3
4
- data.tar.gz: 3d08af6a980db816dda1149254674332f3fd7a0cf050924542377872b31688ea
3
+ metadata.gz: 6a193054830d20294dc6f7beac7466aefd0dc0f34371ddcf97542277e5bcc76c
4
+ data.tar.gz: 97afce05344af92e41b85d673c95d718f1ca8bfa3e2793f8d047bdfa718dad1e
5
5
  SHA512:
6
- metadata.gz: d548fbcd4dbe959756ed0721e3d9c7b64159fea2dcf30b4fe1c779770fe11d2f36bd0a1071353aeaeba547e29428ae33c7f86a7b25c91b42e85c00b1793207c4
7
- data.tar.gz: '080a2b1a10b421e327474adb36ea24f49ed60e17209eb3883c3894e9f0082677f84320ac978e55826a73a329b5314a61960b1dd184c826cfb2de18ae93d4c95b'
6
+ metadata.gz: c92d7d8b694ec738a2ba1e34d4f0366ceb2e2180e6332afaec9aef022899fd54e4610abe845130209bc85cf4a982e7598954bda98cc616846b9f2d6f6580ae7e
7
+ data.tar.gz: ce6bbe962abbf9e76ca08e7f268b763b25e0b7ef4e98c8b4df83c0ff33604e72702af33b56967e7110ec35cb6b6d91d0be73b49475d2c06167ed39504635ff76
data/Gemfile CHANGED
@@ -6,6 +6,9 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
  gemspec
7
7
 
8
8
  group :development, :test do
9
+ gem 'aws-sdk-secretsmanager', '~> 1'
10
+ gem 'aws-sdk-ssm', '~> 1'
11
+ gem 'ejson_wrapper', '~> 0.3.1'
9
12
  gem 'pry-byebug'
10
13
  end
11
14
 
@@ -13,4 +16,4 @@ group :test do
13
16
  gem 'rspec', '~> 3.0'
14
17
  gem 'rspec_junit_formatter'
15
18
  gem 'stub_env'
16
- end
19
+ end
data/Gemfile.lock CHANGED
@@ -1,8 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- param_store (0.0.1)
5
- aws-sdk-ssm (~> 1)
4
+ param_store (1.0.0)
6
5
 
7
6
  GEM
8
7
  remote: https://rubygems.org/
@@ -14,6 +13,12 @@ GEM
14
13
  aws-partitions (~> 1.0)
15
14
  aws-sigv4 (~> 1.0)
16
15
  jmespath (~> 1.0)
16
+ aws-sdk-kms (1.13.0)
17
+ aws-sdk-core (~> 3, >= 3.39.0)
18
+ aws-sigv4 (~> 1.0)
19
+ aws-sdk-secretsmanager (1.20.0)
20
+ aws-sdk-core (~> 3, >= 3.39.0)
21
+ aws-sigv4 (~> 1.0)
17
22
  aws-sdk-ssm (1.34.0)
18
23
  aws-sdk-core (~> 3, >= 3.39.0)
19
24
  aws-sigv4 (~> 1.0)
@@ -21,6 +26,10 @@ GEM
21
26
  byebug (10.0.2)
22
27
  coderay (1.1.2)
23
28
  diff-lcs (1.3)
29
+ ejson (1.2.1)
30
+ ejson_wrapper (0.3.1)
31
+ aws-sdk-kms
32
+ ejson
24
33
  jmespath (1.4.0)
25
34
  method_source (0.9.2)
26
35
  pry (0.12.2)
@@ -52,7 +61,10 @@ PLATFORMS
52
61
  ruby
53
62
 
54
63
  DEPENDENCIES
64
+ aws-sdk-secretsmanager (~> 1)
65
+ aws-sdk-ssm (~> 1)
55
66
  bundler (~> 1.16)
67
+ ejson_wrapper (~> 0.3.1)
56
68
  param_store!
57
69
  pry-byebug
58
70
  rake (~> 10.0)
@@ -61,4 +73,4 @@ DEPENDENCIES
61
73
  stub_env
62
74
 
63
75
  BUNDLED WITH
64
- 1.17.2
76
+ 1.17.3
data/README.md CHANGED
@@ -2,10 +2,9 @@
2
2
 
3
3
  # ParamStore
4
4
 
5
- This gem goal is to <strike>DRY some code I have been copying around for a while</strike> make easy switching in between ENV and [AWS Parameter Store (SSM)](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) for retrieving parameters.
6
-
7
- This gem is not a replacement for [dotenv](https://github.com/bkeepers/dotenv). I still use and recommend it in development, in case it is "safe" to save your keys in `.env` files. Otherwise, you could also use AWS Parameter Store for development.
5
+ This gem goal is to <strike>DRY some code I have been copying around for a while</strike> make easy switching in between ENV, [AWS Parameter Store (SSM)](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html), [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/) and [EJSON](https://github.com/Shopify/ejson) for retrieving parameters.
8
6
 
7
+ This gem is not a replacement for [dotenv](https://github.com/bkeepers/dotenv). I still use and recommend it in development, in case it is "safe" to save your keys in `.env` files.
9
8
 
10
9
  ## Installation
11
10
 
@@ -17,46 +16,79 @@ gem 'param_store'
17
16
 
18
17
  ## Usage
19
18
 
20
- For switching in between ENV and SSM, you need you set which adapter you want to use.
19
+ ### Configuring adapters
20
+
21
+ Available adapters: `:env`, `:aws_ssm`, `:aws_secrets_manager` and `:ejson_wrapper`.
21
22
 
22
23
  ```ruby
23
- # read from SSM
24
- # i.e. config/environments/production.rb
25
- ParamStore.adapter = :aws_ssm
26
- # default path for SSM Hierarchies
27
- # see https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-organize.html
28
- ParamStore.path = '/Environment/Type of computer/Application/'
24
+ ParamStore.adapter = adapter
25
+ ```
29
26
 
30
- # read from ENV
31
- # i.e. config/environments/[development, test].rb
32
- ParamStore.adapter = :env
27
+ ### Retrieving parameters
28
+
29
+ ```ruby
30
+ # ParamStore.fetch is similar to Hash#fetch,
31
+ # If the key is not found and there's no default given, it will raise a `KeyError`
32
+ ParamStore.fetch('name')
33
+ ParamStore.fetch('name', 'default value')
34
+ ParamStore.fetch('name') { 'default value' }
33
35
  ```
34
36
 
35
- For retrieving parameters:
37
+ ### Copying from any adapter to ENV
36
38
 
37
39
  ```ruby
38
- # fetch is similar to Hash#fetch,
39
- # if the key is not found and there's no default defined, it raises an error
40
- ParamStore.fetch('my_secret_key')
40
+ ParamStore.copy_to_env('name1', 'name2', 'name3')
41
+
42
+ ENV['name1'] # => value for name1
43
+ ENV['name2'] # => value for name2
44
+ ENV['name3'] # => value for name3
41
45
  ```
42
46
 
43
- ### SSM to ENV
47
+ ## Adapters
44
48
 
45
- You can also make SSM compatible with `ENV` by copying parameters to `ENV`.
49
+ ### ENV
46
50
 
47
51
  ```ruby
48
- # i.e. config/application.rb
49
- # Bundler.require(*Rails.groups)
50
- ParamStore.copy_to_env('key1', 'key2', 'key3')
52
+ ParamStore.adapter :env
53
+ ```
51
54
 
52
- ENV['key1'] # => value for key1
53
- ENV['key2'] # => value for key2
54
- ENV['key3'] # => value for key3
55
+ ### AWS Parameter Store (SSM)
56
+
57
+ Add to your Gemfile:
58
+
59
+ ```ruby
60
+ gem 'aws-sdk-ssm', '~> 1'
61
+ ```
62
+
63
+ Configure the adapter:
64
+
65
+ ```ruby
66
+ ParamStore.adapter :aws_ssm, default_path: '/Prod/App/'
67
+ ```
68
+
69
+ #### Retrieving parameters
70
+
71
+ ```ruby
72
+ ParamStore.fetch('name')
73
+ # => get parameter name, if default_path /Prod/App/ get parameter /Prod/App/name
74
+ ParamStore.fetch('name', path: '/Prod/App/')
75
+ # => get parameter /Prod/App/name
76
+ ```
77
+
78
+ #### Copying from SSM adapter to ENV
79
+
80
+ ```ruby
81
+ ParamStore.copy_to_env('name1', 'name2', 'name3', path: '/Environment/Type of computer/Application/')
82
+ # path overrides default_path
83
+
84
+ ENV['name1'] # => value for name1
85
+ ENV['name2'] # => value for name2
86
+ ENV['name3'] # => value for name3
55
87
  ```
56
88
 
57
- ### SSM client
89
+ #### SSM client
58
90
 
59
- By default `ParamStore` will initiate `Aws::SSM::Client.new` without supplying any parameter. If you want to control the initiation of the SSM client, you can define it by setting `ssm_client`.
91
+ By default ParamStore will initiate `Aws::SSM::Client.new` without supplying any argument. If you want to control the initiation of the SSM client, you can define it by setting `ssm_client`.
60
92
 
61
93
 
62
94
  ```ruby
@@ -67,25 +99,100 @@ ParamStore.ssm_client = Aws::SSM::Client.new(
67
99
  )
68
100
  ```
69
101
 
70
- ### Fail-fast
102
+ #### CLI
71
103
 
72
- You can configure the required parameters for an app and fail at startup.
104
+ A few useful [aws ssm](https://docs.aws.amazon.com/cli/latest/reference/ssm/index.html) commands:
105
+
106
+ ```sh
107
+ aws ssm get-parameters-by-path --path /Prod/ERP/SAP --with-decryption
108
+ aws ssm put-parameter --name /Prod/ERP/SAP --value ... --type SecureString
109
+ ```
110
+
111
+ ### Secrets Manager
112
+
113
+ Add to your Gemfile:
73
114
 
74
115
  ```ruby
75
- # i.e. config/application.rb
76
- # Bundler.require(*Rails.groups)
77
- ParamStore.require_keys!('key1', 'key2', 'key3')
116
+ gem 'aws-sdk-secretsmanager', '~> 1'
78
117
  ```
79
118
 
80
- #### aws ssm
119
+ Configure the adapter:
81
120
 
82
- A few useful [aws ssm](https://docs.aws.amazon.com/cli/latest/reference/ssm/index.html) commands:
121
+ ```ruby
122
+ ParamStore.adapter :aws_secrets_manager
123
+ # ParaStore.fetch('secret_id')
124
+ # => {\n \"password\":\"pwd\"\n}\n
83
125
 
84
- ```sh
85
- aws ssm get-parameters-by-path --path /Prod/ERP/SAP --with-decryption
86
- aws ssm put-parameter --name /Prod/ERP/SAP --value ... --type SecureString
126
+ ParamStore.adapter :aws_secrets_manager, default_secret_id: 'secret_id'
127
+ # ParaStore.fetch('password')
128
+ # => pwd
129
+ ```
130
+
131
+ #### Retrieving parameters
132
+
133
+ ```ruby
134
+ ParamStore.fetch('secret_id')
135
+ ParamStore.fetch('password', secret_id: 'secret_id')
136
+ ```
137
+
138
+ #### Copying from Secrets Manager adapter to ENV
139
+
140
+ ```ruby
141
+ ParamStore.copy_to_env('key1', 'key2', 'key3', secret_id: 'secret_id')
142
+ # secret_id overrides default_secret_id
143
+
144
+ ENV['key1'] # => value for key1
145
+ ENV['key2'] # => value for key2
146
+ ENV['key3'] # => value for key3
147
+ ```
148
+
149
+ ### EJSON
150
+
151
+ Add to your Gemfile:
152
+
153
+ ```ruby
154
+ gem 'ejson_wrapper', '~> 0.3.1'
155
+ ```
156
+
157
+ Configure the adapter:
158
+
159
+ ```ruby
160
+ ParamStore.adapter(
161
+ :ejson_wrapper,
162
+ file_path: '...',
163
+ key_dir: '...',
164
+ private_key: '...',
165
+ use_kms: '...',
166
+ region: '...'
167
+ )
168
+ # see https://github.com/envato/ejson_wrapper#usage
169
+ ```
170
+
171
+ #### Rails
172
+
173
+ If you are using ParamStore in prod and dotenv in dev:
174
+
175
+ ```ruby
176
+ # config/application.rb
177
+ # Bundler.require(*Rails.groups)
178
+ if Rails.env.production?
179
+ ParamStore.adapter(:aws_ssm)
180
+ ParamStore.copy_to_env('DATABASE_URL', require_keys: true, path: '/Prod/MyApp/')
181
+ else
182
+ Dotenv::Railtie.load
183
+ end
87
184
  ```
88
185
 
186
+ ### Fail-fast
187
+
188
+ You can configure the required parameters for an app and fail at startup.
189
+
190
+ ```ruby
191
+ # config/application.rb
192
+ # Bundler.require(*Rails.groups)
193
+ ParamStore.require_keys!('key1', 'key2', 'key3')
194
+ # this will raise an error if any key is missing
195
+ ```
89
196
 
90
197
  ## Development
91
198
 
@@ -0,0 +1,26 @@
1
+ module ParamStore
2
+ module Adapters
3
+ class EJSONWrapper
4
+ attr_reader :file_path, :options
5
+
6
+ def initialize(**opts)
7
+ @file_path = opts.delete(:file_path)
8
+ @options = opts
9
+ end
10
+
11
+ def fetch(key, *args, **_opts, &block)
12
+ decrypt.fetch(key, *args, &block)
13
+ end
14
+
15
+ def fetch_all(*keys, **_opts)
16
+ decrypt.select { |key, _value| keys.flatten.include?(key) }
17
+ end
18
+
19
+ private
20
+
21
+ def decrypt
22
+ @_decrypt ||= ::EJSONWrapper.decrypt(file_path, options)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,11 +1,13 @@
1
1
  module ParamStore
2
2
  module Adapters
3
3
  class Env
4
- def fetch(key, *args, &block)
4
+ def initialize(**_opts); end
5
+
6
+ def fetch(key, *args, **_opts, &block)
5
7
  ENV.fetch(key, *args, &block)
6
8
  end
7
9
 
8
- def fetch_all(*keys)
10
+ def fetch_all(*keys, **_opts)
9
11
  keys = keys.flatten
10
12
  keys.each_with_object({}) do |key, result|
11
13
  result[key] = ENV[key]
@@ -0,0 +1,46 @@
1
+ module ParamStore
2
+ module Adapters
3
+ class SecretsManager
4
+ attr_reader :default_secret_id
5
+
6
+ def initialize(default_secret_id: nil)
7
+ @default_secret_id = default_secret_id
8
+ end
9
+
10
+ def fetch(key, *args, secret_id: nil, version_id: nil, version_stage: nil, &block)
11
+ get_key = secret_id || default_secret_id || key
12
+
13
+ if cache[get_key].nil? &&
14
+ string = get_secret_value(get_key, version_id, version_stage)
15
+ cache[get_key] = JSON.parse(string)
16
+ end
17
+
18
+ (
19
+ secret_id.nil? && default_secret_id.nil? ? cache : cache[get_key]
20
+ ).fetch(key, *args, &block)
21
+ end
22
+
23
+ def fetch_all(*keys, **opts)
24
+ # poor man's fetch all
25
+ # I couldn't find a batch get for secrets manager :/
26
+ keys.map { |key| fetch(key, {}, **opts) }.inject(:merge)
27
+ end
28
+
29
+ private
30
+
31
+ def get_secret_value(secret_id, version_id, version_stage)
32
+ ParamStore.secrets_manager_client.get_secret_value(
33
+ secret_id: secret_id,
34
+ version_id: version_id,
35
+ version_stage: version_stage
36
+ ).secret_string
37
+ rescue Aws::SecretsManager::Errors::ResourceNotFoundException
38
+ # let the tmp.fetch below deal with key not found and defaults
39
+ end
40
+
41
+ def cache
42
+ @_cache ||= {}
43
+ end
44
+ end
45
+ end
46
+ end
@@ -1,24 +1,40 @@
1
1
  module ParamStore
2
2
  module Adapters
3
3
  class SSM
4
- def fetch(key, *args, &block)
4
+ attr_reader :default_path
5
+
6
+ def initialize(default_path: nil)
7
+ @default_path = default_path
8
+ end
9
+
10
+ def fetch(key, *args, path: nil, &block)
11
+ key = prepend_path(path, key)
5
12
  tmp = {}
6
- key = "#{ParamStore.path}#{key}" unless ParamStore.path.nil?
7
- begin
8
- tmp[key] = ParamStore.ssm_client.get_parameter(name: key, with_decryption: true).parameter.value
9
- rescue Aws::SSM::Errors::ParameterNotFound
10
- # let the tmp.fetch below deal with not found key and defaults
13
+ if string = get_parameter(key)
14
+ tmp[key] = string
11
15
  end
12
16
  tmp.fetch(key, *args, &block)
13
17
  end
14
18
 
15
- def fetch_all(*keys)
19
+ def fetch_all(*keys, path: nil)
16
20
  keys = keys.flatten
17
- keys = keys.map { |key| "#{ParamStore.path}#{key}" } if ParamStore.path
21
+ keys = keys.map { |key| prepend_path(path, key) } if path
18
22
  ParamStore.ssm_client.get_parameters(names: keys, with_decryption: true).parameters.each_with_object({}) do |param, result|
19
- result[param.name.gsub(ParamStore.path.to_s, '')] = param.value
23
+ result[param.name.gsub(path.to_s, '')] = param.value
20
24
  end
21
25
  end
26
+
27
+ private
28
+
29
+ def get_parameter(key)
30
+ ParamStore.ssm_client.get_parameter(name: key, with_decryption: true).parameter.value
31
+ rescue Aws::SSM::Errors::ParameterNotFound
32
+ # let the tmp.fetch below deal with key not found and defaults
33
+ end
34
+
35
+ def prepend_path(path, key)
36
+ "#{path || default_path}#{key}"
37
+ end
22
38
  end
23
39
  end
24
40
  end
@@ -1,3 +1,3 @@
1
1
  module ParamStore
2
- VERSION = '0.0.1'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
@@ -1,28 +1,31 @@
1
1
  module ParamStore
2
2
  class Wrapper
3
- def initialize(adapter_class)
3
+ def initialize(adapter_class, **opts)
4
4
  @adapter_class = adapter_class
5
+ @opts = opts
5
6
  end
6
7
 
7
- def fetch(key, *args, &block)
8
+ def fetch(key, *args, **opts, &block)
8
9
  key = key.to_s
9
10
  unless cache.key?(key)
10
11
  # cache params to minimize number of requests
11
- cache[key] = adapter_instance.fetch(key, *args, &block)
12
+ cache[key] = adapter_instance.fetch(key, *args, **opts, &block)
12
13
  end
13
14
  cache[key]
14
15
  end
15
16
 
16
- def copy_to_env(*keys, require_keys: false)
17
- cache_all(*keys)
17
+ def copy_to_env(*keys, **opts)
18
+ require_keys = opts.delete(:require_keys)
18
19
 
19
- require_keys!(*keys) if require_keys
20
+ cache_all(*keys, **opts)
21
+
22
+ require_keys!(*keys, **opts) if require_keys
20
23
 
21
24
  keys.each { |key| ENV[key] = cache[key] }
22
25
  end
23
26
 
24
- def require_keys!(*keys)
25
- cache_all(*keys)
27
+ def require_keys!(*keys, **opts)
28
+ cache_all(*keys, **opts)
26
29
 
27
30
  missing = keys.flatten.map!(&:to_s) - cache.keys
28
31
 
@@ -35,9 +38,9 @@ module ParamStore
35
38
 
36
39
  attr_accessor :adapter, :cache
37
40
 
38
- def cache_all(*keys)
41
+ def cache_all(*keys, **opts)
39
42
  keys.flatten.map!(&:to_s)
40
- adapter_instance.fetch_all(*keys).each do |key, value|
43
+ adapter_instance.fetch_all(*keys, **opts).each do |key, value|
41
44
  cache[key] = value
42
45
  end
43
46
  end
@@ -47,7 +50,7 @@ module ParamStore
47
50
  end
48
51
 
49
52
  def adapter_instance
50
- @_adapter_instance ||= @adapter_class.new
53
+ @_adapter_instance ||= @adapter_class.new(**@opts)
51
54
  end
52
55
  end
53
56
  end
data/lib/param_store.rb CHANGED
@@ -1,10 +1,11 @@
1
- require 'aws-sdk-ssm'
2
1
  require 'forwardable'
3
2
 
4
3
  require 'param_store/version'
5
4
  require 'param_store/wrapper'
6
5
  require 'param_store/adapters/env'
7
6
  require 'param_store/adapters/ssm'
7
+ require 'param_store/adapters/secrets_manager'
8
+ require 'param_store/adapters/ejson_wrapper'
8
9
 
9
10
  module ParamStore
10
11
  extend SingleForwardable
@@ -17,16 +18,20 @@ module ParamStore
17
18
  )
18
19
 
19
20
  class << self
20
- attr_accessor :path
21
21
  attr_reader :adapter, :wrapper
22
+ attr_writer :ssm_client, :secrets_manager_client
22
23
 
23
24
  def ssm_client
24
- @_ssm_client ||= Aws::SSM::Client.new
25
+ @ssm_client ||= Aws::SSM::Client.new
25
26
  end
26
27
 
27
- def adapter=(adapter)
28
+ def secrets_manager_client
29
+ @secrets_manager_client ||= Aws::SecretsManager::Client.new
30
+ end
31
+
32
+ def adapter(adapter, **opts)
28
33
  @adapter = adapter
29
- @wrapper = Wrapper.new(adapter_class(adapter))
34
+ @wrapper = Wrapper.new(adapter_class(adapter), **opts)
30
35
  end
31
36
 
32
37
  def adapter_class(adapter)
@@ -34,10 +39,25 @@ module ParamStore
34
39
  when :env
35
40
  Adapters::Env
36
41
  when :aws_ssm
42
+ require_adapter_dependency(adapter, 'aws-sdk-ssm')
37
43
  Adapters::SSM
44
+ when :aws_secrets_manager
45
+ require_adapter_dependency(adapter, 'aws-sdk-secretsmanager')
46
+ Adapters::SecretsManager
47
+ when :ejson_wrapper
48
+ require_adapter_dependency(adapter, 'ejson_wrapper')
49
+ Adapters::EJSONWrapper
38
50
  else
39
51
  raise "Invalid adapter: #{adapter}"
40
52
  end
41
53
  end
54
+
55
+ private
56
+
57
+ def require_adapter_dependency(adapter, dependency)
58
+ require dependency
59
+ rescue LoadError
60
+ fail "#{adapter} requires #{dependency} to be installed separately. Please add gem '#{dependency}' to your Gemfile"
61
+ end
42
62
  end
43
63
  end
data/param_store.gemspec CHANGED
@@ -21,8 +21,6 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ['lib']
23
23
 
24
- spec.add_dependency 'aws-sdk-ssm', '~> 1'
25
-
26
24
  spec.add_development_dependency 'bundler', '~> 1.16'
27
25
  spec.add_development_dependency 'rake', '~> 10.0'
28
26
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: param_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pablo Cantero
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-26 00:00:00.000000000 Z
11
+ date: 2020-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: aws-sdk-ssm
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: bundler
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -73,7 +59,9 @@ files:
73
59
  - bin/console
74
60
  - bin/setup
75
61
  - lib/param_store.rb
62
+ - lib/param_store/adapters/ejson_wrapper.rb
76
63
  - lib/param_store/adapters/env.rb
64
+ - lib/param_store/adapters/secrets_manager.rb
77
65
  - lib/param_store/adapters/ssm.rb
78
66
  - lib/param_store/version.rb
79
67
  - lib/param_store/wrapper.rb
@@ -97,7 +85,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
85
  - !ruby/object:Gem::Version
98
86
  version: '0'
99
87
  requirements: []
100
- rubygems_version: 3.0.1
88
+ rubyforge_project:
89
+ rubygems_version: 2.7.6.2
101
90
  signing_key:
102
91
  specification_version: 4
103
92
  summary: Easy switch in between ENV and AWS Parameter Store (SSM)