Usar o Watcher com um Proxy

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Informações sobre como enviar resultados para o axe Developer Hub por meio de um proxy web

Not for use with personal data

Proxies HTTP permitem que uma organização audite os dados que atravessam a rede. Eles são normalmente configurados usando variáveis de ambiente. Este documento detalha como configurar o suporte a proxy no Watcher (versão 4.0.0 ou posterior).

Requisitos

Para usar o suporte a proxy, você precisa de um software de proxy funcionando localmente ou nos servidores da sua organização. Para usar o proxy, você precisa do endpoint HTTPS e do seu certificado (para autorizá-lo em sua máquina).

important

Ao usar os servidores hospedados pela Deque, o HTTPS é o único protocolo suportado. Ao hospedar você mesmo, você pode usar HTTP, e também precisará do endpoint HTTP do proxy. Ele deve ser o mesmo domínio e porta que o HTTPS (443), mas verifique para ter certeza.

Configuração

A configuração de proxies para o Watcher é feita inteiramente através de variáveis de ambiente. Estas são divididas em dois grupos.

As variáveis de ambiente de proxy "padrão":

  • HTTPS_PROXY - O endpoint usado para o protocolo HTTPS para se comunicar
  • HTTP_PROXY - O endpoint usado para o protocolo HTTP para se comunicar
  • NO_PROXY - Uma lista separada por vírgulas de nomes de host que não devem passar por qualquer proxy

As variáveis de ambiente do axe Watcher e Node.js:

  • AXE_WATCHER_USE_ENV_PROXY - Alvo apenas para o Watcher modificar o suporte a proxy
  • AXE_USE_ENV_PROXY - Alvo para qualquer coisa do axe que também suporte esta variável para utilizar um proxy
  • NODE_USE_ENV_PROXY - Forma nativa do Node.js (a partir da versão 24 ou posterior) para fazer com que todas as requisições de rede usem um proxy
  • NODE_EXTRA_CA_CERTS - Variável nativa do Node.js para fornecer certificados CA confiáveis para conexões HTTPS

Quando qualquer uma das variáveis AXE_* é configurada para 1, o uso de proxy está habilitado. NODE_USE_ENV_PROXY foi introduzido na versão 24 do Node.js para habilitar isso globalmente para o processo, e foi ajustado para suportar isso em todas as versões do Watcher.

Para habilitar o proxy para o Node.js, mas desativá-lo para o Watcher, qualquer uma das variáveis AXE_* pode ser configurada para 0.

important

Apenas 1 e 0 são reconhecidos. Qualquer valor fora desses resultará na desativação do suporte a proxy.

Para HTTPS, o certificado da autoridade certificadora fornecido pelo seu proxy deve ser especificado com NODE_EXTRA_CA_CERTS, para que a conexão não seja rejeitada como não confiável. Este valor é um caminho para o arquivo de certificado.

Exemplos de Uso

Existem duas principais maneiras de configurar variáveis de ambiente:

  1. Configurá-las para a máquina ou tarefa de CI que faz o processamento. Isso as torna disponíveis globalmente durante o período de vida da máquina ou tarefa.
  2. Fornecer elas antes de um comando no terminal para que existam apenas durante o período de vida desse processo.

Um exemplo de configuração de variáveis de ambiente de proxy em um arquivo de workflow do GitHub Actions:

# Setup of the workflow and jobs
      - steps:
      - name: Run Tests
        env:
          HTTPS_PROXY: https://localhost:9090
          NODE_EXTRA_CA_CERTS: ~/path/to/ca.pem
          AXE_WATCHER_USE_ENV_PROXY: 1
        run: npm run test

Aqui está um exemplo de uso de variáveis de ambiente de proxy localmente para executar um único comando:

AXE_WATCHER_USE_ENV_PROXY=1 HTTPS_PROXY=https://localhost:9090 NODE_EXTRA_CA_CERTS=~/path/to/ca.pem npm run test

Proxy Condicional na versão 24 ou posterior do Node.js

Na versão 24 do Node.js (ou posterior), NODE_USE_ENV_PROXY está habilitado por padrão para todas as requisições, então você pode querer desativar condicionalmente o proxy para o Watcher em cenários de teste.

Isso pode ser conseguido usando NO_PROXY para instruir o sistema a permitir que o domínio ignore a utilização do proxy. O exemplo a seguir permite que o proxy seja usado para todas as requisições iniciadas pelo Node.js, mas não para aquelas que visam axe.deque.com ou example.com:

NODE_USE_ENV_PROXY=1 HTTPS_PROXY=https://our.intranet/proxy NO_PROXY=axe.deque.com,example.com npm run test

A razão para usar NO_PROXY é que, mesmo se você tentar desativar o uso de proxy do axe Watcher, ele herda o despachante de requisições global, o que significa que se NODE_USE_ENV_PROXY estiver habilitado, ele ainda terá precedência e usará o proxy.