Watcher Gebruiken Met een Proxy
Informatie over hoe resultaten naar de axe Developer Hub te verzenden via een webproxy
HTTP-proxy's stellen een organisatie in staat om gegevens die het netwerk passeren te auditeren. Ze worden normaal gesproken ingesteld met behulp van omgevingsvariabelen. Dit document beschrijft hoe proxy-ondersteuning in Watcher (versie 4.0.0 of later) kan worden ingesteld.
Vereisten
Om proxy-ondersteuning te gebruiken, hebt u proxysoftware nodig die lokaal of op de servers van uw organisatie draait. Om de proxy te gebruiken, hebt u het HTTPS-eindpunt en het bijbehorende certificaat (om het op uw machine te autoriseren) nodig.
Bij gebruik van de door Deque gehoste servers wordt alleen HTTPS ondersteund. Bij zelfhosting kunt u HTTP gebruiken, en u hebt ook het HTTP-eindpunt van de proxy nodig. Het *moet* dezelfde domein en poort (443) als HTTPS hebben, maar controleer dit om zeker te zijn.
Configuratie
De configuratie van proxy's voor Watcher gebeurt volledig via omgevingsvariabelen. Deze zijn opgedeeld in twee groepen.
De „standaard“ proxy-omgevingsvariabelen:
HTTPS_PROXY- Het eindpunt dat wordt gebruikt voor het HTTPS-protocol om door te communicerenHTTP_PROXY- Het eindpunt dat wordt gebruikt voor het HTTP-protocol om door te communicerenNO_PROXY- Een kommagescheiden lijst van hostnamen die niet via een proxy mogen gaan
De axe Watcher- en Node.js-omgevingsvariabelen:
AXE_WATCHER_USE_ENV_PROXY- Richt zich alleen op Watcher om proxy-ondersteuning te wijzigenAXE_USE_ENV_PROXY- Richt zich op alles van de axe dat deze variabele ook ondersteunt om een proxy te gebruikenNODE_USE_ENV_PROXY- Node.js's native (vanaf versie 24 of later) manier om alle netwerkverzoeken in te schakelen voor het gebruik van een proxyNODE_EXTRA_CA_CERTS- Node.js's native variabele om vertrouwde CA-certificaten voor HTTPS-verbindingen te verstrekken
Wanneer een van de AXE_* variabelen is ingesteld op 1, wordt het gebruik van proxy's ingeschakeld. NODE_USE_ENV_PROXY werd geïntroduceerd in Node.js versie 24 om dit wereldwijd voor het proces mogelijk te maken, en het is teruggevoerd naar Watcher om het in alle versies te ondersteunen.
Om de proxy voor Node.js in te schakelen maar uit te schakelen voor Watcher, kan een van de AXE_* variabelen worden ingesteld op 0.
Alleen 1 en 0 worden herkend. Elke waarde buiten deze zal standaard proxy-ondersteuning uitschakelen.
Voor HTTPS moet het certificaat van de certificeringsinstantie dat door uw proxy wordt verstrekt, worden gespecificeerd met NODE_EXTRA_CA_CERTS, zodat het de verbinding niet als onbetrouwbaar afwijst. Deze waarde is een pad naar het certificaatbestand.
Voorbeelden van Gebruik
Er zijn twee hoofdmanieren om omgevingsvariabelen in te stellen:
- Stel ze in voor de machine of CI taak die de verwerking uitvoert. Dit maakt ze wereldwijd beschikbaar gedurende de levensduur van de machine of taak.
- Geef ze op vóór een opdracht in de terminal zodat ze alleen bestaan gedurende de levensduur van dat proces.
Een voorbeeld van het instellen van proxy-omgevingsvariabelen in een GitHub Action workflowbestand:
# 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 testHier is een voorbeeld van het lokaal gebruiken van proxy-omgevingsvariabelen voor een enkel commando om uit te voeren:
AXE_WATCHER_USE_ENV_PROXY=1 HTTPS_PROXY=https://localhost:9090 NODE_EXTRA_CA_CERTS=~/path/to/ca.pem npm run testVoorwaardelijk Proxyen op Node.js versie 24 of Later
In Node.js versie 24 (of later) is NODE_USE_ENV_PROXY standaard ingeschakeld voor alle verzoeken, dus u kunt de proxy voor Watcher in testscenario’s mogelijk voorwaardelijk uitschakelen.
Dit kan worden bereikt door NO_PROXY te gebruiken om het systeem te instrueren de domein om proxyen te omzeilen. Het volgende voorbeeld laat de proxy gebruiken voor alle verzoeken die Node.js initieert, maar het niet gebruiken voor die gericht op axe.deque.com of example.com:
NODE_USE_ENV_PROXY=1 HTTPS_PROXY=https://our.intranet/proxy NO_PROXY=axe.deque.com,example.com npm run testDe reden om NO_PROXY te gebruiken is dat zelfs als u probeert het proxygebruik van axe Watcher uit te schakelen, het de wereldwijde verzoekdispatcher overneemt, wat betekent dat als NODE_USE_ENV_PROXY is ingeschakeld, het nog steeds voorrang zou hebben en de proxy zou gebruiken.
