Kee adds free, secure and easy password management features to your browser which save time and keep your private data more secure.
Clone or download
Latest commit 11879e0 Mar 25, 2018
Permalink
Failed to load latest commit information.
.tx Updated translations Feb 18, 2018
.vscode Refactor dialogs to remove need for custom CSP Aug 15, 2017
_locales Updated translations Mar 25, 2018
background Prevent uncaught context menu "duplicate ID" exception messages in co… Mar 15, 2018
common Reset logging level to no more verbose than Warn for all installations Feb 1, 2018
dialogs tighten up typing where possible Jan 25, 2018
lib Release notes for 2.2 Feb 9, 2018
page ignore whitespace during submit button magic word tests Feb 6, 2018
panels Keyboard navigation for login, search results and password profiles Feb 5, 2018
popup Disable browser autocomplete on search box Mar 15, 2018
release-notes Release notes for 2.3 Mar 11, 2018
settings Open options in a new tab Mar 11, 2018
typedefs Fix broken notifications Mar 6, 2018
.editorconfig Initial commit of what will become KeeFox version 2.0. Mar 26, 2017
.gitattributes Fix binary files Jan 20, 2018
.gitignore Enable npm 5.7+ package lock Mar 6, 2018
.travis.yml Enable automatic beta releases Mar 15, 2018
CODE_OF_CONDUCT.md Project code of conduct Jan 7, 2018
CONTRIBUTING.md Document new issue labels Jan 25, 2018
ISSUE_TEMPLATE.md GitHub issue template Jan 7, 2018
LICENSE Create LICENSE Mar 26, 2017
PULL_REQUEST_TEMPLATE.md Update documentation Jan 24, 2018
README.md Add information about how to reproduce a specific build Mar 6, 2018
SUPPORT.md Support guidance Jan 7, 2018
gulpfile.js Enable automatic beta releases Mar 15, 2018
manifest.json Bump version to 2.4 Mar 14, 2018
package-lock.json Sign and release new beta versions automatically Mar 7, 2018
package.json Sign and release new beta versions automatically Mar 7, 2018
prepareBetaRelease.sh Enable automatic beta releases Mar 15, 2018
tslint.json Use enums for actions and command names Nov 15, 2017

README.md

Simple and secure password management

Kee adds free, secure and easy to use password management features to your web browser which save you time and keep your private data more secure.

Login automatically, never forget another password, stay in control of your passwords and improve their security. Powered by the world-renowned KeePass Password Safe.

Kee is a Firefox and Chrome add-on for linking browsers to KeePass, using the KeePassRPC KeePass plugin.

Official website with download instructions: https://www.kee.pm

Support forum: https://forum.kee.pm

Build

Requirements

  • node
  • npm or yarn
  • a web browser and KeePass 2.x

It's all set up for Visual Studio Code but it shouldn't be too hard to work out how to develop using other IDEs.

Instructions

  1. clone the repo
  2. npm install
  3. Development:
    1. npm start
    2. then load the relevant folder into your development browser
      1. Chrome:
        1. chrome://extensions/
        2. Load unpacked extension...
        3. 'build/debug/chrome/'
      2. Firefox:
        1. about:debugging#addons
        2. Load temporary add-on
        3. 'build/debug/firefox/'
    3. Make your changes to the source code; the file watcher will recompile necessary parts of the addon
    4. When you're ready to test your changes, reload the extension/addon from the browser interface (this is only necessary sometimes; a lot of changes will apply automatically but it may not be obvious when a reload operation is required so play it safe until you understand the add-on architecture)
    5. NB: source maps are included only in the debug folders
  4. Packaging for distribution
    1. Historically this has been done manually but we think that TravisCI should now handle this for us
    2. Manipulate manifest.json as required
    3. npm run package:debug and/or npm run package:prod
    4. XPIs and ZIPs of each version are put into the dist folder
    5. NB: source maps are included only in the debug package

gulp comes with various other tasks but you shouldn't need to worry about those unless you are adding new modules/folders to the addon.

Reproducing a build

Exactly reproducing the files delivered from the Firefox add-on website or Chrome extension store is not possible because the websites modify the file that we build in order to attach a digital signature. One can get very close though, to the point where a diff of the files from a given release on GitHub varies from your own local build in only three ways:

  1. Line endings - some parts of the tool chain may treat line endings differently so that the end result could differ between operating systems.
  2. Version number - the CI build system holds credentials that allow it to manipulate git tags on the GitHub repository and in doing so allows for automatic incrementing of build numbers, which in turn will result in a unique version number being calculated. This can only be reproduced if you download the git repo to your local system (including all tags) and develop a custom build script or modify the source files as needed - it's most likely not worth the effort but can be done if it is important to you.
  3. File dates - the build output is essentially a zip file so when the newly dowloaded and built files on your system are added to the zip file, they will have different dates than those that were built on the CI platform and automatically added to a GitHub Release. For this reason, even if you were to end up with the same line endings and version number, it is not possible to compare a digest (hash) of your built file and expect it to match the file built by anyone else (unless you build it at exactly the same time!)

Reproducible builds rely upon npm version 5.7 or higher (released end of Feb 2018) so ensure you have the latest update first.

You can then:

  1. download the source code (e.g. from the relevant GitHub Release page) or clone the repo for the latest (often pre-release) version
  2. npm ci
  3. manipulate manifest.json if you want to adjust version numbers
  4. npm run package:debug (for beta releases) and/or npm run package:prod (for stable releases)
    1. XPIs and ZIPs of each version are put into the dist folder
    2. NB: source maps are included only in the debug package