class Provide::Services::Vault

Public Class Methods

new(scheme = 'http', host, token) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 5
def initialize(scheme = 'http', host, token)
  @scheme = scheme
  @host = host
  @token = token
end

Public Instance Methods

create_key(vault_id) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 11
def create_key(vault_id)
    parse client.post "vaults/#{vault_id}"
end
create_vault(params) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 51
def create_vault(params)
    parse client.post 'vaults', params
end
decrypt(vault_id, key_id, data) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 27
def decrypt(vault_id, key_id, data)
    parse client.post "vaults/#{vault_id}/keys/#{key_id}/decrypt", data
end
delete_key(vault_id, key_id) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 15
def delete_key(vault_id, key_id)
    parse client.delete "vaults/#{vault_id}/keys/#{key_id}"
end
delete_secret(vault_id, secret_id) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 47
def delete_secret(vault_id, secret_id)
    parse client.delete "vaults/#{vault_id}/secrets/#{secret_id}"
end
derive_key(vault_id, key_id) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 19
def derive_key(vault_id, key_id)
    parse client.post "vaults/#{vault_id}/keys/#{key_id}/derive"
end
encrypt(vault_id, key_id, data) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 23
def encrypt(vault_id, key_id, data)
    parse client.post "vaults/#{vault_id}/keys/#{key_id}/encrypt", data
end
list_keys(vault_id) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 31
def list_keys(vault_id)
    parse client.get "vaults/#{vault_id}/keys"
end
list_secrets(vault_id) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 35
def list_secrets(vault_id)
    parse client.get "vaults/#{vault_id}/secrets"
end
list_vaults(params = nil) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 55
def list_vaults(params = nil)
    parse client.get 'vaults', (params || {})
end
retrieve_secret(vault_id, secret_id) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 43
def retrieve_secret(vault_id, secret_id)
    parse client.get "vaults/#{vault_id}/secrets/#{secret_id}"
end
store_secret(vault_id, secret) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 39
def store_secret(vault_id, secret)
    parse client.post "vaults/#{vault_id}/secrets", secret
end

Private Instance Methods

client() click to toggle source
# File lib/provide-ruby/services/vault.rb, line 61
def client
  @client ||= begin
    Provide::ApiClient.new(@scheme, @host, 'api/v1/', @token)
  end
end
parse(response) click to toggle source
# File lib/provide-ruby/services/vault.rb, line 67
def parse(response)
  begin
    body = response.code == 204 ? nil : JSON.parse(response.body)
    return response.code, response.headers, body
  rescue
    raise Exception.new({
      :code => response.code,
    })
  end
end