Class: SecretBroker

Inherits:
Object
  • Object
show all
Defined in:
lib/secret_broker.rb,
lib/secret_broker/version.rb,
lib/secret_broker/dummy_secrets_hash.rb,
lib/secret_broker/ejson_secrets_file.rb

Overview

SecretBroker class for accessing secrets stored using ejson.

Usage:

Secrets.environment.fetch :key

Example (running in production):

Secrets.production.database_password

> ‘pa$$w0rd’

Secrets.staging.database_password

> ‘SECRET VALUE REQUESTED FOR database_password AN ENVIRONMENT OTHER THAN THE CURRENT ENVIRONMENT’

Defined Under Namespace

Classes: DummySecretsHash, EJsonSecretsFile

Constant Summary collapse

REMOTE_ENVIRONMENTS =
[:staging, :production].freeze
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.current_environmentObject



29
30
31
# File 'lib/secret_broker.rb', line 29

def current_environment
  Rails.env
end

.current_environment_secretsObject



25
26
27
# File 'lib/secret_broker.rb', line 25

def current_environment_secrets
  @current_environment_secrets ||= HashWithIndifferentAccess.new(ejson_secrets_file.to_h)
end

.ejson_secrets_fileObject



33
34
35
# File 'lib/secret_broker.rb', line 33

def ejson_secrets_file
  EJsonSecretsFile.new(current_environment)
end