diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..c29d87c --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,46 @@ +# Roadmap for yauth.io + +This document contains detailed information about the project scope and future roadmap + +## V 0.1.0 [To be released by 20-August-2021] + +- [ ] Create boilerplate for server + - [ ] Use golang as server side language + - [ ] Use [Prisma.io](https://github.com/prisma/prisma-client-go) 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 + - [ ] 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 [gorilla sessions](https://github.com/gorilla/sessions) 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 + - [ ] 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 + - [ ] 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 +- [ ] 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