CLI open source de segurança e testes de regressão integrado ao CI para servidores MCP, com verificação de mudanças em schemas, simulação segura de ataques e saída SARIF.
N4darae/shrt
Um harness de testes de regressão que reproduz sequências gravadas de chamadas à API em um backend, usando baselines aprovadas por pessoas para detectar mudanças entre releases.
- Estrelas
- 2,388
- Forks
- 164
- Issues abertas
- 6
- Último commit
- há 12 dias
O que é?
shrt testa um backend por meio de sequências de chamadas à API definidas em YAML, como fazer login, criar um item, adicionar estoque e consultar o resultado. Uma pessoa aprova uma execução bem-sucedida como baseline, e as releases posteriores são reproduzidas em comparação com ela. Quando um campo muda, shrt informa a etapa, o campo e a gravação que suspeita ter causado a mudança.
Um arquivo de contrato descreve o que cada rpc exige, de onde vêm os valores, como rejeita entradas inválidas e como as gravações alteram campos numéricos. shrt pode gerar sequências a partir desse contrato, testando valores de limite, tokens ausentes ou inválidos, IDs desconhecidos e duplicatas. A ferramenta usa o protocolo Connect sobre HTTP POST, então funciona com servidores criados com connect-go; servidores que oferecem apenas gRPC não são compatíveis. São aceitos rpcs unários e de streaming do servidor, com os streams lidos até a primeira mensagem.
A ferramenta é escrita em Go e precisa do buf para compilar arquivos .proto. As credenciais são lidas de variáveis de ambiente e removidas dos registros de execução. Ela só envia requisições para localhost, a menos que o host de destino esteja listado na configuração, e foi projetada para ser usada por um agente de programação, embora todos os comandos também possam ser executados manualmente.
Recursos principais
- 01As sequências de chamadas à API são definidas em arquivos YAML e reproduzidas a cada release.
- 02Baselines aprovadas por pessoas registram campos das respostas, inclusive aqueles que não são verificados por nenhuma asserção.
- 03Um arquivo de contrato pode gerar sequências de teste que cobrem limites, falhas de autenticação e duplicatas.
- 04As falhas identificam a etapa, o campo alterado e a gravação suspeita.
- 05As requisições são limitadas a localhost ou a hosts explicitamente permitidos para proteger os dados de produção.
- 06Um comando de CI gate retorna um código diferente de zero em caso de falha.
Casos de uso
- Detectar regressões em um backend connect-go entre releases.
- Executar verificações de regressão da API em CI para cada novo build.
- Permitir que um agente de programação escreva e mantenha contratos de teste da API sob revisão humana.
Início rápido
- 1
Instale buf (a ferramenta de build do Protocol Buffers que o shrt precisa no PATH)
- 2
Instale o shrt com Go 1.26 ou posterior
go install github.com/N4darae/shrt/cmd/shrt@latest - 3
Confira a versão instalada
shrt version - 4
Configure o shrt no seu projeto de backend e confira
shrt init
Antes de usar
- Requer Go 1.26 ou posterior e buf no PATH.
- Funciona apenas com servidores que usam o protocolo Connect, não com servidores que usam somente gRPC.
- Em RPCs de streaming, lê apenas até a primeira mensagem.
- shrt init deduz qual RPC é o de login, então é preciso conferir o resultado.
Em coleções
Tópicos
Perguntas frequentes
- O que é shrt?
- Um harness de testes de regressão que reproduz sequências gravadas de chamadas à API em um backend, usando baselines aprovadas por pessoas para detectar mudanças entre releases. shrt testa um backend por meio de sequências de chamadas à API definidas em YAML, como fazer login, criar um item, adicionar estoque e consultar o resultado. Uma pessoa aprova uma execução bem-sucedida como baseline, e as releases posteriores são reproduzidas em comparação com ela. Quando um campo muda, shrt informa a etapa, o campo e a gravação que suspeita ter causado a mudança.
- shrt é gratuito? Qual é a licença?
- shrt é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- shrt ainda é mantido?
- Manutenção ativa. O último commit de shrt foi em 26 de out. de 2026.
- Para que posso usar shrt?
- Detectar regressões em um backend connect-go entre releases. Executar verificações de regressão da API em CI para cada novo build. Permitir que um agente de programação escreva e mantenha contratos de teste da API sob revisão humana.
- Como instalar shrt?
- Instale buf (a ferramenta de build do Protocol Buffers que o shrt precisa no PATH) Instale o shrt com Go 1.26 ou posterior: go install github.com/N4darae/shrt/cmd/shrt@latest Confira a versão instalada: shrt version Configure o shrt no seu projeto de backend e confira: shrt init
- Onde consigo shrt?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/N4darae/shrt
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma ferramenta de linha de comando para chamar servidores gRPC, como o curl, mas usando entradas JSON, com descoberta de schemas via server reflection ou arquivos proto.
Ferramenta de linha de comando que inicia uma interface no navegador para enviar solicitações interativamente a servidores gRPC, como o Postman para REST.
Cliente de API no terminal que armazena requisições HTTP, GraphQL, gRPC, WebSocket e SSE em arquivos .http simples, que você pode versionar no git.
Cliente de API nativo e local-first para REST, gRPC, GraphQL e WebSocket, escrito em Go e com proxy de tráfego integrado.
Ferramenta open source de testes de carga, com testes de performance escritos em JavaScript e executados por um binário em Go.