Because:
- Not all CI operations where taking advantage of NX caches
This Commit:
- Adjusts nx.json config to ensure correct caching behavior
- Adjusts nx.json config to ensure proper target chains. ie build is dependent on pre-build
- Uses nx to directly run integration tests
- Uses nx to directly run unit tests
- Phases out dependency on generated .list files
- Ensures 'start up' for services for functional tests is done with nx and uses nx caches.
- Creates nx tags to facilitate test commands
- Fixes linter errors encountered
- Updates docker images to nx for builds
- Updates nx ignore files
Because:
* We want to use the latest typescript features.
This commit:
* Updates to TypeScript 5.2.2.
* Updates to Node 18.17.1 as OOM would occur frequently with 18.14.
* Updates CI to use a large instance with increased memory for Node.
Because:
* We want to easily be able to consume library classes within NestJS.
Adding the injectable decorator to all library classes means we can do
so with ease, but also doesn't prevent us from using the class outside
of the NestJS DI system.
* We want all dependencies (such as nest) centralized to the main
package.json
This commit:
* Adds the injectable decorator to every library class.
* Centralizes the NestJS dependency to the root package.json.
Closes: no relevant issue - polish PR.
Because:
- We need to know if an accounts password was set
This Commit:
- Adds a row for Password Set
- Exposes the verifierSetAt field to the front end
- Uses verifierSetAt to determine if a password was set
- Fixes bug where dev mode wasn't starting due wrong path
- Fixes bug where StrictMode was stopping lazy queries from executing
Because:
* We were only rendering the default service name
This commit:
* Sets the service name from the integration
* Sets up mock integration functions for that page and creates interfaces file for that page
closes FXA-8141
Because:
- Service name was blank for connected device after going through password reset flow
This Commit:
- Makes sure user agent propagates from graphql to auth-server
- Adds tests for our gql decorator class
- Adds logic to functional test to ensure the service name isn't blank
Because:
* Some validation checks are incorrect since params are always strings unless transformed, causing a blank page to show in some cases
This commit:
* Uses the 'isBooleanString' decorator instead of 'isBoolean' until we can better validate with (probably) a custom decorator
Because:
* auth-server was failing to start after deploy due to tsconfig paths
not resolving to the relevant libraries.
This commit:
* Adds a tsc-alias to build step to resolve alias paths to relative
paths.
Closes
Because:
- hashing the uid is async (`crypto.subtle.digest`), thus making the
Glean ping calls async. And preferably we don't block the UI on
metrics. However, we cannot overlap (not await) multiple Glean
pings. When that happened with the successful registration
submission event overlapping the registration confirmation view
event, we "lost" all the succession registration event because that
event has an empty event name. And the confirmation view event was
submitted with the properties of the successful registration
submission event.
This commit:
- calls and awaits the ping submissions in order inside GleanMetrics
Because:
* Generic error banners were displayed on CompleteResetPassword page, ConfirmWithLink component and LinkExpired component.
* We want to display relevant and localized auth error messages where possible, and otherwise default to "Unexpected error"
* We were repeating similar error handling in multiple pages/components.
This commit:
* Standardize error handling for CompleteResetPassword, ResetPassword, FlowRecoveryKeyConfirmPwd, LinkExpired, ConfirmWithLink to handle throttled errors with localizedRetryAfter, throttled errors without retryAfter value, other recognized authUiErrors as well as unexpected errors
* Create a reusable `getLocalizedErrorMessage` function in lib/auth-errors to simplify error handling in pages/components.
* Updates tests/stories.
* Update content-server readme to reflect the disabled by default state of rate limiting in dev environment.
Closes #FXA-8089
Because:
- We want to use class-validator for more standardized validation support
- We want to the link validator to leverage model validation
This Commit:
- Applies class-validator to all models
- Makes minor tweaks to the bind-decorator to support class-validator
- Makes minor tweaks to model-data-store to support class-validator
- Adds DIP to
- Ensures undefined is returned for unspecified values
- Cleans up link validator to use model.validate().
- Removes direct access to underlying model data used by ModelDataProvider
- Adds dirty flag to ModelDataProvider to reduce unnecessary validations
Because:
- Refactor the Cart Manager to serve as higher level logic for the
cart db model.
This commit:
- Removes service level logic.
- Adds common methods to be used by Cart Manager consumers.
- Adds checks for valid state by action and valid state transitions.
- Reverts playwright tests back to xlarge instance size
Closes FXA-8128
Because:
- we want know when a user failed to log into their account and why
This commit:
- adds a string metric for the event reason property
- adds a function for the failed login event
Because:
* We are seeing fewer "engage" events relative to "submit", even though "engage" occurs upstream in the conversion funnel.
* We were not recording an "engage" event for clicking the consent checkbox.
* This is the only form field present in all scenarios and checkout flows on the payments server, so it likely makes up the majority of the missed events across all flows.
This commit:
* Records the "fxa_pay_setup - engage" event when clicking the consent checkbox.
Closes #FXA-7941
Because:
- We wanted the code in the third party auth to use react conventions
This Commit:
- Creates a third party sign in form that is rendered.
- Submits this form when click 'continueWith' buttons.
Because:
* We've rolled out React reset PW routes and are working on signup and signin and don't wish to reset the config after every yarn install
This commit:
* Turns resetPasswordRoutes, signUpRoutes, and signInRoutes 'on' for local dev
* Removes stray console log