O Diario De Myriam - O Diário de Myriam - DarkSide Books
O Diário de Myriam - DarkSide Books

Como configurar o diario de myriam passo a passo

o diario de myriam é uma ferramenta que basicamente organiza entradas e saídas financeiras em um formato estruturado, mas o problema é que a documentação oficial é rasa e muita gente trava na primeira configuração. Eu levei cerca de três tentativas pra entender como as regras de sincronização funcionavam de verdade. O fluxo padrão começa com a instalação do pacote via npm ou yarn, dependendo da sua stack. Se você tá usando Node 18 ou superior, recomenda-se o comando npm install o diario de myriam --save. Versões mais antigas dão erro silencioso no módulo de data, então vale checar isso antes de qualquer coisa.

o diario de myriam: problema prático e solução direta

Num projeto real, a primeira vez que rodei o sistema, o relatório final veio com campos duplicados toda vez que havia transações no mesmo dia com categorias diferentes. A causa não estava na lógica de agregação, mas no parser de CSV que o próprio diário usa por padrão. Ele trata vírgulas dentro de aspas como delimitadores, não como conteúdo. Minha solução foi sobrescrever o parser nativo passando uma configuração customizada de split por ponto e vírgula, que é o formato padrão que a maioria dos bancos brasileiros exporta. O código ficou assim: configurei o arquivo config.diario.json com o campo delimiter definido como ; e adicionei a flag quotes como verdadeira. A partir daí, a repetição sumiu. O que poucas pessoas mencionam é que o diario de myriam não faz validação de integridade entre lançamentos de origem e destino por padrão. Se você importa um arquivo externo sem rodar antes o comando de verificação, vai gerar divergências de saldo que só aparecem semanas depois. O comando npx diario verify --strict resolve isso, mas só funciona se o arquivo de schema estiver na raiz do projeto. Sem ele, o verify ignora restrições e termina com status zero mesmo tendo erros. Eu descobri isso na marra quando uma auditoria externa apontou inconsistências que minha equipe tinha passado pra baixo do tapete achando que estava tudo certo.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Outro ponto que merece atenção: o sistema suporta múltiplos arquivos de entrada, mas o merge ocorre por timestamp absoluto. Se dois arquivos importados tiverem registros com o mesmo horário exato, a ordem de processamento não é determinística. Isso significa que, em cenários de alta concorrência, o resultado final pode variar entre execuções. A workaround mais prática é adicionar um campo sequencial único em cada arquivo antes de importar, algo que o diário não faz automaticamente. Criei um script simples em Python que lê todos os CSVs da pasta de importação, injeta um ID crescente e salva como JSON intermediário. Depois disso, o diario processa tudo sem ambiguidade. Se você precisa de algo mais robusto e lida com volumes maiores, talvez valha a pena considerar alternativas como Ledger-cli ou Beancount, que têm engines de balanceamento mais consolidadas. O diario de myriam serve bem para projetos menores e equipes que não querem aprender uma sintaxe própria como a do Beancount. O trade-off é que você paga esse custo de flexibilidade com manutenção manual de edge cases.

Download e instalação

O pacote está disponível no repositório público do GitHub sob a licença MIT. Para baixar a versão mais recente, acesse o repositório oficial e faça o download do arquivo tar.gz ou use diretamente o npm com o comando mencionado anteriormente. A versão atual suporta Docker, o que facilita bastante em ambientes de teste. O Dockerfile já vem configurado com Node 20 e todas as dependências de runtime incluídas. Basta rodar docker build -t diario-myriam . e docker run --rm -v $(pwd)/data:/app/data diario-myriam. A pasta data precisa conter os arquivos de entrada no formato aceito. Não recomendo usar a versão mais antiga pelo browser porque o parser de datas muda sem aviso entre releases e isso quebra relatórios legados. Sempre verifique o changelog antes de fazer upgrade em produção. Eu já vi dois casos onde o salto de versão causou perda de dados porque o formato de exportação mudou de JSON para CSV sem migrar os arquivos existentes.