Sobre o projeto

Este repositório fornece um boilerplate de backend TypeScript com formato de produção, projetado para acelerar o desenvolvimento lidando com a configuração de infraestrutura e impondo disciplina arquitetônica. Construído sobre Fastify, Awilix, Prisma e BullMQ, ele organiza o código em camadas de arquitetura limpa rigorosas (Domínio, Aplicação, Infraestrutura, Apresentação, Raiz de Composição) com dependências apontando para dentro. Crucialmente, essas fronteiras de camada são impostas automaticamente no CI usando dependency-cruiser, prevenindo a deriva arquitetônica. Recursos principais incluem: - **HTTP & API**: Fastify 5 com validação Zod, endpoints versionados, UI Swagger e tratamento uniforme de erros. - **Auth & Segurança**: Hashing Argon2, tokens de acesso/atualização JWT, verificação de e-mail, redefinição de senha e catálogos de permissões em tempo de compilação para RBAC. - **Persistência**: Prisma com MariaDB, implementando um padrão Unit of Work para transações. - **Jobs & Eventos**: Padrão de outbox transacional, filas BullMQ apoiadas por Redis e um processo de worker dedicado. - **Observabilidade**: Logging Pino integrado com IDs de correlação, métricas Prometheus, tracing OpenTelemetry e uma pilha Grafana/Loki/Tempo pré-configurada. - **Qualidade**: Requisitos de cobertura de 100% para as camadas de domínio/aplicação, ESLint/Prettier e Testcontainers para testes de integração. O projeto é enviado com uma fatia vertical de usuário/auth/RBAC funcional para servir como referência para adicionar novos recursos. Ele suporta fácil renomeação via uma única variável de ambiente `APP_NAME` e inclui configurações abrangentes do Docker Compose para desenvolvimento local.