Plataforma multi-tenant

Empresa, filial, sessão e isolamento. Toda operação no M3R nasce neste recorte.

O M3R é um ERP multi-empresa e multi-filial. Não existe consulta “de todos os tenants”. Cada tela, API e extensão herda o recorte da sessão.

Recorte

ConceitoTabelaO que recorta
Empresa (tenant)cadastro de companydados, licença, flags, extensões
Filialfilial da empresaestoque, NF-e, caixa, títulos, OP
UsuárioFAU001sessão, papéis, empresas acessíveis
Acesso empresaUserCompanyAccesso que o usuário vê além do system_admin

system_admin da plataforma enxerga todas as empresas. Operador comum só as empresas ativas no vínculo.

Headers de toda chamada operacional

Authorization: Bearer <access_token>
x-company-id: <hashid da empresa>
x-filial-id: <hashid da filial>

IDs na URL são Hashids (salts por entidade), não o inteiro interno. O Swagger autenticado na API lista o contrato.

Access token é curto. O ERP renova com refresh serializado entre abas. Integração server-to-server usa credencial do tenant, nunca um segredo de plataforma.

Sessão

  1. Login (POST /auth/login) devolve access + refresh, permissões e empresas.
  2. O operador escolhe empresa e filial.
  3. Toda tela seguinte manda os headers acima.
  4. Logout ou 401 real limpa tokens e caches de usuário/empresa/filial/permissão.

Status de usuário: FIRST_ACCESS (troca de senha), ACTIVE, INACTIVE, BLOCKED, BLOCKED_EXPIRED, BLOCKED_EXCEEDED_PASSWORD.

O ciclo que a plataforma amarra

Compras atualizam estoque, o estoque alimenta produção e venda, a venda emite documento fiscal e o financeiro recebe as obrigações. Nenhum desses módulos opera “sozinho”: o documento de um processo é a entrada do seguinte.