vault_config 0.0.1 → 0.0.2

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.
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