class SimplyGenius::Atmos::Providers::Aws::S3SecretManager
Public Class Methods
new(provider)
click to toggle source
# File lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb, line 12 def initialize(provider) @provider = provider @bucket_name = Atmos.config[:secret][:bucket] @bucket_prefix = "#{Atmos.config[:secret][:prefix]}" @encrypt = Atmos.config[:secret][:encrypt] end
Public Instance Methods
delete(key)
click to toggle source
# File lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb, line 33 def delete(key) bucket.object(@bucket_prefix + key).delete end
get(key)
click to toggle source
# File lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb, line 29 def get(key) bucket.object(@bucket_prefix + key).get.body.read end
set(key, value, force: false)
click to toggle source
# File lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb, line 19 def set(key, value, force: false) opts = {} opts[:server_side_encryption] = "AES256" if @encrypt obj = bucket.object(@bucket_prefix + key) if obj.exists? && ! force raise "A value already exists for the given key, force overwrite or delete first" end obj.put(body: value, **opts) end
to_h()
click to toggle source
# File lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb, line 37 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
Private Instance Methods
bucket()
click to toggle source
# File lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb, line 49 def bucket raise ArgumentError.new("The s3 secret bucket is not set") unless @bucket_name @bucket ||= ::Aws::S3::Bucket.new(@bucket_name) end