Skip to content

Deploy RC 408 to Production#11136

Merged
solipet merged 13 commits intostages/prodfrom
stages/rc-2024-08-22
Aug 22, 2024
Merged

Deploy RC 408 to Production#11136
solipet merged 13 commits intostages/prodfrom
stages/rc-2024-08-22

Conversation

@solipet
Copy link
Contributor

@solipet solipet commented Aug 22, 2024

User-Facing Improvements

  • Completions: Use standardized logo image for consent screen (#11120)
  • Marketing Site: Update links to marketing site (#11086)

Bug Fixes

  • Reporting: Add handling for error seen first day of the month (#11121)

Internal

  • A/B testing: Rework A/B testing system (#11026)
  • Code Quality: Remove feature flag for baseline email functionality (#11107)
  • Continuous Integration: Improve performance of install step in continuous integration images (#11110)
  • Dependencies: Update dependency to resolve security advisory (#11123)
  • Performance: Optimize loading of Digital Analytics Program script (#11097, #11126)
  • Reporting: Reduce threading and increase time slice default values for LG-99 Report (#11115)
  • Reporting: Add AAL3 usage to protocols report (#11119)

Upcoming Features

  • Identity verification: Implement proofer for Socure KYC (#11093)

Mitchell Henke and others added 13 commits August 20, 2024 10:17
…ort (#11115)

changelog: Internal, Reporting, Reduce threading and increase time slice default values for LG-99 Report
* Avoid Yarn install and trace in Docker assets precompilation

changelog: lnternal, Continuous Integration, Improve performance of install step in continuous integration images

* Copy all Yarn dependencies before install

* Try bind mounts for Yarn install

* Continue copying package.json & yarn.lock

package.json needed for running Yarn commands. Lockfile may not strictly be necessary, but good to be safe to avoid installing unexpected versions if install is run unknowingly

* Debug workspaces symlinks

* Create temporary bind mount for workspace package

Yarn installs workspace packages using symlinks, which is incompatible with Docker

Related: lerna/lerna#2381

* Debug

* Prefix relative paths in bind mount

See: docker/cli#1203

* Absolute path bind mount

* Try copy

* Copy before install

* ls after install

* Remove secondary copy

* Try again copy all packages

* Sync idp_review_app to idp_prod

* chown 🤷

* Remove debugging ls

* Add explainer comment for copying packages

See: #11110 (comment)
…1107)

* LG-13111: Remove feature flag for email aggregation functionality

changelog: Internal, Code Quality, Remove feature flag for baseline email functionality

* Remove specs for removed "call" method

* Remove test expectations around create_user_event dispatching notifications
* Build local copy of Digital Analytics Program

changelog: Internal, Performance, Optimize loading of Digital Analytics Program script

* Remove CSP exceptions for DAP CDN

* Download and patch DAP as postinstall

* Consistently return string value from UriService#add_params

* Add spec to load DAP script

* Update DAP script test to check syntax error on load

DAP script has too many side effects and manipulates DOM in a way that's hard to clean up. Absent some other way to create an isolated DOM, at least check that the script can be evaluated without syntax errors.

* Add DAP script to ESLint ignore

* Add test for url_params behavior

* Better coverage for combination url_params and attributes

* Treat url_params as distinct property

See: #11097 (comment)

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

* Use conventional capitalization

See: https://github.com/18F/identity-idp/blob/main/docs/frontend.md#naming-conventions

* Separate download and patch tasks to cache-bust by SHA

* Ignore DAP script in TypeScript checks

* Use more Makefile wizardry to generate compiled DAP

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

* Run analytics postinstall using Yarn cwd

In production environments, `yarn install --production` won't make workspaces available, so trying to use `yarn workspace ...` will fail. This achieves the same effect without relying on the workspace being "installed"

* Try avoiding default NPM lifecycle script names

* Test using full install in cwd package

* Try incorporating analytics tasks in build:js

In CI Dockerfile, app files aren't available at  time of install. This also aligns closer to how browsers.json is generated

* Combine make tasks in build:js

* Force analytics task in top-level Makefile

Defer to sub-process to decide what needs to be done

* Split install and build tasks for analytics

Avoid dependency on package code existing during install step

* Copy Makefile earlier in Docker images

* Try complete build if folder available

* Revert to original postinstall approach

---------

Co-authored-by: Zach Margolis <zachmargolis@users.noreply.github.com>
* Update help center links

Changelog: User-Facing Improvements, Marketing Site, Update links to marketing site
We would like to know who is using the deprecated AAL3 ACR parameter.

See
https://gitlab.login.gov/lg-people/lg-people-appdev/Melba/backlog-fy24/-/issues/10

changelog: Internal, Reporting, Add AAL3 usage to protocols report
The SSN show page includes Javascript for device profiling. To identify a device profiling transaction we set `threatmetrix_session_id` and render that alongside the Javascript that performs the device profiling. This UUID is used downstream to fetch device profiling results.

We observed that some users did not have a `threatmetrix_session_id` value in downstream steps. This appears to be because they submitted the "link sent" step which calls `undo_step` on the SSN step. Then, either due to network issues or an unusual path through the process they were able to submit the SSN form without re-rendering the SSN show page.

Investigating this we questioned why the `threatmetrix_session_id` needs to be deleted when the user submits earlier steps. It appears it was added in #9589 which configured the back button functionality from the SSN step back to other steps. It appears that the `threatmetrix_session_id` was set to `nil` there in order to return to the state that existed before the step was submitted and not because of a specific concern about stale IDs or anything like that.

In order to prevent the issue where users have a nil ID after viewing the SSN step but submitting later steps and proceeding without re-viewing the SSN step, this commit removes the code to reset the threatmetrix session ID. This should be fine since the old ID will represent a device profiling transaction for the current session which is ultimately the goal.

[skip changelog]
* Standardize completions screen logo

changelog: User-Facing Improvements, Completions, Use standardized logo image for consent screen

* Revert image for IPP verified

* Remove unused user-signup.png

* Add explicit height for completions image

Previously omitted because two possible images didn't have a common height

Better to include both width and height to avoid page relayout perceived performance
* Update fugit dependency

changelog: Internal, Dependencies, Update dependency to resolve security advisory

* Update fugit to at least 1.11.1
…11121)

* Add failing spec for error seen in prod

* Fix error by skipping results with missing data

- also log warning so we can investigate

changelog: Bug Fixes, Reporting, Add handling for error seen first day of the month
* Socure KYC Proofer

- Basic Proofer implementation for Socure KYC.
- Request / Response classes, error handling, etc.

changelog: Upcoming Features, Identity verification, Implement proofer for Socure KYC

* Updates after manual integration test

- Lint fixes
- Move temporary consent timestamp back a little bit

* In ruby we just say @return

* Array.wrap -> Array

* Clean up accessors with .try

* Remove pointless begin / end

* Use named subject in request spec

* Remove empty lines

* Improve test names

"it does the thing" is not good enough
* Rename AbTestBucket to AbTest

AbTests have multiple `buckets`, so this commit renames the class to be a little clearer.

* Refactor ab_test_spec.rb

- Move tests into #bucket method block
- Set up a `let` for bucket configs

* Move discriminator calculation into AbTest

Provide a proc that can be used to determine a discriminator from user/user_session/service_provider/request.

changelog: Internal, A/B testing, Rework A/B testing system

* Automatically log AB tests with analytics events.

Augment analytics events with a top-level `ab_tests` property that lists each active test and which bucket the event is in.

(This will likely break a lot of tests)

* Add AbTestingConcern

- Add new method, ab_test_bucket, for controllers to figure out what bucket the user is in

* Update ACUANT_SDK AB test to use new system

* Update DOC_AUTH_VENDOR A/B test to use new system

* Allow more control over what events log A/B tests

should_log can be a Proc, RegExp, etc. and is matched against the event name.

* Limit existing A/B tests to IdV events

* Improve use of document_capture_session_uuid as a discriminator

- Handle case where UUID is present in session (hybrid flow)
- Handle case where UUID is in Idv::Session

* Limit should_log to RegExp only

Right now all we're doing with this is checking to see if it's an idv-related event, which we can do with a Regexp.

* Pass acuant_sdk_upgrade_ab_test_bucket into ApiImageUploadForm

- Tell the form what bucket it's in so that it can log properly
- Add test coverage for form submission when Acuant A/B test is enabled

* Remove stray method accidentally added to Idv::Session

* Fix lint issues in api_image_upload_form_spec.rb

* Remove stray _test_ for method accidentally committed

Earlier I was playing with having Idv::Session own discriminator calculation, but I didn't like it. I previously removed a method I accidentally committed--this removes a test for that removed method.

* Add test coverage for A/B test initializers

Run intialize tests under different conditions and actually verify they can return buckets
changelog: Internal, Performance, Optimize loading of Digital Analytics Program script
@solipet solipet merged commit 0dcaa38 into stages/prod Aug 22, 2024
@solipet solipet deleted the stages/rc-2024-08-22 branch August 22, 2024 20:57
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