Skip to main content

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 web, browser, desktop and cli.
  • 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.

plantuml