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 of
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.
Below is a simplified package diagram of the clients repository.
For readability, ubiquitous app dependencies to
common are hidden.