1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-12-22 16:29:09 +01:00
bitwarden-browser/apps/web
Jake Fink a62f8cd652
[PM-3797] Client changes to use new key rotation process (#6881)
## Type of change

<!-- (mark with an `X`) -->

```
- [ ] Bug fix
- [ ] New feature development
- [x] Tech debt (refactoring, code cleanup, dependency upgrades, etc)
- [ ] Build/deploy pipeline (DevOps)
- [ ] Other
```

## Objective

<!--Describe what the purpose of this PR is. For example: what bug you're fixing or what new feature you're adding-->
Final Client changes for Key Rotation Improvements. 

- Introduces a new `KeyRotationService` that is responsible for owning rotation process.
- Moves `Send` re-encryption to the `SendService` (`KeyRotationService` shouldn't have knowledge about how domains are encrypted).
- Moves `EmergencyAccess` re-encryption to the `EmergencyAccessService`.
- Renames `AccountRecoveryService` to `OrganizationUserResetPasswordService` after feedback from Admin Console


## Code changes

<!--Explain the changes you've made to each file or major component. This should help the reviewer understand your changes-->
<!--Also refer to any related changes or PRs in other repositories-->

Auth
- **emergency-access-update.request.ts:** New request model for domain updates that includes Id
- **emergency-access.service.ts:** Moved `EmergencyAccess` re-encryption to the `EmergencyAccessService`. Add deprecated method for legacy key rotations if feature flag is off
- **key-rotation.service/api/spec/module:** New key rotation service for owning the rotation process. Added api service, module, and spec file.
- **update-key.request.ts:** Moved to Auth ownership. Also added new properties for including other domains.
- **migrate-legacy-encryption.component.ts:** Use new key rotation service instead of old component specific service. Delete old service.
- **change-password.component.ts:** Use new key rotation service.
- **settings.module.ts:** Import key rotation module.

Admin Console
- **organization-user-reset-password.service.ts/spec:** Responsible for re-encryption of reset password keys during key rotation. Added tests.
- **organization-user-reset-password-enrollment.request.ts:** New request model for key rotations
- **reset-password.component.ts:** Update `AccountRecoveryService` to `OrganizationUserResetPasswordService`
- **enroll-master-password-reset.component.ts:** Update `AccountRecoveryService` to `OrganizationUserResetPasswordService`

Tools
- **send.service/spec.ts:** Responsible only for re-encryption of sends during key rotation. Added tests.

Other
- **api.service.ts:** Move `postAccountKey` to `KeyRotationApiService`
- **feature-flag.enum.ts:** add new feature flag

## Screenshots

<!--Required for any UI changes. Delete if not applicable-->

## Before you submit

- Please add **unit tests** where it makes sense to do so (encouraged but not required)
- If this change requires a **documentation update** - notify the documentation team
- If this change has particular **deployment requirements** - notify the DevOps team
- Ensure that all UI additions follow [WCAG AA requirements](https://contributing.bitwarden.com/contributing/accessibility/)
2023-12-22 10:31:24 -05:00
..
.vscode Multi root workspace tweaks (#2858) 2022-06-13 21:39:36 -05:00
config [DEVOPS-1501] Build and Deploy Web Vault for USDEV (DevTest) (#7309) 2023-12-21 17:10:31 +01:00
scripts [deps] Autofill: Update prettier to v3 (#7014) 2023-11-29 16:15:20 -05:00
src [PM-3797] Client changes to use new key rotation process (#6881) 2023-12-22 10:31:24 -05:00
.dockerignore Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
.eslintrc.json [ADR-0006][AC-319] Migrate all tests to use jest mock instead of substitute (#6520) 2023-10-17 17:02:33 +00:00
.gitignore Noop notifications for dev (#6671) 2023-10-24 15:18:23 +02:00
config.js Use settings in base.json and merge config keys (#3804) 2022-10-18 12:00:40 +10:00
crowdin.yml Fix crowdin sync for web (#2853) 2022-06-07 21:31:53 +02:00
dev-server.shared.pem Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
Dockerfile Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
entrypoint.sh Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
jest.config.js [PM-2328] Fix jest deprecations (#5483) 2023-05-22 20:19:16 +02:00
package.json [DEVOPS-1501] Build and Deploy Web Vault for USDEV (DevTest) (#7309) 2023-12-21 17:10:31 +01:00
postcss.config.js Move web to apps/web and bitwarden_license/bit-web 2022-06-02 11:55:37 +02:00
README.md Update urls to match the contributing docs (#4192) 2022-12-06 11:20:27 +01:00
tailwind.config.js [SM-45] Scaffold secrets manager module (#2989) 2022-07-22 11:16:24 +02:00
test.setup.ts [EC-423] Fix unit tests (#3265) 2022-08-11 11:35:08 +10:00
tsconfig.json create team owned libs for billing, admin-console, platform (#7233) 2023-12-15 09:02:21 -05:00
tsconfig.spec.json [EC-423] Fix unit tests (#3265) 2022-08-11 11:35:08 +10:00
webpack.config.js [PS-1878] Feature/selfhost anonaddy (#4056) 2023-09-26 15:34:34 +02:00

The Bitwarden web project is an Angular application that powers the web vault (https://vault.bitwarden.com/).

Github Workflow build on master Crowdin DockerHub gitter chat

Documentation

Please refer to the Web vault section of the Contributing Documentation for build instructions, recommended tooling, code style tips, and lots of other great information to get you started.