From 791c4961f9ef8ea908cb3085566f28431b72dcb2 Mon Sep 17 00:00:00 2001 From: Jonathan Hooper Date: Tue, 1 Nov 2022 12:40:45 -0400 Subject: [PATCH 1/5] Remove a few references to selfies and face images We are no longer using selfies to proof since IAL2 strict is deprecated and being removed. This commit removes some of the tooling that enabled selfie upload. --- .../idv/steps/document_capture_step.rb | 6 +-- .../idv/capture_doc/document_capture.html.erb | 1 - .../idv/doc_auth/document_capture.html.erb | 1 - .../idv/shared/_document_capture.html.erb | 3 +- config/initializers/rack_timeout.rb | 1 - .../idv/capture_doc_controller_spec.rb | 1 - .../idv/doc_auth_controller_spec.rb | 1 - spec/forms/idv/api_image_upload_form_spec.rb | 1 - .../components/acuant-capture-spec.jsx | 4 +- ...ment_verification_and_selfie_costs_spec.rb | 54 +++++-------------- spec/support/acuant_fixtures.rb | 8 --- spec/support/doc_auth_image_fixtures.rb | 15 ------ .../shared/_document_capture.html.erb_spec.rb | 4 -- 13 files changed, 16 insertions(+), 84 deletions(-) diff --git a/app/services/idv/steps/document_capture_step.rb b/app/services/idv/steps/document_capture_step.rb index 12d34952bad..6768145303a 100644 --- a/app/services/idv/steps/document_capture_step.rb +++ b/app/services/idv/steps/document_capture_step.rb @@ -2,7 +2,7 @@ module Idv module Steps class DocumentCaptureStep < DocAuthBaseStep IMAGE_UPLOAD_PARAM_NAMES = %i[ - front_image back_image selfie_image + front_image back_image ].freeze def self.analytics_visited_event @@ -29,10 +29,6 @@ def extra_view_variables image_type: 'back', transaction_id: flow_session[:document_capture_session_uuid], ), - selfie_image_upload_url: url_builder.presigned_image_upload_url( - image_type: 'selfie', - transaction_id: flow_session[:document_capture_session_uuid], - ), }.merge(native_camera_ab_testing_variables) end diff --git a/app/views/idv/capture_doc/document_capture.html.erb b/app/views/idv/capture_doc/document_capture.html.erb index db1516635dc..164a21290d4 100644 --- a/app/views/idv/capture_doc/document_capture.html.erb +++ b/app/views/idv/capture_doc/document_capture.html.erb @@ -6,7 +6,6 @@ failure_to_proof_url: idv_capture_doc_return_to_sp_url, front_image_upload_url: front_image_upload_url, back_image_upload_url: back_image_upload_url, - selfie_image_upload_url: selfie_image_upload_url, native_camera_a_b_testing_enabled: native_camera_a_b_testing_enabled, native_camera_only: native_camera_only, ) %> diff --git a/app/views/idv/doc_auth/document_capture.html.erb b/app/views/idv/doc_auth/document_capture.html.erb index dc236b31cdf..c4978d730fe 100644 --- a/app/views/idv/doc_auth/document_capture.html.erb +++ b/app/views/idv/doc_auth/document_capture.html.erb @@ -6,7 +6,6 @@ failure_to_proof_url: idv_doc_auth_return_to_sp_url, front_image_upload_url: front_image_upload_url, back_image_upload_url: back_image_upload_url, - selfie_image_upload_url: selfie_image_upload_url, native_camera_a_b_testing_enabled: native_camera_a_b_testing_enabled, native_camera_only: native_camera_only, ) %> diff --git a/app/views/idv/shared/_document_capture.html.erb b/app/views/idv/shared/_document_capture.html.erb index ee44342cd85..422fad97332 100644 --- a/app/views/idv/shared/_document_capture.html.erb +++ b/app/views/idv/shared/_document_capture.html.erb @@ -6,7 +6,7 @@ <% end %> <% add_document_capture_image_urls_to_csp( request, - [front_image_upload_url, back_image_upload_url, selfie_image_upload_url], + [front_image_upload_url, back_image_upload_url], ) session_id = flow_session[:document_capture_session_uuid] %> @@ -39,7 +39,6 @@ failure_to_proof_url: failure_to_proof_url, front_image_upload_url: front_image_upload_url, back_image_upload_url: back_image_upload_url, - selfie_image_upload_url: selfie_image_upload_url, keep_alive_endpoint: sessions_keepalive_url, idv_in_person_url: Idv::InPersonConfig.enabled_for_issuer?(decorated_session.sp_issuer) ? idv_in_person_url : nil, security_and_privacy_how_it_works_url: MarketingSite.security_and_privacy_how_it_works_url, diff --git a/config/initializers/rack_timeout.rb b/config/initializers/rack_timeout.rb index 321e6739ea3..b745986354e 100644 --- a/config/initializers/rack_timeout.rb +++ b/config/initializers/rack_timeout.rb @@ -4,7 +4,6 @@ module Rack class Timeout @excludes = [ '/api/verify/images', - '/verify/doc_auth/selfie', '/verify/doc_auth/document_capture', '/verify/doc_auth/verify', '/verify/capture_doc/document_capture', diff --git a/spec/controllers/idv/capture_doc_controller_spec.rb b/spec/controllers/idv/capture_doc_controller_spec.rb index 5605101be7b..0faa9705452 100644 --- a/spec/controllers/idv/capture_doc_controller_spec.rb +++ b/spec/controllers/idv/capture_doc_controller_spec.rb @@ -97,7 +97,6 @@ locals: hash_including( :back_image_upload_url, :front_image_upload_url, - :selfie_image_upload_url, :flow_session, step_template: 'idv/capture_doc/document_capture', flow_namespace: 'idv', diff --git a/spec/controllers/idv/doc_auth_controller_spec.rb b/spec/controllers/idv/doc_auth_controller_spec.rb index eca13bfbc74..ff71cd4dfac 100644 --- a/spec/controllers/idv/doc_auth_controller_spec.rb +++ b/spec/controllers/idv/doc_auth_controller_spec.rb @@ -70,7 +70,6 @@ locals: hash_including( :back_image_upload_url, :front_image_upload_url, - :selfie_image_upload_url, :flow_session, step_template: 'idv/doc_auth/document_capture', flow_namespace: 'idv', diff --git a/spec/forms/idv/api_image_upload_form_spec.rb b/spec/forms/idv/api_image_upload_form_spec.rb index 01c046806a3..977b87fd53c 100644 --- a/spec/forms/idv/api_image_upload_form_spec.rb +++ b/spec/forms/idv/api_image_upload_form_spec.rb @@ -26,7 +26,6 @@ let(:back_image_metadata) do { width: 20, height: 20, mimeType: 'image/png', source: 'upload' }.to_json end - let(:selfie_image) { DocAuthImageFixtures.selfie_image_multipart } let!(:document_capture_session) { DocumentCaptureSession.create!(user: create(:user)) } let(:document_capture_session_uuid) { document_capture_session.uuid } let(:fake_analytics) { FakeAnalytics.new } diff --git a/spec/javascripts/packages/document-capture/components/acuant-capture-spec.jsx b/spec/javascripts/packages/document-capture/components/acuant-capture-spec.jsx index a2e62eeb21a..757150649d8 100644 --- a/spec/javascripts/packages/document-capture/components/acuant-capture-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/acuant-capture-spec.jsx @@ -495,11 +495,11 @@ describe('document-capture/components/acuant-capture', () => { }); it('renders retry button when value and capture supported', async () => { - const selfie = await getFixtureFile('doc_auth_images/selfie.jpg'); + const image = await getFixtureFile('doc_auth_images/id-front.jpg'); const { getByText } = render( - + , ); diff --git a/spec/services/db/add_document_verification_and_selfie_costs_spec.rb b/spec/services/db/add_document_verification_and_selfie_costs_spec.rb index c12217862aa..269bf7fd0f3 100644 --- a/spec/services/db/add_document_verification_and_selfie_costs_spec.rb +++ b/spec/services/db/add_document_verification_and_selfie_costs_spec.rb @@ -33,52 +33,22 @@ ) end - context 'with no selfie' do - it 'has costing for front, back, and result when billed' do - subject.call(billed_response) + it 'has costing for front, back, and result when billed' do + subject.call(billed_response) - expect(costing_for(:acuant_front_image)).to be_present - expect(costing_for(:acuant_back_image)).to be_present - expect(costing_for(:acuant_result)).to be_present - expect(costing_for(:acuant_selfie)).to be_nil - end - - it 'has costing for front, back, but not result when not billed' do - subject.call(not_billed_response) - - expect(costing_for(:acuant_front_image)).to be_present - expect(costing_for(:acuant_back_image)).to be_present - expect(costing_for(:acuant_result)).to be_nil - expect(costing_for(:acuant_selfie)).to be_nil - end + expect(costing_for(:acuant_front_image)).to be_present + expect(costing_for(:acuant_back_image)).to be_present + expect(costing_for(:acuant_result)).to be_present + expect(costing_for(:acuant_selfie)).to be_nil end - context 'with a selfie' do - it 'has costing for front, back, and result when is is billed' do - subject.call(billed_response) - - expect(costing_for(:acuant_front_image)).to be_present - expect(costing_for(:acuant_back_image)).to be_present - expect(costing_for(:acuant_result)).to be_present - end - - it 'has costing for front, back, but not result when it is not billed' do - subject.call(not_billed_response) - - expect(costing_for(:acuant_front_image)).to be_present - expect(costing_for(:acuant_back_image)).to be_present - expect(costing_for(:acuant_result)).to be_nil - end - - it 'does not fail when _count field is null' do - proofing_cost = ::ProofingCost.create_or_find_by(user_id: user_id) - proofing_cost.acuant_front_image_count = nil - proofing_cost.save - - subject.call(billed_response) + it 'has costing for front, back, but not result when not billed' do + subject.call(not_billed_response) - expect(proofing_cost.reload.acuant_front_image_count).to eq 1 - end + expect(costing_for(:acuant_front_image)).to be_present + expect(costing_for(:acuant_back_image)).to be_present + expect(costing_for(:acuant_result)).to be_nil + expect(costing_for(:acuant_selfie)).to be_nil end def costing_for(cost_type) diff --git a/spec/support/acuant_fixtures.rb b/spec/support/acuant_fixtures.rb index a3a9fb47616..42296da5b66 100644 --- a/spec/support/acuant_fixtures.rb +++ b/spec/support/acuant_fixtures.rb @@ -15,14 +15,6 @@ def self.get_results_response_expired load_response_fixture('get_results_response_expired.json') end - def self.get_face_image_response - load_response_fixture('get_face_image_response.jpg') - end - - def self.facial_match_response_success - load_response_fixture('facial_match_response_success.json') - end - def self.facial_match_response_failure load_response_fixture('facial_match_response_failure.json') end diff --git a/spec/support/doc_auth_image_fixtures.rb b/spec/support/doc_auth_image_fixtures.rb index 54692385525..80e1e005702 100644 --- a/spec/support/doc_auth_image_fixtures.rb +++ b/spec/support/doc_auth_image_fixtures.rb @@ -19,21 +19,6 @@ def self.document_back_image_multipart Rack::Test::UploadedFile.new(fixture_path('id-back.jpg'), 'image/jpeg') end - def self.document_face_image - load_image_data('id-face.jpg') - end - - def self.document_face_image_multipart - Rack::Test::UploadedFile.new(fixture_path('id-face.jpg'), 'image/jpeg') - end - - def self.selfie_image - load_image_data('selfie.jpg') - end - - def self.selfie_image_multipart - Rack::Test::UploadedFile.new(fixture_path('selfie.jpg'), 'image/jpeg') - end def self.error_yaml_multipart path = File.join( diff --git a/spec/views/idv/shared/_document_capture.html.erb_spec.rb b/spec/views/idv/shared/_document_capture.html.erb_spec.rb index 418248ca3cb..f8817ef4e6b 100644 --- a/spec/views/idv/shared/_document_capture.html.erb_spec.rb +++ b/spec/views/idv/shared/_document_capture.html.erb_spec.rb @@ -13,7 +13,6 @@ let(:in_person_proofing_enabled_issuer) { nil } let(:front_image_upload_url) { nil } let(:back_image_upload_url) { nil } - let(:selfie_image_upload_url) { nil } let(:native_camera_a_b_testing_enabled) { false } let(:native_camera_only) { false } @@ -47,7 +46,6 @@ failure_to_proof_url: failure_to_proof_url, front_image_upload_url: front_image_upload_url, back_image_upload_url: back_image_upload_url, - selfie_image_upload_url: selfie_image_upload_url, native_camera_a_b_testing_enabled: native_camera_a_b_testing_enabled, native_camera_only: native_camera_only, } @@ -71,7 +69,6 @@ let(:async_uploads_enabled) { true } let(:front_image_upload_url) { 'https://s3.example.com/bucket/a?X-Amz-Security-Token=UAOL2' } let(:back_image_upload_url) { 'https://s3.example.com/bucket/b?X-Amz-Security-Token=UAOL2' } - let(:selfie_image_upload_url) { 'https://s3.example.com/bucket/c?X-Amz-Security-Token=UAOL2' } it 'does modifies CSP connect_src headers to include upload urls' do render_partial @@ -79,7 +76,6 @@ connect_src = controller.request.content_security_policy.connect_src expect(connect_src).to include('https://s3.example.com/bucket/a') expect(connect_src).to include('https://s3.example.com/bucket/b') - expect(connect_src).to include('https://s3.example.com/bucket/c') end end end From 5b457e2a255f509f0a0e9cf52f82e5c33b7db637 Mon Sep 17 00:00:00 2001 From: Jonathan Hooper Date: Tue, 1 Nov 2022 12:41:50 -0400 Subject: [PATCH 2/5] gitlab bump From ab7fcf03210cd19f6d82b39cc0a6fdfc2e451de5 Mon Sep 17 00:00:00 2001 From: Jonathan Hooper Date: Tue, 1 Nov 2022 12:41:59 -0400 Subject: [PATCH 3/5] [skip changelog] From 87872945ebbf84c0e5d078d73df6dcea3c91c5f2 Mon Sep 17 00:00:00 2001 From: Jonathan Hooper Date: Tue, 1 Nov 2022 13:26:38 -0400 Subject: [PATCH 4/5] delint --- spec/support/doc_auth_image_fixtures.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/support/doc_auth_image_fixtures.rb b/spec/support/doc_auth_image_fixtures.rb index 80e1e005702..a1fe793ae37 100644 --- a/spec/support/doc_auth_image_fixtures.rb +++ b/spec/support/doc_auth_image_fixtures.rb @@ -19,7 +19,6 @@ def self.document_back_image_multipart Rack::Test::UploadedFile.new(fixture_path('id-back.jpg'), 'image/jpeg') end - def self.error_yaml_multipart path = File.join( File.dirname(__FILE__), From 51c3a547c94580efb383e099476a62c47906f522 Mon Sep 17 00:00:00 2001 From: Jonathan Hooper Date: Tue, 1 Nov 2022 14:46:45 -0400 Subject: [PATCH 5/5] actually save to remove more --- app/controllers/api/verify/document_capture_controller.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/controllers/api/verify/document_capture_controller.rb b/app/controllers/api/verify/document_capture_controller.rb index b1fa88429cf..1badfde7d0a 100644 --- a/app/controllers/api/verify/document_capture_controller.rb +++ b/app/controllers/api/verify/document_capture_controller.rb @@ -51,10 +51,8 @@ def document_attributes :encryption_key, :front_image_iv, :back_image_iv, - :selfie_image_iv, :front_image_url, :back_image_url, - :selfie_image_url, ).to_h end @@ -63,10 +61,8 @@ def verify_params :encryption_key, :front_image_iv, :back_image_iv, - :selfie_image_iv, :front_image_url, :back_image_url, - :selfie_image_url, :document_capture_session_uuid, :flow_path, )