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