env_configuration 0.1.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.env +5 -5
- data/.gitignore +1 -1
- data/Gemfile.lock +104 -104
- data/README.md +268 -289
- data/env_configuration.gemspec +47 -47
- data/lib/env_configuration.rb +27 -27
- data/lib/env_configuration/adapter/aws_ssm_parameter_store_adapter.rb +88 -91
- data/lib/env_configuration/adapter/base.rb +14 -14
- data/lib/env_configuration/adapter/dot_env_adapter.rb +25 -25
- data/lib/env_configuration/adapter/yaml_adapter.rb +34 -34
- data/lib/env_configuration/aws_ssm_parameter_store_writer.rb +43 -48
- data/lib/env_configuration/configuration.rb +41 -41
- data/lib/env_configuration/configurator.rb +36 -36
- data/lib/env_configuration/version.rb +3 -3
- metadata +2 -2
@@ -1,48 +1,43 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
def
|
11
|
-
@
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
def
|
20
|
-
configs
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
Rails.logger.info { "setting: #{options}" }
|
45
|
-
response
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
1
|
+
module EnvConfiguration
|
2
|
+
class AwsSsmParameterStoreWriter
|
3
|
+
attr_accessor :env_name #allow to reset env but not region
|
4
|
+
|
5
|
+
def initialize(env_name, options = {})
|
6
|
+
@env_name = env_name
|
7
|
+
@options = options
|
8
|
+
end
|
9
|
+
|
10
|
+
def client
|
11
|
+
@client ||= Aws::SSM::Client.new(@options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def put_configs_from_yaml_file(config_yml)
|
15
|
+
configs = YAML.load_file(config_yml)[@env_name]
|
16
|
+
put_configs(configs)
|
17
|
+
end
|
18
|
+
|
19
|
+
def put_configs(configs)
|
20
|
+
configs.each do |key, value|
|
21
|
+
put_config(key, value)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def put_config(name, value, type='String')
|
26
|
+
Rails.logger.info { "preparing: #{name}=#{value}" }
|
27
|
+
|
28
|
+
param_name = "/#{@env_name}/#{name}"
|
29
|
+
|
30
|
+
options = {
|
31
|
+
name: param_name, # required
|
32
|
+
value: value, # required
|
33
|
+
type: type, # required, accepts String, StringList, SecureString
|
34
|
+
overwrite: true,
|
35
|
+
tier: "Standard", # accepts Standard, Advanced
|
36
|
+
}
|
37
|
+
response = client.put_parameter(options)
|
38
|
+
|
39
|
+
Rails.logger.info { "setting: #{options}" }
|
40
|
+
response
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -1,42 +1,42 @@
|
|
1
|
-
module EnvConfiguration
|
2
|
-
|
3
|
-
class Configuration
|
4
|
-
attr_accessor :dot_env, :aws_ssm_parameter_store, :yaml
|
5
|
-
|
6
|
-
# ------ :dot_env ---------
|
7
|
-
# :dot_env_file
|
8
|
-
|
9
|
-
def dot_env_file
|
10
|
-
dot_env && dot_env[:dot_env_file]
|
11
|
-
end
|
12
|
-
|
13
|
-
# ------ :yaml ---------
|
14
|
-
# :yaml_file, :section
|
15
|
-
def yaml_file
|
16
|
-
yaml && yaml[:yaml_file]
|
17
|
-
end
|
18
|
-
|
19
|
-
def yaml_section
|
20
|
-
yaml && yaml[:section]
|
21
|
-
end
|
22
|
-
|
23
|
-
# ------ :aws_ssm_paramer_store ---------
|
24
|
-
# :access_key_id, :secret_access_key, :region, :path
|
25
|
-
def aws_access_key_id
|
26
|
-
aws_ssm_parameter_store && aws_ssm_parameter_store[:access_key_id]
|
27
|
-
end
|
28
|
-
|
29
|
-
def aws_secret_access_key
|
30
|
-
aws_ssm_parameter_store && aws_ssm_parameter_store[:secret_access_key]
|
31
|
-
end
|
32
|
-
|
33
|
-
def aws_region
|
34
|
-
aws_ssm_parameter_store && aws_ssm_parameter_store[:region]
|
35
|
-
end
|
36
|
-
|
37
|
-
def aws_path
|
38
|
-
aws_ssm_parameter_store && aws_ssm_parameter_store[:path]
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
1
|
+
module EnvConfiguration
|
2
|
+
|
3
|
+
class Configuration
|
4
|
+
attr_accessor :dot_env, :aws_ssm_parameter_store, :yaml
|
5
|
+
|
6
|
+
# ------ :dot_env ---------
|
7
|
+
# :dot_env_file
|
8
|
+
|
9
|
+
def dot_env_file
|
10
|
+
dot_env && dot_env[:dot_env_file]
|
11
|
+
end
|
12
|
+
|
13
|
+
# ------ :yaml ---------
|
14
|
+
# :yaml_file, :section
|
15
|
+
def yaml_file
|
16
|
+
yaml && yaml[:yaml_file]
|
17
|
+
end
|
18
|
+
|
19
|
+
def yaml_section
|
20
|
+
yaml && yaml[:section]
|
21
|
+
end
|
22
|
+
|
23
|
+
# ------ :aws_ssm_paramer_store ---------
|
24
|
+
# :access_key_id, :secret_access_key, :region, :path
|
25
|
+
def aws_access_key_id
|
26
|
+
aws_ssm_parameter_store && aws_ssm_parameter_store[:access_key_id]
|
27
|
+
end
|
28
|
+
|
29
|
+
def aws_secret_access_key
|
30
|
+
aws_ssm_parameter_store && aws_ssm_parameter_store[:secret_access_key]
|
31
|
+
end
|
32
|
+
|
33
|
+
def aws_region
|
34
|
+
aws_ssm_parameter_store && aws_ssm_parameter_store[:region]
|
35
|
+
end
|
36
|
+
|
37
|
+
def aws_path
|
38
|
+
aws_ssm_parameter_store && aws_ssm_parameter_store[:path]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
42
|
end
|
@@ -1,36 +1,36 @@
|
|
1
|
-
module EnvConfiguration
|
2
|
-
|
3
|
-
class Configurator
|
4
|
-
def self.load(adapter_name, options={})
|
5
|
-
if adapter_name.class == Symbol
|
6
|
-
loader = self.adapter(adapter_name, options)
|
7
|
-
loader.load
|
8
|
-
else
|
9
|
-
adapter_name.load
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.adapter(adapter_name, options={})
|
14
|
-
case adapter_name
|
15
|
-
when :dot_env
|
16
|
-
require "env_configuration/adapter/base"
|
17
|
-
require "env_configuration/adapter/dot_env_adapter"
|
18
|
-
Adapter::DotEnvAdapter.new(options)
|
19
|
-
when :aws_ssm_parameter_store
|
20
|
-
require 'aws-sdk-ssm'
|
21
|
-
require "env_configuration/adapter/base"
|
22
|
-
require "env_configuration/adapter/aws_ssm_parameter_store_adapter"
|
23
|
-
require "env_configuration/aws_ssm_parameter_store_writer"
|
24
|
-
Adapter::AwsSsmParameterStoreAdapter.new(options)
|
25
|
-
when :yaml
|
26
|
-
require "env_configuration/adapter/base"
|
27
|
-
require "env_configuration/adapter/yaml_adapter"
|
28
|
-
Adapter::YamlAdapter.new(options)
|
29
|
-
else
|
30
|
-
existings = [:dot_env, :yaml, :aws_ssm_parameter_store]
|
31
|
-
raise "adapter :#{adapter_name} must be one of the following #{existings}"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
1
|
+
module EnvConfiguration
|
2
|
+
|
3
|
+
class Configurator
|
4
|
+
def self.load(adapter_name, options={})
|
5
|
+
if adapter_name.class == Symbol
|
6
|
+
loader = self.adapter(adapter_name, options)
|
7
|
+
loader.load
|
8
|
+
else
|
9
|
+
adapter_name.load
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.adapter(adapter_name, options={})
|
14
|
+
case adapter_name
|
15
|
+
when :dot_env
|
16
|
+
require "env_configuration/adapter/base"
|
17
|
+
require "env_configuration/adapter/dot_env_adapter"
|
18
|
+
Adapter::DotEnvAdapter.new(options)
|
19
|
+
when :aws_ssm_parameter_store
|
20
|
+
require 'aws-sdk-ssm'
|
21
|
+
require "env_configuration/adapter/base"
|
22
|
+
require "env_configuration/adapter/aws_ssm_parameter_store_adapter"
|
23
|
+
require "env_configuration/aws_ssm_parameter_store_writer"
|
24
|
+
Adapter::AwsSsmParameterStoreAdapter.new(options)
|
25
|
+
when :yaml
|
26
|
+
require "env_configuration/adapter/base"
|
27
|
+
require "env_configuration/adapter/yaml_adapter"
|
28
|
+
Adapter::YamlAdapter.new(options)
|
29
|
+
else
|
30
|
+
existings = [:dot_env, :yaml, :aws_ssm_parameter_store]
|
31
|
+
raise "adapter :#{adapter_name} must be one of the following #{existings}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
@@ -1,3 +1,3 @@
|
|
1
|
-
module EnvConfiguration
|
2
|
-
VERSION = "0.
|
3
|
-
end
|
1
|
+
module EnvConfiguration
|
2
|
+
VERSION = "1.0.0"
|
3
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: env_configuration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Channa Ly
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|