Class: Kodo::Secrets::Store

Inherits:
Object
  • Object
show all
Defined in:
lib/kodo/secrets/store.rb

Instance Method Summary collapse

Constructor Details

#initialize(passphrase:, secrets_dir: nil) ⇒ Store

Returns a new instance of Store.



9
10
11
12
13
14
# File 'lib/kodo/secrets/store.rb', line 9

def initialize(passphrase:, secrets_dir: nil)
  @secrets_dir = secrets_dir || Kodo.home_dir
  @passphrase = passphrase
  FileUtils.mkdir_p(@secrets_dir)
  @secrets = load_secrets
end

Instance Method Details

#delete(name) ⇒ Object



36
37
38
39
40
# File 'lib/kodo/secrets/store.rb', line 36

def delete(name)
  removed = @secrets.delete(name)
  save_secrets if removed
  !removed.nil?
end

#exists?(name) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/kodo/secrets/store.rb', line 32

def exists?(name)
  @secrets.key?(name)
end

#get(name) ⇒ Object



27
28
29
30
# File 'lib/kodo/secrets/store.rb', line 27

def get(name)
  entry = @secrets[name]
  entry&.fetch('value', nil)
end

#names ⇒ Object



42
43
44
# File 'lib/kodo/secrets/store.rb', line 42

def names
  @secrets.keys
end

#put(name, value, source: 'user', validated: false) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/kodo/secrets/store.rb', line 16

def put(name, value, source: 'user', validated: false)
  @secrets[name] = {
    'value' => value,
    'source' => source,
    'validated' => validated,
    'stored_at' => Time.now.iso8601
  }
  save_secrets
  @secrets[name]
end