UNPKG

skailan-core

Version:

Servicio de autenticación y multitenancy para Skailan.

98 lines (70 loc) 2.42 kB
# @skailan/core Servicio de autenticación y multitenancy para la plataforma Skailan. ## Descripción Este módulo proporciona la funcionalidad base de autenticación, autorización y gestión de multitenancy para la plataforma Skailan. Incluye: - Autenticación de usuarios con JWT - Gestión de organizaciones y membresías - Sistema de permisos y roles - Multitenancy con esquemas de base de datos separados - Gestión de productos y pagos ## Instalación ```bash npm install @skailan/core ``` ## Uso ### Importación básica ```typescript import { app } from '@skailan/core'; // El servidor se inicia automáticamente app.listen(3006, () => { console.log('Core service running on port 3006'); }); ``` ### Configuración de variables de entorno ```env DATABASE_URL="postgresql://user:password@localhost:5432/skailan" JWT_SECRET="your-jwt-secret" RESEND_API_KEY="your-resend-api-key" ``` ## API Endpoints ### Autenticación - `POST /auth/login` - Iniciar sesión - `POST /auth/register` - Registrar usuario - `POST /auth/forgot-password` - Solicitar restablecimiento de contraseña - `POST /auth/reset-password` - Restablecer contraseña ### Organizaciones - `GET /organizations` - Listar organizaciones - `POST /organizations` - Crear organización - `GET /organizations/:id` - Obtener organización - `PUT /organizations/:id` - Actualizar organización ### Membresías - `GET /memberships` - Listar membresías - `POST /memberships` - Crear membresía - `GET /memberships/:id` - Obtener membresía ## Características - **Multitenancy**: Cada organización tiene su propio esquema de base de datos - **Autenticación JWT**: Tokens seguros para autenticación - **Gestión de permisos**: Sistema de roles y permisos granular - **Migraciones automáticas**: Migraciones de esquemas por tenant - **Validación de datos**: Validación robusta de entrada ## Dependencias - Express.js para el servidor web - Prisma para ORM y migraciones - JWT para autenticación - bcryptjs para hash de contraseñas - Resend para envío de emails ## Desarrollo ```bash # Instalar dependencias npm install # Ejecutar en modo desarrollo npm run dev # Construir para producción npm run build # Generar cliente Prisma npm run prisma:generate # Ejecutar migraciones npm run prisma:migrate ``` ## Licencia MIT