{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":832738262,"defaultBranch":"main","name":"nextjs-auth-starter","ownerLogin":"DragonSenses","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-07-23T16:12:55.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/107849653?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1721751176.0","currentOid":""},"activityList":{"items":[{"before":"922795b05954246adbb48ab78755204e0ba4a399","after":"81c6e6d72874effcd139ab8976e99e9afdc16f03","ref":"refs/heads/main","pushedAt":"2024-09-26T01:37:11.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Implement role retrieval and persistence","shortMessageHtmlLink":"feat: Implement role retrieval and persistence"}},{"before":"744816c0aebc11177bcc70233493defcce5ac766","after":"922795b05954246adbb48ab78755204e0ba4a399","ref":"refs/heads/main","pushedAt":"2024-09-18T19:51:11.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Restrict user access during sign-in flow\n\nUsing the signIn callback from auth.js to restrict users.","shortMessageHtmlLink":"feat: Restrict user access during sign-in flow"}},{"before":"125265a4cb8683b4e9a8e5ac521d1cc65c51fe4f","after":"744816c0aebc11177bcc70233493defcce5ac766","ref":"refs/heads/main","pushedAt":"2024-09-14T04:50:23.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat(auth): Create custom JWT and Session types\n\n- Defined CustomJWT and CustomSession interfaces to extend JWT and session objects\n- Updated auth.config.ts to use the custom types in JWT and session callbacks\n- Added type guards to ensure proper type assignments\n\nThis commit ensures that JWT and session objects include necessary user properties, improving type safety and consistency.","shortMessageHtmlLink":"feat(auth): Create custom JWT and Session types"}},{"before":"c807dc7d2e1ddfd8ff6eb828e2565afe62e37df3","after":"125265a4cb8683b4e9a8e5ac521d1cc65c51fe4f","ref":"refs/heads/main","pushedAt":"2024-09-12T02:10:24.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Implement sign-out functionality in settings\n\n- Add a form to the SettingsPage component\n- Implement server-side action for sign-out functionality\n- Rename signOut to authSignOut to avoid naming conflicts\n- Display session information within the page","shortMessageHtmlLink":"feat: Implement sign-out functionality in settings"}},{"before":"bf1d39a988f94fb6e1c452be346b532b57c7275f","after":"c807dc7d2e1ddfd8ff6eb828e2565afe62e37df3","ref":"refs/heads/main","pushedAt":"2024-09-08T04:12:16.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat(signIn): Improve error handling and logging\n\n- Added detailed error logging for validation errors.\n- Improved user-friendly error messages.\n- Logged received values with descriptive messages for better debugging.\n\nThis update ensures better traceability and easier debugging of sign-in issues.","shortMessageHtmlLink":"feat(signIn): Improve error handling and logging"}},{"before":"63a4c3193a64eb20491356e2d8b8b1648a2e0b7c","after":"bf1d39a988f94fb6e1c452be346b532b57c7275f","ref":"refs/heads/main","pushedAt":"2024-09-07T22:01:28.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Define credentials object for validation\n\n- Added email and password fields to credentials object\n- Provides clear structure for user input in sign-in form\n- Ensures proper validation and user guidance","shortMessageHtmlLink":"feat: Define credentials object for validation"}},{"before":"69884e7a9be43a40dc52af652f62dca1e9bcf621","after":"63a4c3193a64eb20491356e2d8b8b1648a2e0b7c","ref":"refs/heads/main","pushedAt":"2024-09-07T04:14:59.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Add authorize function w/ schema validation\n\n- Added SignInSchema validation to the authorize function\n- Retrieved user by email from the database\n- Checked if the user exists and has a password\n- Compared provided password with stored hashed password\n- Returned user object if authentication is successful","shortMessageHtmlLink":"feat: Add authorize function w/ schema validation"}},{"before":"7d214809b566199761d6048a66d28c0da6bc386a","after":"69884e7a9be43a40dc52af652f62dca1e9bcf621","ref":"refs/heads/main","pushedAt":"2024-09-04T22:25:38.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"refactor(SignInPage): dynamic Redirect rendering\n\nDynamically import and render the Redirect component in SignInPage to handle client-side redirection. This ensures compatibility with server-side rendering and improves performance.","shortMessageHtmlLink":"refactor(SignInPage): dynamic Redirect rendering"}},{"before":"4f65b19698f75b0696fedb9b92066d10d3aebdc6","after":"7d214809b566199761d6048a66d28c0da6bc386a","ref":"refs/heads/main","pushedAt":"2024-09-04T03:10:19.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat(signin): Render Redirect on session existence\n\nImplemented logic to render the Redirect component in SignInPage when a session exists. This ensures users are redirected to the appropriate page if they are already signed in.","shortMessageHtmlLink":"feat(signin): Render Redirect on session existence"}},{"before":"55f2c3cbf6842b0403c0025be53b1dc1e18aed17","after":"4f65b19698f75b0696fedb9b92066d10d3aebdc6","ref":"refs/heads/main","pushedAt":"2024-09-04T02:29:35.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"refactor: Move resource protection to pages\n\nMoved resource protection functionality from middleware to individual pages.","shortMessageHtmlLink":"refactor: Move resource protection to pages"}},{"before":"a044f4f2f78a63e7d1c4c96b1d38efbc4360946f","after":"55f2c3cbf6842b0403c0025be53b1dc1e18aed17","ref":"refs/heads/main","pushedAt":"2024-09-03T04:55:13.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"refactor: Decouple middleware from database\n\n- Removed database functionality and session fetching from middleware.\n- Implemented route protection checks to ensure secure access.\n- Enhanced compatibility with Edge Runtime by eliminating Node.js API dependencies.","shortMessageHtmlLink":"refactor: Decouple middleware from database"}},{"before":"b47ca6feba15fac4bd4450184ac2d8996e6e806e","after":"a044f4f2f78a63e7d1c4c96b1d38efbc4360946f","ref":"refs/heads/main","pushedAt":"2024-08-17T05:23:27.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat(auth): Handle public routes in middleware","shortMessageHtmlLink":"feat(auth): Handle public routes in middleware"}},{"before":"96fc62ebdf628ce60c64d6d426c72851e97e8656","after":"b47ca6feba15fac4bd4450184ac2d8996e6e806e","ref":"refs/heads/main","pushedAt":"2024-08-16T04:50:26.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Handle protected routes in middleware","shortMessageHtmlLink":"feat: Handle protected routes in middleware"}},{"before":"9eee3cfe4af5571ed14f23e6d251ee073d8ff1e7","after":"96fc62ebdf628ce60c64d6d426c72851e97e8656","ref":"refs/heads/main","pushedAt":"2024-08-15T01:53:36.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat(routes): Implement access control routes","shortMessageHtmlLink":"feat(routes): Implement access control routes"}},{"before":"43ff73b1f8be678b4060c182ae670275c7209b60","after":"9eee3cfe4af5571ed14f23e6d251ee073d8ff1e7","ref":"refs/heads/main","pushedAt":"2024-08-14T05:50:06.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Configure NextAuth with prisma singleton","shortMessageHtmlLink":"feat: Configure NextAuth with prisma singleton"}},{"before":"69ae16aff03f8b24a1e5fc4625788b36d349cd43","after":"43ff73b1f8be678b4060c182ae670275c7209b60","ref":"refs/heads/main","pushedAt":"2024-08-13T03:36:40.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Configure selective middleware paths","shortMessageHtmlLink":"feat: Configure selective middleware paths"}},{"before":"bbb0eabf2dd1e025557363eef1dad77a504743c6","after":"69ae16aff03f8b24a1e5fc4625788b36d349cd43","ref":"refs/heads/main","pushedAt":"2024-08-11T00:11:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"chore: Install next-auth v5.0.0-beta.20","shortMessageHtmlLink":"chore: Install next-auth v5.0.0-beta.20"}},{"before":"4900c162a37c4204e02bd15cd979deffa7df6dce","after":"bbb0eabf2dd1e025557363eef1dad77a504743c6","ref":"refs/heads/main","pushedAt":"2024-08-09T23:30:11.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Improve error handling in getUserByEmail","shortMessageHtmlLink":"feat: Improve error handling in getUserByEmail"}},{"before":"684358ad46f8ffb13b8f0ef9e7338e258c3d1ee9","after":"4900c162a37c4204e02bd15cd979deffa7df6dce","ref":"refs/heads/main","pushedAt":"2024-08-09T01:40:50.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"chore: Install @types/bcrypt v5.0.2","shortMessageHtmlLink":"chore: Install @types/bcrypt v5.0.2"}},{"before":"d4b0e6e08206692d83fb6fdc36f5adfa3c37713b","after":"684358ad46f8ffb13b8f0ef9e7338e258c3d1ee9","ref":"refs/heads/main","pushedAt":"2024-08-07T20:38:36.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"chore: Add @auth/prisma-adapter v2.4.2","shortMessageHtmlLink":"chore: Add @auth/prisma-adapter v2.4.2"}},{"before":"f82d629ac07ddd47d54169388e2aff536c9f3a42","after":"d4b0e6e08206692d83fb6fdc36f5adfa3c37713b","ref":"refs/heads/main","pushedAt":"2024-08-07T00:52:15.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"docs: Add section on prisma client singleton setup","shortMessageHtmlLink":"docs: Add section on prisma client singleton setup"}},{"before":"7ac0c775d35d687ccf98f886e8b2f3bde4918a96","after":"f82d629ac07ddd47d54169388e2aff536c9f3a42","ref":"refs/heads/main","pushedAt":"2024-08-06T00:01:23.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Create signUp server action to validate data","shortMessageHtmlLink":"feat: Create signUp server action to validate data"}},{"before":"6c8f42a0090aab298324aaa054cb0e397e8df01e","after":"7ac0c775d35d687ccf98f886e8b2f3bde4918a96","ref":"refs/heads/main","pushedAt":"2024-08-04T17:11:01.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"refactor: Change route from /register to /signup","shortMessageHtmlLink":"refactor: Change route from /register to /signup"}},{"before":"06cd8b4a33c33d7f584bd79ec1961809e6a79857","after":"6c8f42a0090aab298324aaa054cb0e397e8df01e","ref":"refs/heads/main","pushedAt":"2024-08-04T02:15:40.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Create SignUpPage","shortMessageHtmlLink":"feat: Create SignUpPage"}},{"before":"e2c006c0420891f1f714bd851775d1a153b20686","after":"06cd8b4a33c33d7f584bd79ec1961809e6a79857","ref":"refs/heads/main","pushedAt":"2024-08-03T14:31:47.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Add aria-labels on inputs for accessibility","shortMessageHtmlLink":"feat: Add aria-labels on inputs for accessibility"}},{"before":"fb205b046789827d1e291cf01e258a63693268ce","after":"e2c006c0420891f1f714bd851775d1a153b20686","ref":"refs/heads/main","pushedAt":"2024-08-02T18:42:00.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Add useTransition hook for form submission\n\n- Use useTransition to handle asynchronous form submission\n- Execute the user sign-in server action within the transition","shortMessageHtmlLink":"feat: Add useTransition hook for form submission"}},{"before":"9432c5eba625e702a88def5f5d1a9b59174d82a1","after":"fb205b046789827d1e291cf01e258a63693268ce","ref":"refs/heads/main","pushedAt":"2024-08-01T22:51:55.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Conditionally render FormError component\n\n- Added conditional rendering logic to display error messages in the FormError component.\n- Incorporated the ShieldAlert icon from the 'lucide-react' library\n- Styled the error message container for better visibility and better convey its purpose","shortMessageHtmlLink":"feat: Conditionally render FormError component"}},{"before":"a6314cb00e3779b4ead0848a52fabc67f7f894bb","after":"9432c5eba625e702a88def5f5d1a9b59174d82a1","ref":"refs/heads/main","pushedAt":"2024-07-31T20:00:51.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat(auth): Add sign-in submit button","shortMessageHtmlLink":"feat(auth): Add sign-in submit button"}},{"before":"b6e76c986ffcae6633629ae543306e6d3c788cbc","after":"a6314cb00e3779b4ead0848a52fabc67f7f894bb","ref":"refs/heads/main","pushedAt":"2024-07-30T22:26:37.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"feat: Add form components for SignInForm","shortMessageHtmlLink":"feat: Add form components for SignInForm"}},{"before":"74e424423bf2cd32d09c399c817984eb6288f556","after":"b6e76c986ffcae6633629ae543306e6d3c788cbc","ref":"refs/heads/main","pushedAt":"2024-07-29T16:51:11.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"DragonSenses","name":null,"path":"/DragonSenses","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107849653?s=80&v=4"},"commit":{"message":"refactor: Update BackButton component to use Link\n\nThis commit refactors the BackButton component to utilize the Next.js Link component for navigation. The 'href' prop specifies the link destination, and the 'label' prop sets the button text. The styling remains consistent with shadcn/ui.","shortMessageHtmlLink":"refactor: Update BackButton component to use Link"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNlQwMTozNzoxMS4wMDAwMDBazwAAAATA8eU3","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0yOVQxNjo1MToxMS4wMDAwMDBazwAAAASMIe76"}},"title":"Activity ยท DragonSenses/nextjs-auth-starter"}