dawenxi-tech / 2fa

A 2FA desktop application.
MIT License
2 stars 1 forks source link

Sync 2FA codes between devices #17

Open gedw99 opened 9 months ago

gedw99 commented 9 months ago

Sync the 2FA data between all devices.

this is an idea that I think might be useful @heramerom

this works using jetstream. Golang. So all your laptops and mobile hardware can allow you to edit 2FA data and have it sync to all your other devices and / or servers that utilise this data.

nsts jetstream is encrypted at rest and over the wire so your codes are secure.

todo :

make a simple nats embedded server that deploys to fly.io.

Hook into an on change event in the client and then forward to nats , which will automatically create an update on all clients either on line or when they come back online later. It’s ordered.

reconciliation. if you have many offline clients where you edit the 2FA codes , we diff the change so that changes are merged to other clients without issues. Client cofe will work because there is no relationalism between in different 2FA codes.

setup laptop level env so you can simulate many clients syncing with them being online and / or offline, so that we can validate the reconciliation logic works.

Write test that’s exploit this multi device setup so we validate it through regressions .

heramerom commented 9 months ago

That's a greate idea. Is fly.io is free to use? I will take a look.

gedw99 commented 9 months ago

It’s free

if you want I can add the bits to the makefile to automate it ?

it’s globally geo distributed automatically so that requests go to nearest data center.

I run SQLite and Nats jetstream in it too. They have a thing called litestream that is golang that will sync the db between data centers

gedw99 commented 9 months ago

Are you interested in this Sync feature though ? I really don’t want to hijack your project.

adding sync via NATS jetstream is pretty easy as it can run globally on fly and will auto sync between fly data centers .

i can move sync into a different repo so you can use it with 2FA if you want to :)

heramerom commented 9 months ago

It a good idea. But I have a lot of others work todo. Currently the app features is enough for me.

If you are interesting in maintain this project, I can give you admin privilege or move the repo to your own account if you want.

gedw99 commented 9 months ago

Oh I don’t at all suggest you do it. I can do it. I just wanted to check it was cool with you .

Probably easier to ist leave it on your GitHub .. thanks for giving me write rights btw..