
Componente CLI do purpleteam
npm install -g purpleteam
Clone este repositório.
Copie o config/config.example.json para config/config.local.json ou config/config.cloud.json dependendo do ambiente que planeja usar.
Use o config/config.js para documentação e exemplos adicionais.
loggers.testerProgress.dirname Configure este valor.
purpleteamApi Se estiver planejando usar o ambiente local, pode manter os valores padrão das propriedades. Se estiver planejando usar o ambiente cloud, essas informações serão fornecidas quando você se inscrever para uma conta purpleteam.
testerFeedbackComms.medium Long Polling (lp) é suportado em ambos ambientes local e cloud. Server Sent Events (sse) só é suportado no ambiente local devido a limitações da AWS. Tanto lp quanto sse são em tempo real. Ambas implementações têm seus prós e contras.
Usar sse é uma comunicação unidirecional após a inscrição inicial da CLI para o orquestrador. Redis pub/sub é usado entre os testadores e o orquestrador para publicar feedback dos testadores. Se a CLI for interrompida (não inscrita) em algum momento enquanto o back-end estiver em uma execução de teste, os eventos serão perdidos.
Usar lp é comunicação requisição-resposta. Uma requisição é feita e só é respondida quando há mensagens de feedback dos testadores disponíveis, ou quando o tempo limite específico da aplicação (em vez do AWS Api Gateway) é excedido. Assim que a CLI recebe um conjunto (um ou vários) de mensagens de feedback dos testadores, ela faz outra requisição ao orquestrador (se estiver executando no ambiente local) ou à API (se estiver no ambiente cloud). Redis pub/sub é usado entre os testadores e o orquestrador para publicar feedback dos testadores.
Desde que a requisição inicial da CLI por feedback dos testadores seja feita imediatamente após o início dos testes, as mensagens de feedback dos testadores serão persistidas em memória em listas Redis. Isso significa que se a CLI for interrompida momentaneamente durante uma execução de teste, quando for reiniciada, ela receberá as mensagens de feedback que chegaram ao orquestrador enquanto a CLI não estava em execução... desde que o orquestrador continue em execução.
Informações adicionais: Isso pode mudar no futuro, WebSockets também é uma opção que podemos implementar no futuro, mas implementar WebSockets significaria que teríamos que mudar toda nossa abordagem de authn. Nossa infraestrutura de nuvem escolhida, AWS Api Gateway, não suporta streaming e não suporta o fluxo OAuth Client Credentials com Cognito User Pools.
purpleteamAuth Se estiver planejando usar o ambiente local, pode manter os valores padrão das propriedades. Se estiver planejando usar o ambiente cloud, essas informações serão fornecidas quando você se inscrever para uma conta purpleteam.
buildUserConfig.fileUri Configure este valor se não quiser passá-lo manualmente como argumento para a CLI. Este é o arquivo Job que você configurou para especificar os detalhes do seu Sistema Sob Teste (SUT).
outcomes.dir Configure este valor. Este é um diretório de sua escolha onde os arquivos de resultados do orquestrador (se estiver no ambiente local) ou da API (se estiver no ambiente cloud) serão persistidos.