1
0
mirror of https://github.com/bitwarden/desktop.git synced 2024-11-24 11:55:50 +01:00
The desktop vault (Windows, macOS, & Linux).
Go to file
Addison Beck 0b306ca1a7
[Account Switching] [Feature] Add the ability to maintain state for up to 5 accounts at once (#1079)
* [refactor] Remove references to deprecated services

* [feature] Implement account switching

* [bug] Fix state handling for authentication dependent system menu items

* [bug] Enable the account switcher to fucntion properly when switching to a locked accounts

* [feature] Enable locking any account from the menu

* [bug] Ensure the avatar instance used in the account switcher updates on account change

* [style] Fix lint complaints

* [bug] Ensure the logout command callback can handle any user in state

* [style] Fix lint complaints

* rollup

* [style] Fix lint complaints

* [bug] Don't clean up state until everything else is done on logout

* [bug] Navigate to vault on a succesful account switch

* [bug] Init the state service on start

* [feature] Limit account switching to 5 account maximum

* [bug] Resolve app lock state with 5 logged out accounts

* [chore] Update account refrences to match recent jslib restructuring

* [bug] Add missing awaits

* [bug] Update app menu on logout

* [bug] Hide the switcher if there are no authed accounts

* [bug] Move authenticationStatus display information out of jslib

* [bug] Remove unused active style from scss

* [refactor] Rewrite the menu bar

* [style] Fix lint complaints

* [bug] Clean state of loggout out user after redirect

* [bug] Redirect on logout if not explicity provided a userId that isn't active

* [bug] Relocated several settings items to persistant storage

* [bug] Correct account switcher styles on all themes

* [chore] Include state migration service in services

* [bug] Swap to next account on logout

* [bug] Correct DI service

* [bug] fix loginGuard deps in services.module

* [chore] update jslib

* [bug] Remove badly merged scss

* [chore] update jslib

* [review] Code review cleanup

* [review] Code review cleanup

Co-authored-by: Hinton <oscar@oscarhinton.com>
2021-12-15 17:32:00 -05:00
.github Bump node to v16 (#1189) 2021-12-13 17:16:44 +01:00
.vscode persist and restore window state 2018-02-14 15:34:17 -05:00
jslib@512c5c2837 [Account Switching] [Feature] Add the ability to maintain state for up to 5 accounts at once (#1079) 2021-12-15 17:32:00 -05:00
resources Write native messaging manifests for Chromium (#862) 2021-04-29 16:12:57 +02:00
scripts Ensure safari extension is included in mas and not only darwin (#1128) 2021-10-29 09:48:43 -04:00
src [Account Switching] [Feature] Add the ability to maintain state for up to 5 accounts at once (#1079) 2021-12-15 17:32:00 -05:00
stores new screenshots 2021-06-02 13:54:46 -04:00
.editorconfig update settings 2018-04-10 22:05:28 -04:00
.gitignore Add script for downloading legacy safari extension (#796) 2021-03-19 17:18:48 +01:00
.gitmodules submodule via https 2018-02-19 16:26:53 -05:00
.nvmrc Bump node to v16 (#1189) 2021-12-13 17:16:44 +01:00
CONTRIBUTING.md fix typo 2020-11-10 17:44:04 +10:00
crowdin.yml Updating the Crowin sync process (#1144) 2021-11-05 10:59:21 -07:00
LICENSE.txt license and contrib 2018-01-26 16:07:42 -05:00
package-lock.json Bump node to v16 (#1189) 2021-12-13 17:16:44 +01:00
package.json Bump node to v16 (#1189) 2021-12-13 17:16:44 +01:00
README.md Bump node to v16 (#1189) 2021-12-13 17:16:44 +01:00
SECURITY.md uppercase Bitwarden 2018-02-27 13:41:47 -05:00
sign.js Pinning ast version (#1080) 2021-09-16 10:15:05 -07:00
tsconfig.json Add jslib as a "real" dependency (#941) 2021-06-07 19:26:36 +02:00
tsconfig.renderer.json Fix VS code ts language server no longer working after #866 (#872) 2021-05-06 16:45:27 +02:00
tslint.json Remove empty catch blocks and remove allow-empty-catch tslint rule (#1117) 2021-10-21 11:10:36 +02:00
webpack.main.js Default to development environment settings 2021-06-10 15:37:39 -04:00
webpack.renderer.js Bump angular to v12 (#1186) 2021-12-09 20:29:24 +01:00

Github Workflow build on master Crowdin Join the chat at https://gitter.im/bitwarden/Lobby

Bitwarden Desktop Application

Platforms

The Bitwarden desktop app is written using Electron and Angular. The application installs on Windows, macOS, and Linux distributions.

Desktop Vault

Build/Run

Requirements

  • Node.js v16.13.1 (LTS) or greater
  • NPM v8
  • Windows users: To compile the native node modules used in the app you will need the Visual C++ toolset, available through the standard Visual Studio installer. You will also need to install the Microsoft Build Tools 2015 and Windows 10 SDK 17134 as additional dependencies in the Visual Studio installer.

Run the app

npm install
npm run electron

Debug Native Messaging

Native Messaging (communication with the browser extension) works by having the browser start a lightweight proxy application baked into our desktop binary. To setup an environment which allows for easy debugging you will need to build the application for distribution, i.e. npm run dist:<platform>, start the dist version and enable desktop integration. This will write some manifests to disk, Consult the native manifests documentation for more details of the manifest format, and the exact locations for the different platforms. Note that disabling the desktop integration will delete the manifests, and the files will need to be updated again.

The generated manifests are pre-configured with the production ID for the browser extensions. In order to use them with the development builds, the browser extension ID of the development build needs to be added to the allowed_extensions section of the manifest. These IDs are generated by the browser, and can be found in the extension settings within the browser.

It will then be possible to run the desktop application as usual using npm run electron and communicate with the browser.

Contribute

Code contributions are welcome! Please commit any pull requests against the master branch. Learn more about how to contribute by reading the CONTRIBUTING.md file.

Security audits and feedback are welcome. Please open an issue or email us privately if the report is sensitive in nature. You can read our security policy in the SECURITY.md file.