O dia que recuperei o código fonte da empresa

Este artigo detalha a experiência de recuperar o código fonte perdido de uma empresa que estava conectado ao AWS Amplify. Através da alteração do arquivo amplify.yml, foi possível enviar o código fonte para um repositório Git durante o processo de build. Vamos explorar o funcionamento do Amplify, focando em aspectos de segurança e detalhando como o código fonte fica exposto no momento do build.
Como desenvolvedores, passamos alguns perrengues no dia a dia: uma empresa entrou em contato comigo para fazer um serviço freelance de "ajustes pequenos", porém, não tinham acesso ao código fonte desenvolvido pelo desenvolvedor anterior 😅. E aí, você tocaria o projeto? Falaria para fazer do zero? Tentaria recuperar o código fonte?

Cenário
O código fonte estava hospedado no GitHub e hospedado na AWS por meio do Amplify. Não tínhamos acesso ao repositório, mas tínhamos acesso ao painel da AWS.
Teoria
Em algum momento o código sai do GitHub e vai para AWS para ser buildado e hospedado. Então podemos ter acesso, existe luz no fim do túnel!
O que é o AWS Amplify?
O AWS Amplify é um conjunto de ferramentas e serviços que permite aos desenvolvedores construir aplicativos escaláveis e seguros na nuvem. Ele fornece uma interface fácil de usar para gerenciar recursos de backend e frontend, incluindo autenticação, APIs, armazenamento e hospedagem.
Você pode começar o uso do Amplify, configurando um repositório para seu código fonte.
Perceba que é preciso dar autorização ao AWS Amplify de leitura do seu código e escrita do arquivo amplify.yml que é o arquivo que irá controlar o processo de build e deploy no Amplify e pode ser personalizado para atender às necessidades específicas do projeto.
Recuperação do Código Fonte
Como pudemos ver o código fonte fica exposto ao AWS Amplify, para que o processo de build seja feito. Ou seja, não saia conectando seu repositório em qualquer lugar e qualquer conta. Nesse caso, o desenvolvedor anterior que estava prestando serviço acreditava que seu código estava inacessível. Porém, sabemos que isso não é verdade.
As configurações de build ficam em um arquivo yml e pode ser modificado pelo painel da AWS ou pelo próprio repositório, como podemos ver na imagem a seguir:
Como não tinha acesso ao repositório, eu modifiquei esse arquivo pelo painel da AWS que a empresa tinha acesso, e inclui um passo antes do build que enviava todo código para um repositório git vazio, assim mantive todo o histórico de alterações do código fonte.
Com isso descobrimos que o desenvolvedor estava terceirizando o serviço para outro 🤡.

Até a próxima, pessoal!
A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.