module CredStash

Constants

VERSION

Public Class Methods

config() click to toggle source
# File lib/cred_stash/config.rb, line 7
def config
  @config ||= Config.new
end
configure() { |config| ... } click to toggle source
# File lib/cred_stash/config.rb, line 3
def configure
  yield config
end
delete(name) click to toggle source
# File lib/cred_stash.rb, line 27
def delete(name)
  # TODO needs delete target version option
  repository = Repository.instance
  item = repository.select(name).first
  repository.delete(item)
end
get(name, context: {}, raise_if_missing: false) click to toggle source
# File lib/cred_stash.rb, line 3
def get(name, context: {}, raise_if_missing: false)
  secret = Secret.find(name, context: context)

  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() click to toggle source
# File lib/cred_stash.rb, line 23
def list
  Repository.instance.list.inject({}) {|h, item| h[item.name] = item.version; h }
end
put(name, value, kms_key_id: nil, context: {}) click to toggle source
# 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
setup() click to toggle source
# File lib/cred_stash.rb, line 34
def setup
  Repository.instance.setup
end

Private Class Methods

get_highest_version(name) click to toggle source
# File lib/cred_stash.rb, line 40
def get_highest_version(name)
  item = Repository.instance.select(name, pluck: 'version', limit: 1).first
  if item
    item.version.to_i
  else
    0
  end
end