We can do this by just adding a “reset” button to the enter code state
I noticed that when you reset an exit that’s been registered, the state goes back to ‘New’ but when you go to register it again, the registration seems to happen automatically without emailing a new code or asking for a code again.
I expected a new code to arrive and be required. Maybe this is planned since @drozdiak1 is still working on updating the registration endpoints.
@kindiana is there a state machine diagram for the exit state?
@Adam_Soltys I think that once you have registered with an exit (successfully confirmed email), you “have an account”. Hitting the “Reset” button just resets the exit listing state in your router.
To get the functionality you want, the “Reset” button would involve also asking the exit to erase the account. I’m not sure what this would accomplish.
Ok that makes sense actually, it just makes it a little more difficult to test the verification process. Is there some way for me to access the exit to reset my own account for dev purposes?
One thing I did notice (I think, only tried once and I’ve been thoroughly confused all day…) is that even when I signed up to the same exit with a different email, it still just auto registered me. I suppose we would actually want a new code in that case though.
We need to get the debugging functionality that Adam needs in. Either we have an endpoint that resets a router’s wireguard key without a reflash, or we have an endpoint on a test exit that makes it forget its database.
@Adam_Soltys your confusion results from the fact that you think of the email address as being the account identifier, but it is not. The account identifier is the router’s wireguard key, which is not visible to you. The only thing that the exit actually uses the email for is to check that you have access to an email account at all. This is intended as a (weak) anti sybil measure.
I’m not sure if this is actually a problem, but it is weird. Can anyone think of a reason why this would be an issue? Let’s roll with it and see if things end up confusing for the user.
Ok thanks that makes about the wg key being the identifier and explains why putting another email in didn’t cause the exit to re-verify me. As for having a test exit, I’m thinking I may want to configure my gateway router at home as an exit anyways since I’ve noticed some performance degradation when I’m on AltheaHome as opposed to my normal wifi that I’m guessing is related to the fact that I’m using a remote exit. If I get that working then I can wipe the database as I please. A /wipe or /reset endpoint might still be handy though…
you need a vm for a exit, since it’s kinda it’s own thing. If you give me an ssh key I can give you access to borked, an exit which you can re-deploy and reset at will.