Sha256: 31849396817f8213dfc3a39999d72f924f4174b7f7f78c3de276586577c4fef2
Contents?: true
Size: 1.33 KB
Versions: 4
Compression:
Stored size: 1.33 KB
Contents
class Jets::Dotenv class Var extend Memoist include Jets::AwsServices include Jets::Util::Logging attr_reader :raw_key, :raw_value def initialize(raw_key, raw_value) @raw_key, @raw_value = raw_key, raw_value end def name @raw_key end def value ssm? ? ssm_value : @raw_value end memoize :value SSM_VARIABLE_REGEXP = /^SSM:(.*)/i def ssm_name if @raw_value == "SSM" # "/#{Jets.project.name}/#{Jets.env}/#{@raw_key}" Convention.new.ssm_name(@raw_key) else value = @raw_value.sub(/SSM:/i, "") if value.start_with?("/") value else # "/#{Jets.project.name}/#{Jets.env}/#{value}" Convention.new.ssm_name(value) end end end def ssm_value return "fake-ssm-value" if ENV["JETS_NO_INTERNET"] name = ssm_name resp = ssm.get_parameter(name: name, with_decryption: true) resp.parameter.value rescue Aws::SSM::Errors::ParameterNotFound @ssm_missing = true nil rescue Aws::SSM::Errors::ValidationException puts "ERROR: Invalid SSM parameter name: #{name.inspect}".color(:red) raise end def ssm_missing? value # trigger memoization !!@ssm_missing end def ssm? @raw_value&.start_with?("SSM") end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
jets-6.0.5 | lib/jets/dotenv/var.rb |
jets-6.0.4 | lib/jets/dotenv/var.rb |
jets-6.0.3 | lib/jets/dotenv/var.rb |
jets-6.0.2 | lib/jets/dotenv/var.rb |