
Componente CLI di purpleteam
npm install -g purpleteam
Clona questo repository.
Copia il file config/config.example.json in config/config.local.json o config/config.cloud.json a seconda dell'ambiente che intendi utilizzare.
Usa config/config.js per la documentazione e ulteriori esempi.
loggers.testerProgress.dirname Configura questo valore.
purpleteamApi Se prevedi di utilizzare l'ambiente local puoi mantenere i valori predefiniti delle proprietà. Se prevedi di utilizzare l'ambiente cloud, riceverai queste informazioni quando ti registrerai per un account purpleteam.
testerFeedbackComms.medium Il Long Polling (lp) è supportato sia negli ambienti local che cloud. I Server Sent Events (sse) sono supportati solo nell'ambiente local a causa delle limitazioni di AWS. Sia lp che sse sono in tempo reale. Entrambe le implementazioni hanno i loro pro e contro.
L'uso di sse è una comunicazione unidirezionale dopo la sottoscrizione iniziale dalla CLI all'orchestrator. Redis pub/sub viene utilizzato tra i tester e l'orchestrator per pubblicare il feedback dei tester. Se la CLI viene interrotta (non sottoscritta) in qualsiasi momento mentre il backend è in esecuzione di test, gli eventi andranno persi.
L'uso di lp è una comunicazione request-response. Viene effettuata una richiesta e viene risposta solo quando sono disponibili messaggi di feedback dei tester, o quando viene superato il timeout specifico dell'applicazione (piuttosto che di AWS Api Gateway). Non appena la CLI riceve un set (uno o più) di messaggi di feedback dei tester, effettua un'altra richiesta all'orchestrator (se in esecuzione in ambiente local) o all'API (se in esecuzione in ambiente cloud). Redis pub/sub viene utilizzato tra i tester e l'orchestrator per pubblicare il feedback dei tester.
Fintanto che la richiesta iniziale della CLI per il feedback dei tester viene effettuata immediatamente dopo l'inizio del test, i messaggi di feedback dei tester verranno conservati in memoria nelle liste Redis. Ciò significa che se la CLI viene interrotta momentaneamente durante un'esecuzione di test, al riavvio riceverà i messaggi di feedback dei tester che sono arrivati all'orchestrator quando la CLI non era in esecuzione... purché l'orchestrator continui a funzionare.
Ulteriore contesto: Questo potrebbe cambiare in futuro, WebSockets è anche un'opzione che potremmo implementare in futuro, ma implementare WebSockets significherebbe dover cambiare l'intero approccio all'autenticazione. La nostra infrastruttura cloud scelta, AWS Api Gateway, non supporta lo streaming e non supporta il flusso OAuth Client Credentials con Cognito User Pools.
purpleteamAuth Se prevedi di utilizzare l'ambiente local puoi mantenere i valori predefiniti delle proprietà. Se prevedi di utilizzare l'ambiente cloud, riceverai queste informazioni quando ti registrerai per un account purpleteam.
buildUserConfig.fileUri Configura questo valore se non desideri passarlo manualmente come argomento alla CLI. Questo è il file Job che hai configurato per specificare i dettagli del tuo System Under Test (SUT).
outcomes.dir Configura questo valore. Questa è una directory a tua scelta in cui verranno persistiti i file dei risultati dall'orchestrator (se in esecuzione in ambiente local) o dall'API (se in esecuzione in ambiente cloud).