authaz / products / multi-tenant-orgstenants 1,284isolamento ● row-levelvazamento entre tenants 0

Um banco de dados.
Mil jardins murados.

Sessões, queries, arquivos, decisões, auditoria — toda primitiva já vem com escopo no tenant certo por padrão. O custo de retrofit vai a zero.

TENANTS · GRIDtodosenterpriseprofree
C
Contoso
tenant_contoso
membros84
planoPro
P
Pinpoint Health
tenant_pinpoint
membros31
planoPro
V
Vector Labs
tenant_vector
membros12
planoFree
M
Monolith Bank
tenant_monolith
membros1240
planoEnt
N
Northwind
tenant_northwind
membros67
planoPro
S
Sunrise Coop
tenant_sunrise
membros8
planoFree
L
Lumen AI
tenant_lumen
membros24
planoPro
B
Bramble
tenant_bramble
membros3
planoFree
+ provisionar tenant
·
O modelo

Um tenant é a menor unidade que você consegue vender. O Authaz faz dela a menor unidade para a qual você constrói.

Tentar adicionar multi-tenancy depois do lançamento é o projeto de engenharia mais caro que uma startup B2B vai fazer. O Authaz faz dele o mais barato — porque já está pronto.

— 01

Isolamento row-level, por padrão

Toda primitiva do Authaz tem escopo por tenant. Sessões, decisões, eventos de auditoria — nada vaza entre orgs.

— 02

Configuração por tenant

Roles, políticas, branding, exigências de MFA, retenção. Defaults no nível da plataforma, overrides no nível do tenant.

— 03

Parent / sub-tenants

Holdings, agências, revendedores. Herdam políticas e billing pela árvore, sobrescrevem onde importa.

O que cobre

Tenancy em cada camada que toca o usuário.

— 01

Isolamento embutido em cada camada.

A maioria dos apps coloca tenant_id em algumas tabelas e dá o assunto por encerrado. A gente empurra isso por authn, authz, db, cache, files e auditoria — então um escopo faltando vira erro de build, não outage de domingo.

  • sessão carrega org_id, não dá pra forjar
  • ORM aplica o escopo, falha fechada
  • chaves de cache com prefixo · sem TTL compartilhado
authn
tenant vem da sessão · claim forjada → recusada
authz
toda política avaliada com org_id, nunca global
db
escopo row-level aplicado na camada do ORM
cache
chaves com prefixo por tenant · sem TTL compartilhado
files
paths de objetos isolados · presigned URLs com escopo
audit
stream de eventos marcado por tenant · export por org
— 02

Escopo de tenant flui pelo seu código.

Um único handle de escopo, passado por cada leitura e escrita. O desenvolvedor não precisa lembrar de filtrar por tenant — não conseguiria burlar nem se quisesse.

  • handle de escopo vem da sessão · type-safe
  • baseado em middleware · zero boilerplate
  • regra de lint para queries sem escopo
app · POST /v1/projects
authaz.scope({ org_id: "org_acme" })
db.projects.create({ tenant_id: "org_acme", ... })
qualquer leitura · mesmo escopo aplicado automaticamente
db.projects.where({ tenant_id: ctx.org_id })
— 03

Tenants podem ser hierarquias.

Pais e filhos, com herança de políticas, branding e billing. Acme Corp tem Acme US, que tem Acme East. Compartilham o que deve ser compartilhado e sobrescrevem o que não deve.

  • profundidade ilimitada
  • herdar · sobrescrever · fixar
  • billing consolidado pela árvore
Acme Corpmatriz · holding
↳ Acme USsubsidiária · 412 mem
↳ Acme Easttime
↳ Acme Westtime
↳ Acme EUsubsidiária · 184 mem
↳ Acme Labssandbox · 11 mem
políticas · billing · branding herdados, a menos que sobrescritos
Código

Toda leitura tem escopo. Sempre.

O handle de escopo é obrigatório. Esquece dele e a chamada não compila.

app/api/projects.tstenant-safe
// cada request carrega o tenant na sessão const { org } = await authaz.requireSession(req); // queries filtram por org_id automaticamente — sem where manual return db.projects.findMany({ where: { status: "active" } }, org);
Spec

Os detalhes finos, logo de cara.

Modelo de isolamento
row-scope lógico · schema-per-tenant físico no enterprise
Config por tenant
políticas · MFA · branding · TTL de sessão · retenção
Hierarquias
parent / child / sibling · profundidade ilimitada · herança com overrides
Residência de dados
fixação de região por tenant · US · EU · APAC
Guardas cross-tenant
checagem de escopo em compile-time · negações de política em runtime · lint no CI
Ciclo de vida do tenant
criar · suspender · mesclar · exportar · deletar (GDPR + CCPA)
Modelo de preço
por tenant ativo · membros ilimitados dentro do plano
Combina com

Uma plataforma. Toda primitiva.

Todo produto Authaz compartilha as mesmas primitivas — sessões, políticas, auditoria, tenants. Escolha o que precisa hoje; adicione o resto quando precisar.

Explorar todos os produtos →
Começar

Construa para muitos tenants. Desde o primeiro commit.

Isolamento row-level, políticas por tenant, hierarquias — pronto para produção antes do seu primeiro cliente.