Metodologia

Como os dados de mercado chegam ao site sem nunca expor nenhuma credencial no navegador.

Fontes de dados

Por que o site não chama a Brapi diretamente do navegador

Este é um site estático hospedado no GitHub Pages — ele não tem um servidor próprio rodando o tempo todo. Se o token da Brapi fosse colocado no JavaScript do site, qualquer visitante poderia abrir as ferramentas de desenvolvedor do navegador e copiar a chave em segundos. Por isso a chave nunca entra em nenhum arquivo público do repositório.

Como funciona na prática

  1. O token da Brapi fica guardado apenas em GitHub Actions Secrets, um cofre do próprio GitHub, associado ao repositório.
  2. Um workflow (.github/workflows/atualizar-cotacoes.yml) roda automaticamente a cada 30 minutos nos servidores do GitHub.
  3. Esse workflow executa scripts/atualizar-cotacoes.mjs, que busca as cotações usando o token e grava o resultado em dados/cotacoes.json.
  4. O site (rodando no navegador de cada visitante) só lê esse arquivo dados/cotacoes.json — que é público, mas não contém nenhuma credencial.
Resultado: o token nunca trafega para o navegador do visitante e nunca aparece no histórico do Git, mesmo o repositório sendo público.

Atualização e limitações

As cotações refletem o último ciclo do workflow (até ~30 minutos de atraso) — não são cotações em tempo real de milissegundo a milissegundo. A busca por ticker no formulário "Adicionar ativo" também funciona sobre essa mesma base pré-carregada; um ticker fora da lista acompanhada pelo site pode ser adicionado manualmente, informando nome e preço.

Cálculo das sugestões

Para cada classe de ativo, o valor alocado é dividido igualmente entre os ativos ativos (não excluídos) daquela classe. A quantidade sugerida de cotas/títulos é o valor por ativo dividido pelo preço unitário, arredondada para baixo. Isso é apenas uma ilustração de proporção — não considera lote mínimo real de negociação, custos de corretagem ou impostos.