Skip to content

Deploy RC 383 to Production#10702

Merged
zachmargolis merged 13 commits intostages/prodfrom
stages/rc-2024-05-28
May 28, 2024
Merged

Deploy RC 383 to Production#10702
zachmargolis merged 13 commits intostages/prodfrom
stages/rc-2024-05-28

Conversation

@zachmargolis
Copy link
Contributor

@zachmargolis zachmargolis commented May 28, 2024

User-Facing Improvements

  • SAML: Validate requested NameID formats and return appropriate response (#10629)

Internal

  • Analytics: Remove track_mfa_submit analytics pass-through method (#10679)
  • Code Quality: Remove unused code (#10705)
  • Code Quality: Remove unused feature flags (#10693)
  • Dependencies: Update dependencies to latest versions (#10698)
  • FormObject normalization: Updates the HowToVerify flow (#10682)
  • Performance: Reduce size of application stylesheet (#10703)
  • Reporting: Key metrics count (#10691)

samathad2023 and others added 9 commits May 23, 2024 10:56
* lg-13193 key metric count
proofing rate 
Total user counts
changelog: Internal, Reporting,key metrics count
When I was working on the code to parse a VTR in the SAML request validator I copied the code from the OIDC form object. This included a check that the `vtr` is an array. In OIDC that is necessarily because we are directly parsing the result of calling `JSON.parse` on the param. In SAML that is not the case; the vtr is parsed out of the authn request and will be an array or nil. For this reason we can use `#blank?` in the SAML implementation.

[skip changelog]
* Update to Ruby 3.3.1

changelog: Internal, Maintenance, Update to Ruby 3.3.1

* consolidate tests

* add more rescue

* Update spec/support/features/document_capture_step_helper.rb

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>

* implement wait helper

* Update spec/support/features/interaction_helper.rb

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>

* implement wait helper

---------

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>
…10693)

changelog: Internal, Code Quality, Remove unused feature flags
changelog: Internal, Analytics, Remove track_mfa_submit analytics pass-through method
…auth (#10694)

In #10480 we added an A/B test that made voice OTPs 10-digits for IdV users for some percentage of users. This was to test whether a 10-digit numeric code sees more success than a 6-digit alphanumeric code.

This included a change to the message for the voice OTP since the message includes the length, e.g. "Your 10-digit Login.gov one time code is 1234567890". The translation for the 10-digit code was erroneously applied to 6-digit codes when auth users chose voice calls to confirm phones during sign up. This commit fixes that issue.

[skip changelog]
…0629)

See
https://gitlab.login.gov/lg-people/lg-people-appdev/protocols/backlog-fy24/-/issues/7

**Why**:
1. Email format was being returned for service providers configured with
    email_nameid_format_allowed, even when it was not explicitly
    requested (in the SAML request).
2. Unsupported NameID formats were still being honored by returning
    either the UUID or the email (depending on email_nameid_format_allowed),
    instead of returning an error.
    returned

**How**:
1. Return Email format only when email_nameid_format_allowed is
    configured AND the email format is explicitly requested
2. Fail on unsupported NameID formats

In addition, fixed a couple of minor issues:
1. Clean up a Regex
2. Remove support of a mythical email format -
    'urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress'

changelog: User-Facing Improvements, SAML, Validate requested NameID formats and return appropriate response
Normalizes the way we're using FormObjects.

changelog: Internal, FormObject normalization, Updates the HowToVerify flow
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.11.1 to 1.11.2.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.11.1...v1.11.2)

---
updated-dependencies:
- dependency-name: libphonenumber-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
aduth and others added 4 commits May 28, 2024 14:51
* Consolidate and simplify account profile card styles

changelog: Internal, Performance, Reduce size of application stylesheet

* Restore and fix margin utility class
changelog: Internal, Code Quality, Remove unused code
The `Vot::Parser` class consumes a VoT or ACR values string and parses it into a set of requirements to satisfy the vector.

Some vectors have dependencies on other vectors. For example, the biometric proofing vector (`Pb`) depends on the identity proofing vector (`P1`). In the [vector component value definitions](https://github.com/18F/identity-idp/blob/5442bbdb9af5421dcb4fabc7a8ec4ce9ab307526/app/services/vot/supported_component_values.rb#L4) these are described as “implied components” i.e. vector Pb implies vector P1.

When a partner requests a vector with a component that implies another component we expand the vector to include the implied component. For example, a partner may request `C1.Pb` which we will expand to `C1.C2.P1.Pb` since `Pb` implies `P1` and `P1` implies `C2`.

Prior to this commit these vectors depended on a recursive function which was subject to infinite recursion if vectors had mutual implications. For example, vector `A1` may imply vector `B1` which could imply vector `A1` resulting in infinite recursion expanding the vector. to `A1.B1.A1.B1....`. This commit refactors the parser to move the expansion logic into a new `Vot::ComponentExpander` which has a new implementation that does not have the infinite recursion issue.

Finally, the `implied_component_values` were constants prior to this commit. This commit makes those values strings that represent the names of the components. This was done because mutual component implication is not possible since both vectors are not defined when the first vector is defined. In this way the first vector cannot depend on the second when the second does not exist. Using strings allows the vectors to be looked up in a map after all of the vectors have been defined.

[skip changelog]
@zachmargolis zachmargolis merged commit 6c16f7a into stages/prod May 28, 2024
@zachmargolis zachmargolis deleted the stages/rc-2024-05-28 branch May 28, 2024 20:40
zachmargolis added a commit that referenced this pull request May 28, 2024
This reverts commit 6c16f7a, reversing
changes made to f3b127c.
@zachmargolis zachmargolis mentioned this pull request May 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants