Equipe e plataformaConceito

Segurança

Um script é código escrito por pessoas, com pacotes baixados do npm e do PyPI. O Waiso parte do princípio de que qualquer parte disso pode se comportar mal e monta as defesas em volta da execução, não da confiança: cada execução é um processo isolado próprio, sem rede e sem visão da plataforma, os segredos chegam a ela só como os valores que recebeu, e tudo para onde a própria plataforma se conecta é conferido antes.

8 min de leituraAntes: Workers
O que você vai aprender
  • Saber o que um script rodando alcança e o que não alcança
  • Entender como os segredos são guardados e entregues
  • Ver quais endereços de saída são recusados e por quê
  • Conhecer os ajustes que quem opera um self-hosted controla

Camadas em volta de cada execução

O seu código nunca roda dentro do próprio worker. O worker guarda a conexão com o banco, o mecanismo de instalação e as credenciais; o seu código roda num processo runner separado dentro de um sandbox, só com o arquivo, as entradas e os pacotes dele.

CamadaO que impede
Um processo por execuçãoUma execução não vê a memória de outra, e uma falha ou travamento encerra só aquela execução.
SandboxO código vê um sistema somente leitura e grava só no próprio espaço temporário, sem direitos de administrador.
Sem redeUm script não tem rota para fora — nem para a internet, nem para a API, os serviços do editor ou o banco da plataforma.
Ambiente limpoQualquer coisa que pareça senha, token ou string de conexão é removida antes do código rodar.
Limites de recursosLimites de memória, CPU e processos por worker, para um script descontrolado não esgotar a máquina.

Segredos

Variáveis secretas e credenciais de integrações ficam guardadas criptografadas (AES-256-GCM). Uma execução recebe os valores de que precisa como variáveis de ambiente do próprio processo, entregues com a tarefa — nunca gravados num arquivo, num log ou no repositório. Só admins e quem criou o projeto podem revelar o valor de um segredo; os outros podem usá-lo sem ler.

Variáveis e SegredosVariáveis de ambiente e segredos criptografados do projeto
Copiar das globaisImportar .envNova variável
Buscar variáveis…Ctrl KTodasVariáveisSegredosDe integrações
PG_SHOP_DB_PASSWORDde shop_db TiposegredoValor••••••Atualizadahá 6 min
REPORT_TITLEValor normal, lido por scripts e flowsTiponormalValorDaily salesAtualizadahá 11 h
S3_SHOP_FILES_ACCESS_KEY_IDde shop_files TiposegredoValor••••••Atualizadahá 11 h
S3_SHOP_FILES_SECRET_ACCESS_KEYde shop_files TiposegredoValor••••••Atualizadahá 11 h
SHOP_API_KEYCriptografado, nunca aparece nos logsTiposegredoValor••••••Atualizadahá 11 h
A página de variáveis: um segredo aparece como pontos, e as credenciais que uma integração gerou dizem de onde vieram.
  • Num flow, uma entrada ligada a uma variável secreta é registrada como ••• nas entradas da execução.
  • Tokens — sessões, tokens de API, tokens MCP — são guardados só como hash e mostrados uma vez, na criação.
  • Os logs vão para o banco e podem ser mostrados à sua equipe: nunca imprima um segredo.

Endereços de saída são conferidos

Sempre que a plataforma se conecta para fora por você — uma conexão de banco, um servidor SMTP, um endpoint S3 próprio, um arquivo baixado de uma URL, um webhook, um site que o AI Scraper visita — o endereço é conferido antes, e de novo a cada redirecionamento. Endereços privados, de loopback e link-local são recusados com host_not_allowed, para ninguém apontar uma conexão para a rede interna do próprio servidor.

Liberando um host privado de propósito

Numa instalação self-hosted, um banco ou servidor de e-mail na sua própria rede é um alvo legítimo. Quem opera lista esses nomes exatos; nada mais privado fica alcançável.

Shell.env
# Private database hosts a connection may reach (exact names, comma list)
SQL_ALLOW_PRIVATE_HOSTS=db.internal,reports-db
# Private SMTP / S3 hosts the worker may reach
OUTBOUND_ALLOW_PRIVATE_HOSTS=mail.internal

O que quem opera controla

  • WAISO_PKG_ALLOWLIST / WAISO_PKG_BLOCKLIST — quais pacotes do npm e do PyPI podem ser instalados. A lista de bloqueio sempre vence. Use os mesmos valores em todos os workers e no serviço do editor, senão o editor oferece um pacote que o worker recusa.
  • ISOLATION_LEVEL — sandbox por padrão. Desligar o isolamento dá aos scripts a rede do container do worker; faça isso só numa máquina onde todos os autores de scripts são de confiança.
  • Quem pode fazer o quê em cada projeto é definido por pessoa na aba Usuários.