Pular para o conteúdo
⚙️ HOW-TO

Criar e gerenciar grupos de projetos

Groups agrupam projetos de um mesmo produto SaaS e habilitam o provisionamento automático de tenants isolados.

O que é um Group

Um Group é uma coleção de projetos vinculados a um único produto SaaS. O Group define um schema template — as tabelas, funções e políticas RLS que todos os tenants desse produto compartilham como estrutura base.

Quando um novo cliente (tenant) se cadastra no seu SaaS, o sistema clona automaticamente o schema template para um schema isolado, provisionando o banco desse cliente em segundos.

Caso de uso: SaaS multi-cliente

Estrutura de um Group "crm-saas"
Group: crm-saas (slug: crm-saas)
│
├── Schema template: proj_crm-saas
│     ├── contacts
│     ├── deals
│     ├── activities
│     └── (RLS policies)
│
├── Tenant: empresa-alpha  → proj_crm-saas_empresa-alpha
├── Tenant: empresa-beta   → proj_crm-saas_empresa-beta
└── Tenant: empresa-gamma  → proj_crm-saas_empresa-gamma

Cada tenant tem seu schema completamente isolado. Não há risco de vazamento de dados entre clientes.

Criar Group via Admin UI

  1. Acesse Platform → Groups no Admin UI.
  2. Clique em + Novo Group.
  3. Preencha:
    • Nome: nome legível do produto (ex: "CRM SaaS")
    • Slug: identificador URL-safe (ex: crm-saas). Imutável após criação.
    • Projeto template: selecione o projeto cujo schema será clonado para cada novo tenant.
  4. Clique em Criar group.

Adicionar projetos a um Group

Após criar o Group, você pode vincular projetos existentes a ele:

  1. Abra o Group em Platform → Groups → [nome do group].
  2. Na aba Projetos, clique em Associar projeto.
  3. Selecione o projeto da lista e confirme.

Provisionar o primeiro tenant

Com o Group criado, você pode provisionar tenants. Veja o guia completo em Provisionar um tenant.

💡

Schema template atualizado: Se você adicionar tabelas ao schema template depois de criar tenants, use a API de sync template para propagar as alterações para tenants existentes sem apagar dados.

Essa página ajudou?