Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

User management and authentication #19

Open
elaineg opened this issue Apr 23, 2024 · 1 comment
Open

User management and authentication #19

elaineg opened this issue Apr 23, 2024 · 1 comment
Assignees

Comments

@elaineg
Copy link
Contributor

elaineg commented Apr 23, 2024

What feature(s) would you like to see?

Current behaviour: Coral interface only interacts with one user. Conversations, messages, files, etc are only associated with a single user.

Additional information

Expected behaviour: Add user management to Coral interface. When a user deploys Coral interface, they go to a screen that asks them to authenticate. Then they can only access conversations that are associated with their user ID.

@tianjing-li tianjing-li self-assigned this Apr 26, 2024
@tianjing-li
Copy link
Collaborator

tianjing-li commented Apr 26, 2024

Would like to take this on:

My suggestion for now is to keep the scope to only simple user email/password authentication.

Here is what I would consider part of this initial scope:

  • Adding a hashed_password field on the User model, we don't want to store this in plaintext so we would have to stored a hashed password in the DB instead. Login checks would just hash the input password and check against the hashed_password value. We could also salt the value if needed, but since these tools are mostly used internally, might be of minimal use.
  • Update the UpdateUser schema to optionally change all possible configurations
  • Update the CreateUser schema to take a required password
  • Add a /authenticate or /login endpoint to check if the email and hashed password input correspond to a user in the system

TOTAL : ~1 week of work

Mid-term goals:

  • Upon authenticating, manage a session for the current user instead of passing User-Id in request headers

TOTAL: ~couple days

Potential long-term goals:

  • OAuth
  • 2FA

Questions:

  • Will anything be accessible cross-user in an org? (eg Conversations/Files/etc)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants