From 2b5a856845c6c5f97b4baa6e573b5da39bf93ace Mon Sep 17 00:00:00 2001 From: Consultoria AS Date: Sun, 15 Mar 2026 23:19:58 +0000 Subject: [PATCH] feat: update auth service to provision databases via TenantConnectionManager - Replace createTenantSchema with tenantDb.provisionDatabase - JWT payload now includes databaseName (already renamed from schemaName) Co-Authored-By: Claude Opus 4.6 --- apps/api/src/services/auth.service.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/api/src/services/auth.service.ts b/apps/api/src/services/auth.service.ts index 205d9db..83cd1f9 100644 --- a/apps/api/src/services/auth.service.ts +++ b/apps/api/src/services/auth.service.ts @@ -1,7 +1,6 @@ -import { prisma } from '../config/database.js'; +import { prisma, tenantDb } from '../config/database.js'; import { hashPassword, verifyPassword } from '../utils/password.js'; import { generateAccessToken, generateRefreshToken, verifyToken } from '../utils/token.js'; -import { createTenantSchema } from '../utils/schema-manager.js'; import { AppError } from '../middlewares/error.middleware.js'; import { PLANS } from '@horux/shared'; import type { LoginRequest, RegisterRequest, LoginResponse } from '@horux/shared'; @@ -23,7 +22,8 @@ export async function register(data: RegisterRequest): Promise { throw new AppError(400, 'El RFC ya está registrado'); } - const databaseName = `horux_${data.empresa.rfc.toLowerCase().replace(/[^a-z0-9]/g, '')}`; + // Provision a dedicated database for this tenant + const databaseName = await tenantDb.provisionDatabase(data.empresa.rfc); const tenant = await prisma.tenant.create({ data: { @@ -36,8 +36,6 @@ export async function register(data: RegisterRequest): Promise { }, }); - await createTenantSchema(databaseName); - const passwordHash = await hashPassword(data.usuario.password); const user = await prisma.user.create({ data: {