vault_config 0.1.2 → 0.010
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 +1 -53
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '024955556643501414dfc917025a316247295c03409ff778c439d851a8a2da89'
|
4
|
+
data.tar.gz: 19518ec349ed895070a7c7fba8c10f8b5a67c7104b1231796d168c65e28718b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 955f9b0574b91d0f6679dbf19277fb1343834a47a870786cd3a250c693832abce64744969c61f80b54c0ec69ae57dd0934de0d7ee2ca74f4f7859335cbc5dcb0
|
7
|
+
data.tar.gz: d5ce5347e98ea60614f56ccecdb86130af5950b11590d8b3ae8a1a6184fbf5d8c4749589296bf0472d68eb292915b32ff129cb5b4a46274243962b1df59bd70d
|
data/lib/vault_config.rb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
#
|
2
|
-
require 'net/http'
|
3
|
-
require 'json'
|
4
|
-
|
5
2
|
class VaultConfig
|
6
3
|
def initialize(app)
|
7
4
|
@app = app
|
@@ -12,57 +9,8 @@ class VaultConfig
|
|
12
9
|
client.load!
|
13
10
|
end
|
14
11
|
|
15
|
-
def self.load_with_warning(app)
|
16
|
-
begin
|
17
|
-
client = self.new(app)
|
18
|
-
client.load!
|
19
|
-
rescue => exception
|
20
|
-
puts "Warning: VaultConfig.load error --- ignore \n #{exception.message}"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
# https://learn.hashicorp.com/tutorials/vault/tokens
|
25
|
-
def self.renew(token = nil, increment = '12h')
|
26
|
-
uri = URI(File.join(ENV['VAULT_ADDR'], '/v1/auth/token/renew'))
|
27
|
-
header = {
|
28
|
-
'X-Vault-Token': ENV['VAULT_TOKEN'],
|
29
|
-
'content-type':'application/json'
|
30
|
-
}
|
31
|
-
response = Net::HTTP.post(uri, {
|
32
|
-
token: token || ENV['VAULT_TOKEN'],
|
33
|
-
increment: increment,
|
34
|
-
}.to_json, header)
|
35
|
-
JSON.parse(response.body)
|
36
|
-
end
|
37
|
-
|
38
12
|
def load!
|
39
|
-
|
40
|
-
ret['data']['data'].each do |k, v|
|
41
|
-
ENV[k] = v
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
private def get(uri, headers = {})
|
46
|
-
Net::HTTP.start(uri.host, uri.port) do |http|
|
47
|
-
request = Net::HTTP::Get.new uri, headers
|
48
|
-
response = http.request request
|
49
|
-
return JSON.parse(response.body)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
private def headers
|
54
|
-
@headers ||= {}
|
55
|
-
@headers['X-Vault-Token'] = ENV['VAULT_TOKEN']
|
56
|
-
@headers
|
57
|
-
end
|
58
|
-
|
59
|
-
private def client_uri
|
60
|
-
@client_uri ||= if @app.start_with?('/')
|
61
|
-
arr = @app.split('/')
|
62
|
-
arr[1] = "#{arr[1]}/data"
|
63
|
-
URI(File.join(ENV['VAULT_ADDR'], 'v1/', arr.join('/')))
|
64
|
-
else
|
65
|
-
URI(File.join(ENV['VAULT_ADDR'], 'v1/secret/data', @app))
|
13
|
+
net::http.start('vault.example.com', 8200) do |http|
|
66
14
|
end
|
67
15
|
end
|
68
16
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vault_config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.010'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- azhao
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: default safe in a easy way by using HashiCorp Vault
|
14
14
|
email: azhao.1981@gmail.com
|