fndr

0.2.2 • Public • Published

fndr

Flexible and secure (AES-256 bit encryption) password manager that gives you complete control of your account information. fndr supports customized connectors that tell fndr where to store your encrypted account information.

The default connector is the filesystem connector that encrypts and stores account information on your local file system.

Highlight: Jupiter blockchain connector

The Jupiter connector supports storing your accounts on chain in a decentralized and secure manner using AES encryption on the Jupiter blockchain.

Note on >=0.1.0 breaking change

Prior to v0.1.0 the default connector was the jupiter connector. Now the default connector is filesystem, so if upgrade to >=0.1.0 you need to run the following command to use the jupiter connector.

$ fndr use -c jupiter

Requirements

Node.js, ideally the LTS version, and NPM installed (NPM get's shipped with a fresh Node.js install)

Install

$ npm install -g fndr

If successful, you should be able to get the fndr version:

$ fndr -v
0.0.1

Usage

$ # Display all help text on how to use fndr
$ fndr --help
$
$ # setup configuration for fndr based on the connector(s) you're using
$ # for the default Jupiter connector, see below for requirements to get started
$ fndr config
$
$ # find the location of the config file
$ fndr file
Your configuration file is in the following location:
/Users/moontology/.fndr/jupiter.json

$ # get current connector being used
$ fndr connector
filesystem

$ # setup fndr to use a particular connector (DEFAULT is 'filesystem')
$ fndr use -c jupiter
Successfully changed connector to 'jupiter'!

$ # add new facebook account
$ fndr add -n facebook -u my.email@gmail.com
? The password for account: facebook. [hidden] [input is hidden]
Successfully added account 'facebook'!

$ # search for your new facebook account with a search query (-q)
$ fndr search -q facebook
I found the following accounts:
ID                                   NAME            USERNAME
7cc821a0-7866-11eb-9e3a-6725a812df0e facebook        my.email@gmail.com
1 of 3 total accounts returned

$ # show only your facebook account. Needs the exact name with `-n` provided
$ # or the ID with a `-i` provided
$ fndr show -n facebook
ID                                   NAME
7cc821a0-7866-11eb-9e3a-6725a812df0e facebook

$ # with the `-p` parameter, also show the password in the terminal window
$ fndr show -n facebook -p
ID                                   NAME            PASSWORD
7cc821a0-7866-11eb-9e3a-6725a812df0e facebook        thePassword

$ # with the `-P` (capital P) parameter, only show the password for command piping support
$ fndr show -n facebook -P
thePassword

$ # find account by ID
$ fndr show -i 7cc821a0-7866-11eb-9e3a-6725a812df0e
ID                                   NAME
7cc821a0-7866-11eb-9e3a-6725a812df0e facebook

$ # without a query (`-q`) in search, pull down ALL accounts
$ # (search never displays passwords)
$ fndr search
I found the following accounts:
ID                                   NAME            USERNAME             EXTRA
7cc821a0-7866-11eb-9e3a-6725a812df0e facebook        my.email@gmail.com
0de634c0-7866-11eb-9676-b1f9506d8872 theAccount
6e3d6640-7870-11eb-95dc-014f038856e7 instagram       moontology           some extra text provided
3 of 3 total accounts returned

$ # update an existing account
$ node dist/fndr update -n facebook -e "this is my main account"
? The password for account (leave blank if unchanged): facebook. [hidden]

Successfully updated account: 'facebook'!

$ # delete an account from the fndr database (requires entering the ID)
$ fndr delete -i 7cc821a0-7866-11eb-9e3a-6725a812df0e
Successfully deleted account: '7cc821a0-7866-11eb-9e3a-6725a812df0e'.

$ # export all your accounts on your machine in a JSON file.
$ # THIS CONTAINS ALL YOUR ACCOUNTS AND PASSWORDS UNENCRYPTED SO BE CAREFUL WHAT YOU DO WITH THIS
$ fndr export
You're export was created in the following location.
NOTE: this contains your account information unencrypted so keep it in a safe place!

/Users/moontography/.fndr/export_1614540410.json

Connectors

Connectors are interfaces that support storing your encrypted account information in different data sources. This could range from a blockchain, SQL database, Redis, your file system, etc. The possibilities are endless, and you can refer to the types to understand the interface needed to build your own connector(s).

filesystem (default)

Store account information securely on your machine that is AES-256 bit encrypted with a secret you provide. When running fndr for the first time, you'll be prompted to enter a secret/password that will be used to encrypt your data. Do not lose this secret in case you need to recover your passwords later!

$ fndr use -c filesystem

jupiter

Store account information securely on the Jupiter blockchain.

$ fndr use -c jupiter

Requirements

  • A funded Jupiter blockchain address (JUP-XXX-XXX...)
    • When we say "funded", we mean you need a VERY TINY amount of JUP in this address. We attempt to fund a newly created account that will be used to store transactions with your encrypted account data with 0.0005 JUP (50000 NQT), which as of the time of writing is fractions of a cent in USD.

We want your ideas and PRs for new connectors!

TODO

Today if you've been using a connector and would like to switch to a different one, your accounts are not ported over to the new connector. We will add this functionality soon.

Development

I'd love for you to contribute to the project! Use the steps below to pull down the source code and build, and feel free to create PRs as you'd like.

All PRs need to passing tests that test any additions or changes to existing code.

$ git clone https://github.com/whatl3y/fndr
$ cd fndr
$ npm install
$
$ # run tests
$ npm test
$
$ # build app (also run this after making changes to source code)
$ npm run build
$
$ # now you can run commands with the locally built entry point
$ # example:
$ node dist/fndr search -q facebook

Quick Note

fndr with the filesystem connector is basically a rebuild of hide password manager. I'm still decided whether to rename this repo back to hide and provide clear migration steps from it or leave fndr alone, I haven't really decided yet :)

Tips w/ cryptocurrency

I love FOSS (free and open source software) and for the most part don't want to charge for the software I build. It does however take a good bit of time keeping up with feature requests and bug fixes, so if you have the desire and ability to send me a free coffee, it would be greatly appreciated!

  • Bitcoin (BTC): 3D779dP5SZo4szHivWHyFd6J2ESumwDmph
  • Ethereum (ETH and ERC-20 tokens): 0xF3ffa9706b3264EDd1DAa93D5F5D70C8f71fAc99
  • Stellar (XLM): GACH6YMYFZ574FSGCV7IJXTGETEQL3DLQK64Z6DFGD57PZL5RH6LYOJT
  • Jupiter (JUP) mainnet: JUP-TUWZ-4B8Z-9REP-2YVH5

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
0.2.21latest

Version History

VersionDownloads (Last 7 Days)Published
0.2.21
0.2.10
0.2.00
0.1.190
0.1.180
0.1.170
0.1.160
0.1.150
0.1.142
0.1.133
0.1.122
0.1.111
0.1.101
0.1.90
0.1.81
0.1.71
0.1.61
0.1.51
0.1.41
0.1.31
0.1.21
0.1.11
0.1.01
0.0.21
0.0.11

Package Sidebar

Install

npm i fndr

Weekly Downloads

21

Version

0.2.2

License

MIT

Unpacked Size

166 kB

Total Files

88

Last publish

Collaborators

  • whatl3y