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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/vault_config.rb +25 -2
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94cee626131c002d05356bb6d78df44482b208f7357bd3fad72cea302e8372e9
4
- data.tar.gz: ab2928e4f527018c10d21b54decb4e46c13ef79a57c0b098cc71548a29ec1e15
3
+ metadata.gz: d1495696a444bda19584868020a95ee87a497f1e69468fd715904bd3198a2824
4
+ data.tar.gz: 36899913cc1069401781df5ca15ec6d785d5e4bda632d9c37de9b044482178ba
5
5
  SHA512:
6
- metadata.gz: 11b59fd36fcd4560ac3253e317e61f2b3e41beae7cb84a828d6bd893ab96dea0f1e45fdb8572b61a90ade9f3cd69a552dff697c4942239aaddc4f7bb3c6afc4c
7
- data.tar.gz: e0868461013a3c48d83c52cc0574e8b6abcd2defbb1ff61e1cd2b1c4fab1473d108b6030696b4e452b5ed5d16fb33a0fd430634d283f22bd38ef1b273b40077f
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(uri, header)
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vault_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - azhao