WASViking Docs
⌘K
Partner Console

Demos para clientes

Provisione em minutos um tenant de demo já populado. Destruição automática em 24 horas. Nenhum lixo fica para trás.

As demos da WASViking® não são apresentações de slides. O Partner Console provisiona um tenant totalmente populado com dados sintéticos ancorados na data de hoje, carregados em todas as superfícies do produto sobre as quais um prospect vai perguntar. As demos são destruídas definitivamente 24 horas depois da apresentação agendada.

O que uma demo contém

Superfície População
Alvos 5
Ativos 17
Achados ~118, distribuídos nas 15 categorias, com mistura de severidades e de SLA
Exploit paths 74, gerados pelo mecanismo real de materialização
Scans 30, com dados ricos de CVE por porta
Certificados SSL 5 ativos, 4 expirando, 3 válidos, 1 expirado
Resumos de inteligência de ameaças de borda 16 a 18
Submissões de SBOM 3
Registros de inteligência de exposição 4
Achado de destaque MySQL 3306 exposto, CVEs públicas

Os dados são sintéticos, mas realistas. Nomes, IPs, caminhos e referências de CVE parecem os de um ambiente real. As datas partem de hoje e recuam, de modo que o dashboard nunca pareça defasado.

Ciclo de vida

scheduled  ──▶  active  ──▶  destroyed
   │                            ▲
   └─ at presentation_at        │
                                └─ at presentation_at + 24h
Estado Significado
scheduled Provisionada, aguardando o horário da apresentação.
active No ar agora. O parceiro pode entregar as credenciais de login ao prospect.
destroyed Excluída definitivamente (hard delete). O snapshot de auditoria permanece na trilha de auditoria do parceiro.

A task horária do Celery partners.expire_demos executa as transições de estado.

Cotas

Cota Padrão
Demos ativas por parceiro 3
Tempo de vida da demo 24 horas a partir de presentation_at
Demos por parceiro por mês Depende do plano

Quando a cota é atingida, a ação New demo exibe uma mensagem "destroy one first" (destrua uma antes).

Roteamento de login

Os logins de demo usam um e-mail sintético em @demo.wasviking.com (MX nulo, nunca entregue). Os códigos de MFA e os alertas de novo dispositivo são roteados para o e-mail real do operador do parceiro, não para a caixa sintética, por meio da salvaguarda demo_email.resolve_auth_recipient.

Se o roteamento não conseguir resolver (dados do parceiro corrompidos), o e-mail de MFA é suprimido e registrado como um alerta ao operador. A plataforma se recusa a deixar o MFA de uma demo vazar por acidente para um endereço com aparência real.

Como criar uma demo

  1. Demos → New demo.
  2. Preencha o formulário: nome do prospect, horário da apresentação (datetime-local, sem fuso horário, tz-naive; o formulário grava um campo oculto ISO-8601 com fuso horário, tz-aware).
  3. Marque a declaração de uso da demo (demonstração sintética de 24 horas, sem dados reais do prospect, sem scans reais contra alvos do prospect).
  4. Envie o formulário.

As etapas de provisionamento rodam dentro de uma única transação do Django:

  1. Flag de organização interna definida (is_internal=True, ignora a licença).
  2. Usuário de login criado com uma senha temporária.
  3. Seed do MySQL do portal: 17 ativos, 118 achados, 30 scans etc.
  4. O materializador do Exploit Path Graph roda na organização da demo.
  5. Depois do commit, o seed do Mongo no lado da API roda pelo endpoint protegido POST /api/v1/sensor/demo/seed/, populando SSL, Edge e scan-detail.

As credenciais chegam ao e-mail real do operador do parceiro.

Como destruir uma demo

destroy_demo executa:

  1. Primeiro, a limpeza no lado da API (exclui do Mongo os documentos {organization_id, demo: true}).
  2. Snapshot dos Targets e ScanResults adicionados pelo parceiro em PartnerAuditLog, para que a rastreabilidade sobreviva ao hard delete.
  3. Exclusão em cascata da Organization da demo (remove o MySQL do portal).
  4. O evento de auditoria demo.destroyed carrega o snapshot.

Nenhum lixo fica para trás, nem no MySQL nem no Mongo.

Runbook do operador

  • reseed_demo <slug> executa de novo o seed de uma demo existente (portal + API). Recusa organizações que não sejam is_internal.
  • A página Demos mostra o estado atual, o horário da apresentação e a trilha de auditoria.
  • Um provisionamento com falha deixa um estado limpo (a transação faz rollback).

Atividade ao vivo em uma demo

As organizações de demo permitem que o prospect adicione alvos reais e dispare scans reais durante a apresentação ao vivo. O consentimento é exigido na criação do Target (a política normal da plataforma), não por uma declaração separada do parceiro; duplicá-lo foi tentado e removido.

A atividade da sessão ao vivo é registrada em snapshot no evento de destruição, para que o parceiro possa revisar o que foi feito depois que a demo termina.

Miniatura de captura de tela da demo

Os Targets de demo recebem como thumbnail_url um data URI com uma captura de tela simulada em SVG inline, não uma URL pré-assinada do S3 quebrada. Isso é restrito a organizações com is_internal=True. Contas de clientes reais não são afetadas.

Os Targets de demo ficam agrupados em um único grupo Demo, de modo que a lista de Targets mostra "Demo" na coluna Group.