Module: CredStash
- Defined in:
- lib/cred_stash.rb,
lib/cred_stash/cli.rb,
lib/cred_stash/error.rb,
lib/cred_stash/config.rb,
lib/cred_stash/version.rb
Defined Under Namespace
Modules: Repository
Classes: CLI, Cipher, CipherKey, Config, Error, ItemNotFound, Secret
Constant Summary
collapse
- VERSION =
"2.0.0"
Class Method Summary
collapse
Class Method Details
.config ⇒ Object
7
8
9
|
# File 'lib/cred_stash/config.rb', line 7
def config
@config ||= Config.new
end
|
3
4
5
|
# File 'lib/cred_stash/config.rb', line 3
def configure
yield config
end
|
.delete(name, version: nil) ⇒ Object
36
37
38
39
40
|
# File 'lib/cred_stash.rb', line 36
def delete(name, version: nil)
repository = Repository.instance
item = repository.select(name, version: version).first
repository.delete(item)
end
|
.get(name, context: {}, raise_if_missing: false, version: nil) ⇒ Object
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# File 'lib/cred_stash.rb', line 3
def get(name, context: {}, raise_if_missing: false, version: nil)
secret = Secret.find(name, context: context, version: version)
if secret.falsified?
raise "Invalid secret. #{name} has falsified"
end
secret.decrypted_value
rescue CredStash::ItemNotFound => e
raise e if raise_if_missing
nil
end
|
.list ⇒ Object
23
24
25
|
# File 'lib/cred_stash.rb', line 23
def list
Repository.instance.list.inject({}) {|h, item| h[item.name] = item.version; h }
end
|
.list_with_version ⇒ Object
27
28
29
30
31
32
33
34
|
# File 'lib/cred_stash.rb', line 27
def list_with_version
Repository.instance.list.inject([]) do |h, item|
h.push({
"name" => item.name,
"version" => item.version
})
end
end
|
.put(name, value, kms_key_id: nil, context: {}) ⇒ Object
17
18
19
20
21
|
# File 'lib/cred_stash.rb', line 17
def put(name, value, kms_key_id: nil, context: {})
secret = Secret.new(name: name, value: value, context: context)
secret.encrypt!(kms_key_id: kms_key_id)
secret.save
end
|