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, force: false) ⇒ Object
- #to_h ⇒ Object
Constructor Details
#initialize(provider) ⇒ S3SecretManager
Returns a new instance of S3SecretManager.
12 13 14 15 16 17 |
# 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 |
Instance Method Details
#delete(key) ⇒ Object
33 34 35 |
# File 'lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb', line 33 def delete(key) bucket.object(@bucket_prefix + key).delete end |
#get(key) ⇒ Object
29 30 31 |
# 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) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# 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 ⇒ Object
37 38 39 40 41 42 43 44 45 |
# 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 |