sekreto 0.1.3 → 0.2.0
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.
- checksums.yaml +4 -4
- data/lib/sekreto.rb +29 -1
- data/lib/sekreto/config.rb +7 -0
- data/lib/sekreto/railtie.rb +5 -1
- data/lib/sekreto/version.rb +1 -1
- metadata +18 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 740dfb4e957a3391c16a07fef0e8b2b4a5894c3f024c5ebed9479b04cc07b0a1
|
4
|
+
data.tar.gz: 12762eb844417916b3ddd203cd3dc1a890b0e66a263a9fd6bf96602c80d3f2be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc14a8a054c3d85f7dbe55da4200e1cd675f6dd98f9a3e207ab78f2d84c31bfd8b473bbdddf233afa22ec51765d5855889c83a83f92b946154659405a72bc7f7
|
7
|
+
data.tar.gz: 88f2691b301e269b1aba1c410d06f40940cd18e08ea25fc2584670ff80dd81c3500317cd435d7f7d3ca46c6555a6d2e621f9139fc680f6cb638f81e1867b8f91
|
data/lib/sekreto.rb
CHANGED
@@ -6,13 +6,30 @@ require 'sekreto/config'
|
|
6
6
|
|
7
7
|
require 'sekreto/railtie' if defined?(Rails)
|
8
8
|
|
9
|
-
# Sekreto
|
9
|
+
# Sekreto allows you to interact with the AWS Secrets Manager to
|
10
|
+
# retrieve your secrets from Ruby. This exposes a thin wrapper around
|
11
|
+
# the AWS SecretsManager SDK.
|
10
12
|
module Sekreto
|
11
13
|
class << self
|
14
|
+
##
|
15
|
+
# Set up the Sekreto gem configuration
|
16
|
+
#
|
17
|
+
# @yieldreturn [Sekreto::Config]
|
18
|
+
#
|
19
|
+
# @example Configuring Sekreto
|
20
|
+
# Sekreto.setup do |setup|
|
21
|
+
# setup.prefix = 'app-prefix'
|
22
|
+
# end
|
12
23
|
def setup
|
13
24
|
yield config if block_given?
|
14
25
|
end
|
15
26
|
|
27
|
+
##
|
28
|
+
#
|
29
|
+
# Get the value given a secret
|
30
|
+
#
|
31
|
+
# @param secret_id [String] - The secret ID to get the value for
|
32
|
+
# @return [String] - The value of the stored secret
|
16
33
|
def get_value(secret_id)
|
17
34
|
fail 'Not allowed env' unless config.is_allowed_env.call
|
18
35
|
response = secrets_manager.get_secret_value(secret_id: secret_name(secret_id))
|
@@ -22,11 +39,22 @@ module Sekreto
|
|
22
39
|
config.fallback_lookup.call(secret_id)
|
23
40
|
end
|
24
41
|
|
42
|
+
##
|
43
|
+
#
|
44
|
+
# Get the JSON value of a secret
|
45
|
+
#
|
46
|
+
# @param secret_id [String] - The secret ID to get the value for
|
47
|
+
# @return [Hash] - The parsed JSON value of the secret
|
25
48
|
def get_json_value(secret_id)
|
26
49
|
response = get_value(secret_id)
|
27
50
|
MultiJson.load(response)
|
28
51
|
end
|
29
52
|
|
53
|
+
##
|
54
|
+
#
|
55
|
+
# Get the configuration for Sekreto
|
56
|
+
#
|
57
|
+
# @return [Sekreto::Config] - The configuration
|
30
58
|
def config
|
31
59
|
@config ||= Config.new
|
32
60
|
end
|
data/lib/sekreto/config.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'logger'
|
2
2
|
|
3
3
|
module Sekreto
|
4
|
+
##
|
5
|
+
# Config class for setting up Sekreto for usage
|
4
6
|
class Config
|
5
7
|
attr_accessor :prefix
|
6
8
|
attr_accessor :is_allowed_env
|
@@ -8,6 +10,11 @@ module Sekreto
|
|
8
10
|
attr_accessor :secrets_manager
|
9
11
|
attr_accessor :logger
|
10
12
|
|
13
|
+
##
|
14
|
+
#
|
15
|
+
# Initialize a new Config
|
16
|
+
#
|
17
|
+
# @return [Sekreto::Config]
|
11
18
|
def initialize
|
12
19
|
@prefix = 'secrets'
|
13
20
|
@is_allowed_env = -> { true }
|
data/lib/sekreto/railtie.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
module Sekreto
|
2
2
|
# Rails Railtie to set up the Sekreto configuration
|
3
|
+
#
|
4
|
+
# Defaults the secrets Manager to Aws::SecretsManager::Client.new
|
5
|
+
# Defaults the prefix to Rails app name and Rails.env e.g. foo-staging
|
6
|
+
# Defaults allowed envs to check Rails.env is production or staging
|
3
7
|
class Railtie < ::Rails::Railtie
|
4
|
-
config.
|
8
|
+
config.before_initialize do
|
5
9
|
app_name = ::Rails.application.class.to_s.split('::').first.downcase
|
6
10
|
|
7
11
|
Sekreto.setup do |setup|
|
data/lib/sekreto/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sekreto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Autolist Engineering
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-secretsmanager
|
@@ -38,26 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rails
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '4.1'
|
48
|
-
- - "<"
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: '5.3'
|
51
|
-
type: :runtime
|
52
|
-
prerelease: false
|
53
|
-
version_requirements: !ruby/object:Gem::Requirement
|
54
|
-
requirements:
|
55
|
-
- - ">="
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '4.1'
|
58
|
-
- - "<"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '5.3'
|
61
41
|
- !ruby/object:Gem::Dependency
|
62
42
|
name: autocop
|
63
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,7 +136,21 @@ dependencies:
|
|
156
136
|
- - "~>"
|
157
137
|
- !ruby/object:Gem::Version
|
158
138
|
version: '1.0'
|
159
|
-
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: yard
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 0.9.11
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.9.11
|
153
|
+
description: Manage AWS Secrets from Ruby
|
160
154
|
email:
|
161
155
|
- dev@autolist.com
|
162
156
|
executables: []
|
@@ -193,5 +187,5 @@ rubyforge_project:
|
|
193
187
|
rubygems_version: 2.7.3
|
194
188
|
signing_key:
|
195
189
|
specification_version: 4
|
196
|
-
summary: AwsSecretsManager for
|
190
|
+
summary: AwsSecretsManager for Ruby
|
197
191
|
test_files: []
|