{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":360806446,"defaultBranch":"main","name":"nest-starter","ownerLogin":"crazyoptimist","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-04-23T07:53:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/55074937?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1718617456.0","currentOid":""},"activityList":{"items":[{"before":"b4aeddca58d3447f33024c3f1737490991eb8b44","after":"ed502da71dd7166da5c8e403443eb7d9b23ba4ce","ref":"refs/heads/main","pushedAt":"2024-06-27T21:11:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"nit: renaming enum fields","shortMessageHtmlLink":"nit: renaming enum fields"}},{"before":"e625bbcb4e3ca48a3989c192f26aabfe36f6ece0","after":"b4aeddca58d3447f33024c3f1737490991eb8b44","ref":"refs/heads/main","pushedAt":"2024-06-18T18:14:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"refactor(security): global error handler\n\n- Prevent exposing internal error details\n- Remove duplicate code by applying guards and api doc decorators at\n controller level","shortMessageHtmlLink":"refactor(security): global error handler"}},{"before":"dd3ddef7e6f635e38af92463e177354ce3e74ebe","after":"e625bbcb4e3ca48a3989c192f26aabfe36f6ece0","ref":"refs/heads/main","pushedAt":"2024-06-18T10:16:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"refactor(security): use bcrypt the right way,\n\nnot hashing refresh token","shortMessageHtmlLink":"refactor(security): use bcrypt the right way,"}},{"before":"e625bbcb4e3ca48a3989c192f26aabfe36f6ece0","after":"dd3ddef7e6f635e38af92463e177354ce3e74ebe","ref":"refs/heads/main","pushedAt":"2024-06-18T09:59:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"chore(security): conseal db error details","shortMessageHtmlLink":"chore(security): conseal db error details"}},{"before":"73a1834329f03c6def7ea9b0a93c7e7af378810b","after":"e625bbcb4e3ca48a3989c192f26aabfe36f6ece0","ref":"refs/heads/main","pushedAt":"2024-06-17T09:43:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"refactor(security): use bcrypt the right way,\n\nnot hashing refresh token","shortMessageHtmlLink":"refactor(security): use bcrypt the right way,"}},{"before":"e9d6c9b0a95f97cbd1f8d9288385f7c270501a54","after":null,"ref":"refs/heads/feat/token-refresh-and-logout","pushedAt":"2024-06-14T20:04:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"}},{"before":"40a208cfedc87724a596d860a79ce6c0aefad37c","after":"73a1834329f03c6def7ea9b0a93c7e7af378810b","ref":"refs/heads/main","pushedAt":"2024-06-14T20:00:13.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"Merge pull request #54 from crazyoptimist/feat/token-refresh-and-logout\n\nfeat: implement token refresh and logout","shortMessageHtmlLink":"Merge pull request #54 from crazyoptimist/feat/token-refresh-and-logout"}},{"before":null,"after":"e9d6c9b0a95f97cbd1f8d9288385f7c270501a54","ref":"refs/heads/feat/token-refresh-and-logout","pushedAt":"2024-06-14T19:57:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"feat: implement token refresh and logout\n\nthe right way!!","shortMessageHtmlLink":"feat: implement token refresh and logout"}},{"before":"93f12d731a2247cb49345bf910d6dc99fd73d841","after":"40a208cfedc87724a596d860a79ce6c0aefad37c","ref":"refs/heads/main","pushedAt":"2024-06-14T09:32:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"fix: invalidate user cache when updating","shortMessageHtmlLink":"fix: invalidate user cache when updating"}},{"before":"2e2b8c547b6a2a4cb95b5a68ec074f9f03702933","after":"93f12d731a2247cb49345bf910d6dc99fd73d841","ref":"refs/heads/main","pushedAt":"2024-06-14T08:05:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"refactor: rename signin to login","shortMessageHtmlLink":"refactor: rename signin to login"}},{"before":"f6e5cee92206a501f7d93f2b322c5d746b188db7","after":"2e2b8c547b6a2a4cb95b5a68ec074f9f03702933","ref":"refs/heads/main","pushedAt":"2024-06-13T21:43:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"feat: handle notFound error, make use of logger","shortMessageHtmlLink":"feat: handle notFound error, make use of logger"}},{"before":"849c1af75fa187ac58bbec377ba200a3640019b9","after":"f6e5cee92206a501f7d93f2b322c5d746b188db7","ref":"refs/heads/main","pushedAt":"2024-06-13T08:27:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"feat: take full control over non-http exceptions","shortMessageHtmlLink":"feat: take full control over non-http exceptions"}},{"before":"5a515c9590a14370ca1c29aa537b2eefcd0c0705","after":"849c1af75fa187ac58bbec377ba200a3640019b9","ref":"refs/heads/main","pushedAt":"2024-06-03T08:52:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"feat: update user with roles","shortMessageHtmlLink":"feat: update user with roles"}},{"before":"fde5d6bc4ef9a9905f9d30bbf04f6e9b94015de4","after":null,"ref":"refs/heads/feat/rbac-with-casl","pushedAt":"2024-05-31T23:38:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"}},{"before":"978f5db0dfdf8d1eb3634565d87b35ad4792b2ad","after":"5a515c9590a14370ca1c29aa537b2eefcd0c0705","ref":"refs/heads/main","pushedAt":"2024-05-31T23:24:12.000Z","pushType":"pr_merge","commitsCount":7,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"Merge pull request #53 from crazyoptimist/feat/rbac-with-casl\n\nFeat: Implemented claim based authorization with CASL","shortMessageHtmlLink":"Merge pull request #53 from crazyoptimist/feat/rbac-with-casl"}},{"before":"97e0730b3b332b3120d8f378718947c578d66932","after":"fde5d6bc4ef9a9905f9d30bbf04f6e9b94015de4","ref":"refs/heads/feat/rbac-with-casl","pushedAt":"2024-05-31T23:16:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"chore: adjust docker compose file","shortMessageHtmlLink":"chore: adjust docker compose file"}},{"before":"22e6941f5ecafa5cfd8a9cbf7c783f3614b3cc6b","after":"97e0730b3b332b3120d8f378718947c578d66932","ref":"refs/heads/feat/rbac-with-casl","pushedAt":"2024-05-31T23:04:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"feat: enforce access control","shortMessageHtmlLink":"feat: enforce access control"}},{"before":"1f8117eb182d41c507063d8133911e925eb285a3","after":"22e6941f5ecafa5cfd8a9cbf7c783f3614b3cc6b","ref":"refs/heads/feat/rbac-with-casl","pushedAt":"2024-05-31T22:10:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"feat: cache users in jwt auth","shortMessageHtmlLink":"feat: cache users in jwt auth"}},{"before":"0d59e50f61706ce5688633e09e1e9d8bbdca7eca","after":"1f8117eb182d41c507063d8133911e925eb285a3","ref":"refs/heads/feat/rbac-with-casl","pushedAt":"2024-05-31T20:07:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"feat: seeding","shortMessageHtmlLink":"feat: seeding"}},{"before":"d7a55f98f70354b76d57fe1188d00500bc02c9c0","after":"0d59e50f61706ce5688633e09e1e9d8bbdca7eca","ref":"refs/heads/feat/rbac-with-casl","pushedAt":"2024-05-31T18:59:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"chore: generate migration for adding roles","shortMessageHtmlLink":"chore: generate migration for adding roles"}},{"before":"d7a55f98f70354b76d57fe1188d00500bc02c9c0","after":"978f5db0dfdf8d1eb3634565d87b35ad4792b2ad","ref":"refs/heads/main","pushedAt":"2024-05-31T18:15:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"refactor: autoload entities","shortMessageHtmlLink":"refactor: autoload entities"}},{"before":null,"after":"d7a55f98f70354b76d57fe1188d00500bc02c9c0","ref":"refs/heads/feat/rbac-with-casl","pushedAt":"2024-05-31T18:15:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"feat: wip - adding rbac","shortMessageHtmlLink":"feat: wip - adding rbac"}},{"before":"978f5db0dfdf8d1eb3634565d87b35ad4792b2ad","after":"d7a55f98f70354b76d57fe1188d00500bc02c9c0","ref":"refs/heads/main","pushedAt":"2024-05-31T18:14:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"feat: wip - adding rbac","shortMessageHtmlLink":"feat: wip - adding rbac"}},{"before":"35c09dbed92f5b74b6c64c38baae9a72cedfb919","after":"978f5db0dfdf8d1eb3634565d87b35ad4792b2ad","ref":"refs/heads/main","pushedAt":"2024-05-31T17:37:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"refactor: autoload entities","shortMessageHtmlLink":"refactor: autoload entities"}},{"before":"3f94959e47d5672160369dd1378015a37bcc85e6","after":"35c09dbed92f5b74b6c64c38baae9a72cedfb919","ref":"refs/heads/main","pushedAt":"2024-05-31T07:47:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"fix: typo in config validation","shortMessageHtmlLink":"fix: typo in config validation"}},{"before":"1b92be42ac126cf91946d389bf09dbf45b9aec8e","after":"3f94959e47d5672160369dd1378015a37bcc85e6","ref":"refs/heads/main","pushedAt":"2024-05-23T17:22:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"fix: handle duplicate filter keys in query param","shortMessageHtmlLink":"fix: handle duplicate filter keys in query param"}},{"before":"fae9b72ff97a423e8c70ba5a379c2399fd8ae6fb","after":"1b92be42ac126cf91946d389bf09dbf45b9aec8e","ref":"refs/heads/main","pushedAt":"2024-05-17T17:57:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"fix: no auth healthcheck","shortMessageHtmlLink":"fix: no auth healthcheck"}},{"before":"581391b170a70bba77ec589af6e98fa3bbc01f70","after":"fae9b72ff97a423e8c70ba5a379c2399fd8ae6fb","ref":"refs/heads/main","pushedAt":"2024-05-17T15:54:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"docs: proofread README","shortMessageHtmlLink":"docs: proofread README"}},{"before":"22f868f90d0c7e786682827095b809468602611c","after":"581391b170a70bba77ec589af6e98fa3bbc01f70","ref":"refs/heads/main","pushedAt":"2024-05-17T11:58:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"chore: default DB_TYPE value for data-source.ts","shortMessageHtmlLink":"chore: default DB_TYPE value for data-source.ts"}},{"before":"6b36f93e1a3effb70bc76aa1d3bfcfec9ba70345","after":"22f868f90d0c7e786682827095b809468602611c","ref":"refs/heads/main","pushedAt":"2024-05-16T19:23:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"crazyoptimist","name":"crazyoptimist","path":"/crazyoptimist","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55074937?s=80&v=4"},"commit":{"message":"chore: bump version","shortMessageHtmlLink":"chore: bump version"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEcUQ5bgA","startCursor":null,"endCursor":null}},"title":"Activity ยท crazyoptimist/nest-starter"}