Skip to content

Commit

Permalink
Merge pull request #463 from buttercup/v3
Browse files Browse the repository at this point in the history
V3
  • Loading branch information
perry-mitchell authored Mar 21, 2024
2 parents 76a33a7 + c841aa2 commit 1970408
Show file tree
Hide file tree
Showing 343 changed files with 22,754 additions and 35,037 deletions.
17 changes: 0 additions & 17 deletions .babelrc

This file was deleted.

8 changes: 0 additions & 8 deletions .env-cmdrc

This file was deleted.

31 changes: 31 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Tests

on: push

jobs:
lint:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
steps:
- uses: actions/checkout@v2
- name: Node.js specs ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm run test:format
release:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
steps:
- uses: actions/checkout@v2
- name: Node.js specs ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm run release
3 changes: 2 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"printWidth": 120,
"tabWidth": 4
"tabWidth": 4,
"trailingComma": "none"
}
7 changes: 0 additions & 7 deletions .travis.yml

This file was deleted.

3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
"eslint.enable": false,
"files.associations": {
"**/*.js": "javascriptreact"
}
},
"typescript.preferences.importModuleSpecifierEnding": "js"
}
37 changes: 0 additions & 37 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,5 @@
# Buttercup browser extension changelog

## v2.26.0
_2023-11-08_

* **Important version 3 update notice**
* Updates for core libraries and datasources

## v2.25.3
_2023-01-31_

* **Bugfix**:
* Google Drive would fail when tokens expire (new response format)

## v2.25.2
_2022-09-03_

* **Bugfix**:
* Fixed Dropbox connectivity issues
* Fixed Google Drive re-authentication loop, short auth time

## v2.25.1
_2022-08-16_

* **Bugfix**:
* Format B saving new properties would fail
* Format B conversion would omit history

## v2.25.0
_2022-06-02_

* Buttercup upgrade: v6
* Improved Dropbox/Google Drive integrations
* Improved vault stability and performance
* Improved support for Vault Format B
* Removed My Buttercup integration
* Vault editor page redesign
* Updated vault UI

## v2.24.3
_2021-05-24_

Expand Down
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,21 @@ Buttercup credentials manager extension for the browser.
<img src="https://raw.githubusercontent.com/buttercup/buttercup-browser-extension/master/chrome-extension.jpg" />
</p>

[![Buttercup](https://cdn.rawgit.com/buttercup-pw/buttercup-assets/6582a033/badge/buttercup-slim.svg)](https://buttercup.pw) [![Build Status](https://travis-ci.org/buttercup/buttercup-browser-extension.svg?branch=master)](https://travis-ci.org/buttercup/buttercup-browser-extension) [![Chrome users](https://img.shields.io/chrome-web-store/d/heflipieckodmcppbnembejjmabajjjj.svg?label=Chrome%20users)](https://chrome.google.com/webstore/detail/buttercup/heflipieckodmcppbnembejjmabajjjj?hl=en-GB) [![Firefox users](https://img.shields.io/amo/users/buttercup-pw.svg?color=38c543&label=Firefox%20users)](https://addons.mozilla.org/en-US/firefox/addon/buttercup-pw/) [![Chat securely on Keybase](https://img.shields.io/badge/keybase-bcup-blueviolet)](https://keybase.io/team/bcup)
[![Buttercup](https://cdn.rawgit.com/buttercup-pw/buttercup-assets/6582a033/badge/buttercup-slim.svg)](https://buttercup.pw) ![Tests status](https://github.com/buttercup/buttercup-core/actions/workflows/test.yml/badge.svg) [![Chrome version](https://img.shields.io/chrome-web-store/v/heflipieckodmcppbnembejjmabajjjj)](https://chrome.google.com/webstore/detail/buttercup/heflipieckodmcppbnembejjmabajjjj?hl=en-GB) [![Chrome users](https://img.shields.io/chrome-web-store/d/heflipieckodmcppbnembejjmabajjjj.svg?label=Chrome%20users)](https://chrome.google.com/webstore/detail/buttercup/heflipieckodmcppbnembejjmabajjjj?hl=en-GB) [![Firefox version](https://img.shields.io/amo/v/buttercup-pw)](https://addons.mozilla.org/en-US/firefox/addon/buttercup-pw/) [![Firefox users](https://img.shields.io/amo/users/buttercup-pw.svg?color=38c543&label=Firefox%20users)](https://addons.mozilla.org/en-US/firefox/addon/buttercup-pw/) [![Chat securely on Keybase](https://img.shields.io/badge/keybase-bcup-blueviolet)](https://keybase.io/team/bcup)

## About
This browser extension allows users to interface with password archives authored by the [Buttercup password manager](https://github.com/buttercup-pw/buttercup) (though it **does not** require the application to be installed).
This browser extension allows users to interface with password archives authored by the [Buttercup password manager](https://github.com/buttercup-pw/buttercup) (it _requires_ the application to be installed to function).

The extension can remotely connect to archives via Buttercup's common communication protocols (WebDAV, Dropbox etc.). Vaults are loaded from their remote source and their contents used to assist users with logging in to their recorded services. The extension also periodically updates vaults from their remote source so that the contents are always up to date.

This extension uses [Locust](https://github.com/buttercup/locust) to perform login form detection. Issues relating to the detection and operation of login forms should be opened there.
The extension makes secured requests to the desktop application for information within its unlocked vaults, and makes those credentials available within the browser. It is also able to save new logins from the browser extension as they're recognised. Besides a username and password, the extension can also enter OTP codes when required.

<img src="https://raw.githubusercontent.com/buttercup/buttercup-browser-extension/master/chrome-extension-2.jpg" />

The extension also comes with a full-featured vault editing interface, so you can even use it as a standalone password manager.

![Vault editing](https://raw.githubusercontent.com/buttercup/buttercup-browser-extension/master/chrome-vault-edit.png)

### Forms & Logins

Buttercup for Browsers auto-detects some login forms and login inputs, allowing the user to auto-fill them at their discretion. This extension uses [Locust](https://github.com/buttercup/locust) under the hood to **detect forms and inputs** (any issues with detecting forms and inputs should be opened there).

### Supported browsers

[Chrome](https://chrome.google.com/webstore/detail/buttercup/heflipieckodmcppbnembejjmabajjjj?hl=en-GB), [Firefox](https://addons.mozilla.org/en-US/firefox/addon/buttercup-pw/), [Edge](https://www.microsoft.com/en-us/edge) (version 79+) and [Brave](https://chrome.google.com/webstore/detail/buttercup/heflipieckodmcppbnembejjmabajjjj) are supported.

_Some browsers, such as **Brave** for example, will be able to install Buttercup via the Google Chrome web store._
Expand All @@ -42,18 +38,14 @@ Other browsers will be supported in order of request/popularity. Issues created

### Integrated platforms

The extension allows for connections to several services where your vaults can be stored:

* [My Buttercup](https://my.buttercup.pw)
* Dropbox
* Google Drive
* WebDAV (any service supporting WebDAV)
* Local filesystem
The extension allows for connections to several services, such as Dropbox and Google Drive. The extension supports whatever platforms the desktop application does, including local vaults.

#### Supported platforms

The browsers listed above, running on Windows, Mac or Linux on a desktop platform. This extension is not supported on any mobile or tablet devices.

### Usage

The browser extension can be controlled from the **popup menu**, which is launched by pressing the Buttercup button in the browser menu. This menu displays a list of archives as well as settings and other items.

When viewing pages that contain login forms, Buttercup can assist logging in when you interact with the login buttons (displayed beside detected login inputs).
Expand All @@ -67,34 +59,42 @@ You can **block** Buttercup from detecting forms and inputs by applying the attr
```

### Development

Development of features and bugfixes is supported in the following environment:

* NodeJS version 12 (latest minor version)
* NodeJS version 20 (latest minor version)
* Linux / Mac
* Tested in at least Chrome / Firefox

To set up your development environment:
* Clone this repo
* Ensure API keys are available (Google Drive)
* Execute `npm install` inside the project directory
* Run `npm run dev:chrome` or similar
* Load the unpacked `dist` folder in your browser addons

#### Chrome

Run the following to develop the extension:

1. Execute `npm run dev` to build and watch the project (to build production code, execute `npm run build`)
1. Execute `npm run dev:chrome` to build and watch the project (to build production code, execute `npm run build`)
2. Go to [chrome://extensions](chrome://extensions) and enable _"Developer mode"_
3. Select the new button _"Load unpacked"_, then select the `./dist` directory built on step 1

#### Firefox

Run the following to develop the extension:

* Execute `npm run dev:firefox` to build and watch the project (to build production code, execute `npm run release`)

#### Releasing

To build release-ready zip archives, run the command `npm run release` after having set up the development environment. The archives will be written to `release/(browser)` where `(browser)` is the browser type. Archives named `extension.zip` contain the built extension sourcecode and `source.zip` contains the raw source.

### Adding to Chrome

You can load an **unpacked extension** in Chrome by navigating to [chrome://extensions/](chrome://extensions/). Simply locate the project's directory and use **dist/** as the extension directory.

### Adding to Firefox

You can load an **unpacked extension** in Firefox by navigating to [about:debugging](about:debugging). Click "Load Temporary Add-on" and locate the project's directory, using **dist/** as the extension directory.
Binary file modified chrome-extension-2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified chrome-extension.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed chrome-vault-edit.png
Binary file not shown.
Loading

0 comments on commit 1970408

Please sign in to comment.