DevPath · Aprenda a programar ESPTEN

Capstone: lance seu SaaS

O plano: um SaaS multi-tenant

O que você vai construir

Um SaaS (Software as a Service) é software usado a partir da nuvem por assinatura: muitas pessoas e muitas empresas compartilham a mesma aplicação e o mesmo banco de dados. Isso levanta o desafio central deste capstone: que cada cliente veja apenas o que é seu.

Multi-tenancy

Cada conta de cliente é um tenant (inquilino). Em um modelo multi-tenant, uma única instância da sua aplicação serve todos os tenants, e os dados convivem nas mesmas tabelas. A peça chave é uma coluna como tenant_id que rotula cada linha com o dono ao qual ela pertence.

// Uma linha da tabela "projetos"
{ id: 3, tenant_id: 1, nome: "App mobile da Acme" }

Por que isolar por tenant

Se uma consulta esquecer de filtrar por tenant_id, um cliente poderia ver ou modificar os dados de outro. É a falha de segurança mais grave (e mais comum) de um SaaS. Por isso, toda leitura e escrita deve ser delimitada ao tenant da requisição:

SELECT * FROM projetos WHERE tenant_id = :tenantAtual;

Não é opcional nem uma otimização: é a fronteira de segurança do seu produto.

As camadas que você vai tocar

O capstone integra toda a stack que você aprendeu no DevPath. Você vai construir, em ordem:

  1. Dados (SQL): a consulta que retorna apenas os projetos de um tenant.
  2. Backend (JS): um handler que encadeia o pipeline de uma requisição.
  3. Operação (JS): um checklist de produção e a configuração por ambiente.
  4. UI (React): um painel que mostra as métricas do SaaS.

Cada peça é pequena; juntas, são uma aplicação pronta para ser lançada.

Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
O pipeline de uma requisição e o checklist de produção →