-
Notifications
You must be signed in to change notification settings - Fork 0
Description
The server should maintain a list of accounts, with names and public keys.
The document server can also maintain a list of identity proofs for that account, where the owner of the keypair has proven some connection to a GitHub account via an identity server.
The identity server's role is to provide these identity proofs, which are then stored on the client and can be shared with the document server. The identity server does not need to communicate directly with the document server.
The uploader_id should be replaced by a unique identifier for the user account (probably the public key?).
This will allow the user to cheaply authenticate with a signature, which is good for things like polling for updates to their subscribed threads, or new upvote PODs available for download.
Migration
We should create new user accounts for users who have already signed in with the identity server. The number of users is very small so we can do this manually or with a simple script which reads from the identity server DB and inserts to the document server DB.
Signup flow
For now, I think it's fine to force users to sign in with GitHub. Ideally it would be optional, so you can post without a GitHub identity and then optionally use your GitHub identity to "claim" posts where your GitHub ID is listed as an author. However, all of our PODs assume that the user has an identity proof from the identity server, and so making GitHub identity optional would be a large change.