diff --git a/app/services/idv/vendor.rb b/app/services/idv/vendor.rb index d367357f249..3b1deb41a55 100644 --- a/app/services/idv/vendor.rb +++ b/app/services/idv/vendor.rb @@ -16,5 +16,19 @@ def pick def available @_vendors ||= Figaro.env.proofing_vendors.split(/\W+/).map(&:to_sym) end + + def upcase_env_vars + available.each do |vendor| + upcase_env_var(vendor) + end + end + + private + + def upcase_env_var(vendor) + ENV.keys.grep(/^#{vendor}_/).each do |env_var_name| + ENV[env_var_name.upcase] = ENV[env_var_name] + end + end end end diff --git a/config/application.yml.example b/config/application.yml.example index 02fa68df75c..3ed40ee4c52 100644 --- a/config/application.yml.example +++ b/config/application.yml.example @@ -58,6 +58,11 @@ development: dashboard_url: 'http://localhost:3001/api/service_providers' domain_name: 'localhost:3000' enable_test_routes: 'true' + equifax_avs_username: 'sekret' + equifax_eid_username: 'sekret' + equifax_endpoint: 'sekret' + equifax_password: 'sekret' + equifax_phone_username: 'sekret' hmac_fingerprinter_key: 'a2c813d4dca919340866ba58063e4072adc459b767a74cf2666d5c1eef3861db26708e7437abde1755eb24f4034386b0fea1850a1cb7e56bff8fae3cc6ade96c' hmac_fingerprinter_key_queue: '["old-key-one", "old-key-two"]' idp_sso_target_url: 'https://upaya-mockidp.18f.gov/saml/auth' @@ -100,6 +105,11 @@ production: aws_region: 'change-me' domain_name: 'example.com' enable_test_routes: 'false' + equifax_avs_username: 'sekret' + equifax_eid_username: 'sekret' + equifax_endpoint: 'sekret' + equifax_password: 'sekret' + equifax_phone_username: 'sekret' google_analytics_key: 'UA-XXXXXXXXX-YY' hmac_fingerprinter_key: 'generate via `rake secret`' hmac_fingerprinter_key_queue: '["old-key-one", "old-key-two"]' @@ -144,6 +154,11 @@ test: domain_name: 'www.example.com' ducksboard_uid: '8VEQre2c8b62mQV0sa' enable_test_routes: 'true' + equifax_avs_username: 'sekret' + equifax_eid_username: 'sekret' + equifax_endpoint: 'sekret' + equifax_password: 'sekret' + equifax_phone_username: 'sekret' hmac_fingerprinter_key: 'a2c813d4dca919340866ba58063e4072adc459b767a74cf2666d5c1eef3861db26708e7437abde1755eb24f4034386b0fea1850a1cb7e56bff8fae3cc6ade96c' hmac_fingerprinter_key_queue: '["old-key-one", "old-key-two"]' idp_sso_target_url: 'http://identityprovider.example.com/saml/auth' diff --git a/config/initializers/proofer.rb b/config/initializers/proofer.rb new file mode 100644 index 00000000000..466f9c78b67 --- /dev/null +++ b/config/initializers/proofer.rb @@ -0,0 +1,2 @@ +# gems require UPPER case ENV variables so translate +Idv::Vendor.new.upcase_env_vars diff --git a/spec/services/idv/vendor_spec.rb b/spec/services/idv/vendor_spec.rb index 30a4939f632..d98d8d59a8e 100644 --- a/spec/services/idv/vendor_spec.rb +++ b/spec/services/idv/vendor_spec.rb @@ -30,4 +30,20 @@ expect(subject.available).to eq [:foo, :bar] end end + + describe '#update_env_vars' do + before do + allow(Figaro.env).to receive(:proofing_vendors).and_return('foo') + stub_const 'ENV', ENV.to_h.merge('foo_thing' => 'some value') + end + + it 'sets UPPER case equivalue of existing ENV var' do + expect(ENV['FOO_THING']).to eq nil + + subject.upcase_env_vars + + expect(ENV['foo_thing']).to eq 'some value' + expect(ENV['FOO_THING']).to eq 'some value' + end + end end