class FigaroSecrets::SecretsManager
Public Instance Methods
client()
click to toggle source
# File lib/figaro_secrets/secrets_manager.rb, line 21 def client @client ||= Aws::SecretsManager::Client.new end
get_secret(secret)
click to toggle source
# File lib/figaro_secrets/secrets_manager.rb, line 5 def get_secret(secret) secret_name, key = secret.split(":") response = client.get_secret_value(secret_id: secret_name) secret = response.secret_string || Base64.decode64(response.secret_binary) parsed_secret = JSON.parse(secret) rescue secret if key && parsed_secret.is_a?(Hash) parsed_secret[key] else parsed_secret end rescue JSON::ParserError => e FigaroSecrets.log_error("Could not parse secret: #{e}") rescue Aws::Errors::ServiceError => e FigaroSecrets.log_error("Could not retrieve secret #{secret.inspect}: #{e}") end