vault_config 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vault_config.rb +25 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1495696a444bda19584868020a95ee87a497f1e69468fd715904bd3198a2824
|
4
|
+
data.tar.gz: 36899913cc1069401781df5ca15ec6d785d5e4bda632d9c37de9b044482178ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a6b871512c7c5e41ee24d13705fd19d50c1f3a2716a3b88162de0abc45f0a7dbc16d713fabe1f1a964fe13b14bccc1be8af28bc10810c096498e72d0b977607
|
7
|
+
data.tar.gz: e716b028a8011706b0479634e5f809bfd1e334aae1de46afce26e275998046c2cf3b297b833524a85ee129e53636430728312c14de7b6a06ff6539aeb438e62a
|
data/lib/vault_config.rb
CHANGED
@@ -12,12 +12,35 @@ class VaultConfig
|
|
12
12
|
client.load!
|
13
13
|
end
|
14
14
|
|
15
|
+
# https://learn.hashicorp.com/tutorials/vault/tokens
|
16
|
+
def self.renew(token = nil)
|
17
|
+
uri = URI(File.join(ENV['VAULT_ADDR'], '/v1/auth/token/renew'))
|
18
|
+
header = {
|
19
|
+
'X-Vault-Token': ENV['VAULT_TOKEN'],
|
20
|
+
'content-type':'application/json'
|
21
|
+
}
|
22
|
+
response = Net::HTTP.post(uri, {
|
23
|
+
token: token || ENV['VAULT_TOKEN'],
|
24
|
+
increment: "60"
|
25
|
+
}.to_json, header)
|
26
|
+
puts response.body
|
27
|
+
end
|
28
|
+
|
15
29
|
def load!
|
16
|
-
uri = URI(File.join(ENV['VAULT_ADDR'], 'v1/secret/data', @app))
|
17
30
|
header = {'X-Vault-Token': ENV['VAULT_TOKEN']}
|
18
|
-
response = Net::HTTP.get_response(
|
31
|
+
response = Net::HTTP.get_response(client_uri, header)
|
19
32
|
JSON.parse(response.body)['data']['data'].each do |k, v|
|
20
33
|
ENV[k] = v
|
21
34
|
end
|
22
35
|
end
|
36
|
+
|
37
|
+
private def client_uri
|
38
|
+
if @app.start_with?('/')
|
39
|
+
arr = @app.split('/')
|
40
|
+
arr[1] = "#{arr[1]}/data"
|
41
|
+
URI(File.join(ENV['VAULT_ADDR'], 'v1/', arr.join('/')))
|
42
|
+
else
|
43
|
+
URI(File.join(ENV['VAULT_ADDR'], 'v1/secret/data', @app))
|
44
|
+
end
|
45
|
+
end
|
23
46
|
end
|