Class: SimplyGenius::Atmos::Providers::Aws::S3SecretManager

Inherits:
Object
  • Object
show all
Includes:
GemLogger::LoggerSupport
Defined in:
lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb

Instance Method Summary collapse

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
  logger.debug("Secrets config is: #{Atmos.config[:secret]}")
  @bucket_name = Atmos.config[:secret][:bucket]
  @encrypt = Atmos.config[:secret][:encrypt]
end

Instance Method Details

#delete(key) ⇒ Object



29
30
31
# File 'lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb', line 29

def delete(key)
  bucket.object(key).delete
end

#get(key) ⇒ Object



25
26
27
# File 'lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb', line 25

def get(key)
  bucket.object(key).get.body.read
end

#set(key, value) ⇒ Object



19
20
21
22
23
# File 'lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb', line 19

def set(key, value)
  opts = {}
  opts[:server_side_encryption] = "AES256" if @encrypt
  bucket.object(key).put(body: value, **opts)
end

#to_hObject



33
34
35
36
37
# File 'lib/simplygenius/atmos/providers/aws/s3_secret_manager.rb', line 33

def to_h
  Hash[bucket.objects.collect {|o|
    [o.key, o.get.body.read]
  }]
end