Usar Watcher Con un Proxy
Información sobre cómo enviar resultados al eje Developer Hub a través de un proxy web
Los proxies HTTP permiten a una organización auditar los datos que atraviesan la red. Normalmente se configuran utilizando variables de entorno. Este documento detalla cómo configurar el soporte de proxy en Watcher (versión 4.0.0 o posterior).
Requisitos
Para usar el soporte de proxy, necesitas un software de proxy que se ejecute localmente o en los servidores de tu organización. Para usar el proxy, necesitas el endpoint HTTPS y su certificado (para autorizarlo en tu máquina).
Al usar los servidores alojados por Deque, HTTPS es el único protocolo compatible. Al alojar en tu propio servidor, puedes usar HTTP, y también necesitarás el endpoint HTTP del proxy. Este debería ser el mismo dominio y puerto que HTTPS (443), pero verifícalo para estar seguro.
Configuración
La configuración de los proxies para Watcher se realiza completamente a través de variables de entorno. Estas se dividen en dos grupos.
Las variables de entorno de proxy "estándar":
HTTPS_PROXY- El endpoint utilizado para el protocolo HTTPS para comunicarseHTTP_PROXY- El endpoint utilizado para el protocolo HTTP para comunicarseNO_PROXY- Una lista separada por comas de nombres de host que no deben pasar por ningún proxy
Las variables de entorno de axe Watcher y Node.js:
AXE_WATCHER_USE_ENV_PROXY- Dirigido solo a Watcher para modificar el soporte de proxyAXE_USE_ENV_PROXY- Dirigido a cualquier cosa del eje que también soporte esta variable para utilizar un proxyNODE_USE_ENV_PROXY- La forma nativa de Node.js (a partir de la versión 24 o posterior solamente) de optar porque todas las solicitudes de red utilicen un proxyNODE_EXTRA_CA_CERTS- Variable nativa de Node.js para proporcionar certificados CA confiables para conexiones HTTPS
Cuando cualquiera de las variables AXE_* están configuradas en 1, el uso del proxy está habilitado. NODE_USE_ENV_PROXY se introdujo en la versión 24 de Node.js para habilitar esto globalmente para el proceso, y se ha retroportado a Watcher para admitirlo en todas las versiones.
Para habilitar el proxy para Node.js pero deshabilitarlo para Watcher, cualquiera de las variables AXE_* pueden configurarse en 0.
Solo 1 y 0 son reconocidos. Cualquier valor fuera de estos hará que el soporte de proxy se deshabilite por defecto.
Para HTTPS, el certificado de la autoridad certificadora proporcionado por tu proxy debe especificarse con NODE_EXTRA_CA_CERTS, para que no rechace la conexión como no confiable. Este valor es una ruta al archivo del certificado.
Ejemplos de Uso
Hay dos maneras principales de configurar las variables de entorno:
- Configúralas para la máquina o trabajo CI que hace el procesamiento. Esto las hace disponibles globalmente durante la vida útil de la máquina o del trabajo.
- Proporciónalas antes de un comando en la terminal para que solo existan durante la vida útil de ese proceso.
Un ejemplo de configuración de variables de entorno de proxy en un archivo de flujo de trabajo de 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 testAquí tienes un ejemplo de uso de variables de entorno de proxy localmente para ejecutar un solo comando:
AXE_WATCHER_USE_ENV_PROXY=1 HTTPS_PROXY=https://localhost:9090 NODE_EXTRA_CA_CERTS=~/path/to/ca.pem npm run testProxy Condicional en Node.js versión 24 o Posterior
En la versión 24 de Node.js (o posterior), NODE_USE_ENV_PROXY está habilitado de forma predeterminada para todas las solicitudes, por lo que puede que desees deshabilitar el proxy para Watcher de manera condicional en escenarios de prueba.
Esto se puede lograr utilizando NO_PROXY para instruir al sistema que permita al dominio evitar el uso del proxy. El siguiente ejemplo permite que el proxy se utilice para todas las solicitudes que inicia Node.js pero no lo use para las que se dirigen a axe.deque.com o example.com:
NODE_USE_ENV_PROXY=1 HTTPS_PROXY=https://our.intranet/proxy NO_PROXY=axe.deque.com,example.com npm run testLa razón para usar NO_PROXY es que incluso si intentas deshabilitar el uso de proxy del eje Watcher, este hereda el despachador de solicitudes global, lo que significa que si NODE_USE_ENV_PROXY está habilitado, aún tendría prioridad y usaría el proxy.
