Class: ParamStore::Adapters::SecretsManager
- Inherits:
-
Object
- Object
- ParamStore::Adapters::SecretsManager
- Defined in:
- lib/param_store/adapters/secrets_manager.rb
Instance Attribute Summary collapse
-
#default_secret_id ⇒ Object
readonly
Returns the value of attribute default_secret_id.
Instance Method Summary collapse
- #fetch(key, *args, secret_id: nil, version_id: nil, version_stage: nil, &block) ⇒ Object
- #fetch_all(*keys, **opts) ⇒ Object
-
#initialize(default_secret_id: nil) ⇒ SecretsManager
constructor
A new instance of SecretsManager.
Constructor Details
#initialize(default_secret_id: nil) ⇒ SecretsManager
Returns a new instance of SecretsManager.
6 7 8 |
# File 'lib/param_store/adapters/secrets_manager.rb', line 6 def initialize(default_secret_id: nil) @default_secret_id = default_secret_id end |
Instance Attribute Details
#default_secret_id ⇒ Object (readonly)
Returns the value of attribute default_secret_id.
4 5 6 |
# File 'lib/param_store/adapters/secrets_manager.rb', line 4 def default_secret_id @default_secret_id end |
Instance Method Details
#fetch(key, *args, secret_id: nil, version_id: nil, version_stage: nil, &block) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/param_store/adapters/secrets_manager.rb', line 10 def fetch(key, *args, secret_id: nil, version_id: nil, version_stage: nil, &block) get_key = secret_id || default_secret_id || key if cache[get_key].nil? && string = get_secret_value(get_key, version_id, version_stage) cache[get_key] = JSON.parse(string) end ( secret_id.nil? && default_secret_id.nil? ? cache : cache[get_key] ).fetch(key, *args, &block) end |
#fetch_all(*keys, **opts) ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'lib/param_store/adapters/secrets_manager.rb', line 23 def fetch_all(*keys, **opts) # poor man's fetch all # I couldn't find a batch get for secrets manager :/ keys.map do |key| value = fetch(key, {}, **opts) value&.empty? ? {} : { key => value } end.inject(:merge) end |