@koalarx/nest 1.17.0 → 1.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,12 +51,14 @@ npm run start:dev
|
|
|
51
51
|
- [x] Módulo DDD configurado
|
|
52
52
|
- [x] Documentação da API (Scalar UI)
|
|
53
53
|
- [x] Tratamento de erros robusto
|
|
54
|
-
- [x]
|
|
54
|
+
- [x] Guards de autenticação (JWT + API Key)
|
|
55
55
|
- [x] Banco de dados Prisma
|
|
56
56
|
- [x] Redis para background services
|
|
57
57
|
|
|
58
58
|
### Forma Manual
|
|
59
59
|
|
|
60
|
+
> ⚠️ **Requisito Obrigatório**: A abstração de banco de dados da biblioteca requer **Prisma como ORM**. Siga a [Configuração Inicial - Prisma](./docs/02-configuracao-inicial.md#configurar-prisma-obrigatório) para setup correto.
|
|
61
|
+
|
|
60
62
|
```bash
|
|
61
63
|
npm install @koalarx/nest
|
|
62
64
|
```
|
|
@@ -119,9 +121,10 @@ Acesse `http://localhost:3000/doc` para a documentação interativa!
|
|
|
119
121
|
|
|
120
122
|
### Segurança
|
|
121
123
|
|
|
122
|
-
- **Guards
|
|
123
|
-
- **
|
|
124
|
+
- **Guards**: Autenticação e autorização (JWT + API Key)
|
|
125
|
+
- **Estratégias Customizadas**: JwtStrategy e ApiKeyStrategy
|
|
124
126
|
- **@IsPublic()**: Marca endpoints como públicos
|
|
127
|
+
- **@RestrictByProfile()**: Restringe acesso por perfil de usuário
|
|
125
128
|
|
|
126
129
|
### Tratamento de Erros
|
|
127
130
|
|
|
@@ -155,15 +158,24 @@ export class SendReportJob extends CronJobHandlerBase {
|
|
|
155
158
|
.addCronJob(SendReportJob)
|
|
156
159
|
```
|
|
157
160
|
|
|
158
|
-
**Event
|
|
161
|
+
**Event Jobs** - Processe eventos assincronamente:
|
|
159
162
|
```typescript
|
|
160
163
|
@Injectable()
|
|
161
164
|
export class UserCreatedHandler extends EventHandlerBase {
|
|
162
|
-
|
|
163
|
-
|
|
165
|
+
async handleEvent(): Promise<void> {
|
|
166
|
+
// Processar evento de criação de usuário
|
|
167
|
+
console.log('Usuário criado!')
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Registrar em EventJob
|
|
172
|
+
export class UserEventJob extends EventJob<User> {
|
|
173
|
+
defineHandlers(): Type<EventHandlerBase>[] {
|
|
174
|
+
return [UserCreatedHandler]
|
|
175
|
+
}
|
|
164
176
|
}
|
|
165
177
|
|
|
166
|
-
.addEventJob(
|
|
178
|
+
.addEventJob(UserEventJob)
|
|
167
179
|
```
|
|
168
180
|
|
|
169
181
|
### Banco de Dados
|
|
@@ -310,14 +322,25 @@ src/
|
|
|
310
322
|
|
|
311
323
|
## Configuração de Ambiente
|
|
312
324
|
|
|
325
|
+
A lib já valida automaticamente as variáveis padrão. Crie seu `.env` com:
|
|
326
|
+
|
|
313
327
|
```env
|
|
328
|
+
# Variáveis obrigatórias
|
|
314
329
|
NODE_ENV=develop
|
|
315
330
|
DATABASE_URL=postgresql://user:password@localhost:5432/db
|
|
316
|
-
|
|
331
|
+
|
|
332
|
+
# Variáveis opcionais (padrão da lib)
|
|
333
|
+
REDIS_CONNECTION_STRING=redis://localhost:6379
|
|
317
334
|
SWAGGER_USERNAME=admin
|
|
318
335
|
SWAGGER_PASSWORD=password123
|
|
336
|
+
PRISMA_QUERY_LOG=false
|
|
337
|
+
|
|
338
|
+
# Suas variáveis customizadas
|
|
339
|
+
# CUSTOM_VAR=value
|
|
319
340
|
```
|
|
320
341
|
|
|
342
|
+
Ver [Configuração Inicial - Variáveis de Ambiente](./docs/02-configuracao-inicial.md#2-configurar-variáveis-de-ambiente) para detalhes.
|
|
343
|
+
|
|
321
344
|
## Índice da Documentação Original
|
|
322
345
|
|
|
323
346
|
A documentação abaixo foi mantida para referência de recursos específicos:
|