Skip to content

Server account model #116

@robknight

Description

@robknight

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions