Class: SimplyGenius::Atmos::Providers::Aws::S3SecretManager
- Inherits:
-
Object
- Object
- SimplyGenius::Atmos::Providers::Aws::S3SecretManager
- Includes:
- GemLogger::LoggerSupport
- Defined in:
- lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb
Instance Method Summary collapse
- #delete(key) ⇒ Object
- #get(key) ⇒ Object
-
#initialize(provider) ⇒ S3SecretManager
constructor
A new instance of S3SecretManager.
- #set(key, value) ⇒ Object
- #to_h ⇒ Object
Constructor Details
#initialize(provider) ⇒ S3SecretManager
Returns a new instance of S3SecretManager.
12 13 14 15 16 17 18 |
# File 'lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb', line 12 def initialize(provider) @provider = provider logger.debug("Secrets config is: #{Atmos.config[:secret]}") @bucket_name = Atmos.config[:secret][:bucket] @bucket_prefix = "#{Atmos.config[:secret][:prefix]}" @encrypt = Atmos.config[:secret][:encrypt] end |
Instance Method Details
#delete(key) ⇒ Object
30 31 32 |
# File 'lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb', line 30 def delete(key) bucket.object(@bucket_prefix + key).delete end |
#get(key) ⇒ Object
26 27 28 |
# File 'lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb', line 26 def get(key) bucket.object(@bucket_prefix + key).get.body.read end |
#set(key, value) ⇒ Object
20 21 22 23 24 |
# File 'lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb', line 20 def set(key, value) opts = {} opts[:server_side_encryption] = "AES256" if @encrypt bucket.object(@bucket_prefix + key).put(body: value, **opts) end |
#to_h ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb', line 34 def to_h Hash[bucket.objects(prefix: @bucket_prefix).collect {|o| key = o.key if @bucket_prefix.present? key = o.key.gsub(/^#{@bucket_prefix}/, '') end [key, o.get.body.read] }] end |