You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> Quick Setup Note: This project includes enviroment variables and configures instructions into .env.example file for development and testing environments, (remember all enviroment values is with your credentials). This facilitates rapid deployment and ensures the test suite runs out-of-the-box without extra security overhead.
4
+
> [!TIP] <palign="justify">
5
+
> Quick Setup Note: This project includes environment variables and configures instructions into .env.example file for development and testing environments, (remember all environment values must be filled with your credentials). This ensures a seamless local setup and allows the test suite to run out-of-the-box without extra security overhead.
6
6
[](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/ci.yml)
**What do the badges at the beginning of this project mean?**
65
+
<palign="justify"> **What do the badges at the top of this project signify?**
65
66
To ensure **Auth Mailer API** meets banking-grade standards, I have implemented 4 automated workflows (Pipelines) that run on every code change:
66
67
67
68
1.**Continuous Integration (CI - Jest):** Runs functional tests to ensure registration, login, and email delivery work perfectly.
68
69
2.**Static Security (SAST - CodeQL):** A professional-grade scanner that looks for hidden vulnerabilities in the code (such as potential data theft or SQL injections).
69
70
3.**Dynamic Security (DAST - OWASP ZAP):** A "simulated attack" on the live server to verify there are no open backdoors.
70
71
4.**Contract Validation (Postman/Newman):** Verifies that the communication between the server and the app is always accurate and error-free.
72
+
</p>
71
73
72
74
-**Green Badge (Passing):** The code has passed all 4 layers of auditing and is 100% safe for use.
73
75
-**Red Badge (Failing):** The system detected an error or risk and automatically blocked the update to protect users.
74
76
75
77
✅ **Unit Testing:** Implemented with **Jest**.
78
+
76
79
✅ **Security Audit:** Automated via **CodeQL**.
80
+
77
81
✅ **Vulnerability Scanning:** Performed using **OWASP ZAP**.
82
+
78
83
✅ **API Testing:** Validated with **Newman (Postman CLI)**.
84
+
79
85
✅ **DoS Protection:** Implemented through **Rate Limiting**.
86
+
80
87
✅ **Continuous Deployment:** Automated via **Render** webhooks.
| POST |`/users/reset_password/:code`| Reset password with code |
183
195
184
196
---
197
+
</br>
198
+
</div>
185
199
186
200
## 🗂️ API Models
187
-
201
+
</br>
202
+
<divalign="center">
203
+
188
204
### User
189
205
| Field | Description |
190
206
|-------------|-------------|
@@ -205,6 +221,8 @@ npm test
205
221
| user_id| Associated user |
206
222
207
223
---
224
+
</br>
225
+
</div>
208
226
209
227
## 🧪 Test Coverage
210
228
@@ -417,13 +435,17 @@ npm run dev
417
435
418
436
## 🎨Author
419
437
Developed as part of the Node.js & Backend module, with the goal of consolidating skills in authentication, email workflows, frontend–backend integration, cloud deployment, and professional documentation as part of a fullstack project.
438
+
</br>
439
+
</br>
420
440
421
441
🔽 **Versión en Español** 🔽
442
+
</br>
443
+
</br>
422
444
423
-
## 📧 Proyecto Fullstack: Autenticación y Verificación por Email <br/> <br/> <palign="right">[-FFFFFF?style=for-the-badge&logo=postgresql&logoColor=003366&labelColor=FFFDD0)](https://github.com/Clic-stack/Auth-Mailer-API/actions)</p> <br/> <palign="right">[](https://github.com/Clic-stack/Auth-Mailer-API/actions)</p>
424
-
445
+
## <p align="center">📧 Proyecto Fullstack: Autenticación y Verificación por Email</p> <br/> <p align="center">[](https://github.com/Clic-stack/Auth-Mailer-API/actions)[](https://github.com/Clic-stack/Auth-Mailer-API/actions) [](https://github.com/Clic-stack/Auth-Mailer-API/actions) [](https://github.com/Clic-stack/Auth-Mailer-API/actions)[](https://github.com/Clic-stack/Auth-Mailer-API/actions)
446
+
</p>
425
447
426
-
> [!TIP]
448
+
> [!TIP] <palign="justify">
427
449
> Nota para Configuración Rápida: Este proyecto incluye variables de entorno e instrucciones de configuración en el archivo `.env.example` para entornos de desarrollo y pruebas, (recuerda que todos los valores deben corresponder a tus propias credenciales). Esto facilita un despliegue rápido y garantiza que la suite de pruebas funcione de inmediato (out-of-the-box) sin configuraciones de seguridad adicionales.
428
450
[](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/ci.yml)
@@ -454,24 +477,31 @@ Este proyecto implementa flujos seguros de autenticación de usuarios, verificac
454
477
455
478
---
456
479
457
-
##🟢 Garantía de Calidad Técnica y Seguridad (QA & SecOps)
480
+
##🟢 Garantía de Calidad Técnica y Seguridad (QA & SecOps)
458
481
459
-
**¿Qué significan los distintivos (badges) al inicio de este proyecto?**
482
+
<palign="justify"> **¿Qué significan los distintivos (badges) al inicio de este proyecto?**
460
483
Para garantizar que **Auth Mailer API** cumpla con estándares de nivel bancario, he implementado 4 flujos de trabajo automatizados (Pipelines) que se ejecutan en cada cambio de código:
461
484
462
485
1.**Integración Continua (CI - Jest):** Ejecuta pruebas funcionales para asegurar que el registro, el login y el envío de correos funcionen perfectamente.
463
486
2.**Seguridad Estática (SAST - CodeQL):** Un escáner de nivel profesional que busca vulnerabilidades ocultas en el código (como posibles robos de datos o inyecciones SQL).
464
487
3.**Seguridad Dinámica (DAST - OWASP ZAP):** Un "ataque simulado" al servidor en vivo para verificar que no existan puertas traseras abiertas.
465
488
4.**Validación de Contrato (Postman/Newman):** Verifica que la comunicación entre el servidor y la aplicación sea siempre exacta y sin errores de datos.
489
+
490
+
</p>
466
491
467
492
-**Distintivo Verde (Passing):** El código ha superado las 4 capas de auditoría y es 100% seguro para su uso.
468
493
-**Distintivo Rojo (Failing):** El sistema detectó un error o riesgo y bloqueó la actualización automáticamente para proteger a los usuarios.
469
494
470
495
✅ **Pruebas Unitarias:** Implementadas con Jest.
496
+
471
497
✅ **Auditoría de Seguridad:** Automatizada con CodeQL.
498
+
472
499
✅ **Escaneo de Vulnerabilidades:** Realizado con OWASP ZAP.
500
+
473
501
✅ **Pruebas de API:** Validadas con Newman (Postman CLI).
502
+
474
503
✅ **Protección DoS:** Implementada mediante Rate Limiting.
504
+
475
505
✅ **Despliegue Continuo:** Automatizado mediante **webhooks de Render**.
476
506
477
507
---
@@ -537,22 +567,24 @@ Este proyecto fue diseñado para:
537
567
538
568
## 🛡️ Seguridad y Control de Calidad
539
569
540
-
Este proyecto sigue un enfoque SecOps mediante pipelines automatizados:
570
+
<palign="justify"> Este proyecto sigue un enfoque SecOps mediante pipelines automatizados:
541
571
542
572
-**SAST (Pruebas de Seguridad de Aplicaciones Estáticas):** Análisis continuo del código mediante **CodeQL** para detectar vulnerabilidades (Inyección SQL, XSS, etc.).
543
573
-**DAST (Pruebas de Seguridad de Aplicaciones Dinámicas):** Escaneo activo del servidor de producción en vivo utilizando **OWASP ZAP**.
544
574
-**Pruebas de Contrato de API:** Validación automatizada de rutas mediante **Newman (Postman CLI)** para garantizar la integridad de las respuestas.
545
575
-**Limitación de Tasa (Rate Limiting):** Middleware implementado para mitigar ataques **DoS** (Denegación de Servicio) y de **Fuerza Bruta**.
546
576
547
577
---
578
+
</p>
548
579
549
580
## 🧪 Suite de Pruebas Profesionales (CI/CD)
550
-
La confiabilidad de **Auth-Mailer-API** está respaldada por un flujo de trabajo de pruebas automatizadas. Utilizando **Jest y Supertest**, el proyecto implementa **9 pruebas estratégicas** que cubren:
581
+
<palign="justify"> La confiabilidad de **Auth-Mailer-API** está respaldada por un flujo de trabajo de pruebas automatizadas. Utilizando **Jest y Supertest**, el proyecto implementa **9 pruebas estratégicas** que cubren:
551
582
552
583
-**Flujo de Autenticación:** Validación de inicio de sesión seguro, generación de tokens JWT y cifrado de contraseñas.
553
584
-**Ciclo de Vida del Usuario:** Operaciones CRUD completas para la gestión de usuarios y actualizaciones de perfil.
554
585
-**Lógica de Verificación:** Garantizar que los códigos de verificación se generen y procesen correctamente.
555
586
-**Flujo Automatizado:** Cada `push` o `pull request` activa el pipeline de **GitHub Actions**, asegurando la estabilidad del código antes del despliegue.
587
+
</p>
556
588
557
589
Para ejecutar las pruebas localmente:
558
590
```bash
@@ -563,6 +595,8 @@ npm test
563
595
---
564
596
565
597
## 💻🚀 Stack Tecnológico
598
+
</br>
599
+
<divalign="center">
566
600
567
601
| Frontend | Backend | Despliegue | Base de Datos | Pruebas y Seguridad |
| POST |`/users/reset_password/:code`| Cambiar contraseña con el código |
600
638
601
639
---
640
+
</br>
641
+
</div>
602
642
603
643
## 🗂️ Modelos de la API
604
-
605
-
### Uusuario
644
+
</br>
645
+
<divalign="center">
646
+
647
+
### Usuario
606
648
| Campo | Descripción |
607
649
|-------------|-------------|
608
650
| id | Llave Primaria |
@@ -622,6 +664,8 @@ npm test
622
664
| user_id| Usuario Asociado |
623
665
624
666
---
667
+
</br>
668
+
</div>
625
669
626
670
## 🧪 Cobertura de Test
627
671
@@ -829,7 +873,7 @@ npm run dev
829
873
## 🚀 Hoja de Ruta Futura (Data & MLOps)
830
874
831
875
-**Pipeline ETL:** Integración para el análisis de datos históricos de inicio de sesión con el fin de detectar patrones anómalos.
832
-
-**Seguridad Predictiva:** Implementación de un modelo de **Machine Learning**para calificar los riesgos de intentos de inicio de sesión basados en geolocalización y frecuencia.
876
+
-**Seguridad Predictiva:** Implementación de un modelo de **Machine Learning**o ***scoring de riesgo*** para inicios de sesión basado en geolocalización y frecuencia.
833
877
-**Dockerización:** Contenedorización de todo el stack tecnológico para permitir un escalado orquestado.
0 commit comments