Executando verificação de segurança...
7

Dicas pra melhorar seu build no Dockerfile e docker-compose.

Sempre coloque a versão do node.
Em prod use hash pra travar a versão.

Ao invés de copiar todos dos arquivos copie os arquivos que o prisma precisa faça o generate e depois copie os demais arquivos.

Troque usuário root (padrão) pra usuário node com menos privilégios.

Faça migrate do banco no ci/cd e não ao subir a aplicação. Outra opção é utilizar uma cópia da aplicação como serviço apenas pra subir as migrations.

Cuidado ao usar imagens derivadas. Bitnami não é imagem oficial do PostgreSQL.

Imagens de prod deveriam usar npm ci pra instalar pacotes. Sim vai quebrar o prisma generate. Pesquise por stage build.

Inclua um health check no banco.

Desculpe o tom impositivo. Espero ter ajudado

Carregando publicação patrocinada...
2
1

Pretendo fazer isso tambem!
Dividi o meu aprendizado nesse projeto em partes, agora estou focando em entender o docker, posteriormente vou para o prisma e sua comunicação com o banco.
Mas valeu pela dica, vou aplica-la logo!

1

Implementei quase tudo que você mencionou, mas confesso que acho que muita coisa foi na base da gambiarra.
Pesquisei um pouco sobre stage build e health check no banco, e ainda pretendo implementar nesse projeto.
Valeu mesmo pelo feedback, ajudou bastante! Se tiver mais dicas, tô aceitando.

1

Não tinha tido tempo de olhar o código.
Sobre a controller faça validações de entrada. Ex: Verifique se é o id é numérico.
Inclua uma paginação.
Na paginação possibilite o usuário filtrar por nome, informar quantidade de itens por página e pagina que ele quer ver.
Inclua um limite máximo na paginação.
Utilize valores default caso o usuário não informe nada.
Retorne na resposta quantidade total de itens, página retornada e tamanho da página retornada. Entenda porque retornar essas informações.
Não permita itens estranhos no nome como coisas diferentes de letras e números se for o caso.

Sugestões para estudo:

  • Inclua um createAt e um updateAt para entender como trabalhar com datas no banco/prisma.
  • Inclua uma flag de publicado ou um soft delete para entender como funciona no prisma.
  • Inclua um range date de validade para apresentação daquele item.
  • Inclua filtros na sua paginação para o range date e ou publicado.
  • Faça um prisma separado com banco em memória para testes teste os range dates com datas mockadas e ou via injeção de dependencia
  • Crie issues para tarefas, documente a necessidade e o motivo, resolva as issues com commit
  • Estude se o fastify tem cache, rate limite/ou implemente um cache com Redis, utilize padrão notification para invalidar o cache e aprender sobre o padrão.
  • Estude conventional commit

Veja o que faz sentido e o que vai te agregar valor.
Boa sorte