Skip to content
This repository is currently being migrated. It's locked while the migration is in progress.

Commit 7a4bc67

Browse files
authored
Merge branch 'master' into mhv/add-interpretation-to-mobile-response
2 parents 1e8190f + 58989d3 commit 7a4bc67

115 files changed

Lines changed: 2196 additions & 1573 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ on:
33
workflow_dispatch:
44
workflow_run:
55
workflows: ["Code Checks"]
6-
branches: [master, production-bypass]
6+
branches: [master]
77
types: [completed]
88
permissions:
99
id-token: write
@@ -75,27 +75,14 @@ jobs:
7575
${{ steps.ecr-login.outputs.registry }}/${{ secrets.ECR_REPOSITORY }}:${{ github.event.workflow_run.head_commit.id }}
7676
cache-from: type=registry,ref=$ECR_REGISTRY/$ECR_REPOSITORY
7777
cache-to: type=inline
78-
deploy_dev_staging:
78+
deploy:
7979
needs: build_and_push
8080
if: ${{ github.event.workflow_run.head_branch == 'master' && github.event.workflow_run.conclusion == 'success' }}
8181
uses: department-of-veterans-affairs/vets-api/.github/workflows/deploy-template.yml@master
8282
with:
8383
ecr_repository: "vets-api"
8484
manifests_directory: "vets-api"
85-
auto_deploy_envs: "dev staging"
86-
commit_sha: ${{ github.event.workflow_run.head_commit.id }}
87-
secrets:
88-
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
89-
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
90-
91-
deploy_prod_sandbox:
92-
needs: build_and_push
93-
if: ${{ github.event.workflow_run.head_branch == 'production-bypass' && github.event.workflow_run.conclusion == 'success' }}
94-
uses: department-of-veterans-affairs/vets-api/.github/workflows/deploy-template.yml@master
95-
with:
96-
ecr_repository: "vets-api"
97-
manifests_directory: "vets-api"
98-
auto_deploy_envs: "prod sandbox"
85+
auto_deploy_envs: "dev staging prod sandbox"
9986
commit_sha: ${{ github.event.workflow_run.head_commit.id }}
10087
secrets:
10188
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}

.github/workflows/code_checks.yml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Code Checks
22
on:
33
push:
4-
branches: [master, production-bypass]
4+
branches: [master]
55
pull_request:
66
types: [opened, reopened, synchronize]
77
permissions:
@@ -73,7 +73,6 @@ jobs:
7373
if: |
7474
(
7575
github.ref == 'refs/heads/master' ||
76-
github.ref == 'refs/heads/production-bypass' ||
7776
(github.event_name == 'pull_request' && steps.gemfile_changes.outputs.any_changed == 'true')
7877
)
7978
continue-on-error: true
@@ -119,7 +118,6 @@ jobs:
119118
steps.bundle_audit.outcome == 'failure' &&
120119
(
121120
github.ref == 'refs/heads/master' ||
122-
github.ref == 'refs/heads/production-bypass' ||
123121
(github.event_name == 'pull_request' && steps.gemfile_changes.outputs.any_changed == 'true')
124122
)
125123
uses: ./.github/actions/vsp-github-actions/slack-socket
@@ -300,7 +298,7 @@ jobs:
300298
run: zstd -T0 /tmp/vets-api.tar -o /tmp/vets-api.tar.zst
301299

302300
- name: Save Docker image to cache
303-
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
301+
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
304302
with:
305303
path: /tmp/vets-api.tar.zst
306304
key: docker-image-${{ github.sha }}
@@ -356,7 +354,7 @@ jobs:
356354
mask-password: true
357355

358356
- name: Restore Docker image from cache
359-
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
357+
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
360358
with:
361359
path: /tmp/vets-api.tar.zst
362360
key: docker-image-${{ github.sha }}
@@ -378,7 +376,7 @@ jobs:
378376
# If no cache exists at all (e.g. first-ever run), parallel_test uses
379377
# filesize grouping automatically.
380378
- name: Restore runtime log from cache
381-
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
379+
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
382380
with:
383381
path: tmp/parallel_runtime_rspec.log
384382
key: parallel-runtime-log-${{ github.ref }}-${{ github.run_id }}
@@ -541,7 +539,7 @@ jobs:
541539
542540
- name: Save runtime log to cache
543541
if: always()
544-
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
542+
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
545543
with:
546544
path: tmp/parallel_runtime_rspec.log
547545
key: parallel-runtime-log-${{ github.ref }}-${{ github.run_id }}

.github/workflows/deploy-template.yml

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
echo "environments=${{ env.environments }}" >> $GITHUB_OUTPUT
4040
release:
4141
needs: [prepare-values]
42-
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/production-bypass'
42+
if: github.ref == 'refs/heads/master'
4343
runs-on: ubuntu-latest
4444
steps:
4545
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
@@ -76,24 +76,14 @@ jobs:
7676
path: vsp-infra-application-manifests
7777
ref: refs/heads/main
7878

79-
- name: Determine environments to update
80-
id: determine-envs
81-
run: |
82-
if [[ "${{ github.ref }}" == "refs/heads/master" ]]; then
83-
echo "environments=dev staging" >> $GITHUB_OUTPUT
84-
elif [[ "${{ github.ref }}" == "refs/heads/production-bypass" ]]; then
85-
echo "environments=prod sandbox" >> $GITHUB_OUTPUT
86-
fi
87-
8879
- name: Update vets-api image and version name in Manifest repo
8980
env:
9081
ECR_REGISTRY: ${{ steps.ecr-login.outputs.registry }}
9182
ECR_REPOSITORY: dsva/${{inputs.ecr_repository}}
92-
ENVIRONMENTS: ${{ steps.determine-envs.outputs.environments }}
9383
run: |
9484
cd vsp-infra-application-manifests/apps/${{inputs.manifests_directory}}
9585
96-
for env in $ENVIRONMENTS; do
86+
for env in dev staging prod sandbox; do
9787
has_parent=$(yq e 'has("vets-api-parent")' "$env/values.yaml")
9888
has_vets=$(yq e 'has("vets-api")' "$env/values.yaml")
9989

app/controllers/v0/claim_letters_controller.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class ClaimLettersController < ApplicationController
1919
def index
2020
docs = service.get_letters
2121
log_metadata_to_datadog(docs)
22+
log_letter_count(docs)
2223
log_stale_or_empty_letters(docs)
2324

2425
render json: docs
@@ -82,6 +83,14 @@ def log_metadata_to_datadog(docs)
8283
message_type: 'ddl.doctypes_metadata', document_type_metadata: docs_metadata)
8384
end
8485

86+
def log_letter_count(docs)
87+
::Rails.logger.info('Claim letters count', {
88+
message_type: 'cst.claim_letters.count',
89+
letter_count: docs.size,
90+
api_provider: @api_provider
91+
})
92+
end
93+
8594
def log_stale_or_empty_letters(docs)
8695
return unless Flipper.enabled?(:cst_claim_letters_log_stale_or_empty, @current_user)
8796

app/controllers/v0/dependents_applications_controller.rb

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,28 @@ def create # rubocop:disable Metrics/MethodLength
4848
claim.add_veteran_info(JSON.parse(user_data.get_user_json))
4949

5050
submission = submit_via_forms_api(claim, claim_info[:claim_label], claim_info[:participant_id])
51+
upload_evidence_documents(claim, claim_info[:participant_id])
5152

53+
# retain standard workflow functions
5254
log_submitted(in_progress_form, claim)
5355
claim.send_submitted_email(current_user)
5456

57+
# serialize and add FDF submission information
5558
response = SavedClaimSerializer.new(claim).serializable_hash
5659
response[:data][:digital_forms_api] = { submission: }
5760

5861
clear_saved_form(claim.form_id)
5962
return render json: response
6063
end
6164
rescue => e
62-
@monitor.track_event(:error, e.message, 'dependents_controller.forms_api_submission', { error: e })
65+
context = {
66+
form_id: claim.form_id,
67+
saved_claim_id: claim.id,
68+
confirmation_number: claim.guid,
69+
error: e.message,
70+
tags: ['status:error']
71+
}
72+
@monitor.track_request(:error, e.message, 'dependents_controller.forms_api_submission', **context)
6373
end
6474
end
6575

@@ -84,7 +94,7 @@ def create # rubocop:disable Metrics/MethodLength
8494
private
8595

8696
# submit claim to forms api - temp for FDF pilot
87-
def submit_via_forms_api(claim, claim_label, participant_id)
97+
def submit_via_forms_api(claim, claim_label, participant_id) # rubocop:disable Metrics/MethodLength
8898
digital_forms_api_submission_service ||= DigitalFormsApi::Service::Submissions.new
8999

90100
payload = claim.fdf_submission_payload
@@ -100,11 +110,19 @@ def submit_via_forms_api(claim, claim_label, participant_id)
100110
response = digital_forms_api_submission_service.submit(payload, metadata)
101111
raise response.to_s unless response.success?
102112

103-
@monitor.track_event(:info, 'success', 'dependents_controller.forms_api_submission', { claim:, response: })
104-
105-
upload_evidence_documents(claim, participant_id)
113+
submission = response.body['submission'].presence || {}
114+
context = {
115+
form_id: claim.form_id,
116+
saved_claim_id: claim.id,
117+
confirmation_number: claim.guid,
118+
submission_id: submission['submissionId'],
119+
claim_id: submission.dig('claim', 'claimId'),
120+
claim_label: submission.dig('claim', 'claimLabel'),
121+
tags: ['status:success']
122+
}
123+
@monitor.track_request(:info, 'success', 'dependents_controller.forms_api_submission', **context)
106124

107-
response.body['submission'] || {}
125+
submission
108126
end
109127

110128
# upload evidence documents - temp for FDF pilot

app/controllers/v1/sessions_controller.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class SessionsController < ApplicationController
1313
service_tag 'identity'
1414
skip_before_action :verify_authenticity_token
1515

16-
REDIRECT_URLS = %w[signup mhv mhv_verified dslogon dslogon_verified idme idme_verified idme_signup
16+
REDIRECT_URLS = %w[signup mhv mhv_verified idme idme_verified idme_signup
1717
idme_signup_verified logingov logingov_verified logingov_signup
1818
logingov_signup_verified custom mfa verify slo].freeze
1919
STATSD_SSO_NEW_KEY = 'api.auth.new'
@@ -238,8 +238,6 @@ def login_params(type)
238238
url_service.login_url('mhv', 'myhealthevet', AuthnContext::MHV)
239239
when 'mhv_verified'
240240
url_service.login_url('mhv_verified', 'myhealthevet', AuthnContext::MHV)
241-
when 'dslogon', 'dslogon_verified'
242-
url_service.login_url('dslogon', 'dslogon', AuthnContext::DSLOGON)
243241
when 'idme'
244242
url_service.login_url('idme', LOA::IDME_LOA1_VETS, AuthnContext::ID_ME, AuthnContext::MINIMUM)
245243
when 'idme_verified'

app/serializers/submission_status_serializer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
class SubmissionStatusSerializer
44
include JSONAPI::Serializer
55

6-
attributes :id, :detail, :form_type, :message, :status, :created_at, :updated_at, :pdf_support, :presigned_url
6+
attributes :id, :detail, :form_type, :message, :status, :created_at, :updated_at, :pdf_support
77
end

app/services/sign_in/acr_translator.rb

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ def translate_acr
2222
translate_idme_values
2323
when Constants::Auth::LOGINGOV
2424
translate_logingov_values
25-
when Constants::Auth::DSLOGON
26-
translate_dslogon_values
2725
when Constants::Auth::MHV
2826
translate_mhv_values
2927
else
@@ -62,15 +60,6 @@ def translate_idme_values
6260
end
6361
end
6462

65-
def translate_dslogon_values
66-
case acr
67-
when 'loa1', 'loa3', 'min'
68-
Constants::Auth::IDME_DSLOGON_LOA1
69-
else
70-
raise Errors::InvalidAcrError.new message: 'Invalid ACR for dslogon'
71-
end
72-
end
73-
7463
def translate_mhv_values
7564
case acr
7665
when 'loa1', 'loa3', 'min'

app/services/sign_in/constants/auth.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ module Auth
3737
BROKER_CODE = 'sis'
3838
CLIENT_STATE_MINIMUM_LENGTH = 22
3939
CODE_CHALLENGE_METHOD = 'S256'
40-
CSP_TYPES = [IDME = 'idme', LOGINGOV = 'logingov', DSLOGON = 'dslogon', MHV = 'mhv'].freeze
40+
CSP_TYPES = [IDME = 'idme', LOGINGOV = 'logingov', MHV = 'mhv'].freeze
41+
DSLOGON = 'dslogon'
4142
OPERATION_TYPES = [SIGN_UP = 'sign_up',
4243
AUTHORIZE = 'authorize',
4344
AUTHORIZE_SSO = 'authorize_sso',

app/services/sign_in/credential_level_creator.rb

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ class CredentialLevelCreator
77
:logingov_acr,
88
:verified_at,
99
:mhv_assurance,
10-
:dslogon_assurance,
1110
:level_of_assurance,
1211
:credential_ial,
1312
:credential_uuid
@@ -18,7 +17,6 @@ def initialize(requested_acr:, type:, logingov_acr:, user_info:)
1817
@logingov_acr = logingov_acr
1918
@verified_at = user_info.verified_at
2019
@mhv_assurance = user_info.mhv_assurance
21-
@dslogon_assurance = user_info.dslogon_assurance
2220
@level_of_assurance = user_info.level_of_assurance
2321
@credential_ial = user_info.credential_ial
2422
@credential_uuid = user_info.sub
@@ -69,8 +67,6 @@ def max_ial
6967
logingov_max_ial
7068
when Constants::Auth::MHV
7169
mhv_max_ial
72-
when Constants::Auth::DSLOGON
73-
dslogon_max_ial
7470
else
7571
idme_max_ial
7672
end
@@ -82,8 +78,6 @@ def current_ial
8278
logingov_current_ial
8379
when Constants::Auth::MHV
8480
mhv_current_ial
85-
when Constants::Auth::DSLOGON
86-
dslogon_current_ial
8781
else
8882
idme_current_ial
8983
end
@@ -97,15 +91,6 @@ def mhv_max_ial
9791
verified_ial_level(mhv_premium_verified?)
9892
end
9993

100-
def dslogon_max_ial
101-
Rails.logger.info(
102-
"[CredentialLevelCreator] DSLogon level of assurance: #{dslogon_assurance}, " \
103-
"credential_uuid: #{credential_uuid}"
104-
)
105-
106-
verified_ial_level(dslogon_premium_verified?)
107-
end
108-
10994
def idme_max_ial
11095
verified_ial_level(idme_loa3_or_previously_verified?)
11196
end
@@ -121,10 +106,6 @@ def mhv_current_ial
121106
verified_ial_level(requested_verified_account? && mhv_premium_verified?)
122107
end
123108

124-
def dslogon_current_ial
125-
verified_ial_level(requested_verified_account? && dslogon_premium_verified?)
126-
end
127-
128109
def idme_current_ial
129110
verified_ial_level(idme_classic_loa3_or_ial2?)
130111
end
@@ -133,10 +114,6 @@ def mhv_premium_verified?
133114
Constants::Auth::MHV_PREMIUM_VERIFIED.include?(mhv_assurance)
134115
end
135116

136-
def dslogon_premium_verified?
137-
Constants::Auth::DSLOGON_PREMIUM_VERIFIED.include?(dslogon_assurance)
138-
end
139-
140117
def logingov_ial2?
141118
logingov_ial2_levels.include?(logingov_acr)
142119
end

0 commit comments

Comments
 (0)