Web Clients Architecture
The Web based clients, henceforth referenced simply as clients, are the Web Vault, Browser Extension, Desktop Application (Electron based) and the CLI. They all share a common codebase and a single Git repository.
The mono-repository root directory contains three main folders.
apps
- Our different application specific code, consists ofweb
,browser
,desktop
andcli
.bitwarden_license
- Bitwarden Licensed version of the web vault.libs
- Shared code between the different applications.
libs
contains the following projects.
Common
- Common code shared between all the clients including CLI.Angular
- Angular specific code used by all the visual clients.Components
- Angular Components Library.Node
- Used to be shared code for CLI and Directory Connector CLI, but since directory connector no longer uses the same version of libs this module is deprecated.
Package Diagram
Below is a simplified package diagram of the clients repository.
note
For readability, ubiquitous app dependencies to common
are hidden.