Usando o Watcher Com um Proxy
Informações sobre como enviar resultados para o axe Developer Hub através de um proxy web
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 proxies no Watcher (versão 4.0.0 ou posterior).
Requisitos
Para usar o suporte a proxies, você precisa de um software de proxy em execução localmente ou nos servidores da sua organização. Para usar o proxy, você precisa do endpoint HTTPS e seu certificado (para autorizá-lo na sua máquina).
Ao usar os servidores hospedados pela Deque, o HTTPS é o único protocolo suportado. Ao hospedar sozinho, 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 comunicaçãoHTTP_PROXY- O endpoint usado para o protocolo HTTP para comunicaçãoNO_PROXY- Uma lista separada por vírgulas de nomes de hosts que não devem passar por nenhum proxy
As variáveis de ambiente do axe Watcher e Node.js:
AXE_WATCHER_USE_ENV_PROXY- Alvo somente o Watcher para modificar o suporte ao proxyAXE_USE_ENV_PROXY- Alvo qualquer coisa do axe que também suporte esta variável para utilizar um proxyNODE_USE_ENV_PROXY- Maneira nativa do Node.js (a partir da versão 24 ou posterior) para optar por todas as requisições de rede para usar um proxyNODE_EXTRA_CA_CERTS- Variável nativa do Node.js para fornecer certificados CA confiáveis para conexões HTTPS
Quando qualquer uma das AXE_* variáveis está configurada para 1, o uso de proxy é habilitado. NODE_USE_ENV_PROXY foi introduzido na versão 24 do Node.js para habilitar isso globalmente para o processo, e foi retrocompatilizado para o Watcher suportá-lo em todas as versões.
Para habilitar o proxy para o Node.js, mas desativá-lo para o Watcher, qualquer uma das AXE_* variáveis pode ser configurada para 0.
Somente 1 e 0 são reconhecidos. Qualquer valor fora destes fará com que o suporte ao proxy seja desativado por padrão.
Para HTTPS, o certificado de autoridade de certificação 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:
- Configurar para a máquina ou trabalho de CI que está realizando o processamento. Isto os torna disponíveis globalmente durante a vida útil da máquina ou do trabalho.
- Fornecer antes de um comando no terminal para que existam apenas durante a vida útil desse processo.
Um exemplo de como configurar variáveis de ambiente de proxy em um arquivo de fluxo de trabalho do GitHub Action:
# 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 testAqui está um exemplo de como usar 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 testProxy Condicional na versão 24 ou Posterior do Node.js
Na versão 24 do Node.js (ou posterior), NODE_USE_ENV_PROXY é 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 alcançado usando NO_PROXY para instruir o sistema a permitir que o domínio evite proxy. O seguinte exemplo permite que o proxy seja usado para todas as requisições iniciadas pelo Node.js, mas não o use para as 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 testA razão para usar NO_PROXY é que, mesmo que você tente desativar o uso de proxy do axe Watcher, ele herda o despachante de requisições globais, o que significa que se NODE_USE_ENV_PROXY estiver habilitado, ele ainda teria precedência e usaria o proxy.
