Backend26 de outubro de 2024
Top One
Backend comercial com modelagem de domínio & autorização contextual
Visão geral de engenharia & posicionamento
Um backend comercial em que modelagem de domínio, casos de uso da aplicação, fronteiras de persistência, autorização contextual e proteção automatizada contra regressões tornam a responsabilidade de negócio visível no código.
Arquitetura do fluxo de dados & estados
Controller HTTP
Autenticação & repasse de contexto
Casos de uso da aplicação
Resultados Either & autorização CASL
Entidades de domínio
Value Objects & invariantes
Repositório Prisma
Query de banco escopada por vendedor
Sequência de execução:Requisição HTTP ➔ Autenticação JWT global ➔ Autorização no caso de uso ➔ Query Prisma escopada por vendedor
Foco de engenharia & temas centrais
- O impacto dos dados aumenta à medida que eles se tornam um compromisso comercial
- A autenticação identifica o ator; o contexto do recurso determina as capacidades permitidas
- Condições de autorização construídas estritamente a partir de valores autoritativos armazenados no banco de dados
- Privacidade das coleções aplicada nas queries do repositório, não por filtros após o fetch
- Suíte adversarial de testes de regressão protegendo as regras de isolamento entre vendedores
Principais trade-offs & decisões de engenharia
- Estruturação da aplicação em torno de entidades de domínio, Value Objects, casos de uso da aplicação, repositórios e mappers
- Resultados tipados da aplicação no padrão Either (Right para sucesso, Left para falhas de domínio)
- Escopo das queries de pedidos na camada de repositório Prisma com base no ownership armazenado do vendedor
- Proteção das fronteiras multi-tenant de pedidos com testes automatizados de regressão contra acesso entre vendedores
Evidências de implementação verificadas
- Operações sobre um único pedido verificam o ownership armazenado do vendedor em registros autoritativos do banco
- Coleções de pedidos do vendedor escopadas no nível da query do repositório, preservando a privacidade
- Suíte automatizada de testes na fronteira HTTP verificando a negação de acesso entre tenants
Stack tecnológica verificada
- NestJS
- Prisma ORM
- PostgreSQL
- Autorização CASL
- Tipos de resultado no padrão Either
- Eventos de Domínio
- Testes HTTP & de Integração
Escopo do projeto
- Foco em arquitetura backend em camadas, modelagem de domínio comercial, autorização contextual, ownership autoritativo do vendedor, queries escopadas por vendedor, resultados tipados da aplicação e proteção automatizada contra regressões.
- Utiliza configurações de origem específicas por ambiente.