Sha256: 0664e6db14bb02e54852fa1ab669d9f0904a84e93819f4dd6db7a989f474c409

Contents?: true

Size: 1008 Bytes

Versions: 105

Compression:

Stored size: 1008 Bytes

Contents

require "aws-sdk-secretsmanager"

module PlatformSdk
  module Aws
    class SecretsManagerClient
      attr_reader :client

      def initialize(access_key_id:, secret_access_key:, region: "us-west-2")
        @client = ::Aws::SecretsManager::Client.new(
          access_key_id: access_key_id,
          secret_access_key: secret_access_key,
          region: region
        )
      end

      def secret(secret_key:, arn: nil, secret_name: nil)
        raise(ArgumentError, "Must provide either an arn or a secret name") if arn.nil? && secret_name.nil?

        secret = secret_store(secret_name: (arn || secret_name))
        secret[secret_key]
      end

      def powerschool_token(domain:, environment:)
        secret(secret_name: "powerschool_token_#{domain}_#{environment}", secret_key: "access_token")
      end

      private

      def secret_store(secret_name:)
        store = @client.get_secret_value(secret_id: secret_name)
        JSON.parse(store.secret_string)
      end
    end
  end
end

Version data entries

105 entries across 105 versions & 1 rubygems

Version Path
strongmind-platform-sdk-3.26.0 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.25.0 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.24.0 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.23.7 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.23.6 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.23.5 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.23.4 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.23.3 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.23.2 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.23.1 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.23.0 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.22.1 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.22.0 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.21.8 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.21.7 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.21.6 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.21.5 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.21.4 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.21.3 lib/platform_sdk/aws/secrets_manager_client.rb
strongmind-platform-sdk-3.21.2 lib/platform_sdk/aws/secrets_manager_client.rb