Conceitos

Multi-tenancy

Como o OctaBuild isola dados entre organizações (SPEs) e habilita visão consolidada

O modelo

OctaBuild é multi-tenant por organização. Uma incorporadora típica opera várias SPEs (Sociedades de Propósito Específico — uma por empreendimento por exigência de bancos/sócios). Cada SPE é uma organization no sistema.

Incorporadora "BP Construtora" (grupo)
├── BP Empreendimento Alfa (SPE) ─── organization_id: A
├── BP Empreendimento Beta (SPE) ─── organization_id: B
├── BP Empreendimento Gama (SPE) ─── organization_id: C
└── BP Overhead (administrativo)  ─── organization_id: O

Isolamento via RLS

Toda tabela com dados de negócio tem coluna organization_id e policies de Row Level Security (RLS) filtrando automaticamente. Um usuário da org A nunca vê dados da org B, mesmo que a query SQL não mencione organization_id explicitamente.

Helpers RLS disponíveis no banco:

  • is_org_member(org_id) — usuário é membro da org
  • is_org_admin(org_id) — usuário é admin (proprietario/diretor)
  • get_active_organization_id() — retorna org ativa do usuário

Trocar de organização

No header do dashboard tem um seletor de organização. A org ativa é guardada em localStorage (octabuild_active_team_id) e usada para resolver permissões e queries.

Equipe central com acesso múltiplo

Um usuário (ex: comprador da matriz) pode ser membro de várias organizações. Para isso, o admin de cada SPE convida o usuário em Settings → Acesso → Usuários.

A equipe central troca de SPE pelo seletor sem precisar fazer logout. Tudo o que ele faz fica registrado com a organization_id correta.

Empreendimento "Overhead"

Para gastos administrativos da incorporadora (folha do escritório, ERP, etc.) não amarrados a uma SPE específica, recomenda-se criar uma organização "Overhead" / "Matriz" e empreendimentos genéricos lá dentro.

On this page