Class: DynamoSecret::Secret
- Inherits:
-
Object
- Object
- DynamoSecret::Secret
- Defined in:
- lib/dynamo_secret/secret.rb
Instance Method Summary collapse
- #delete ⇒ Object
- #get(fields) ⇒ Object
-
#initialize(config) ⇒ Secret
constructor
A new instance of Secret.
- #put ⇒ Object
- #setup ⇒ Object
- #update ⇒ Object
Constructor Details
#initialize(config) ⇒ Secret
Returns a new instance of Secret.
8 9 10 |
# File 'lib/dynamo_secret/secret.rb', line 8 def initialize(config) @config = config end |
Instance Method Details
#delete ⇒ Object
12 13 14 15 16 17 |
# File 'lib/dynamo_secret/secret.rb', line 12 def delete resp = ask("Really delete #{site}? (y/N) ") return unless resp.casecmp('y') dynamodb.delete $stdout.puts "#{site} deleted" end |
#get(fields) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/dynamo_secret/secret.rb', line 19 def get(fields) secret = dynamodb.fetch_secret return decrypt(secret, fields) if secret $stderr.puts "Could not find record for #{site}" exit 1 end |
#put ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/dynamo_secret/secret.rb', line 26 def put if gpg.key.nil? && kms.key.nil? $stderr.puts 'Refusing to store secrets in plain text' exit 1 elsif dynamodb.fetch_secret $stderr.puts "Site #{site} already exists" exit 1 else secret = encrypt dynamodb.put_secret(secret) end end |
#setup ⇒ Object
39 40 41 42 |
# File 'lib/dynamo_secret/secret.rb', line 39 def setup dynamodb.create_table kms.create_key unless @config.fetch(:enable_kms, nil).nil? end |
#update ⇒ Object
44 45 46 47 |
# File 'lib/dynamo_secret/secret.rb', line 44 def update secret = dynamodb.fetch_secret.merge(encrypt) dynamodb.put_secret(secret) end |