Commit 8f201e8
committed
fix: comprehensive code quality improvements across all packages
Security:
- Fix RolesGuard to use singular user.role instead of user.roles
- Read emailVerified/isActive from JWT payload instead of hardcoding true
- Extract userId from JWT via @currentuser decorator in OTP controller
- Add path traversal prevention in template service
- Remove dead oldRecord code in audit middleware
- Document auth guard requirements on unguarded controllers
Data integrity & BullMQ:
- Add job cleanup options (removeOnComplete/removeOnFail) to prevent Redis leak
- Fix duplicate notification record for in-app channel
- Add retry/backoff (3 attempts, exponential 5s) to all queues
- Close queue connections on module shutdown
- Only mark status='failed' on final retry attempt
- Add optional model scoping to soft-delete middleware
Feature flag parity:
- Add runtime feature guards for forRootAsync controllers (auth, storage,
audit-log, notifications) that return 404 when features are disabled
Constants & type safety:
- Export PRISMA_SERVICE constant, replace 30+ string literals across packages
- Add ROLES, VERIFICATION_TOKEN_TYPES, AUTH_PROVIDERS constants (auth)
- Add NOTIFICATION_STATUSES, NOTIFICATION_CHANNELS constants (notifications)
- Add @isin() DTO validation for role, platform, and channel fields
- Change StorageService.validateFile to throw BadRequestException
- Replace Promise<any> with concrete types in OrganizationService
Code reuse:
- Extract BaseCodeOtpProvider with shared verify/hash/generate logic
- Extract BaseNotificationProcessor with processWithStatusTracking()
- Extract buildRedisConnection() helper in notification module
- Extract validateAndConsumeToken() and toAuthenticatedUser() in auth service
- Standardize OTP event emission to async with error handling
- Deduplicate rate limiting (guard delegates to OtpService.checkRateLimit)
Efficiency:
- Parallelize getEnabledMethods queries with Promise.all
- Fix double getEnabledMethods call in auth login
- Make template service use async file reads (fs.promises)
- Add bounded template cache (max 100 entries, FIFO eviction)
- Add pagination limits to unbounded queries (findAll, findByEntity, sessions)
- Add select clauses to register/getProfile/org-member queries
- Fix double useFactory in auth module forRootAsync
Cleanup:
- Remove dead ChangePasswordDto and empty SetupTotpDto
- Rename HttpExceptionFilter to AllExceptionsFilter (with backward-compat alias)
- Import event interfaces from shared file instead of re-declaring1 parent 01f9975 commit 8f201e8
80 files changed
Lines changed: 1883 additions & 709 deletions
File tree
- apps/demo/test
- packages
- nestjs-audit-log/src
- guards
- middleware
- nestjs-auth/src
- dto
- guards
- interfaces
- organizations
- dto
- strategies
- nestjs-notifications/src
- channels
- email
- in-app
- push
- sms
- dto
- guards
- integrations/auth
- preferences
- templates
- nestjs-otp/src
- decorators
- dto
- guards
- providers
- nestjs-prisma/src
- middlewares
- nestjs-response/src
- nestjs-storage/src
- guards
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Large diffs are not rendered by default.
Lines changed: 3 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | 3 | | |
5 | 4 | | |
6 | 5 | | |
7 | 6 | | |
8 | 7 | | |
9 | | - | |
10 | 8 | | |
11 | 9 | | |
12 | 10 | | |
| |||
21 | 19 | | |
22 | 20 | | |
23 | 21 | | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | 22 | | |
30 | 23 | | |
31 | | - | |
32 | 24 | | |
33 | 25 | | |
34 | 26 | | |
| |||
53 | 45 | | |
54 | 46 | | |
55 | 47 | | |
56 | | - | |
| 48 | + | |
57 | 49 | | |
58 | 50 | | |
59 | 51 | | |
| |||
80 | 72 | | |
81 | 73 | | |
82 | 74 | | |
83 | | - | |
| 75 | + | |
84 | 76 | | |
85 | 77 | | |
86 | 78 | | |
| |||
99 | 91 | | |
100 | 92 | | |
101 | 93 | | |
102 | | - | |
| 94 | + | |
103 | 95 | | |
104 | 96 | | |
105 | 97 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
| 22 | + | |
21 | 23 | | |
22 | 24 | | |
23 | 25 | | |
24 | 26 | | |
25 | | - | |
26 | | - | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
20 | 18 | | |
21 | 19 | | |
22 | 20 | | |
| |||
31 | 29 | | |
32 | 30 | | |
33 | 31 | | |
34 | | - | |
| 32 | + | |
35 | 33 | | |
36 | 34 | | |
37 | 35 | | |
| |||
225 | 223 | | |
226 | 224 | | |
227 | 225 | | |
| 226 | + | |
228 | 227 | | |
229 | 228 | | |
230 | 229 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
14 | | - | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
108 | 109 | | |
109 | 110 | | |
110 | 111 | | |
| 112 | + | |
111 | 113 | | |
112 | 114 | | |
113 | 115 | | |
| |||
Lines changed: 34 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
Lines changed: 11 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
103 | 113 | | |
104 | 114 | | |
105 | 115 | | |
| |||
108 | 118 | | |
109 | 119 | | |
110 | 120 | | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | 121 | | |
126 | 122 | | |
127 | 123 | | |
| |||
134 | 130 | | |
135 | 131 | | |
136 | 132 | | |
137 | | - | |
| 133 | + | |
138 | 134 | | |
139 | 135 | | |
140 | 136 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
68 | | - | |
69 | 68 | | |
70 | 69 | | |
71 | 70 | | |
| |||
76 | 75 | | |
77 | 76 | | |
78 | 77 | | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
54 | 55 | | |
55 | 56 | | |
56 | 57 | | |
57 | | - | |
| 58 | + | |
58 | 59 | | |
59 | 60 | | |
60 | 61 | | |
| |||
111 | 112 | | |
112 | 113 | | |
113 | 114 | | |
114 | | - | |
| 115 | + | |
115 | 116 | | |
116 | 117 | | |
117 | 118 | | |
| |||
223 | 224 | | |
224 | 225 | | |
225 | 226 | | |
226 | | - | |
| 227 | + | |
227 | 228 | | |
228 | 229 | | |
229 | 230 | | |
| |||
0 commit comments