Changelog

Mudanças técnicas enviadas ao Quickmock — recursos, correções, fortalecimento de segurança. A fonte da verdade é o histórico do git; esta página é a visualização com curadoria para desenvolvedores.

2026-10-17 — Proteção contra abusos

Segurança

  • Valores de cabeçalho com caracteres de controle são rejeitados. Um valor de cabeçalho de mock com quebra de linha ou outro caractere de controle (uma tentativa de injetar um cabeçalho extra) agora falha na validação com um erro claro em todos os lugares onde cabeçalhos são definidos: resposta, variantes, rotas, etapas de sequência e resposta de erro. Na resposta esses valores já eram neutralizados.
  • Mocks que se passam por uma API de LLM para fazer um agente de IA executar comandos de shell são bloqueados. O filtro antispam agora rejeita chamadas a ferramentas de execução de shell (OpenAI tool_calls / function_call, Anthropic tool_use) e reconhecimento de rede dentro do sandbox. Mocks comuns com chamadas de ferramentas, como get_weather, continuam funcionando.

2026-10-02 — Interior mais enxuto; limpar logs zera o contador

Alterado

  • O robots.txt é um único grupo de regras em vez das mesmas regras repetidas para 23 rastreadores nomeados — todos os bots, incluindo os de IA, continuam com exatamente o mesmo acesso. As listas de guias e modelos do llms.txt agora são geradas a partir do mesmo registro das páginas e do sitemap, então não podem mais ficar desatualizadas.
  • A proteção contra requisições entre sites na criação de mocks agora usa a proteção CSRF nativa do Go. Requisições de navegador vindas de outro site — inclusive de um subdomínio vizinho — são rejeitadas; curl, CI e outros clientes que não são navegadores não são afetados. O endpoint do seletor de idioma aceita apenas o próprio formulário, não mais um corpo JSON.
  • Limpeza interna: cerca de 700 linhas de código feito à mão foram substituídas pela biblioteca padrão do Go e pelo driver do banco de dados — sem mudanças na API nem no comportamento dos mocks.

Corrigido

  • Limpar os logs de um mock agora também zera o contador de requisições. Antes a lista ficava vazia, mas o resumo continuava mostrando a contagem antiga e o horário da última requisição.
  • GET /api/mocks/:id/logs retorna "logs": [] para um mock sem requisições capturadas, em vez de null.
  • O inspetor de requisições ao vivo transmite desde a primeira visita. Em um mock privado a página abria a conexão ao vivo antes de a sessão do inspetor existir, era recusada e passava em silêncio a consultar o servidor a cada 2 segundos; agora conecta quando a sessão está pronta, e um inspetor bloqueado não faz mais polling. “Limpar logs” também atualiza a lista na hora, e a página não registra mais um erro do htmx a cada carregamento.

2026-09-26 — Sem solicitações de pagamento; correção do polling do inspetor

Segurança

  • O Quickmock não hospeda mais solicitações de pagamento x402 em redes reais. Um mock não consegue verificar um pagamento, então uma resposta 402 pedindo stablecoins reais era uma armadilha para qualquer agente que pagasse — e alguém tinha começado a listar esses mocks em um catálogo de descoberta x402. Criar ou editar um mock com um requisito de pagamento x402 em uma mainnet (Base, Ethereum, Solana…) agora falha com 422 payment_blocked. x402 em testnets como base-sepolia continua permitido, assim como um simples status 402.

Corrigido

  • Uma aba do inspetor deixada aberta em um mock excluído ou expirado não consulta mais o servidor indefinidamente. A lista de requisições e o contador pediam dados a cada 2–5 segundos e recebiam um 404 que a página ignorava silenciosamente — uma única aba esquecida fez mais de duas mil requisições em poucos dias. Agora o servidor manda a página parar de consultar, e a página avisa que o mock não existe mais.

2026-09-20 — IPs de cliente confiáveis

Segurança

  • A origem agora aceita tráfego web apenas da Cloudflare, em duas camadas independentes: uma lista de permissões no firewall com os intervalos publicados pela Cloudflare, atualizada semanalmente por um timer, e o Authenticated Origin Pulls, em que o servidor web exige o certificado TLS de cliente da Cloudflare. É isso que torna o endereço do visitante confiável: a Cloudflare sobrescreve o cabeçalho que o carrega, mas só para o tráfego que realmente passa por ela. Enquanto o caminho direto esteve aberto, qualquer um que descobrisse a origem podia se conectar e se declarar qualquer IP.

Corrigido

  • O limite de mocks ativos por IP, o rate limit e a lista de bloqueio do operador se apoiavam em um endereço interno em vez do endereço do visitante, o que reduzia três controles por IP a um único balde global: uma lista de bloqueio que não batia com ninguém e um único chamador capaz de gastar a cota de todos. Os logs de requisições mostravam esse mesmo endereço inútil. Agora tudo resolve para o IP real do cliente.
  • Os comandos dentro das seções longas de um guia apareciam como texto de parágrafo comum — sem estilo de código nem botão de copiar — embora sejam exatamente as linhas que o leitor deve digitar. Agora têm a mesma aparência dos demais blocos de código da página e são copiados com um clique.

Adicionado

  • Os scripts e a explicação completa estão no repositório, em deploy/cloudflare/: por que cada camada é necessária, em que ordem ativá-las sem derrubar o site, como a sincronização semanal falha em segurança e quais armadilhas vale conhecer se você mantém algo atrás de um CDN.

2026-09-19 — Filtragem de status e novas localidades

Adicionado

  • Filtro de Status: O inspetor de solicitações agora captura o status HTTP realmente servido para cada solicitação e permite filtrar a visualização de log por código de status. As exportações de log incluem o novo campo.
  • Localidades: Adicionadas traduções completas para espanhol, português e chinês simplificado, tornando o Quickmock acessível a um público global mais amplo com base nas tendencias de tráfego.
  • API pública e CLI: go install .../cmd/quickmock@latest dá a você um comando quickmock create que imprime a URL pública de um mock e o seu admin_token de uso único, de modo que um job de CI consiga um endpoint descartável sem navegador. O novo guia API pública e CLI cobre a instalação, as flags e o equivalente em curl para pipelines que preferem não instalar nada.

Corrigido

  • A filtragem por status chegou com três arestas, agora aparadas: o selo de status não tinha cores definidas, então um 500 ficava idêntico a um 200; um status fora da lista curta do seletor deixava o controle marcando todos os status acima de uma lista que estava de fato filtrada; e ?status= na exportação de logs engolia valores inválidos em silêncio em vez de responder 422, como ?method= já fazia.
  • Auto-hospedagem: a coluna response_status adicionada nesta versão aceitava nulos, o que fazia toda leitura de logs falhar nas requisições capturadas antes da atualização. Agora ela é NOT NULL DEFAULT 0, e uma migração seguinte conserta uma instância que já aplicou a primeira versão.

2026-09-18 — Corpos de resposta que podem referenciar a si mesmos

Adicionado

  • Novo token {{mock.url}} se expande para a URL base do próprio mock — https://quickmock.dev/m/<slug> — de modo que o corpo da resposta possa apontar para si mesmo. Isso era impossível antes: o slug só existe depois que o mock é criado, e um autor de template não tem como escrevê-lo com antecedência.
  • O novo token de eco {{request.host}} retorna o Host para o qual a requisição foi endereçada. O Go mantém esse valor fora do mapa de cabeçalho, então {{request.header.host}} nunca poderia substituí-lo.

Alterado

  • Três templates pararam de enviar placeholders que você tinha que editar manualmente. O documento de descoberta OIDC agora anuncia issuer, authorization_endpoint, token_endpoint e jwks_uri que resolvem para o próprio mock; o link next da coleção paginada é seguível; e a instance do erro problem+json nomeia um endereço real. Não sobrou nada lendo YOUR-SLUG.

2026-09-08 — Guias longos e profundidade do template

Adicionado

  • Três guias — simular um endpoint de API REST, testar um receiver de webhook e testar lógica de repetição e back-off — agora são artigos completos em vez de um trecho de código com uma legenda: uma resposta direta logo de cara, títulos que fazem a pergunta com a qual você chegou, uma seção sobre o que costuma dar errado e um FAQ.
  • Todas as páginas de template agora começam com uma resposta simples sobre a finalidade do template e o que ele deliberadamente não faz, e terminam com links para a documentação do fornecedor ou RFC que ele reproduz — Stripe, Slack, GitHub, Shopify, Telegram, RFC 6749, RFC 7517, RFC 9457 — em vez de nomeá-los de passagem.
  • As páginas de guia e de template têm marcação FAQPage, e a marcação de um template cita as fontes a partir das quais ele foi construído.

Alterado

  • As páginas de guia e de template agora mostram quando foram atualizadas pela última vez e publicam a mesma data como dateModified.
  • Os guias sobre lógica de repetição e receivers de webhook ganharam seções sobre quando parar de repetir e sobre como criar uma chave de idempotência a partir de um ID de entrega.

2026-09-08 — Links internos e metadados de hub

Adicionado

  • Todas as páginas de guia e template agora terminam com links para páginas relacionadas, e um guia tem um link de volta para os templates construídos nele — as duas seções têm links cruzados em ambas as direções, em vez de depender apenas de seu índice.
  • A página inicial vincula diretamente a cinco guias e cinco templates em vez de apontar apenas para o índice.
  • As páginas de guias, documentação e changelog agora carregam a marcação schema.org — um ItemList, um TechArticle e um SoftwareApplication com notas de lançamento e versão.

Alterado

  • As páginas de índice de guias e templates lideram seus títulos com o que elas realmente listam, em vez de um nome de seção genérico.
  • /llms.txt ganhou uma seção de Documentação, de modo que a referência da API, o contrato OpenAPI e o changelog fiquem agrupados onde um assistente de IA os procura, em vez de ficarem no meio de uma lista de fatos.

2026-09-05 — IP de cliente confiável e redirecionamentos estritamente relativos

Segurança

  • O IP do cliente por trás do limite de mock por IP, a lista de bloqueio de IP e a lista de permissões do filtro de spam não é mais lido a partir de um cabeçalho X-Forwarded-For auto-relatado. Agora ele vem do próprio cabeçalho do proxy reverso imediato (CF-Connecting-IP em produção), e apenas quando esse par é confiável — falsificações separadas por vírgula são totalmente ignoradas.
  • Mudança importante: um cabeçalho de resposta Location de um mock agora deve ser um caminho relativo simples (ex. /m/abc123) — verificado na resposta principal, nas variantes nomeadas, nas rotas, nas etapas de sequência e na resposta de erro da mesma forma. URLs absolutas, relativas a protocolo //host e variantes com barra invertida são rejeitadas com 422 validation_failed na criação e atualização; uma linha existente que ainda carregue uma tem o cabeçalho descartado no serviço.
  • As respostas de mock servidas a partir de /m/:slug agora enviam Cross-Origin-Resource-Policy: same-origin, de modo que um mock não pode mais ser carregado como script, imagem ou iframe de outra origem. Um mock não pode substituir esse cabeçalho por si próprio.
  • O filtro anti-spam embutido ganhou padrões para leituras de arquivos sinalizadores, pesquisas de ambiente portadoras de segredos, one-liners de loader e reverse-shell, caminhos de metadados em nuvem e dois padrões de sequestro de navegador.

Alterado

  • O token de administrador agora é exigido em todas as chamadas mutantes — edição, exclusão, extensão e exportação ou limpeza de logs — sem deixar exceções para mocks criados antes da existência de tokens.

2026-08-22 — Go 1.27 e atualização do CI

Alterado

  • O backend e a imagem de produção agora compilam com Go 1.27.0; a suíte completa testada com verificação de corrida continua a passar no novo conjunto de ferramentas.
  • O GitHub Actions agora utiliza as ações checkout e setup-go compatíveis com Node.js 24, com a versão do Go extraída diretamente do go.mod para manter o CI e a produção alinhados.

2026-08-19 — Cenários determinísticos, workspaces de API e logs privados

Adicionado

  • Variantes de resposta nomeadas agora podem ser selecionadas explicitamente com X-Quickmock-Variant ou __quickmock_variant, tornando casos extremos exatos reprodutíveis sob demanda.
  • Regras condicionais ordenadas selecionam variantes a partir do método, caminho, consulta, cabeçalhos ou corpo JSON da solicitação usando os operadores equals, not_equals, contains e exists.
  • Um mock agora pode expor até 50 rotas de método e caminho. Cole um documento JSON ou YAML do OpenAPI 3.x no construtor para gerar as rotas do workspace e as respostas de exemplo.
  • Uma nova documentação da API e um contrato OpenAPI 3.1 legível por máquina cobrem criação, variantes, regras, workspaces e privacidade do inspetor.

Segurança

  • Os logs de solicitações são privados por padrão para novos mocks. O token de administrador desbloqueia uma sessão de inspetor HttpOnly com escopo de caminho; os criadores também podem desativar o armazenamento dos corpos das solicitações ou dos IPs dos remetentes.

Alterado

  • Os metadados SEO/GEO agora publicam entradas recíprocas no sitemap de idiomas, incluem a página de documentação e sinais de atualização revisados, e marcam URLs de mock, workspace, compartilhamento e inspetor como não indexáveis.

2026-08-15 — Resistência a abusos e respostas de mock mais seguras

Segurança

  • Os endpoints de fallback do inspetor de solicitações agora têm seu próprio orçamento por IP, limitando picos automatizados sem afetar atualizações ativas normais.
  • As respostas de mocks não podem mais expandir o escopo de um service worker, e as respostas de redirecionamento aceitam apenas destinos relativos, HTTP ou HTTPS.
  • O filtro de abusos integrado agora rejeita primitivas SSRF comuns, configurações de manipuladores executáveis e impressões digitais de páginas de backlink conhecidas. Os auto-hospedadores também podem configurar uma lista de negação IP/CIDR.

Corrigido

  • Os logs do contêiner agora rotacionam por padrão, e o desligamento normal não tenta mais persistir registros vazios no log de solicitações ao esvaziar uma fila fechada.

2026-08-10 — Criação de mock protegida a partir do navegador

Segurança

  • A criação de um mock a partir do site — o formulário na página inicial e o botão de um clique em uma página de modelo — agora é rejeitada quando outro site a aciona no seu navegador. O acesso via script não é afetado: curl, tarefas do CI e a API pública não enviam cabeçalhos de origem do navegador e continuam funcionando exatamente como antes.
  • Essas duas mesmas ações agora possuem seu próprio orçamento de limite de requisições, separado do orçamento que serve o tráfego do mock, de forma que um script descontrolado não pode gastar a sua cota de mocks ativos.

Alterado

  • O cabeçalho não transborda mais em um celular: a seção Modelos tornava seis links demais para uma linha, portanto o link do GitHub desceu para o rodapé ao lado dos outros links do autor, e a navegação restante agora passa para a sua própria linha em vez de sumir da tela.
  • Ao rodar sua própria instância: o servidor agora avisa na inicialização sobre variáveis de ambiente restantes do antigo prefixo MOCKAPI_. Nada as lia desde a renomeação, então até agora uma chave obsoleta mantinha o padrão em vigor silenciosamente — incluindo QUICKMOCK_BASE_URL, da qual a nova verificação de origem depende.

2026-08-09 — Galeria de modelos de mock

Adicionado

  • Nova seção /templates: dez configurações de mocks prontas divididas em quatro categorias (pagamentos, ferramentas para desenvolvedores, autenticação & identidade, uso geral) — webhooks do Stripe e do Shopify, eventos de push do GitHub, handshake de url_verification do Slack, descoberta de OAuth2/OIDC e JWKS, corpos de erro RFC 9457 e mais.
  • O botão "Criar este mock" em cada modelo o cria com um clique, e o link "Abra no construtor de mocks para editar primeiro" abre a mesma configuração pré-preenchida no formulário normal para que você possa ajustar campos, cabeçalhos ou códigos de status antes de salvar.
  • A página de cada modelo destrincha os campos principais do payload e lista exatamente como o mock difere do serviço real que ele imita — nada de fingir que um mock estático é a API genuína.

Corrigido

  • O banner da página inicial "você atingiu o limite de mocks ativos" costumava mostrar o limite de tamanho do corpo da requisição em vez do limite real da contagem de mocks, mais um pedaço perdido %!(EXTRA int=…). Agora ele mostra o número correto sem nada anexado a ele.

2026-07-26 — Limite de TTL, extensão de mock, exportação de log

Adicionado

  • O tempo de vida de um mock agora possui um limite: o ttl_seconds não pode passar de 30 dias (configurável pelo servidor), seja na sua criação ou depois.
  • A página do mock ganhou um botão "Estender" que adia a expiração, até o mesmo limite de 30 dias a partir da data de criação do mock — ele precisa do token de administrador, assim como a edição ou exclusão do mock.
  • Os modelos do corpo da resposta ganharam quatro tokens: {{random.pick:a|b|c}} escolhe uma opção a cada acesso, {{seq}} conta os acessos, mais {{faker.price}} e {{faker.lorem}}.
  • O inspetor de solicitações pode filtrar pelo método HTTP, e o seu link "Baixar JSON" agora exporta todo o histórico capturado de requisições/respostas (incluindo os IPs remetentes) — é necessário o token de administrador, diferente da exportação da configuração.

2026-07-17 — Token de administrador por mock

Adicionado

  • Criar um mock agora retorna um token de administrador de uso único, mostrado uma vez em um banner copiável na página do mock — salve-o, pois ele não pode ser mostrado de novo.
  • A edição de um mock, exclusão ou limpeza de seus logs agora necessitam desse token: envie-o como Authorization: Bearer <token>. Ler um mock, seus logs ou o inspetor em tempo real ainda funciona apenas pelo slug, nenhum token necessário.
  • Mocks criados antes deste lançamento continuam funcionando sem o token até expirarem. Novo guia: Gerencie mocks de qualquer dispositivo.

2026-07-05 — Inspetor em tempo real, exportação e importação, anti-spam

Adicionado

  • O inspetor de solicitações utiliza Server-Sent Events: novas solicitações aparecem na hora, sem polling (verificações repetidas), e a página muda automaticamente para o polling onde o SSE estiver indisponível.
  • Exporte a configuração de um mock no formato JSON pela sua página (sem logs, sem IPs) e importe ela no formulário de criação — vindo de um arquivo ou texto colado, inteiramente no seu navegador. O formato é igual ao POST /api/mocks, para que as exportações possam ser repetidas via API.
  • Um filtro de conteúdo anti-spam impede a criação abusiva de mocks. Os operadores podem trocar a lista nativa de padrões (QUICKMOCK_SPAM_PATTERNS_FILE), desativá-la ou colocar IPs na lista de permissões (QUICKMOCK_SPAM_ALLOW_IPS).

2026-06-19 — Ativação de CORS

Adicionado

  • Uma caixa de seleção no formulário de criação habilita uma predefinição CORS permissiva sem credenciais (Access-Control-Allow-Origin: * e afins) e responde ao preflight OPTIONS com 204 — chame um mock pelo JS do navegador de qualquer origem, sem proxy.
  • Novo guia de uso: Faça mock de uma API com CORS.

2026-06-13 — Guias de uso

Adicionado

  • Nova seção /guide: páginas focadas em cenários de tarefas comuns — faça mock de uma API REST, teste lógica de repetição, simule APIs instáveis ou lentas, inspecione webhooks, retorne dados falsos, ecoe a requisição. Cada página contém um exemplo curl pronto para ser executado; todas estão listadas no sitemap.
  • Cada guia agora possui um botão copiar em seus exemplos curl e um CTA de um clique Criar um mock que abre o formulário da tela inicial preenchido com a configuração daquela receita — método, corpo, atraso, taxa de erro, sequência — pronto para envio.

2026-06-11 — Simulação de API instável

Adicionado

  • Sequências de respostas: um mock agora pode guardar uma lista ordenada de até 10 respostas extras (status + corpo + cabeçalhos em cada) iterada a cada acesso — 1ª chamada → resposta principal, 2ª → passo 2, … então repete o ciclo. O clássico teste de lógica de repetição. A posição é um contador por mock compartilhado (Redis, com opção de recuperação interna), assim, todo chamador avança pela mesma sequência.
  • Taxa de erro e variação de atraso: uma porção configurável de solicitações (0–100%, computada a cada requisição) pode responder com um status/corpo diferente, e o atraso na resposta pode ser um intervalo de mín–máx para variação aleatória de latência em vez de um valor fixo. As três definições se combinam, e um novo cabeçalho de resposta X-Mockapi-Variant (default, error ou seq-i/n) indica qual ramo serviu aquele acesso. Configurável pela API ou formulário de criação (nova seção “Simulação de instabilidade”).
  • A seção “Quem construiu isso” na tela inicial agora vincula ao site pessoal do mantenedor (deadsquirrel.dev), no idioma correspondente de cada localidade.

2026-06-10 — Tokens de eco de requisição

Adicionado

  • Os novos tokens dinâmicos request.* ecoam a solicitação recebida no corpo de resposta: {{request.method}}, {{request.path}}, {{request.ip}}, {{request.query.id}}, {{request.header.x-request-id}}, {{request.body}} e os caminhos de ponto no JSON como {{request.body.user.name}}. Os valores são inseridos da mesma forma, sem mais nada guardado — um mock estático agora consegue responder utilizando dados providos pela própria requisição.

Corrigido

  • A entrada de 2026-05-20 abaixo costumava mostrar as marcações de escape de template do Go ({{`…`}}) em volta de todo token em vez do token propriamente dito — herança da cópia do markup de um template HTML. Agora mostra algo puro como {{faker.uuid}} e demais aliados.

2026-06-08 — Link do autor

Adicionado

  • O crédito no rodapé agora direciona o nome do autor para o site pessoal do mantenedor (deadsquirrel.dev), com correspondência de idioma pela localidade, junto a rel="me" atuando como sinal de identidade.

2026-05-25 — Ajustes de conteúdo do site

Adicionado

  • A própria página de /changelog, em EN e RU, com hreflang e uma entrada no sitemap.xml.
  • Página inicial: uma seção Glossário rápido (Mock API, Endpoint, TTL, Token do Faker, Content-Type) para orientar usuários que não tenham contexto sobre a plataforma.
  • Página inicial: um bloco Quem construiu isso com a biografia do autor e links diretos para o GitHub, LinkedIn, Telegram — e também um espaço para a história pessoal Por que criei o Quickmock, tirando o rótulo de mais uma landing page genérica de ferramenta.
  • Selo de Última atualização visível no rodapé da página inicial; dateModified espelhado no WebApplication em formato JSON-LD ajudando indexadores focados em IA na análise de atualidade.

Corrigido

  • O parâmetro ?lang=<code> na URL finalmente resolve no idioma apontado. Anteriormente, as chaves de link canônico e o hreflang levavam ao ?lang=ru mas o resolvedor ficava focado apenas no cookie e em Accept-Language, logo, um robô indexador observando a ligação hreflang era enganado e recebia conteúdo do inglês.

2026-05-23

Segurança

  • Proteção adicional para origem em /m/*: o roteador de mock público agora destrói qualquer cabeçalho que altere as configurações da solicitação, evitando que usuários os usem a fim de corromper proxies. Slugs de mock mais longos (maior entropia) garantindo robustez, e censura nas respostas a falhas internas a nível de rede.
  • Botão seletor de idiomas (POST /language) agora aceita Referers com base absoluta da mesma origem. Redirecionamentos de fallback continuam a atuar normalmente dentro de proxies reversos devido às correções recentes nos cabeçalhos e afins.

Corrigido

  • O middleware RealIP agora entende o X-Forwarded-For / X-Real-IP unicamente quando a conexão imediata seja via loopback ou de IP local/privado. Antigamente, ele honrava o XFF de todas as solicitações, incluindo atribuições de gateway.
  • O roteador do mock grava agora os pedidos de recebimento de cabeçalho através de uma padronização toda em letra minúscula.
  • UI: exemplos de slug estão sob a formatação de 12 caracteres agora; botão Copiar URL foi reposto para funcionamento regular na janela de detalhes.

2026-05-21 — Isenção de UGC

Adicionado

  • Modal do Termo de Uso e disclaimer no rodapé: mocks são conteúdos elaborados por terceiros. Regras contendo avisos das condutas a serem evitadas já embutidas, além da publicação de um canal para relatar as infrações de conteúdo (tais como malware e ataques afins).
  • Menu de Modal agora mais limpo para smartphones sem corte para o comando de fechamento no modo retrato ou afins.

2026-05-20 — Tokens dinâmicos

Adicionado

  • Substituição de token Faker / now nos corpos de resposta: {{faker.uuid}}, {{faker.email}}, {{faker.name}}, {{now.iso8601}}, e mais 18 (pessoas, IDs, rede, texto, tempo). O mock armazena o modelo como está e renderiza novos valores aleatórios em cada acesso, para que um mock possa servir dados diferentes por chamada. A lista completa está em Tokens dinâmicos no formulário de criação.

2026-05-18 — Fortalecimento e qualidade de vida

Corrigido

  • O deploy do Docker Compose agora aguarda o healthcheck --wait em vez de fazer polling de /healthz em um loop de shell, de forma que os deploys não exibem mais o erro cosmético curl: (52) Empty reply enquanto o proxy e o processo Go terminam a inicialização.
  • O exemplo de POSTGRES_PASSWORD no .env.example agora alerta sobre valores codificados em base64 — o analisador DSN do pgx falha com + / = na senha.

2026-05-17 — Lançamento público inicial

Adicionado

  • Motor de mock principal: criar, visualizar, editar, excluir; todos os métodos HTTP, incluindo ANY.
  • Roteador público /m/:slug com status, corpo, cabeçalhos, atraso de resposta (0–30 s) e TTL configuráveis.
  • Inspetor de requisições ao vivo: polling de 2 segundos do HTMX, contador por mock, limpeza de logs.
  • Importação cURL — cole um comando curl … para preencher o formulário de criação.
  • Trechos de código na página de detalhes do mock para JavaScript, Python, Go e PHP.
  • Visualização de compartilhamento somente leitura em /share/:slug com tags Open Graph.
  • Limite de taxa por IP (5000 acessos / 8 horas) e limite de mock ativo por IP (50).
  • Corpo de resposta máximo de 512 KB, aplicado pelo manipulador e uma restrição CHECK de BD.
  • Stack do Docker Compose (app + Postgres + Redis + contêiner de migração one-shot) e um caminho systemd bare-metal.
  • Localização EN + RU, alternador de idioma (cookie + Accept-Language).
  • Privacidade desde o design: sem JS de terceiros, sem análises, sem CDN de fontes; o CI aplica isso em cada build.

Histórico completo do git no GitHub →

← Voltar à página inicial