vault 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +3 -3
- data/.travis.yml +2 -1
- data/CHANGELOG.md +18 -0
- data/lib/vault.rb +3 -3
- data/lib/vault/api/auth.rb +1 -1
- data/lib/vault/api/auth_token.rb +25 -0
- data/lib/vault/api/help.rb +1 -1
- data/lib/vault/api/logical.rb +21 -3
- data/lib/vault/api/sys/audit.rb +2 -2
- data/lib/vault/api/sys/auth.rb +2 -2
- data/lib/vault/api/sys/mount.rb +2 -2
- data/lib/vault/api/sys/policy.rb +3 -3
- data/lib/vault/client.rb +1 -1
- data/lib/vault/version.rb +1 -1
- data/vault.gemspec +1 -1
- metadata +6 -7
- data/Gemfile.lock +0 -53
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f44b1c7408f1606c17e1b1aea67b3547aae80873
|
4
|
+
data.tar.gz: f908452ae3a2117b1b12c5305921f59242ef89ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00352ca38411b6340b145dfad3bbe8c1f6d49535fbf169717ee60c37198e07e229e56b1f4b1e30fe907d5d542cfe7656ad3386570e2d2894d922935416ce6b0e
|
7
|
+
data.tar.gz: 5a4d53a45ee70b529d03e77fa3e73adabd2e538c3b18aa4547a1d0f78f733cea6337940b70105952b9067df7b9e5d40327bdef45b6b6b5b933eead0e59a46381
|
data/.gitignore
CHANGED
@@ -30,9 +30,9 @@ build/
|
|
30
30
|
|
31
31
|
# for a library or gem, you might want to ignore these files since the code is
|
32
32
|
# intended to run in multiple environments; otherwise, check them in:
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
Gemfile.lock
|
34
|
+
.ruby-version
|
35
|
+
.ruby-gemset
|
36
36
|
|
37
37
|
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
38
38
|
.rvmrc
|
data/.travis.yml
CHANGED
@@ -3,7 +3,7 @@ cache: bundler
|
|
3
3
|
sudo: false
|
4
4
|
|
5
5
|
before_install: |-
|
6
|
-
wget -O vault.zip -q https://
|
6
|
+
wget -O vault.zip -q https://releases.hashicorp.com/vault/0.5.0-rc1/vault_0.5.0-rc1_linux_amd64.zip
|
7
7
|
unzip vault.zip
|
8
8
|
mkdir ~/bin
|
9
9
|
mv vault ~/bin
|
@@ -18,3 +18,4 @@ rvm:
|
|
18
18
|
- 2.0
|
19
19
|
- 2.1
|
20
20
|
- 2.2
|
21
|
+
- 2.3.0
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# Vault Ruby Changelog
|
2
2
|
|
3
|
+
## v0.3.0.dev (Unreleased)
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
## v0.3.0 (February 16, 2016)
|
8
|
+
|
9
|
+
NEW FEATURES
|
10
|
+
|
11
|
+
- Add API for `renew_self`
|
12
|
+
- Add API for `revoke_self`
|
13
|
+
- Add API for listing secrets where supported
|
14
|
+
|
15
|
+
BUG FIXES
|
16
|
+
|
17
|
+
- Relax bundler constraint
|
18
|
+
- Fix race conditions on Ruby 2.3
|
19
|
+
- Escape path params before posting to Vault
|
20
|
+
|
3
21
|
## v0.2.0 (December 2, 2015)
|
4
22
|
|
5
23
|
IMPROVEMENTS
|
data/lib/vault.rb
CHANGED
@@ -31,8 +31,8 @@ module Vault
|
|
31
31
|
# Delegate all methods to the client object, essentially making the module
|
32
32
|
# object behave like a {Client}.
|
33
33
|
def method_missing(m, *args, &block)
|
34
|
-
if client.respond_to?(m)
|
35
|
-
client.send(m, *args, &block)
|
34
|
+
if @client.respond_to?(m)
|
35
|
+
@client.send(m, *args, &block)
|
36
36
|
else
|
37
37
|
super
|
38
38
|
end
|
@@ -40,7 +40,7 @@ module Vault
|
|
40
40
|
|
41
41
|
# Delegating +respond_to+ to the {Client}.
|
42
42
|
def respond_to_missing?(m, include_private = false)
|
43
|
-
client.respond_to?(m, include_private) || super
|
43
|
+
@client.respond_to?(m, include_private) || super
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
data/lib/vault/api/auth.rb
CHANGED
@@ -93,7 +93,7 @@ module Vault
|
|
93
93
|
# @return [Secret]
|
94
94
|
def userpass(username, password, options = {})
|
95
95
|
payload = { password: password }.merge(options)
|
96
|
-
json = client.post("/v1/auth/userpass/login/#{username}", JSON.fast_generate(payload))
|
96
|
+
json = client.post("/v1/auth/userpass/login/#{CGI.escape(username)}", JSON.fast_generate(payload))
|
97
97
|
secret = Secret.decode(json)
|
98
98
|
client.token = secret.auth.client_token
|
99
99
|
return secret
|
data/lib/vault/api/auth_token.rb
CHANGED
@@ -45,6 +45,31 @@ module Vault
|
|
45
45
|
return Secret.decode(json)
|
46
46
|
end
|
47
47
|
|
48
|
+
# Renews a lease associated with the callign token.
|
49
|
+
#
|
50
|
+
# @example
|
51
|
+
# Vault.auth_token.renew_self #=> #<Vault::Secret lease_id="">
|
52
|
+
#
|
53
|
+
# @param [Fixnum] increment
|
54
|
+
#
|
55
|
+
# @return [Secret]
|
56
|
+
def renew_self(increment = 0)
|
57
|
+
json = client.put("/v1/auth/token/renew-self", JSON.fast_generate(
|
58
|
+
increment: increment,
|
59
|
+
))
|
60
|
+
return Secret.decode(json)
|
61
|
+
end
|
62
|
+
|
63
|
+
# Revokes the token used to call it.
|
64
|
+
#
|
65
|
+
# @example
|
66
|
+
# Vault.auth_token.revoke_self #=> 204
|
67
|
+
#
|
68
|
+
# @return response code.
|
69
|
+
def revoke_self
|
70
|
+
client.post("/v1/auth/token/revoke-self")
|
71
|
+
end
|
72
|
+
|
48
73
|
# Revoke exactly the orphans at the id.
|
49
74
|
#
|
50
75
|
# @example
|
data/lib/vault/api/help.rb
CHANGED
data/lib/vault/api/logical.rb
CHANGED
@@ -13,6 +13,24 @@ module Vault
|
|
13
13
|
end
|
14
14
|
|
15
15
|
class Logical < Request
|
16
|
+
# List the secrets at the given path, if the path supports listing. If the
|
17
|
+
# the path does not exist, an exception will be raised.
|
18
|
+
#
|
19
|
+
# @example
|
20
|
+
# Vault.logical.list("secret") #=> [#<Vault::Secret>, #<Vault::Secret>, ...]
|
21
|
+
#
|
22
|
+
# @param [String] path
|
23
|
+
# the path to list
|
24
|
+
#
|
25
|
+
# @return [Array<String>]
|
26
|
+
def list(path)
|
27
|
+
json = client.get("/v1/#{CGI.escape(path)}", list: true)
|
28
|
+
json[:data][:keys] || []
|
29
|
+
rescue HTTPError => e
|
30
|
+
return [] if e.code == 404
|
31
|
+
raise
|
32
|
+
end
|
33
|
+
|
16
34
|
# Read the secret at the given path. If the secret does not exist, +nil+
|
17
35
|
# will be returned.
|
18
36
|
#
|
@@ -24,7 +42,7 @@ module Vault
|
|
24
42
|
#
|
25
43
|
# @return [Secret, nil]
|
26
44
|
def read(path)
|
27
|
-
json = client.get("/v1/#{path}")
|
45
|
+
json = client.get("/v1/#{CGI.escape(path)}")
|
28
46
|
return Secret.decode(json)
|
29
47
|
rescue HTTPError => e
|
30
48
|
return nil if e.code == 404
|
@@ -44,7 +62,7 @@ module Vault
|
|
44
62
|
#
|
45
63
|
# @return [Secret]
|
46
64
|
def write(path, data = {})
|
47
|
-
json = client.put("/v1/#{path}", JSON.fast_generate(data))
|
65
|
+
json = client.put("/v1/#{CGI.escape(path)}", JSON.fast_generate(data))
|
48
66
|
if json.nil?
|
49
67
|
return true
|
50
68
|
else
|
@@ -63,7 +81,7 @@ module Vault
|
|
63
81
|
#
|
64
82
|
# @return [true]
|
65
83
|
def delete(path)
|
66
|
-
client.delete("/v1/#{path}")
|
84
|
+
client.delete("/v1/#{CGI.escape(path)}")
|
67
85
|
return true
|
68
86
|
end
|
69
87
|
end
|
data/lib/vault/api/sys/audit.rb
CHANGED
@@ -37,7 +37,7 @@ module Vault
|
|
37
37
|
#
|
38
38
|
# @return [true]
|
39
39
|
def enable_audit(path, type, description, options = {})
|
40
|
-
client.put("/v1/sys/audit/#{path}", JSON.fast_generate(
|
40
|
+
client.put("/v1/sys/audit/#{CGI.escape(path)}", JSON.fast_generate(
|
41
41
|
type: type,
|
42
42
|
description: description,
|
43
43
|
options: options,
|
@@ -53,7 +53,7 @@ module Vault
|
|
53
53
|
#
|
54
54
|
# @return [true]
|
55
55
|
def disable_audit(path)
|
56
|
-
client.delete("/v1/sys/audit/#{path}")
|
56
|
+
client.delete("/v1/sys/audit/#{CGI.escape(path)}")
|
57
57
|
return true
|
58
58
|
end
|
59
59
|
end
|
data/lib/vault/api/sys/auth.rb
CHANGED
@@ -36,7 +36,7 @@ module Vault
|
|
36
36
|
payload = { type: type }
|
37
37
|
payload[:description] = description if !description.nil?
|
38
38
|
|
39
|
-
client.post("/v1/sys/auth/#{path}", JSON.fast_generate(payload))
|
39
|
+
client.post("/v1/sys/auth/#{CGI.escape(path)}", JSON.fast_generate(payload))
|
40
40
|
return true
|
41
41
|
end
|
42
42
|
|
@@ -51,7 +51,7 @@ module Vault
|
|
51
51
|
#
|
52
52
|
# @return [true]
|
53
53
|
def disable_auth(path)
|
54
|
-
client.delete("/v1/sys/auth/#{path}")
|
54
|
+
client.delete("/v1/sys/auth/#{CGI.escape(path)}")
|
55
55
|
return true
|
56
56
|
end
|
57
57
|
end
|
data/lib/vault/api/sys/mount.rb
CHANGED
@@ -34,7 +34,7 @@ module Vault
|
|
34
34
|
payload = { type: type }
|
35
35
|
payload[:description] = description if !description.nil?
|
36
36
|
|
37
|
-
client.post("/v1/sys/mounts/#{path}", JSON.fast_generate(payload))
|
37
|
+
client.post("/v1/sys/mounts/#{CGI.escape(path)}", JSON.fast_generate(payload))
|
38
38
|
return true
|
39
39
|
end
|
40
40
|
|
@@ -49,7 +49,7 @@ module Vault
|
|
49
49
|
#
|
50
50
|
# @return [true]
|
51
51
|
def unmount(path)
|
52
|
-
client.delete("/v1/sys/mounts/#{path}")
|
52
|
+
client.delete("/v1/sys/mounts/#{CGI.escape(path)}")
|
53
53
|
return true
|
54
54
|
end
|
55
55
|
|
data/lib/vault/api/sys/policy.rb
CHANGED
@@ -24,7 +24,7 @@ module Vault
|
|
24
24
|
#
|
25
25
|
# @return [Policy, nil]
|
26
26
|
def policy(name)
|
27
|
-
json = client.get("/v1/sys/policy/#{name}")
|
27
|
+
json = client.get("/v1/sys/policy/#{CGI.escape(name)}")
|
28
28
|
return Policy.decode(json)
|
29
29
|
rescue HTTPError => e
|
30
30
|
return nil if e.code == 404
|
@@ -54,7 +54,7 @@ module Vault
|
|
54
54
|
#
|
55
55
|
# @return [true]
|
56
56
|
def put_policy(name, rules)
|
57
|
-
client.put("/v1/sys/policy/#{name}", JSON.fast_generate(
|
57
|
+
client.put("/v1/sys/policy/#{CGI.escape(name)}", JSON.fast_generate(
|
58
58
|
rules: rules,
|
59
59
|
))
|
60
60
|
return true
|
@@ -69,7 +69,7 @@ module Vault
|
|
69
69
|
# @param [String] name
|
70
70
|
# the name of the policy
|
71
71
|
def delete_policy(name)
|
72
|
-
client.delete("/v1/sys/policy/#{name}")
|
72
|
+
client.delete("/v1/sys/policy/#{CGI.escape(name)}")
|
73
73
|
return true
|
74
74
|
end
|
75
75
|
end
|
data/lib/vault/client.rb
CHANGED
data/lib/vault/version.rb
CHANGED
data/vault.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
|
22
|
-
spec.add_development_dependency "bundler"
|
22
|
+
spec.add_development_dependency "bundler"
|
23
23
|
spec.add_development_dependency "pry"
|
24
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
25
|
spec.add_development_dependency "rspec", "~> 3.2"
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vault
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seth Vargo
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: pry
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,7 +92,6 @@ files:
|
|
92
92
|
- ".travis.yml"
|
93
93
|
- CHANGELOG.md
|
94
94
|
- Gemfile
|
95
|
-
- Gemfile.lock
|
96
95
|
- LICENSE
|
97
96
|
- README.md
|
98
97
|
- Rakefile
|
data/Gemfile.lock
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
vault (0.2.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
addressable (2.3.8)
|
10
|
-
coderay (1.1.0)
|
11
|
-
crack (0.4.2)
|
12
|
-
safe_yaml (~> 1.0.0)
|
13
|
-
diff-lcs (1.2.5)
|
14
|
-
hashdiff (0.2.3)
|
15
|
-
method_source (0.8.2)
|
16
|
-
pry (0.10.1)
|
17
|
-
coderay (~> 1.1.0)
|
18
|
-
method_source (~> 0.8.1)
|
19
|
-
slop (~> 3.4)
|
20
|
-
rake (10.4.2)
|
21
|
-
rspec (3.2.0)
|
22
|
-
rspec-core (~> 3.2.0)
|
23
|
-
rspec-expectations (~> 3.2.0)
|
24
|
-
rspec-mocks (~> 3.2.0)
|
25
|
-
rspec-core (3.2.3)
|
26
|
-
rspec-support (~> 3.2.0)
|
27
|
-
rspec-expectations (3.2.1)
|
28
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
29
|
-
rspec-support (~> 3.2.0)
|
30
|
-
rspec-mocks (3.2.1)
|
31
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
32
|
-
rspec-support (~> 3.2.0)
|
33
|
-
rspec-support (3.2.2)
|
34
|
-
safe_yaml (1.0.4)
|
35
|
-
slop (3.6.0)
|
36
|
-
webmock (1.22.3)
|
37
|
-
addressable (>= 2.3.6)
|
38
|
-
crack (>= 0.3.2)
|
39
|
-
hashdiff
|
40
|
-
|
41
|
-
PLATFORMS
|
42
|
-
ruby
|
43
|
-
|
44
|
-
DEPENDENCIES
|
45
|
-
bundler (~> 1.9)
|
46
|
-
pry
|
47
|
-
rake (~> 10.0)
|
48
|
-
rspec (~> 3.2)
|
49
|
-
vault!
|
50
|
-
webmock (~> 1.22)
|
51
|
-
|
52
|
-
BUNDLED WITH
|
53
|
-
1.10.6
|