Module: OneSecret

Defined in:
lib/one_secret.rb,
lib/one_secret/store.rb,
lib/one_secret/secret.rb,
lib/one_secret/railtie.rb,
lib/one_secret/version.rb,
lib/one_secret/secrets_yaml.rb,
lib/one_secret/configuration.rb,
lib/one_secret/key_resolution.rb

Defined Under Namespace

Modules: KeyResolution Classes: ApplicationSecretsStore, Configuration, EnvStore, Railtie, Secret, SecretsYAML, Store

Constant Summary collapse

VERSION =
"1.0.2"

Class Method Summary collapse

Class Method Details

.build(value) ⇒ Object



19
20
21
22
23
# File 'lib/one_secret.rb', line 19

def self.build(value)
  Secret.unlocked {
    return Secret.new(value)
  }
end

.configurationObject



15
16
17
# File 'lib/one_secret.rb', line 15

def self.configuration
  @configuration ||= Configuration.new
end

.configure(&block) ⇒ Object



11
12
13
# File 'lib/one_secret.rb', line 11

def self.configure(&block)
  configuration.instance_eval(&block)
end

.get(environment, key) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/one_secret.rb', line 33

def self.get(environment, key)
  secrets = SecretsYAML.new(Rails.application.paths["config/secrets"].first)
  secret = secrets.values[environment][key]

  Secret.unlocked {
    return Secret.load(secret)
  }
end

.get_all(environment) ⇒ Object



42
43
44
45
46
47
# File 'lib/one_secret.rb', line 42

def self.get_all(environment)
  secrets = SecretsYAML.new(Rails.application.paths["config/secrets"].first)
  Secret.unlocked {
    return Hash[secrets.values[environment].map { |k, v| [k, Secret.load(v)] }]
  }
end

.message(text) ⇒ Object



49
50
51
# File 'lib/one_secret.rb', line 49

def self.message(text)
  "\e[33m<OneSecret>\e[0m #{text}"
end

.set(environment, key, value) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/one_secret.rb', line 25

def self.set(environment, key, value)
  secrets = SecretsYAML.new(Rails.application.paths["config/secrets"].first)
  build(value).tap do |secret|
    secrets.set(environment, key, secret.to_hash)
    secrets.save
  end
end