class StackMaster::ParameterResolvers::Ejson
Constants
- SecretNotFound
Public Class Methods
new(config, stack_definition)
click to toggle source
# File lib/stack_master/parameter_resolvers/ejson.rb, line 8 def initialize(config, stack_definition) @config = config @stack_definition = stack_definition @decrypted_ejson_files = {} end
Public Instance Methods
resolve(secret_key)
click to toggle source
# File lib/stack_master/parameter_resolvers/ejson.rb, line 14 def resolve(secret_key) validate_ejson_file_specified secrets = decrypt_ejson_file secrets.fetch(secret_key.to_sym) do raise SecretNotFound, "Unable to find key #{secret_key} in file #{@stack_definition.ejson_file}" end end
Private Instance Methods
credentials_key()
click to toggle source
# File lib/stack_master/parameter_resolvers/ejson.rb, line 51 def credentials_key Aws.config[:credentials]&.object_id end
decrypt_ejson_file()
click to toggle source
# File lib/stack_master/parameter_resolvers/ejson.rb, line 30 def decrypt_ejson_file ejson_file_key = credentials_key @decrypted_ejson_files.fetch(ejson_file_key) do @decrypted_ejson_files[ejson_file_key] = EJSONWrapper.decrypt(ejson_file_path, use_kms: @stack_definition.ejson_file_kms, region: ejson_file_region) end end
ejson_file_path()
click to toggle source
# File lib/stack_master/parameter_resolvers/ejson.rb, line 43 def ejson_file_path @ejson_file_path ||= File.join(@config.base_dir, secret_path_relative_to_base) end
ejson_file_region()
click to toggle source
# File lib/stack_master/parameter_resolvers/ejson.rb, line 39 def ejson_file_region @stack_definition.ejson_file_region || StackMaster.cloud_formation_driver.region end
secret_path_relative_to_base()
click to toggle source
# File lib/stack_master/parameter_resolvers/ejson.rb, line 47 def secret_path_relative_to_base @secret_path_relative_to_base ||= File.join('secrets', @stack_definition.ejson_file) end
validate_ejson_file_specified()
click to toggle source
# File lib/stack_master/parameter_resolvers/ejson.rb, line 24 def validate_ejson_file_specified if @stack_definition.ejson_file.nil? raise ArgumentError, "No ejson_file defined for stack definition #{@stack_definition.stack_name} in #{@stack_definition.region}" end end