api-auth-provisioning — auth e provisionamento de tenant¶
TL;DR¶
POST /api/auth/provision-tenant cria o tenant do usuário autenticado e inicia o provisionamento do CRM Cadencia, da carteira de créditos e dos recursos de onboarding.
Identidade¶
- Tipo: Next.js API Route
- Path:
src/app/api/auth/provision-tenant/route.ts - Deps: Supabase Auth + service role
Fluxo¶
- valida a sessão e o usuário;
- cria ou recupera
tenantseusersde forma idempotente; - garante
user_tenant_rolescom papel owner; - cria
tenant_onboarding; - cria a carteira inicial de créditos;
- semeia pipelines, stages, tags e campos do CRM próprio;
- dispara o provisionamento assíncrono de domínio Resend/DNS e artefatos.
Don'ts¶
- Não criar um segundo tenant para o mesmo
auth_user_id. - Não expor
service_roleao cliente. - Não considerar o fire-and-forget como concluído sem observabilidade e retry.
- Não reduzir créditos existentes em retries.
Validação¶
Validar signup novo, repetição idempotente, isolamento tenant, 20 créditos iniciais e continuidade quando um provisionamento assíncrono falha.
Referências¶
- api-routes
- email-domain-provisioning