skailan-core
Version:
Servicio de autenticación y multitenancy para Skailan.
98 lines (70 loc) • 2.42 kB
Markdown
# @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