Skip to content

Releases: ThiagoGomesRocha/Marrone

Marrone 1.2.0

Choose a tag to compare

@ThiagoGomesRocha ThiagoGomesRocha released this 16 Oct 11:53

O que há de novo

O Marrone agora fala português. Suporte completo a pt-BR na interface e nos relatórios, mantendo o inglês como idioma padrão.

Interface em português

  • Idioma selecionável em Preferências > Geral (Português (Brasil) ou English), com troca imediata e persistente entre reinicializações.
  • Toda a interface localizada: tela de boas-vindas, suporte, as abas de Preferências, modais, árvore de resultados do runner, mensagens de validação e toasts.

Relatórios HTML em português

  • No CLI, gere o relatório em pt-BR com --lang pt-BR: marrone run ./minha-colecao --reporter-html relatorio.html --lang pt-BR.
  • No app desktop, o relatório exportado segue o idioma selecionado em Preferências > Geral.

Interno

  • As strings fixas do relatório HTML saíram do template para um dicionário en/pt-BR (marrone-common), com inglês como fallback.

Marrone 1.1.1

Choose a tag to compare

@ThiagoGomesRocha ThiagoGomesRocha released this 15 Oct 20:30

Marrone 1.1.1

Versão de correção sobre a 1.1.0: os links do aplicativo e da documentação apontavam para
endereços que não existem, e a documentação passou a ter uma wiki.

Links e documentação

  • Repositório e suporte. O rename bruno → marrone trocou usebruno/bruno por
    marrone/marrone numa substituição global — uma organização que não existe (404). O
    estrago estava na tela de suporte, na busca global, na barra de status, no painel de
    console, na tela de erro fatal, no aviso de importação com problemas, no handler de
    Documentation do menu, no CLI (package.json, readme, changelog e imagens Docker) e nos
    templates de issue/PR. As URLs agora saem de um módulo único em cada processo — foi a
    dispersão que deixou os links quebrados sem ninguém notar.
  • Documentation → wiki do projeto. O antigo docs.marrone.com nunca resolveu. O item
    agora abre a wiki, que traz o link para a documentação do Bruno
    — a referência de formato de coleção, scripting e runner continua sendo a dele.
  • Aba API Docs. O renderer da documentação vinha de um CDN que não resolve, então a aba
    abria sem renderer nenhum. Voltou a funcionar.
  • Documentação das features beta (AI, Akamai EdgeGrid, Mock Server, gRPC Scripting) e o
    "Learn more" do editor de apps apontavam para URLs curtas inexistentes; o post sobre a
    migração para YML, para um blog inexistente; e o aviso de depreciação, para um e-mail em
    domínio morto. Todos passaram a apontar para alvos conferidos com requisição HTTP.

Suporte sem "Community"

O grupo Community (GitHub, Discord, Twitter, LinkedIn) saiu da tela de suporte: eram os
canais do Bruno, o projeto de origem — o Discord e o Twitter apontavam para contas de outro
projeto, e o LinkedIn para uma empresa sem relação com o Marrone. Ficaram os dois caminhos
que existem: Documentation e Report Issues.

Wiki

  • Testes automatizados — como
    testar em cada camada (componente com Jest, integração com banco opt-in, E2E com Playwright)
    e como escrever os test() de uma coleção.
  • Scripts de banco de dados
    — bru.db nos cinco SGBDs, com o exemplo canônico e as armadilhas de cada um.

Build

npm run build:electron:win voltou a funcionar no Windows: o npm executa scripts pelo
cmd.exe, que não entende ./scripts/build-electron.sh. Os scripts de empacotamento agora
invocam bash.

Observado, ainda não tratado

Dois pontos não foram alterados porque exigem decisão de produto (estão registrados no
CHANGELOG.md):

  • MARRONE_OAUTH2_CALLBACK_URL aponta para oauth.marrone.com/callback, que é o
    redirect_uri padrão do fluxo OAuth2 Authorization Code quando o usuário não configura
    um callback no request. Com o callback preenchido, nada muda.
  • appinfo.marrone.com (endpoint das notificações) também não existe; a busca falha e o erro
    é silencioso. Efeito visível: nenhum.

Instalador: marrone-setup-1.1.1.exe (Windows x64).

Para a lista completa de mudanças, veja o CHANGELOG.

Marrone 1.1.0

Choose a tag to compare

@ThiagoGomesRocha ThiagoGomesRocha released this 15 Oct 16:22

Marrone 1.1.0 — release oficial

Primeira release estável com acesso a banco de dados direto dos scripts, e relatórios
de execução completos em HTML e JSON.

Banco de dados nos scripts

  • bru.db.connect / query / execute / disconnect / dbTransaction
  • 5 SGBDs por driver direto (uma dependência cada): PostgreSQL (pg), MySQL (mysql2),
    SQL Server (tedious), Oracle (oracledb, thin) e IBM DB2 (ibm_db) — sem Sequelize
  • Credenciais: cofre no app (cifrado pelo sistema); no CLI por variável de ambiente
    (MARRONE_DB_<SGBD>_USER / MARRONE_DB_<SGBD>_PASSWORD)

Relatórios

  • JSON espelhando o HTML. O --reporter-json (e o JSON exportado pela interface)
    passou a trazer o mesmo conteúdo do HTML: CURL, os testes das três fases mesclados e as
    operações de banco — antes gravava o objeto interno cru, sem CURL e sem banco.
  • Database Operation dentro de cada teste. A aba Tests agora mostra, em bloco
    colapsável, o script, a conexão/SGBD, o tipo da operação (query, execute, connect,
    disconnect, begin/commit/rollback), o SQL, os parâmetros, o tempo e o resultado
    — com as linhas devolvidas em tabela de colunas dinâmicas. A aba consolidada
    continua existindo como visão geral.
  • Tempo por teste: cada teste registra quanto levou (coluna Duration).
  • Segurança: headers sensíveis (Authorization, Cookie, X-Api-Key, ...) passaram a
    ser mascarados no relatório. O CURL já redigia, mas as tabelas de headers mostravam o
    token cru — o relatório é um arquivo que circula.

Windows Authentication no SQL Server

  • Novo authType (sql padrão | windows) e domain na conexão.
  • Interface: seletor Tipo de autenticação + campo Domínio, que aparece só no Windows
    Authentication (o seletor só existe no SQL Server — é o único driver que implementa NTLM).
  • CLI: MARRONE_DB_MSSQL_AUTH=windows e MARRONE_DB_MSSQL_DOMAIN=<DOMINIO>.
  • A preferência fica no cofre junto da credencial (a senha continua cifrada).

Correções que vieram junto

  • O CLI não levava para o relatório as operações de banco feitas no bloco tests — a
    consulta rodava, devolvia as linhas para o script, e o relatório saía sem nenhuma
    operação, sem erro. Só o caminho do CLI; o do app já funcionava.
  • O relatório chamava toda operação de SQL de "query" (inclusive um UPDATE).
  • Salvar credenciais sem digitar a senha apagava a senha guardada, apesar do formulário
    prometer que a mantinha.

Instalador

marrone-setup-1.1.0.exe — Windows x64, NSIS, permite escolher a pasta de instalação.
Não é assinado: o SmartScreen exibe um aviso na primeira execução. É esperado.

Limitação conhecida (importante)

A autenticação do Windows (NTLM) não foi validada contra um servidor real: o ambiente de
desenvolvimento não tem Active Directory (WORKGROUP, com conta local). O SQL Server recusa
NTLM com conta local com o erro 18452 — "The login is from an untrusted domain and
cannot be used with Windows authentication"
—, confirmado no ERRORLOG do servidor. Isso é
limitação do Windows/SQL Server, não do driver: nenhuma senha correta resolveria.

O caminho do driver foi verificado até o servidor (a requisição NTLM chega e é avaliada por
ele, com desfecho diferente do caminho de autenticação SQL). Falta um ambiente com domínio
para a credencial ser aceita. Quem for usar Windows Authentication deve testar em domínio.

Detalhes em "Limitações conhecidas" no CHANGELOG.md.

Marrone 1.1.0-rc.2

Marrone 1.1.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@ThiagoGomesRocha ThiagoGomesRocha released this 12 Oct 02:18

Marrone 1.1.0-rc.2 — release candidate

Correções sobre a rc.1, todas na integração de banco. Continua sendo um
candidato: os 5 SGBDs estão implementados, mas só o SQL Server foi validado
contra um servidor real.

O que mudou desde a rc.1

  • A aba "Database Operations" voltou a aparecer no relatório exportado pela
    interface.
    O campo databaseOperations se perdia na fronteira IPC — o app
    monta o resultado campo a campo, diferente do CLI. A aba simplesmente não
    existia no relatório do app, sem erro nenhum.
  • O relatório agora mostra as LINHAS devolvidas pela consulta, limitadas a
    20 por operação, com o total real e o aviso de corte ("mostrando 20 de 137").
    O teto existe porque o relatório circula: sem ele, um SELECT sem WHERE
    viraria um dump de tabela. Para gerar um relatório só com metadados:
    --reporter-hide-db-rows.
  • Os exemplos da aba Settings > Database usavam uma API que não existe
    (db.connect, dbQuery, dbExecute). Agora usam bru.db.*. O painel do
    próprio produto ensinava o erro — quem copiasse o exemplo quebrava o script.
  • O exemplo de validação no banco do sample de onboarding passou ao padrão
    canônico: test() assíncrono, disconnect no finally, placeholder por SGBD
    e um guard que faz o exemplo apenas explicar (e não falhar) numa instalação
    nova, sem banco configurado.

Instalador

marrone-setup-1.1.0-rc.2.exe — Windows x64, NSIS, permite escolher a pasta de
instalação. Não é assinado: o SmartScreen exibe um aviso na primeira
execução. É esperado, não indica defeito.

Validado nesta candidata

Rodando a coleção pelo app em modo de desenvolvimento, contra SQL Server real: a
consulta de validação retornou a linha do banco e o relatório exportado passou a
trazer a aba com as linhas.

Limitação conhecida

DECIMAL(38,10) no SQL Server volta com perda de precisão — limitação do
readNumeric do tedious, sem opção de configuração. Saída: CAST(col AS VARCHAR).

Marrone 1.1.0-rc.1

Marrone 1.1.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@ThiagoGomesRocha ThiagoGomesRocha released this 11 Oct 22:18

Marrone 1.1.0-rc.1 — release candidate

Integração de banco de dados nos scripts: bru.db disponível nos blocos de
pré-requisição, pós-requisição e tests.

O que entra

  • bru.db.connect / query / execute / disconnect + dbTransaction
  • 5 SGBDs por driver direto (uma dependência cada): MySQL (mysql2),
    PostgreSQL (pg), SQL Server (tedious), Oracle (oracledb, thin) e
    DB2 (ibm_db) — sem Sequelize
  • Credenciais: cofre no app; no CLI por variável de ambiente
    (MARRONE_DB_<SGBD>_USER / MARRONE_DB_<SGBD>_PASSWORD)
  • Relatório HTML com a aba Database Operations, com os parâmetros redigidos
  • Exemplo de validação de dados no banco na coleção de onboarding, com as
    asserções no bloco tests

Instalador

marrone-setup-1.1.0-rc.1.exe — Windows x64, NSIS, permite escolher a pasta de
instalação. Não é assinado: o SmartScreen vai exibir um aviso na primeira
execução. É esperado, não indica defeito.

Ressalva honesta

Dos 5 SGBDs, apenas o SQL Server foi validado contra um servidor real
(lê/escreve, parâmetros, transação com ROLLBACK e COMMIT, tabela temporária de
sessão e relatório). MySQL, PostgreSQL, Oracle e DB2 têm cobertura de testes
unitários, mas nunca falaram com um banco de verdade. O roteiro para fechar essa
lacuna está em docs/database-manual-test.md.

Limitação conhecida

DECIMAL(38,10) no SQL Server volta com perda de precisão — limitação do
readNumeric do tedious, sem opção de configuração. Saída: CAST(col AS VARCHAR).

Marrone 1.0.0

Choose a tag to compare

@ThiagoGomesRocha ThiagoGomesRocha released this 11 Oct 15:39

Marrone 1.0.0 — primeira build final

Fork open source do Bruno, rebrandeado como Marrone.

Destaques

  • Nova marca Marrone (icone do app, logo in-app e logo do relatorio)
  • Botao Copy no Response Body do relatorio HTML
  • Collection de exemplo com 14 testes (endpoint /users)
  • Correcoes de compatibilidade do rebrand (bruno-config)
  • README com a logo nova

Instalacao (Windows)

  1. Baixe marrone-setup-1.0.0.exe abaixo
  2. Execute o instalador

Requisitos: Windows 10/11 (x64)

Por compatibilidade, o formato interno permanece bruno (.bru, bruno.json, brunoConfig). O Marrone importa/exporta Postman, Bruno, Insomnia, OpenAPI e WSDL.