Pular para o conteúdo
Documentação

Manual de teste — NoSqlStudio Watch

Um guia passo a passo para abrir, usar e validar a tela Watch de change streams ao vivo.

Tempo estimado: ~20 minutos
Neste manual

Introdução

Um guia passo a passo para te ajudar a abrir, usar e validar a tela Watch — o monitor de change streams ao vivo embutido no NoSqlStudio. Siga do Passo 1 até o fim, em ordem. Cada passo diz o que fazer e o que você vai ver.

Como ler este manual

Cada passo tem:

  • Faça — a ação exata (clicar, digitar, rodar tal comando).
  • Veja — o que deve acontecer na tela. Esse é o seu “passou / falhou”.
  • Por quê — contexto adicional, só quando ajuda (pule se estiver com pressa).

Antes de começar

Conceito

O que é o Watch

O Watch mostra cada inserção, atualização, exclusão e outras mudanças que acontecem no seu banco de dados em tempo real, como cards que deslizam dentro de uma linha do tempo. Ele é construído em cima dos change streams do MongoDB.

Atenção

O Watch exige um replica set

Change streams são um recurso de replica set. O Watch funciona com clusters do MongoDB Atlas e com replica sets self-hosted, mas não com um servidor standalone. Apontar o Watch para um servidor standalone é coberto no Passo 30.

Você vai precisar de:

  1. 1Um replica set MongoDB conectado — um cluster Atlas ou um replica set self-hosted.
  2. 2Uma segunda aba onde você consiga rodar comandos no shell — o Scratchpad ou a aba do Mongo Shell — para gerar mudanças.
  3. 3Nos comandos de shell abaixo, substitua <database> e <collection> por nomes próprios seus. Sempre rode use <database> primeiro para que o comando seja executado no banco certo.

Tempo estimado para o walkthrough completo: ~20 minutos.

Etapa 1

Sua primeira mudança monitorada

Abra o Watch e confirme que uma única mudança chega à linha do tempo.

Passo 1

Conecte-se a um replica set

Faça

Conecte o NoSqlStudio a um replica set MongoDB ou cluster Atlas, usando sua connection string — por exemplo mongodb+srv://<user>:<password>@<cluster-host>/.

Veja

A conexão abre e aparece na barra lateral.

Passo 2

Abra o Watch Deployment

Faça

Na barra de ferramentas, escolha Monitoring ▼ → Watch for Changes → Watch Deployment.

Veja

Uma nova aba abre com um cabeçalho 🎥, uma pílula de status LIVE verde pulsando e um mini-mapa do cluster mostrando o nó PRIMARY em verde ao lado dos seus secondaries.

Passo 3

Insira um documento de teste

Faça

Em outra aba (o Scratchpad), selecione um banco e insira um documento. Rode o comando use primeiro:

js·2 linhas
use <database>
db.test_cw.insertOne({ hello: "test1", n: 1 })
Passo 4

Veja a mudança chegando

Faça

Volte para a aba do Watch.

Veja

Em cerca de um segundo, um card verde 🟢 Insert para <database>.test_cw desliza para o topo da linha do tempo.

Por quê

Esse é o coração da ferramenta — o stream ao vivo está conectado e entregando as mudanças. ✅

Etapa 2

Filtrando e exportando

Passo 5

Gere tráfego em várias coleções

Faça

Rode alguns inserts em diferentes coleções:

js·4 linhas
use <database>
db.orders.insertOne({ item: "book" })
db.users.insertOne({ name: "Ana" })
db.test_cw.insertOne({ n: 1 })
Veja

Um card desliza para cada insert.

Passo 6

Filtre a linha do tempo

Faça

Digite o nome de uma coleção (por exemplo orders) no campo 🔍 filter no cabeçalho.

Veja

Só os eventos cujo namespace casa com o texto continuam visíveis. Limpe o campo para mostrar tudo de novo.

Passo 7

Exporte os eventos

Faça

Com o filtro limpo, clique em 📥 Export.

Veja

Os eventos visíveis são salvos como um arquivo .ndjson na sua pasta de Downloads.

Conceito

NDJSON. Um documento JSON por linha — o formato natural para um stream de eventos, fácil de reimportar ou de fazer grep.

Etapa 3

Gravação e replay

Passo 8

Inicie uma gravação

Faça

No painel da direita, encontre o card 🎬 Recording e ligue o toggle.

Veja

O card muda para o estado de gravação.

Passo 9

Gere eventos enquanto grava

Faça

Rode algumas mudanças em outra aba:

js·4 linhas
use <database>
db.test_cw.insertOne({ n: 1 })
db.test_cw.insertOne({ n: 2 })
db.test_cw.insertOne({ n: 3 })
Veja

O card mostra um contador ao vivo, como recording • 3 events.

Passo 10

Pare a gravação

Faça

Desligue o toggle 🎬 Recording.

Veja

A gravação é baixada automaticamente como um arquivo .ndjson.

Passo 11

Reproduza uma gravação a partir de um arquivo

Faça

Clique em 📂 Open recording e selecione o arquivo .ndjson que você acabou de salvar.

Veja

O cabeçalho ganha um badge roxo 📂 replay (file) e os eventos gravados voltam para a linha do tempo.

Passo 12

Saia do modo replay

Faça

Clique no do badge roxo de replay.

Veja

O modo replay termina e o stream ao vivo é retomado.

Passo 13

Reproduza o passado recente

Faça

No card ⏪ Replay, clique em Go back 5 minutes.

Veja

O stream reabre começando alguns minutos no passado, então você vê as mudanças que já aconteceram.

Atenção

Isso só funciona se o oplog do cluster ainda guardar esse histórico. Em um cluster movimentado, a janela do oplog pode ser menor que 5 minutos.

Etapa 4

Webhooks e alertas

O Watch pode encaminhar mudanças para uma URL externa e disparar alertas de desktop com base em uma regra.

Passo 14

Pegue uma URL de webhook de teste

Faça

Abra https://webhook.site no seu navegador e copie a URL única que ele te dá (formato https://webhook.site/<uuid>).

Passo 15

Adicione o webhook

Faça

No card 📡 Webhooks, cole a URL e clique em + Add.

Veja

O webhook aparece na lista.

Passo 16

Configure o webhook

Faça

Clique no ⚙ do webhook para expandir suas configurações. Mude o método HTTP para PUT, adicione um header Authorization com o valor Bearer xxx e, nos chips de evento, selecione apenas 🔴 Delete.

Veja

O webhook agora está configurado para disparar somente em deletes, como uma requisição PUT com o seu header.

Passo 17

Insert — nada é encaminhado

Faça

Rode um insert:

js·2 linhas
use <database>
db.test_cw.insertOne({ foo: 1 })
Veja

O webhook.site recebe nada — o webhook está filtrado para apenas deletes.

Passo 18

Delete — o webhook dispara

Faça

Rode um delete:

js·2 linhas
use <database>
db.test_cw.deleteOne({ foo: 1 })
Veja

O webhook.site recebe uma requisição PUT com o header Authorization: Bearer xxx e o evento da mudança como EJSON no corpo. O card mostra ✓ 1 sent.

Passo 19

Crie um alerta

Faça

No card 🔔 Alerts, dê um nome ao alerta (por exemplo Deleted test), defina o padrão de namespace como uma expressão regular — ^.*\.test_cw$ — e clique em + Create alert.

Veja

O alerta aparece na lista.

Passo 20

Restrinja o alerta

Faça

Clique no ⚙ do alerta e, nos chips de evento, selecione apenas 🔴 Delete.

Veja

O alerta agora dispara somente em deletes que casam com o padrão.

Passo 21

Dispare o alerta

Faça

Rode outro delete:

js·2 linhas
use <database>
db.test_cw.deleteOne({ n: 1 })
Veja

Na primeira vez, o sistema pede permissão de notificação — autorize uma vez. Em seguida, uma notificação nativa do desktop aparece, um som toca, e o histórico do alerta registra o hit.

Conceito

A gravação não precisa estar ligada para os alertas funcionarem — alertas são avaliados independentemente, e o histórico deles é mantido por si só.

Etapa 5

Som e o mini-mapa do cluster

Passo 22

Ligue o som

Faça

No cabeçalho, clique em 🔔 Sound off para que vire Sound on.

Passo 23

Ouça um insert

Faça

Rode um insert:

js·2 linhas
use <database>
db.test_cw.insertOne({ n: 10 })
Veja

Um bipe curto e agudo toca.

Passo 24

Ouça um delete

Faça

Rode um delete:

js·2 linhas
use <database>
db.test_cw.deleteOne({ n: 10 })
Veja

Um bipe grave toca — uma altura diferente da do insert, então você consegue distinguir as mudanças de ouvido.

Passo 25

Veja o mini-mapa pulsar

Veja

No mini-mapa do cluster, o nó verde PRIMARY pulsa com um anel se expandindo toda vez que um evento chega.

Etapa 6

Comportamentos e casos de borda

Passo 26

Persistência

Faça

Feche a aba do Watch (o no título da aba) e reabra pelo menu.

Veja

Seus webhooks, alertas, configuração de som e tamanho de buffer continuam todos lá.

Passo 27

Atualize a lista de bancos

Faça

Crie um novo banco em outra aba, depois clique em 🔄 Refresh no cabeçalho do Watch.

Veja

O novo banco aparece no dropdown de escopo.

Passo 28

Tamanho do buffer

Faça

Digite 50 no campo Buffer no cabeçalho.

Veja

Só os 50 eventos mais recentes ficam visíveis — os cards mais antigos somem.

Passo 29

Limpeza ao trocar de escopo

Faça

Com um stream rodando no escopo 🌐 Cluster, troque para 🗄 um único banco.

Veja

A linha do tempo limpa e o stream reinicia para o novo escopo.

Passo 30

Erro humanizado em um standalone

Faça

Conecte-se a um servidor MongoDB standalone (não a um replica set) e tente o Watch Deployment.

Veja

Uma mensagem clara e amigável explica que o Watch exige um replica set — não um erro cru do servidor como “$changeStream stage is only supported…”.

Etapa 7

O menu nativo Tools

Passo 31

Abra o Watch pelo menu Tools

Faça

Use o menu nativo: Tools → Change Watcher → Watch Deployment (atalho de teclado Ctrl+Alt+W).

Veja

A aba do Watch abre, exatamente como pela barra de ferramentas.

Atenção

O menu nativo é montado quando o app inicia. Depois de um reload in-app (Ctrl+R), o menu pode ficar desatualizado — reinicie o NoSqlStudio por completo para ver mudanças no menu.

Limpeza (quando terminar)

Faça

Pare o stream com o botão Stop no cabeçalho, depois apague a coleção de teste:

js·2 linhas
use <database>
db.test_cw.drop()
Veja

O stream é parado e a coleção de teste some.

Resumo do que você validou

EtapaRecurso
1Abrir o Watch e ver uma mudança ao vivo chegar à linha do tempo
2Filtrar a linha do tempo e exportar eventos como NDJSON
3Gravar eventos, reproduzir a partir de um arquivo, e reproduzir o passado recente
4Webhooks (método, headers, filtro de eventos) e alertas de desktop
5Sinais sonoros por tipo de evento e a pulsação do mini-mapa do cluster
6Persistência, refresh, buffer, limpeza ao trocar de escopo, erros humanizados
7A entrada no menu nativo Tools e seu atalho
Se cada passo deu o “Veja” esperado, a tela Watch está 100% validada. Anote o número do passo de qualquer divergência para que a gente possa corrigir.