onboardbase 1.2.0 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/onboardbase/version.rb +1 -1
- data/lib/onboardbase.rb +26 -18
- 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: 4dfaf721519fe576a033bfc35aa9881fb484c259f633bfd993cf0778fbe7905a
|
4
|
+
data.tar.gz: 26d16c10223a217d1bdad94113eb216da4b93d8f0cb2d0182e720841d981128c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 928e64878264216edc2bd163138ec0f91723546e1a56bafa0970ec8c97dff21e310500bfdbbf35cbbdfdd733d73b60ae179c37868ef5d9c1e095e37845832232
|
7
|
+
data.tar.gz: 17a4890a8c3191c4d1a876ebf55c93d5123e13548e904bd1fc80752b8079cc2a768b692dea96ca096b748334433036ee9c763250723c6f67620ae2d5f8ff6c74
|
data/lib/onboardbase/version.rb
CHANGED
data/lib/onboardbase.rb
CHANGED
@@ -118,10 +118,11 @@ module Onboardbase
|
|
118
118
|
list {
|
119
119
|
id
|
120
120
|
title
|
121
|
-
|
121
|
+
publicSecrets(filterOptions: { environmentTitle: "#{self .configuration['setup']['environment']}" }, take: 1000, skip: 0) {
|
122
122
|
list {
|
123
123
|
id
|
124
124
|
key
|
125
|
+
value
|
125
126
|
title
|
126
127
|
}
|
127
128
|
}
|
@@ -149,8 +150,8 @@ module Onboardbase
|
|
149
150
|
|
150
151
|
|
151
152
|
def getSecrets?(project)
|
152
|
-
env = project["
|
153
|
-
return
|
153
|
+
env = project["publicSecrets"]["list"]
|
154
|
+
return env if env != nil
|
154
155
|
false
|
155
156
|
end
|
156
157
|
|
@@ -166,6 +167,7 @@ module Onboardbase
|
|
166
167
|
end
|
167
168
|
|
168
169
|
def aes256_cbc_decrypt(key, data, iv)
|
170
|
+
# p key
|
169
171
|
key = Digest::SHA256.digest(key) if(key.kind_of?(String) && 32 != key.bytesize)
|
170
172
|
iv = Digest::MD5.digest(iv) if(iv.kind_of?(String) && 16 != iv.bytesize)
|
171
173
|
aes = OpenSSL::Cipher.new('AES-256-CBC')
|
@@ -175,21 +177,27 @@ module Onboardbase
|
|
175
177
|
aes.update(data) + aes.final
|
176
178
|
end
|
177
179
|
|
180
|
+
def decodeCipher(cipher, secretPhrase)
|
181
|
+
secret = Base64.decode64(cipher)
|
182
|
+
unless secret[0..7] == 'Salted__'
|
183
|
+
puts "Invalid encrypted data"
|
184
|
+
exit(1)
|
185
|
+
end
|
186
|
+
salt = secret[8..15]
|
187
|
+
key_iv = bytes_to_key(secretPhrase, salt, 48)
|
188
|
+
key = key_iv[0..31]
|
189
|
+
iv = key_iv[32..key_iv.length-1]
|
190
|
+
aes256_cbc_decrypt(key, secret[16..secret.length-1], iv)
|
191
|
+
end
|
178
192
|
def parseSecrets(secrets)
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
key = key_iv[0..31]
|
188
|
-
iv = key_iv[32..key_iv.length-1]
|
189
|
-
parsedSecret = aes256_cbc_decrypt(key, secret[16..secret.length-1], iv)
|
190
|
-
secrets[i] = JSON.parse(parsedSecret)
|
191
|
-
end
|
192
|
-
secrets
|
193
|
+
passcode = self.configuration["passcode"]
|
194
|
+
secrets.each_with_index do |secret, i|
|
195
|
+
|
196
|
+
secret["key"] = self.decodeCipher(secret["key"], passcode)
|
197
|
+
secret["value"] = self.decodeCipher(secret["value"], passcode)
|
198
|
+
secrets[i] = secret
|
199
|
+
end
|
200
|
+
secrets
|
193
201
|
end
|
194
202
|
|
195
203
|
def setEnv(secretsHash)
|
@@ -262,7 +270,7 @@ module Onboardbase
|
|
262
270
|
|
263
271
|
def loadAsCredentials
|
264
272
|
# Traditionally fetch secrets into ENV
|
265
|
-
secrets = self.loadSecrets
|
273
|
+
secrets = self.overrideWithLocal(self.loadSecrets)
|
266
274
|
# Load rails encryption module
|
267
275
|
require "active_support/encrypted_configuration"
|
268
276
|
credentials = ActiveSupport::EncryptedConfiguration.new(
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onboardbase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Onboardbase
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|