diff --git a/README.md b/README.md index 2abf378..3032ed4 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,8 @@ # yauth -An open source authentication and authorization system. +yauth (aka your-auth) is a complete open source authentication and authorization solution for your applications. Bring your database and have complete control over the authentication, authorization and user data. It is a microservice that can be deployed anywhere and connected any sql database. -## Overview - -yauth (aka your-auth) is a complete open source authentication and authorization solution for your applications. Bring your database and have complete control over the authentication and user data. This an [Auth0](https://auth0.com) alternative with complete data control. +This an [Auth0](https://auth0.com) opensource alternative. ## Features ### Flexible and easy to use diff --git a/ROADMAP.md b/ROADMAP.md index 45c95d1..f62072b 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -4,43 +4,52 @@ This document contains detailed information about the project scope and future r ## V 0.1.0 [To be released by 20-August-2021] -- [ ] Create boilerplate for server - - [ ] Use golang as server side language - - [ ] Use [gorm](https://github.com/go-gorm/gorm) as ORM - - [ ] Define base schema for user - - [ ] Define the auth schemes and variables required for that - - [ ] Basic Auth (Username & Password based) - - [ ] Google Login - - [ ] Github Login +- [x] Create server + - [x] Use golang as server side language + - [x] Use [gorm](https://github.com/go-gorm/gorm) as ORM + - [x] Configure https://github.com/99designs/gqlgen for generating graphql schemas + - [x] Configure https://github.com/gin-gonic/gin for creating http server + - [x] Define base schema for user + - [x] Define the auth schemes and variables required for that + - [x] Basic Auth (Username & Password based) + - [x] Google Login + - [x] Github Login - [ ] Twitter Login - [ ] Facebook Login - [ ] Login with magic link (Send magic link mail) - - [ ] Add [mailing server](https://github.com/emersion/go-smtp) to send the magic link - - [ ] Allow configuring the master password to access the console (If not set UI console can be accessed by anyone) - - [ ] Allow configuring mailing server - - [ ] Allow configuring RSA/HSA Keys for oauth - - [ ] Allow configuring the DB client - - [ ] Allow configuring the Secret - - [ ] Allow configuring callback urls - - [ ] Allow configuring redis, should be optional if not used use the memory to store session - - [ ] Use [fiber sessions](https://docs.gofiber.io/api/middleware/session) for session management -- [ ] Create REST API - - [ ] Login - - [ ] Logout - - [ ] Authorize [Currently checks for valid token & if token is present in session] - - [ ] Should authorize using cookies - - [ ] Should authorize using Authorization header + - [x] Add [mailing server](https://github.com/emersion/go-smtp) to send the magic link + - [x] Allow configuring the master password to access the console (If not set UI console can be accessed by anyone) + - [x] Allow configuring mailing server + - [x] Allow configuring HSA Keys for oauth + - [ ] Allow configuring RSA keys for oauth + - [x] Allow configuring the DB client + - [x] Allow configuring the Secret + - [x] Allow configuring callback urls + - [x] Allow configuring redis, should be optional if not used use the memory to store session +- [x] Create Graphql mutations and query for following + - [x] Login mutation + - [x] Logout muttion + - [x] Token query :- Authorize [Currently checks for valid token & if token is present in session] + - [x] Should authorize using cookies + - [x] Should authorize using Authorization header - [ ] Role based access [Checks for particular role in JWT] - - [ ] Register - - [ ] Authorize UI console -- [ ] Create a UI console to configure the above parts - - [ ] Create next js app - - [ ] Use [Chakra UI](https://chakra-ui.com/docs/getting-started) for quick component boostraping + - [x] Signup + - [x] Forgot password + - [x] Update profile +- [ ] Create a UI console to configure the above parts [For now using graphql playground] + - [ ] Create react app - [ ] Allow user to configure above mentioned envs - [ ] Allow user to add user - [ ] Allow user to view users - [ ] Allow user to define the JWT token field -- [ ] A component library for react +- [x] A component library for react + - [x] Create YAuthProvider -> gives token, user, loading, setters + - [x] Create YAuth component -> Complete Login/Signup & Forgot password solution + - [x] Create YAuthResetPassword component -> Component that can be used to verify forgot password token and reset the password - [ ] Create a sdks - [ ] NodeJS sdk which acts as a middleware and can be used to authenticate & authorize users - [ ] Golang sdk which acts as a middleware and can be used to authenticate & authorize users +- [x] Create docker image +- [x] Create docker-compose file to quickly start this +- [ ] Create heroku button +- [ ] Create a website