Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
[Feature Request] Allow a user to have multiple note "vaults" and manage them independantly #621
I recently started work at a new client, and for the first few days I didn't have a computer. I pulled out my own laptop and used, of course, standard notes to document my first week's worth of meetings. When I got my work machine, I installed standard notes and signed in.
I've realized though, I have a problem. My notes for this client are now mixed in with my personal ones. If I were to leave, I wouldn't want the client pulling up standard notes and getting to some of my non client data.
I can, of course, setup a new user id/ password based on my client, which has some drawbacks.
If I take my own laptop to a meeting (the client only has desktops) then I would have to swap between my personal and client accounts, which means logging out and back in. And when you logout, it clears the cache, which means when I log back in it has to redownload and decrypt everything.
The other issue I face is around subscription based features. I'm a subscriber, and that is tied to my main ID. If I create a new login / password to use on my client system, I lose my subscription features.
What I guess I'm looking for is a way to let one user have multiple note "vaults" and manage them independent of each other.
First, separate the sign in to standard notes from the ID used to create a vault.
Next, instead of the email address, allow a user defined name for the vault ID. Encryption would be a combination of the email, vault ID, and password.
Provide a user a way to create multiple vaults and easily switch between them.
Allow a user to logout out of a single vault, and only clear the cache for that single vault.
Allow a user to logout of all values at once, and thus clear all the cache's.
Finally, make it so a user is not required to have all values across all their PCs. Thus on computer 1, a user could have Vault A and Vault B, but on computer 2, they may have only logged into Vault B.
All users will have a "default" vault where the vault ID is the same as the email address used to login to standard notes (similar to the way it works now). When a user logs into standard notes, they are taken to this default vault. (If it doesn't exist, in the case of a first time user it would be created).
A user would not be allowed to delete his default vault, or remove it, but they could simply choose not to use it.
A new vault menu would be added, with the option of:
Create New: Create new is pretty obvious, it prompts for a vault name and password, then creates it.
Add Existing Vault: This would make the user supply an existing vault name and ID. If the name and ID are correct, the vault would be down loaded and decrypted. You might want to show the user a list of their existing vaults, on the other hand it might be more secure if we made the user know the vault name and key it in.
Switch Vault: This would have a pop out or similar mechanism to switch to a different vault. Users shouldn't be required to login to a vault when switching, and the local cache should not be removed during a switch. It will list all vaults the user is currently signed into on that device. It will NOT list all of the vaults a user owns.
Sign Out of Vault: This would sign out of the currently selected vault, and remove its cache from the system. When a user signs out of a vault, that vault name would no longer appear on the Switch Vault menu option. After sign out user is taken to their default vault, from there they can go to another vault via the Switch Vault menu option.
Delete Vault: This one is a bit tricky, as you'd have to determine how to coordinate across multiple machines, but users should be allowed to delete a vault when they no longer need it, with the exception of the default vault.
If a user signs out of standard notes, it will cascade sign out of all their vaults and remove all the caches.
This foundation would put you in a good position for another feature, vault sharing. Allow a user to pick a vault, and share that vault with another standard notes user. Presumably the second user would have been given the vault name and password from the vault owner. But once shared, both could work on the same set of notes. (Or, you could make a share read only, so the second user could see but not update the notes).
I could see this being a great enterprise feature, members of a company could create a vault for a new project, and create a shared pool of notes. Or, a husband and wife could have a shared set of notes for their household, but at the same time keep their other notes separated.
Naturally vault sharing should be a paid feature, or perhaps allow sharing with one other person (for example husband and wife) for free, then more than one person has to be a paid feature.
Thanks for your consideration, let me know if you have further questions.
This would be cool. Really it can just be accomplished with multiple account switching. But different workspaces within one account can be another option. This is more of a long term priority due to the complexity of building it out. But something on my mind as well.