Usar Watcher Con un 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

Información sobre cómo enviar resultados al eje Developer Hub a través de un proxy web

Not for use with personal data

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).

important

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 comunicarse
  • HTTP_PROXY - El endpoint utilizado para el protocolo HTTP para comunicarse
  • NO_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 proxy
  • AXE_USE_ENV_PROXY - Dirigido a cualquier cosa del eje que también soporte esta variable para utilizar un proxy
  • NODE_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 proxy
  • NODE_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.

important

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:

  1. 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.
  2. 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 test

Aquí 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 test

Proxy 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 test

La 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.