workspace-v1/core/modules/auth/README.md
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

3.4 KiB

Auth - Core Module

Modulo: core/modules/auth/ Version: 0.1.0 Fecha: 2026-01-03 Owner: Backend-Agent Estado: desarrollo


Descripcion

Modulo de autenticacion compartido que provee guards, decorators y utilidades JWT para proyectos NestJS. Complementa el catalogo core/catalog/auth/ con codigo listo para importar.


Instalacion

Prerequisitos

npm install @nestjs/jwt @nestjs/passport passport-jwt bcrypt
npm install -D @types/passport-jwt @types/bcrypt

Configuracion de Paths

{
  "compilerOptions": {
    "paths": {
      "@core/modules/*": ["../../core/modules/*"]
    }
  }
}

API Publica (Planificada)

Guards

Guard Descripcion Uso
JwtAuthGuard Protege rutas con JWT @UseGuards(JwtAuthGuard)
RolesGuard Verifica roles de usuario @UseGuards(RolesGuard)
PermissionsGuard Verifica permisos @UseGuards(PermissionsGuard)

Decorators

Decorator Descripcion Ejemplo
@CurrentUser() Extrae usuario actual @CurrentUser() user: User
@Roles() Define roles requeridos @Roles('admin', 'editor')
@Public() Marca ruta como publica @Public()

Servicios

Servicio Descripcion
TokenService Generacion/validacion JWT
PasswordService Hashing con bcrypt
SessionService Gestion de sesiones

Ejemplos de Uso

Ejemplo 1: Proteger Controller

import { JwtAuthGuard, CurrentUser, Roles } from '@core/modules/auth';

@Controller('users')
@UseGuards(JwtAuthGuard)
export class UsersController {
  @Get('profile')
  getProfile(@CurrentUser() user: User) {
    return user;
  }

  @Get('admin')
  @Roles('admin')
  @UseGuards(RolesGuard)
  adminOnly() {
    return { message: 'Admin access' };
  }
}

Ejemplo 2: Hash de Password

import { PasswordService } from '@core/modules/auth';

const passwordService = new PasswordService();

// Hash
const hash = await passwordService.hash('myPassword123');

// Verify
const isValid = await passwordService.verify('myPassword123', hash);

Dependencias

Internas

Modulo Uso
@core/modules/utils Validaciones

Externas (npm)

Paquete Version Uso
@nestjs/jwt ^10.0 Tokens JWT
@nestjs/passport ^10.0 Estrategias auth
passport-jwt ^4.0 Estrategia JWT
bcrypt ^5.0 Hashing passwords

Este modulo (core/modules/auth/) provee codigo importable.

El catalogo (core/catalog/auth/) provee documentacion y referencia para implementaciones completas.

Usar modules/auth cuando:
  - Necesitas guards/decorators listos
  - Proyecto ya tiene auth y solo extiende

Usar catalog/auth cuando:
  - Implementas auth desde cero
  - Necesitas documentacion completa
  - Requieres DDL y estructura de tablas

Estado Actual

- [ ] JwtAuthGuard implementado
- [ ] RolesGuard implementado
- [ ] CurrentUser decorator
- [ ] Roles decorator
- [ ] Public decorator
- [ ] TokenService
- [ ] PasswordService
- [ ] SessionService
- [ ] Tests unitarios
- [ ] Documentacion completa

Changelog

v0.1.0 (2026-01-03)

  • Estructura inicial
  • README con planificacion

Modulo: core/modules/auth/ | Owner: Backend-Agent | Estado: desarrollo