Pular para o conteúdo

2. Restrições

Restrição Explicação
Sem provedor de nuvem proprietário (AWS, Azure, GCP) Decisão de custo e de independência. Tudo roda em uma VPS (Contabo) gerenciada pelo Coolify. Ver ADR-0004.
TypeScript de ponta a ponta Front, back e pacotes compartilhados em TS, com tipos de domínio em @moldape/types.
Node.js 20 em produção Definido nos nixpacks.toml (nodejs_20).
PostgreSQL como única base relacional Acessada exclusivamente via Prisma (@moldape/prisma).
Arquivos em volume local Uploads e PDFs ficam no volume /app/uploads do serviço order-lifecycle e são servidos em /uploads/.
GraphicsMagick no container da API Necessário para converter PDF em imagem (pdf2pic).
Restrição Explicação
Time enxuto Uma desenvolvedora principal (cerca de 97% dos commits), com apoio pontual. Isso favorece monorepo, convenções fortes e automação.
Repositório no Bitbucket Pipelines do Bitbucket executam lint, testes e build.
Fornecedor responsável Nós Tecnologia (pessoa jurídica) responde pela entrega ao cliente.
  • Conventional Commits como convenção de mensagem. Não há validação automática: o hook pre-commit do husky roda pnpm run build e pnpm run lint:fix; o commit-msg não está configurado.
  • Git Flow (main, develop, feature/*, release/*, hotfix/*).
  • ESLint + Prettier compartilhados via config/eslint-config e config/prettier.
  • Clean Architecture no order-lifecycle: domain → application → infrastructure → presentation.
Desenvolvido e documentado por
Nós Tecnologia · Desenvolvimento Criativo