env_configuration 0.1.1 → 1.0.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/.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
|