mozilla-lockwise / lockbox-datastore

Experimental Data Storage module for Firefox Lockbox project, not being actively developed
https://mozilla-lockbox.github.io/lockbox-datastore/
Mozilla Public License 2.0
27 stars 3 forks source link

Cloud storage of saved credentials so that they can be accessed from any supported platforms (a single database of credentials for each user) #50

Open devinreams opened 6 years ago

devinreams commented 6 years ago

When I access Lockbox from another machine or Firefox browser instance, I want to log into my account and access all my previously saved entries, that are backed up securely in the cloud so that I have one consistent database of credentials.

Acceptance criteria

Todo

devinreams commented 6 years ago

Likely a sub-task of https://github.com/mozilla-lockbox/lockbox-extension/issues/209 when we get that far

sandysage commented 6 years ago

@linuxwolf I've a few questions for how we think of the sync logic here:

linuxwolf commented 6 years ago

If a user saves credentials to a Lockbox instance, without attaching a FxA, how are these handled? Option to combine those with existing data store?

This question isn't describing the problem enough, but I surmise it comes from something like the following scenario:

In this case, once the home computer Lockbox is linked to FxA and can synchronize with remote cloud storage, it starts a sync operation, and combines entries. This might result in duplicate entries if the user added the same credentials at work and at home before syncing. Resolving duplicates is something that will need to be addressed carefully, but to start keeping the duplicate entries seems the least impactful.

How often should sync run to ensure the 'latest' is captured and stored?

That is an open question still, and can be continually tuned as we move along. A document on about sync is still pending, which will describe frequency in detail, but to start I propose:

Do we/should we provide an option to manually sync?

This question is too light on details; is this "disable any syncing until the user specifically asks?" and/or "provide a way for users to request a sync 'right now'?"

I think the latter is important for users to feel more confident they can get their data when they want it.

I think the former may have some use, but we'd have to consider why users would want to do this, and when/if to support those reasons.

sandysage commented 6 years ago

In this case, once the home computer Lockbox is linked to FxA and can synchronize with remote cloud storage, it starts a sync operation, and combines entries.

🙌 This is the case I had in mind. And this seems like the best approach.

This might result in duplicate entries if the user added the same credentials at work and at home before syncing.

Sure. Let's see how much of an issue this presents early on. I see some of this becoming more critical when we have importing. But in the meantime, I agree that we can proceed with keeping duplicate entries.

but to start I propose: sync every 30 seconds while app is running & sync when an entry is modified

Awesome-sauce!

This question is too light on details; is this "disable any syncing until the user specifically asks?" and/or "provide a way for users to request a sync 'right now'?"

Mea culpa. I was referencing the latter. I agree that it's probably important for users to have that ability to control their access.

I think the former may have some use, but we'd have to consider why users would want to do this, and when/if to support those reasons.

Yup! Sounds good.

I'm going to update the description with these decisions.