Sha256: b8da7296af3cd04e8941e5bbcfb851f1cdff7f787c044e935ac0d3a291919f10

Contents?: true

Size: 672 Bytes

Versions: 1

Compression:

Stored size: 672 Bytes

Contents

# frozen_string_literal: true

require 'json'
require 'secrets_loader/loader/base'
require 'aws-sdk-secretsmanager'

module SecretsLoader
  module Loader
    class SecretsManager < Base
      attr_accessor :client, :secret_id

      def initialize(client: Aws::SecretsManager::Client.new, secret_id: ENV['SECRETS_MANAGER_SECRET_ID'])
        @client = client
        @secret_id = secret_id
      end

      def enable?
        return false unless super

        !(secret_id.nil? || secret_id.empty?)
      end

      def load
        secret_string = client.get_secret_value(secret_id: secret_id).secret_string
        JSON.parse(secret_string)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
secrets_loader-0.1.1 lib/secrets_loader/loader/secrets_manager.rb