Ferramentas de banco de dados
O painel Ferramentas do módulo Banco de dados reúne 25 ferramentas em seis seções (Explorar, Consulta, Desenhar, Dados, Servidor e Segurança). As conexões NoSQL abrem telas próprias: um navegador de chaves, CLI e monitor para o Redis, um navegador de documentos e um construtor de consultas para o Firestore, e a lista de coleções para o MongoDB. Esta página explica o que cada uma faz, com quais conexões funciona e o que não consegue fazer. As conexões, o PostgreSQL local, o console SQL, a edição de dados e os backups estão na página Banco de dados. Quase nada aqui depende de plano; os poucos limites estão numa só tabela perto do final.
O que é e como abrir
Tudo nesta página fica dentro do módulo Banco de dados, que você abre em Ferramentas → Banco de dados (a página Banco de dados lista todas as formas de entrar). As ferramentas ficam em um único painel, numa ordem fixa, e o painel só mostra as que fazem sentido para a conexão aberta: uma ferramenta que não conseguiria fazer o que diz fica escondida, em vez de ficar ali com um aviso.

Onde ficam as ferramentas
| Onde você está | O que você toca | O que você obtém |
|---|---|---|
| Celular ou tablet, em pé | O ícone de grade (Ferramentas) no lado direito do cabeçalho. | Um painel inferior com a caixa de busca, a linha Frequentes e as ferramentas por seção. |
| Celular, deitado | O ícone de grade (Ferramentas) na barra estreita que ocupa o lugar do cabeçalho. | O mesmo painel. |
| Tablet, deitado | Nada: a coluna de ferramentas fica sempre na tela. | As mesmas ferramentas em uma coluna fixa, com 280 dp de largura. Recolher a coluna de ferramentas reduz a coluna a ícones (72 dp). Cada seção se recolhe sozinha, e a coluna se recolhe por conta própria quando a janela é estreita demais. |
| A tela inicial (Gerenciador de Banco de Dados) | Aqui não há cabeçalho, então não há painel Ferramentas. Ela tem dois atalhos próprios: Monitoramento e Schema Designer. | O Monitor e o Schema Designer (não precisa de conexão). |
Dentro do painel
- O título é Ferramentas. Embaixo dele aparece o nome da conexão aberta, ou Sem ligação selecionada.
- Buscar ferramentas… filtra pelo nome da ferramenta no seu idioma. Sem resultado, aparece Nenhuma ferramenta se chama assim.
- Frequentes é uma linha no topo, escondida enquanto você busca. Ela aparece depois que você abriu ferramentas 3 vezes no total, e mostra até 4, as que você mais abre. As contagens ficam no dispositivo.
- Cada linha tem um ícone, o nome da ferramenta, uma descrição de uma linha e, no plano Grátis, um selo PRO quando a ferramenta está ligada a um recurso Pro. Um ponto marca a ferramenta cuja tela está aberta.
- A ordem nunca muda com o uso. As seções seguem a ordem em que você as usaria (olhar, perguntar, remodelar, mover dados, servidor, permissões), então uma ferramenta fica onde você a deixou.
As 25 ferramentas
Seis seções, 25 ferramentas. A última coluna diz quando a ferramenta aparece e o que o plano faz com ela. “Página Banco de dados” significa que a tela está explicada lá.
Explorar (3)
| Ferramenta | O que abre | Aparece quando · plano |
|---|---|---|
| Tabelas | As tabelas da conexão; no MongoDB, as coleções dela. | Qualquer conexão. Vazia no Redis e no Firestore. |
| Árvore de schema | Tabelas, colunas, índices e chaves em uma só árvore (página Banco de dados). | Conexão SQL com pelo menos uma tabela. |
| Diagrama ER | As relações entre as tabelas (página Banco de dados). | Conexão SQL com pelo menos uma tabela. |
Consulta (6)
| Ferramenta | O que abre | Aparece quando · plano |
|---|---|---|
| Console SQL | O console (página Banco de dados). | Conexão SQL. |
| Histórico de consultas | Tudo o que você executou no console (veja Histórico e consultas salvas). | Conexão SQL. |
| Consultas salvas | Suas consultas salvas e as pastas delas. | Conexão SQL. Grátis: 5 consultas salvas. |
| Plano de execução | O plano da consulta que está no console (página Banco de dados). | Conexão SQL. |
| Gráficos | Um gráfico do último resultado do console. | Conexão SQL. |
| Painéis | Seus painéis de widgets. | Qualquer conexão, ou o motor local enquanto ele roda. Sem limite de plano. |
Desenhar (4)
| Ferramenta | O que abre | Aparece quando · plano |
|---|---|---|
| Schema Designer | O Schema Designer (página Banco de dados). | Sempre, mesmo sem conexão. |
| Nova tabela | O formulário para criar uma tabela (página Banco de dados). | Conexão SQL. Grátis: 4 tabelas por banco. |
| Comparar esquemas | O diff de schema contra um snapshot salvo (página Banco de dados). Em um projeto do PlanetScale, abre o diff do deploy request. | Conexão SQL. Pro para o diff de snapshot (aparece PRO no Grátis); o diff do PlanetScale é grátis. |
| Importar esquema | Traz o banco aberto para o designer (página Banco de dados). | Conexão SQL com pelo menos uma tabela. |
Dados (4)
| Ferramenta | O que abre | Aparece quando · plano |
|---|---|---|
| Dados de teste | O Gerador de dados mock para a tabela aberta. | Conexão SQL com pelo menos uma tabela, e uma tabela precisa estar aberta. |
| Importar | O seletor de arquivos do sistema e depois a pré-visualização da importação. | Conexão SQL. Grátis: não depois que o banco chega a 4 tabelas. |
| Exportar | O painel de exportação da tabela aberta (página Banco de dados). | Qualquer conexão. Sem tabela aberta, não faz nada. |
| Cópias de segurança | A tela de backups (página Banco de dados). | Qualquer conexão. Só o agendamento é Pro. |
Servidor (5)
| Ferramenta | O que abre | Aparece quando · plano |
|---|---|---|
| Monitor | A tela Monitoramento. | Qualquer conexão. |
| Configuração do motor | A tela do motor, aba Saúde (página Banco de dados). | O PostgreSQL local, mesmo parado. |
| Extensões | A tela do motor, aba Extensões (página Banco de dados). | O PostgreSQL local enquanto roda. |
| Registo do servidor | A tela do motor, aba Registro (página Banco de dados). | O PostgreSQL local, mesmo parado. |
| Novo banco de dados | Um diálogo para criar outro banco dentro do motor local. | O PostgreSQL local enquanto roda. Grátis: 1 banco; mostra PRO. |
Segurança (3)
| Ferramenta | O que abre | Aparece quando · plano |
|---|---|---|
| Segurança | Cinco abas: Mascaramento, Funções, Políticas, Permissões e Biometria. | Qualquer conexão. |
| Log de auditoria | O que o módulo executou, com Executar de novo. | Qualquer conexão. |
| Compartilhamento | Copiar uma conexão ou uma consulta, salvar, abrir ou colar a configuração. | Qualquer conexão. |
Quais ferramentas cada conexão mostra
O painel conta o que a conexão aberta consegue fazer:
| Conexão | Ferramentas no painel |
|---|---|
| O PostgreSQL local, rodando, com tabelas | Todas as 25. |
| O PostgreSQL local, parado | Extensões e Novo banco de dados ficam escondidas. As ferramentas que precisam de tabelas só aparecem quando a conexão tem alguma. |
| Servidores PostgreSQL ou MySQL, Neon, Supabase, PlanetScale, Turso, Cloudflare D1 | 21: as ferramentas de Explorar, Consulta, Desenhar e Dados, o Monitor e as três de Segurança. Sem Configuração do motor, Extensões, Registo do servidor nem Novo banco de dados; as ferramentas que precisam de tabelas esperam até haver alguma. |
| Redis, Upstash aberto como Redis, Cloud Firestore, um servidor MongoDB | 9: Tabelas, Painéis, Schema Designer, Exportar, Cópias de segurança, Monitor, Segurança, Log de auditoria e Compartilhamento. As nove foram feitas para SQL; leia a nota abaixo. |
Outras formas de entrar
- Uma conexão NoSQL pula o painel. Abrir uma conexão Redis mostra o navegador de chaves, abrir o Cloud Firestore mostra o navegador de documentos e abrir um servidor MongoDB mostra as coleções dele. Elas não estão no catálogo porque cada uma é a tela da sua própria conexão.
- A partir do Backend Manager, a ação Abrir no Database vai direto a um projeto, às tabelas dele, ao console SQL, a Segurança → Políticas, à saúde do schema do Supabase (dentro do Monitor) ou ao diff de schema. Se o serviço não estiver conectado, o PocketCode avisa em vez de abrir uma tela vazia.
- A partir da lista de tabelas, o menu ⋮ tem Importar CSV (aceita seis formatos) e, só no motor local, Importar da área de transferência e Diff de schema.
Você não pode, e por quê
- Ver as ferramentas que não servem para a conexão aberta: elas ficam escondidas, não esmaecidas.De propósito
- Reordenar as ferramentas ou fixar as suas: a ordem é fixa para que uma ferramenta nunca mude de lugar. Só a linha Frequentes muda com o uso.De propósito
- Abrir o painel Ferramentas a partir da tela inicial: ela não tem cabeçalho. Use os dois atalhos dela, ou abra uma conexão antes.De propósito
Mapa de telas
Uma linha por tela das ferramentas desta página. As telas das outras ferramentas (o console, o visualizador de dados, os backups…) estão na página Banco de dados.
| Tela | Como chegar | O que você pode fazer |
|---|---|---|
| Painel Ferramentas e coluna de ferramentas | O ícone de grade no cabeçalho (em pé), a barra (celular deitado) ou a coluna fixa (tablet deitado). | Buscar as 25 ferramentas, reabrir as Frequentes e ir para qualquer tela. |
| Navegador Redis | Abra uma conexão Redis, ou um banco Upstash que devolva uma senha Redis. | Filtrar chaves, ler tipo, TTL, tamanho e uma prévia, definir um TTL, excluir uma chave, carregar mais, abrir a CLI e o monitor. |
| Redis CLI | O ícone de terminal do Navegador Redis. | Executar qualquer comando, usar os quatro chips de atalho e ler as respostas no formato do redis-cli; comandos perigosos perguntam antes. |
| Redis Monitor | O ícone de monitor do Navegador Redis. | Acompanhar memória, clientes, operações por segundo e versão, e as mensagens publicadas em qualquer canal. |
| Navegador Firestore | Abra a conexão Cloud Firestore. | Escolher um projeto, navegar por caminho, ler documentos e, no seu próprio projeto, editá-los e excluí-los. |
| Consulta Firestore | O ícone de filtro do Navegador Firestore. | Montar uma consulta com Cláusulas WHERE, Ordenar por e Limite, e ler os resultados. |
| Coleções do MongoDB | Abra uma conexão de servidor MongoDB. | Ler as coleções do banco, cada uma com uma contagem. |
| Monitoramento | Monitor em Ferramentas, ou Monitoramento na tela inicial. | Quatro abas (Sessões, Slow log, Índices, Alertas), mais Saúde do esquema no Supabase ou Consultas lentas no PlanetScale. |
| Painéis | Painéis em Ferramentas. | Criar painéis de widgets de consulta com atualização automática e ler a aba Servidor do motor. |
| Gráficos | Gráficos em Ferramentas, depois de um resultado do console com pelo menos 2 colunas. | Desenhar um gráfico de barras, linhas, pizza, dispersão ou mapa de calor; exportá-lo como PNG ou adicioná-lo a um painel. |
| Gerador de dados mock | Dados de teste em Ferramentas, com uma tabela aberta. | Inserir linhas geradas, ou linhas que um modelo de IA escreve a partir da sua descrição. |
| Pré-visualização de importação | Importar em Ferramentas, ou ⋮ → Importar CSV na lista de tabelas. | Pré-visualizar um arquivo CSV, TSV, JSON, NDJSON, SQL ou XLSX e importá-lo para uma tabela. |
| Histórico de consultas | Histórico de consultas em Ferramentas. | Ler o que você executou, recarregar uma consulta no console, limpar a lista. |
| Consultas salvas | Consultas salvas em Ferramentas. | Recarregar, excluir e agrupar consultas salvas em pastas; ler os snippets do Supabase. |
| Segurança | Segurança em Ferramentas, ou Abrir em Policies a partir de Saúde do esquema. | Cinco abas: regras de mascaramento, funções, políticas de row level security, GRANT e REVOKE, e o bloqueio biométrico. |
| Log de auditoria | Log de auditoria em Ferramentas. | Ler o que o módulo executou e devolver uma instrução ao console. |
| Compartilhamento | Compartilhamento em Ferramentas. | Copiar uma conexão ou uma consulta, salvar, abrir ou colar a configuração. |
| Projetos | Abra uma conexão de conta na nuvem (Neon, Supabase, PlanetScale, Atlas, Turso, D1 ou Upstash). | Buscar e abrir os projetos da conta. |
| Painel do projeto | Toque em um projeto Neon, PlanetScale, Turso ou Supabase. | Ler branches, deploy requests, schema, string de conexão, regiões ou pooler, e navegar pelas tabelas. |
| Diff de schema (PlanetScale) | Comparar esquemas com um projeto PlanetScale aberto. | Ler as instruções que o PlanetScale vai executar quando o deploy request for implantado. |
MongoDB
Uma conexão de servidor MongoDB (host, porta, banco, usuário, senha e TLS quando o servidor exige) abre a lista de coleções do banco. Testar conexão faz um ping de verdade: abre o socket, negocia o TLS e conclui o login SCRAM, então um resultado verde significa que as credenciais funcionam. O PocketCode fala com o MongoDB com um cliente próprio, porque o driver Java oficial precisa de uma biblioteca que o Android não traz, e resolve endereços mongodb+srv:// com DNS sobre HTTPS (Google ou Cloudflare). Um cluster Atlas aparece listado na conta dele e abre um formulário de conexão: digite o usuário e a senha do banco (o Atlas não os entrega pela API) e salve.
Você pode
- Ver as coleções do banco indicado na conexão (
testquando o campo está vazio). Cada uma tem uma contagem que o app rotula como linhas; o número é a quantidade de documentos da coleção. - Ler os usuários de banco de um projeto Atlas, somente leitura, em Segurança → Funções (com um cluster selecionado).
- Copiar a conexão sem a senha com Compartilhamento.
Você não pode, e por quê
- Ler os documentos de uma coleção: tocar em uma coleção abre o visualizador de dados sem colunas e sem linhas. Também não há shell, construtor de aggregation nem tela para criar coleções, gerenciar índices ou exportá-las.Ainda não
- Obter uma contagem para cada coleção: só as primeiras 40 coleções da lista ganham uma, para manter a lista rápida. As outras não mostram número, o que não é o mesmo que zero.De propósito
- Ler a senha de banco do Atlas a partir da conta: o Atlas não a entrega pela API, então você a digita no formulário de conexão.Terceiros
Redis
Uma conexão Redis (host, porta, senha, um usuário opcional, TLS e o número do banco, 0 por padrão) abre o navegador de chaves. Testar conexão envia um PING de verdade. O PocketCode fala com o Redis com um cliente próprio, sobre TLS quando a conexão pede. Um banco Upstash abre aqui como um banco Redis de verdade quando o Upstash devolve a senha dele; se só der um token REST, abre por REST como uma única tabela somente leitura, sem navegador de chaves.
Navegador de chaves
O Navegador Redis lista as chaves uma página por vez com SCAN, que não trava o servidor como o KEYS faria. Cada chave é um cartão, e o cabeçalho mostra quantas chaves estão carregadas.
Você pode
- Filtrar com Buscar chaves…. Quando você para de digitar por 350 ms, o app envia
SCAN … MATCH *text*, uma busca por substring feita pelo servidor. - Ler cada chave: um ícone e um selo com o tipo dela (
string,list,set,sorted set,hash,stream, ou otro para um tipo de módulo como o RedisJSON), TTL: (os segundos que restam, Sem expiração ou A chave já não existe; vermelho quando restam de 1 a 60 segundos) e o tamanho em memória, ou tamanho não informado. - Tocar em uma chave abre uma prévia do valor, cortada em 200 caracteres (até 40 linhas na tela). Por tipo: uma string lê
GETRANGE 0..199, uma list os 10 primeiros itens, um set 10 membros aleatórios, um sorted set 10 itens com as pontuações, um hash os 10 primeiros campos (HSCAN) e um stream 3 entradas. - Alterar um TTL: o ícone de cronômetro (Definir TTL), os segundos em TTL (segundos) e depois Salvar. Um número negativo remove a expiração (
PERSIST). - Excluir uma chave: o ícone de lixeira (Excluir). Ela passa pelo diálogo Operação perigosa mostrando
DEL <key>; Executar mesmo assim confirma. O app diz se o servidor removeu a chave ou se ela já não existia. - Tocar em Carregar mais busca a próxima página. Uma página tem 200 chaves, e uma página pode levar até 40 rodadas de
SCANde 250 antes de parar. - Abrir a Redis CLI (ícone de terminal) ou o Redis Monitor (ícone de monitor).
Você não pode, e por quê
- Alterar um valor, criar uma chave ou renomear uma pela tela: não há controle para isso. Use a CLI (
SET,RENAME…).Ainda não - Escolher o banco lógico (
SELECT n) no navegador: ele vem do número de banco salvo na conexão.De propósito - Ver o tamanho de uma chave quando o servidor não suporta
MEMORY USAGEou a ACL o proíbe: o cartão diz tamanho não informado em vez de desenhar 0 B.Terceiros - Ler um valor inteiro no navegador: a prévia para em 200 caracteres. Use a CLI para o resto.De propósito
CLI
A Redis CLI envia o que você digita ao servidor do jeito que está e imprime a resposta como o redis-cli faz. O histórico na tela guarda as últimas 200 entradas.
Você pode
- Digite um comando no campo (PING, GET chave, SET chave valor…) e execute com o botão de play (Executar).
- Use os quatro chips de atalho:
PING,KEYS *,INFOeDBSIZE.KEYS *pede confirmação como qualquer comando que possa travar o servidor. - Confirme os comandos perigosos no mesmo diálogo Operação perigosa, com o motivo em espanhol (o app o escreve em espanhol em todos os idiomas). São eles:
FLUSHALL,FLUSHDBeSWAPDB; exclusões e sobrescritas (DEL,UNLINK,RENAME,GETDEL,MOVE,COPY,LREM,SREM,HDEL,ZREM,SPOP,LPOP,RPOP,XDEL,XTRIM…, os comandos*STOREeSORT … STORE); administração do servidor (CONFIG,ACL,CLIENT,DEBUG,SHUTDOWN,REPLICAOF,CLUSTER,SCRIPT,FUNCTION,MODULE,RESET…, exceto subcomandos somente leitura comoCONFIG GETouACL WHOAMI); comandos que travam o servidor (KEYS,MONITOR,BLPOP…); eEXPIRE,PEXPIREeEXPIREAT.
Você não pode, e por quê
- Salvar comandos ou scripts favoritos: não há controle para isso.Ainda não
- Assinar canais pela CLI: uma conexão assinante não consegue executar comandos normais. O monitor abre uma conexão própria para isso.De propósito
Monitor
O Redis Monitor começa sozinho quando você o abre. A cada 2 segundos ele pede o INFO ao servidor e, em uma segunda conexão própria, assina todos os canais (PSUBSCRIBE *). Em um servidor tranquilo, você vê os contadores e Ligado. Ainda não foi publicado nada em nenhum canal.
Você pode
- Ler Memória, Clientes, Ops (operações por segundo, mostradas como /s) e Versão.
- Acompanhar Eventos: cada mensagem publicada com o canal, o texto (cortado em 500 caracteres) e a hora. A lista guarda as últimas 200.
- Pará-lo com Parar e iniciá-lo de novo com Iniciar monitor.
Você não pode, e por quê
- Ver os comandos que outros clientes executam: o monitor não usa o comando
MONITORdo Redis, só oINFOe as mensagens publicadas.De propósito - Ver como os números mudaram ao longo do tempo: só os valores atuais são mostrados.Ainda não
Cloud Firestore
A conexão Cloud Firestore aparece na lista de conexões quando você configurou seu próprio projeto Firebase (em Integrações) ou conectou o Firebase no Backend Manager. Há dois caminhos até os dados, e o que você pode fazer depende de qual está aberto.
| Caminho (como o cabeçalho diz) | O que você obtém |
|---|---|
| Somente leitura · conexão do Google do Backend Manager | Usa sua sessão do Google no Backend Manager. Você escolhe um projeto Firebase (Escolha um projeto do Firebase e depois Trocar de projeto), e ele lista as coleções raiz e as subcoleções de um documento. Lê o banco (default) do projeto com as permissões da sua conta Google, e nunca grava. |
| Projeto configurado em Configurações → Integrações → Firebase | Usa as chaves do seu próprio projeto (Project ID, App ID e API key, do google-services.json dele) pelo SDK cliente do Firebase, como um app Firebase separado que nunca é o projeto do próprio PocketCode. Lê, edita e exclui documentos sob as suas regras de segurança do Firestore. Não consegue listar coleções, então você digita o caminho. |
Navegador
O Navegador Firestore mostra um nível por vez: a raiz (Coleções), uma coleção (os documentos dela) ou um documento (as Subcoleções dele). O caminho aparece no topo.
Você pode
- Escolher um projeto quando sua conta Google tem vários: Escolha um projeto do Firebase. O cabeçalho mostra Projeto: … e Trocar de projeto.
- Digitar um caminho em Caminho da coleção (por exemplo
users) e tocar na seta (Abrir caminho). Uma coleção tem um número ímpar de segmentos (users,users/alice/posts) e um documento um número par (users/alice). - Tocar em um documento para abrir as subcoleções dele (caminho do Google). O gesto de voltar sobe um nível antes de sair da tela.
- Ler documentos: até 50 por coleção, cada cartão com o id do documento, os 4 primeiros campos e +N campos.
- No seu próprio projeto, editar um documento com o lápis (Editar): Editar documento abre um campo JSON e Salvar o grava. Excluir um com o ícone de lixeira; ele passa pelo diálogo Operação perigosa mostrando
DELETE <path>. - Tocar no ícone de filtro (Consulta Firestore) para montar uma consulta.
Você não pode, e por quê
- Listar as coleções raiz, ou as subcoleções de um documento, no caminho do SDK: o SDK cliente do Firestore não tem chamada para isso. Digite o caminho de uma coleção.Terceiros
- Editar ou excluir no caminho do Google: ele é somente leitura, então os botões de editar e excluir não são desenhados. Configure o projeto em Integrações para gravar.De propósito
- Criar um documento novo pelo navegador: ele só edita e exclui os que já existem.Ainda não
- Ver mais de 50 documentos de uma coleção no navegador: use a Consulta Firestore, que vai até 500.De propósito
- Ler um banco Firestore com nome: só o
(default)é lido, nos dois caminhos.De propósito
"age": "31"), e Salvar grava esse JSON de volta com set(), que substitui o documento inteiro. Um número, booleano, map ou list que você não redigitar como valor JSON é salvo como texto. Redigite-os ("age": 31) antes de salvar, ou edite o documento no console do Firebase.Consulta
A Consulta Firestore monta uma consulta Firestore de verdade, que o Firestore executa. Não é um filtro sobre os documentos que já estão na tela.
Você pode
- Digite o caminho da Coleção. Se deixar vazio, usa-se o caminho que você estava navegando.
- Toque em Adicionar cláusula em Cláusulas WHERE. Cada cláusula tem um Campo, um chip de operador (
==,!=,<,<=,>,>=,array-containsouin) e um Valor. Um ícone remove uma cláusula. - Os valores são tipados para você:
null,true,false, inteiros, decimais e datas ISO (2026-10-04ou2026-10-04T10:00:00Z) são reconhecidos, e qualquer outra coisa é texto. Coloque um valor entre aspas ('123') para forçar texto. Comin, separe os valores por vírgula e coloque entre aspas o valor que contiver uma. - Defina Ordenar por (um campo) e Limite (25 por padrão; o app o mantém entre 1 e 500).
- Toque em Executar consulta. Em documentos você recebe a contagem e um cartão por resultado com todos os campos.
Você não pode, e por quê
- Ordenar de forma decrescente: a tela não tem chave para isso, então os resultados sempre ficam em ordem crescente.Ainda não
- Consultar um collection group (todas as coleções com um dado nome): não há controle para isso.Ainda não
- Combinar desigualdades em campos diferentes, ou ordenar por outro campo, sem um índice: o Firestore exige um índice composto, e o erro dele, com o link para criá-lo, é mostrado do jeito que vem.Terceiros
Monitor
Abra o Monitoramento em Monitor nas Ferramentas ou em Monitoramento na tela inicial. O ícone de atualizar no cabeçalho recarrega tudo (e, no Supabase, carrega a Saúde do esquema). Se algum alerta disparou, uma faixa vermelha no topo os lista: N alertas disparados, os 3 primeiros, e Descartar.
| Aba | O que mostra |
|---|---|
| Sessões | Latência e contadores da conexão, as sessões do servidor e as consultas que este app executou. |
| Slow log | Suas instruções bem-sucedidas mais lentas, a partir do log de auditoria. |
| Índices | Os índices das tabelas, com uma estimativa de uso (dialeto PostgreSQL). |
| Alertas | Regras que você define, verificadas quando você abre ou atualiza o monitor. |
| Saúde do esquema | Só no Supabase: os avisos de segurança e desempenho do projeto. |
| Consultas lentas | Só no PlanetScale: as consultas que mais leem, a partir do Insights. |
Sessões
A primeira aba tem três seções.
Você pode
- Conexão: Latência (os milissegundos de um
SELECT 1na sua conexão, medidos quando você abre ou atualiza o monitor), Conexões (as conexões abertas com o banco, só no PostgreSQL local), Consultas por segundo (sempre —), Consultas hoje e Tempo médio de consulta (das consultas que você executou neste app desde a meia-noite). - Sessões do servidor, só no PostgreSQL local: cada sessão de cliente de
pg_stat_activity(a do próprio monitor fica de fora) compid, estado, evento de espera, Banco de dados, Aplicação e a consulta dela (os primeiros 200 caracteres). Dois ícones agem sobre uma sessão: Cancelar consulta (pg_cancel_backend: interrompe a consulta e mantém a sessão) e Encerrar sessão (pg_terminate_backend: fecha a conexão). - Consultas desta aplicação: as consultas da sessão atual, cada uma com seu estado e duração. O ícone Encerrar consulta cancela uma que está rodando e Limpar concluídas esvazia as terminadas.
- Aberto a partir da tela inicial, sem conexão, as sessões vêm do motor local.
Você não pode, e por quê
- Ver as sessões do Neon, Supabase, MySQL, Redis, Firestore ou MongoDB: o módulo só as lê do PostgreSQL embutido. Em qualquer outro lugar ele diz “… não informa as sessões abertas — só o motor embutido faz isso.”De propósito
- Obter consultas por segundo: isso não é medido, então o cartão mostra —.Ainda não
Slow log
O slow log é montado a partir do seu log de auditoria: suas instruções bem-sucedidas iguais ou acima do limite, as 50 mais lentas. Não é o log de consultas lentas do próprio servidor.
Você pode
- Escolha o Limite de lentidão com os chips 100 ms, 500 ms, 1000 ms e 5000 ms (500 por padrão). A lista é refeita quando você abre o monitor ou toca no ícone de atualizar, então atualize depois de mudar o limite.
- Cada entrada mostra a duração (vermelha acima de 2000 ms), a hora, o SQL (até 200 caracteres, 3 linhas) e a tabela.
- Sem nada para mostrar, diz Nenhuma consulta lenta detectada.
Você não pode, e por quê
- Manter o limite depois que o app reinicia: ele não é salvo.Ainda não
- Ver instruções lentas que não vieram deste app: o log é feito das suas próprias entradas de auditoria, não das do servidor.De propósito
Índices
Os índices das tabelas da conexão, só para conexões com dialeto PostgreSQL: o motor local, Neon, Supabase e servidores PostgreSQL.
Você pode
- Ler cada índice: o nome, a tabela e as colunas, um selo Único quando ele é único e N usos (est.).
- N usos (est.) é uma estimativa, não um contador: conta as entradas do seu log de auditoria para essa tabela cujo SQL menciona a primeira coluna do índice. O selo fica verde acima de 0.
- Sem nenhum, diz Sem índices.
Você não pode, e por quê
- Ver índices no MySQL, no SQLite ou em outros motores: a aba fica vazia.Ainda não
Alertas
As regras de alerta ficam salvas no dispositivo e são verificadas toda vez que você abre ou atualiza o monitor.
Você pode
- Toque em Adicionar alerta, dê um Nome do alerta, escolha um Tipo de alerta e um Limite. Ligue ou desligue uma regra, ou exclua-a, com os controles dela. N regras mostra quantas existem.
- Um alerta dispara quando o valor atual está acima do limite. Os alertas disparados aparecem na faixa vermelha no topo do monitor.
Você não pode, e por quê
- Receber uma notificação com o app fechado, ou enquanto você não está olhando o monitor: nada roda em segundo plano. As regras só são verificadas quando você o abre ou atualiza.Ainda não
- Criar alerta de Database Size onde o motor não informa um tamanho: essa regra é ignorada, não disparada com zero.Terceiros
| Tipo de alerta | O que mede |
|---|---|
| Table Row Count (rows) | A contagem de linhas da tabela aberta, quando a contagem é conhecida. |
| Query Duration (ms) | O tempo médio das consultas que você executou neste app desde a meia-noite. |
| Database Size (MB) | O tamanho do banco aberto. Verificado só onde o motor o informa: conexões com dialeto PostgreSQL, Turso e Cloudflare D1. |
| Slow Queries Count (queries) | Quantas entradas o Slow log tem com o limite atual. O log guarda no máximo 50, então um limite de 50 ou mais nunca dispara. |
| Error Rate (%) | As instruções que falharam como porcentagem de todas as entradas do log de auditoria, não só as de hoje. |
Saúde do esquema (Supabase)
Só em um projeto Supabase, e aparece depois que você toca no ícone de atualizar do monitor (ou chega por uma ação Abrir no Database que aponta para a saúde do schema). Mostra, somente leitura, o que o Supabase já sabe que está errado no projeto: os avisos de segurança e desempenho, em duas seções.
Você pode
- Ler cada achado: o nível, o título, a entidade que ele Afeta, a correção e um link Saiba mais.
- Em um achado de row level security, toque em Abrir em Policies para ir a Segurança → Políticas.
Você não pode, e por quê
- Corrigir um achado a partir daqui: a aba só lê os avisos do Supabase.De propósito
Consultas lentas (PlanetScale)
Só em um projeto PlanetScale, quando o Insights tem dados. “Insights do PlanetScale: as consultas que mais leem ou escaneiam nesta branch.”
Você pode
- Ler cada consulta com a tabela, o Tempo, a quantidade (Vezes), as Linhas lidas e as Linhas examinadas, como a API as entrega (o tempo vem em microssegundos).
Você não pode, e por quê
- Ver os números do PlanetScale em milissegundos ou misturados com o Slow log: as duas fontes usam unidades diferentes, então ficam separadas.De propósito
Painéis e gráficos
Os Painéis juntam consultas como widgets, e os Gráficos desenham o último resultado do console. Nenhum dos dois tem limite de plano. Os painéis ficam salvos no dispositivo como a consulta e a forma dela, nunca como o resultado: os números são lidos de novo do motor toda vez que você abre um.
Painéis
Painéis abre seus painéis como abas. O ícone + (Novo painel) cria um (Nome do painel). Sem nenhum, diz “Os painéis que criares aparecem aqui.”
Você pode
- Troque de painel pelas abas. Em cada um você pode Renomear ou Excluir; excluir pergunta “Eliminar «X» e os seus N widgets? Não é possível anular.”
- Leia os widgets em 1 coluna em um celular em pé, 2 colunas nos demais casos e 3 colunas em telas de 1.200 dp ou mais. Em uma grade de uma coluna, um widget de 2 colunas simplesmente ocupa a linha inteira.
- Atualize um widget com o botão dele; cada um mostra quando foi lido (Lido às …).
- Um widget também pode dizer: A ligação com que este widget foi criado já não está disponível., Este widget não tem consulta., A consulta não devolveu nenhuma linha., Não há nenhuma coluna numérica para desenhar. ou o erro do próprio motor.
Você não pode, e por quê
- Levar um painel para outro dispositivo: eles vivem só neste.Ainda não
Widgets
Um widget é uma consulta, uma forma, uma largura e um intervalo de atualização. Você adiciona um pelo ícone de gráfico (Adicionar ao dashboard) no cabeçalho do console, que só fica habilitado com um resultado bem-sucedido, ou pelo mesmo ícone em Gráficos.
Você pode
- No painel, defina o Título do widget, veja o SQL que será salvo (mostrado ali, não editável), escolha o Painel de destino ou Novo painel, e escolha a Forma, a Largura e a Atualização automática.
- Largura: 1 coluna ou 2 colunas. Atualização automática: Desativada, ou a cada 5, 15, 30, 60 ou 300 segundos enquanto o painel está na tela.
- Cada widget tem um título, um botão de atualizar e um menu (Opções do widget) com Editar widget, Subir, Descer e Excluir. Editar widget muda o título, o SQL, a forma, a largura e o intervalo.
Você não pode, e por quê
- Executar uma instrução que escreve: um widget roda sozinho e com um temporizador, então só rodam
SELECT,WITH,EXPLAIN,SHOWeDESCRIBE. Uma instrução que escreve fica sem executar, com “Não executado: UPDATE escreve, e um painel só executa consultas de leitura.”De propósito - Usar parâmetros
:nameem um widget: ele não tem de onde tirar o valor quando se atualiza sozinho.De propósito - Arrastar widgets para reordená-los: use Subir e Descer.De propósito
- Atualizar mais rápido que a cada 5 segundos: um widget que consulta de novo a cada segundo é um laço de
SELECTno banco de alguém.De propósito - Usar um widget no Redis, MongoDB ou Firestore: eles não têm SQL, então o widget mostra o erro do motor.De propósito
| Forma | O que desenha |
|---|---|
| Tabela | As 5 primeiras linhas, com “N linhas · M colunas”. |
| Um valor | A primeira célula da primeira linha, em tamanho grande. Para um COUNT(*) ou qualquer agregado de um só número. |
| Barras, Linha e Circular | A primeira coluna como rótulo e a primeira coluna numérica como medida, até 24 pontos. Linhas cujo valor não é um número ficam de fora. Uma linha precisa de pelo menos 2 pontos. |
Aba Servidor
A primeira aba, Servidor, só existe enquanto o PostgreSQL local roda. Ela lê o motor ao vivo; nada nela é salvo.
Você pode
- Ler Sessões, Commits, Rollbacks, Acertos de cache, Tamanho dos dados, Versão, Bloqueios mútuos e Pontos de controlo. Elas se atualizam a cada 5 segundos enquanto a aba está na tela.
Você não pode, e por quê
- Ver essa aba em qualquer outro motor: ela vem do PostgreSQL embutido, que só roda em celulares ARM de 64 bits.Dispositivo
- Editar ou salvar essa aba: ela não guarda nenhuma consulta.De propósito
Gráficos
Gráficos desenha o último resultado do console SQL. Execute uma consulta antes: é preciso um resultado bem-sucedido com pelo menos 2 colunas, ou o app diz “Execute a query with at least 2 columns first”.
Você pode
- Escolha Bar, Line, Pie, Scatter ou Heatmap (os nomes dos tipos de gráfico são texto fixo em inglês).
- O eixo X é a primeira coluna. O eixo Y é a primeira coluna numérica depois dela, e o gráfico de pizza usa as mesmas duas colunas só com valores positivos. Scatter cruza as duas primeiras colunas numéricas (com apenas uma, não há o que desenhar). Células que não são números são desenhadas como 0.
- Ative ou desative a legenda e a grade com os dois ícones ao lado do gráfico (Alternar legenda e Alternar grade).
- O ícone de atualizar no cabeçalho redesenha o gráfico a partir do último resultado do console.
- Toque no ícone de salvar (Exportar gráfico) para gravar um PNG com fundo branco pelo seletor de arquivos do sistema.
- Toque no ícone de gráfico (Adicionar ao dashboard) para guardar a consulta como widget.
- Sem coluna numérica, diz “Sem dados para o gráfico. Execute uma consulta com colunas numéricas primeiro.”
Você não pode, e por quê
- Desenhar mais de uma medida ao mesmo tempo: uma coluna numérica vai para o eixo, porque várias em um eixo compartilhado não dá para ler (centenas ao lado de unidades).De propósito
Dados de teste
Dados de teste preenche a tabela que você abriu com linhas inventadas. A tela se chama Gerador de dados mock. Funciona coluna a coluna: cada coluna tem o seu próprio tipo de dado, deduzido do nome da coluna, e você pode mudá-lo. Abra uma tabela antes, ou o app diz “Open a table first — the mock data goes into it.”
Você pode
- Escolha quantas linhas com os chips 10, 50, 100, 500 ou 1000 (Número de linhas).
- Ative Respeitar restrições para reutilizar os valores que já existem em colunas de chave estrangeira (“Usar valores existentes de FK quando disponíveis”; até 1.000 valores distintos por coluna de chave estrangeira).
- Em Configuração de colunas, mude o tipo de qualquer coluna. Os tipos vêm em grupos: Identity, Security, Numbers, Dates, Text, Web, Places, Business e Other. O tipo inicial é adivinhado pelo nome da coluna em inglês, espanhol e português, então uma coluna chamada
nombreoucidaderecebe um nome ou uma cidade. - Uma chave primária que o banco preenche sozinho (auto-incremento ou um padrão) fica de fora, então o
INSERTnão a nomeia. - Toque em Gerar N linhas: ele executa um
INSERTpor linha na conexão aberta, uma depois da outra. Para no primeiro erro com “Parou após N linhas: …”, e as linhas já inseridas ficam. - Ou use Geração com IA: escreva o que você quer em Descreva os dados (por exemplo “pedidos de e-commerce realistas com produtos”) e toque em Gerar com IA. Depois que você aceita o diálogo de consentimento do provedor, o modelo recebe o nome da tabela, as colunas dela (nome, tipo, chave primária, não nulo), o nome do motor e a sua descrição, nunca as suas linhas. Ele precisa responder com um array JSON que corresponda exatamente à tabela, e as linhas são inseridas uma a uma. Se nenhum provedor responder, o app oferece Usar o próprio.
Você não pode, e por quê
- Inserir mais de 100 linhas no Grátis, ou 50 com IA: escolher 500 ou 1000 reduz o número em silêncio, e o botão continua dizendo “Gerar 1000 linhas”.Pro
- Escolher mais de 1000 linhas: o maior chip é 1000 e a IA para em 200 no Pro. O código permite até 100.000 no Pro, mas a tela não oferece isso.Ainda não
- Gerar linhas no Redis, MongoDB ou Firestore: a ferramenta não é oferecida ali porque eles não têm tabelas onde inserir.De propósito
Importar dados
Importar carrega um arquivo em uma tabela da conexão SQL aberta. Abre o seletor de arquivos do sistema (qualquer tipo de arquivo) e depois a Pré-visualização de importação. Você chega a ela por Importar em Ferramentas, ou por ⋮ → Importar CSV na lista de tabelas (o menu diz CSV, mas aceita seis formatos).
| Formato | Como é lido |
|---|---|
| CSV e TSV | Texto delimitado. Campos entre aspas funcionam, mesmo com vírgula ou quebra de linha dentro. A primeira linha é o cabeçalho dá nome às colunas; sem isso, elas são col_1, col_2… |
| JSON | Um array de objetos, ou um objeto. Cada objeto é uma linha e as chaves dele são as colunas. |
| NDJSON | Um objeto JSON por linha. |
| SQL | Só as instruções INSERT INTO de um dump são lidas como linhas. Os nomes das colunas vêm da instrução (col_1… quando ela não tem). |
| XLSX | A primeira planilha de um arquivo Excel. |
A pré-visualização
Depois que você escolhe o arquivo, a Pré-visualização de importação mostra o que foi lido. O formato é identificado primeiro pelo conteúdo e depois pelo nome do arquivo. Nada é gravado até você tocar em Importar.
Você pode
- Ver o formato detectado como um selo, a contagem (N linhas · M colunas, só quando o arquivo inteiro foi contado) e as 50 primeiras linhas em Dados de pré-visualização.
- Editar o Nome da tabela. Ele começa como o nome do arquivo, limpo (
clientes-2026.xlsxviraclientes_2026). - Marcar ou desmarcar A primeira linha é o cabeçalho (ligado por padrão; só importa para CSV, TSV e XLSX), Criar tabela (ligado por padrão: executa
CREATE TABLE IF NOT EXISTS) e Truncar antes (desligado por padrão: executaDELETE FROMna tabela antes, e fica vermelho quando marcado). - Ler os chips de Tipos detectados. Eles vêm das 50 linhas de amostra (“Os tipos são deduzidos das linhas da amostra, não do ficheiro inteiro.”); Criar tabela deduz os tipos de novo a partir do arquivo inteiro.
- Tocar em Importar. Uma mensagem diz quantas linhas entraram na tabela.
Você não pode, e por quê
- Importar para um banco que já tem 4 tabelas no plano Grátis, nem mesmo para uma tabela existente: o limite é verificado antes de o arquivo ser lido, e a janela Banco de Dados Pro abre.Pro
- Importar
.xls,.odsou qualquer formato fora dos seis, ou ler uma planilha de um arquivo Excel que não seja a primeira.De propósito - Importar para Redis, MongoDB ou Firestore: eles não falam SQL.De propósito
Transações e lotes
| Conexão | Como as linhas entram |
|---|---|
| O PostgreSQL local | Uma transação. Se qualquer lote falha, tudo é desfeito, inclusive uma tabela que a importação criou: “Importação desfeita após N de M linhas; nada foi salvo: …” |
| Qualquer outra conexão SQL | Cada lote é atômico por si só. Se um falha, os anteriores ficam: “N de M linhas importadas: …” A criação da tabela e Truncar antes rodam como instruções separadas antes dos lotes, então elas também não são desfeitas. |
| Qualquer uma delas | As linhas entram em instruções INSERT … VALUES de até 200 linhas (ou 60.000 caracteres). |
Importar da área de transferência
Só no motor local, ⋮ → Importar da área de transferência (na lista de tabelas) executa o texto que você copiou como um dump SQL.
Você pode
- Copie um dump, abra o menu e toque em Importar da área de transferência. O texto é dividido em cada
;e as instruções rodam uma a uma, sem transação. Se algumas falham, você vê quantas falharam e as três primeiras mensagens diferentes. - A importação é gravada no Log de auditoria como
IMPORT.
Você não pode, e por quê
- Manter um ponto e vírgula dentro de uma string ou do corpo de uma função: o dump é dividido em cada
;, então essas instruções quebram.De propósito - Importar no Grátis um dump que cria tabelas quando o banco já tem 4: a janela Banco de Dados Pro abre antes.Pro
Histórico e consultas salvas
Duas ferramentas, ambas sobre o SQL que você executou no console.
Histórico de consultas
O Histórico de consultas lista o que você executou, da mais recente para a mais antiga. É uma lista só para todas as conexões, salva no dispositivo, com até 500 entradas.
Você pode
- Ler cada entrada: o SQL (3 linhas), o número de linhas ou um ícone de erro, a duração, o nome da conexão · a data e o erro.
- Tocar em uma entrada para carregar o SQL dela no console.
- Tocar em Limpar tudo para esvaziar a lista. Ele não pergunta antes.
- As consultas com parâmetros são guardadas como o modelo. As credenciais derivadas do Turso e do Upstash são apagadas do texto antes de ele ser salvo.
Você não pode, e por quê
- Ver o resultado de uma consulta: só o SQL e os números dele são guardados, apesar do que diz a descrição de uma linha da ferramenta (“Tudo o que executou, com o resultado”).De propósito
- Buscar, filtrar ou excluir uma entrada isolada: só existe Limpar tudo.Ainda não
Consultas salvas
Consultas salvas lista as consultas que você salvou a partir do console (⋮ → Salvar consulta), ordenadas pelo último uso.
Você pode
- Toque em uma consulta para carregá-la no console. O ícone de lixeira (Excluir) a remove sem confirmação.
- Guarde consultas em pastas: Nova pasta (Nome da pasta), os chips Tudo, Sem pasta e um por pasta, e Mover para pasta em uma consulta (aparece quando você tem uma pasta). Apagar pasta remove só a pasta: “Apagar a pasta não apaga as consultas: elas saem dela.”
- Em um projeto Supabase, uma seção Do Supabase lista os snippets do seu dashboard do Supabase, somente leitura, com Abrir no console e Salvar uma cópia.
Você não pode, e por quê
- Salvar uma 6ª consulta no Grátis: o limite é de 5 consultas salvas (Salvar uma cópia também conta).Pro
- Editar um snippet do Supabase aqui: eles são somente leitura. Abra um no console ou salve uma cópia.De propósito
Segurança
Segurança tem cinco abas: Mascaramento, Funções, Políticas, Permissões e Biometria. Abri-la pelas Ferramentas sempre começa em Mascaramento.
Mascaramento
“A máscara só muda o que vês nesta aplicação. Os dados na base não são tocados.” As regras ficam salvas no dispositivo.
Você pode
- Toque em Adicionar regra de mascaramento, digite um Padrão de coluna e escolha um Tipo de máscara. Ligue ou desligue cada regra, ou exclua-a.
- O padrão é um trecho de texto que precisa aparecer no nome da coluna, sem diferenciar maiúsculas de minúsculas:
mailmascaraemailemail_backup. Não é uma expressão regular, entãoemail|passwordprocuraria exatamente esse texto. Vale a primeira regra ativa que corresponde. - Uma coluna mascarada mostra o valor mascarado no visualizador de dados. Para ver o valor real, abra o painel colunas e use Mostrar em claro (Mostrar em claro (impressão digital) quando o bloqueio biométrico está ligado). Dura até você sair da tabela.
Você não pode, e por quê
- Mascarar o console SQL, as exportações, as cópias ou o que o chat de IA lê: o mascaramento se aplica apenas à grade do visualizador de dados.De propósito
- Usar uma expressão regular no padrão.De propósito
| Tipo de máscara | O que você vê |
|---|---|
| Full Mask | ******** |
| Partial Email | A primeira letra, *** e o domínio: j***@example.com. Um valor com menos de 2 caracteres antes do @, ou sem @, mostra ********. |
| Partial Phone | Os 3 primeiros caracteres, -***-** e os 2 últimos: 555-***-**67. Um valor de 4 caracteres ou menos mostra ****. |
| First/Last Chars | O primeiro e o último caractere com *** no meio: J***n. Um valor de 2 caracteres ou menos mostra **. |
| SHA-256 Hash | Os primeiros 16 caracteres hexadecimais do hash SHA-256 do valor, seguidos de .... |
| REDACTED | [REDACTED] |
Funções
Funções lê as funções ou usuários reais da conexão.
Você pode
- PostgreSQL (o motor local, Neon, Supabase ou um servidor): cada função de
pg_roles, sem as de sistemapg_*, com seus privilégios e as tabelas do schemapublicque ela alcança. - MySQL, MariaDB e PlanetScale: as contas, de
mysql.userou, quando ela não é legível (o PlanetScale a esconde), dos privilégios de tabela, com as tabelas delas. - MongoDB Atlas: os usuários de banco do projeto, somente leitura, quando um cluster está selecionado.
- Qualquer outro motor diz “Este motor não tem utilizadores nem papéis.”
Você não pode, e por quê
- Criar, editar ou excluir funções aqui: a aba só lê.De propósito
- Ver a senha de um usuário do Atlas: o Atlas não a expõe.Terceiros
Políticas (row level security)
Políticas mostra a Row Level Security de qualquer conexão PostgreSQL (Supabase, Neon, um Postgres direto, o motor local), lida de pg_policies.
Você pode
- Ver cada tabela marcada como RLS ativo ou Desprotegida e, para cada política, o nome, o comando, as funções,
USINGeWITH CHECK. - Uma tabela com RLS desligado diz “Row Level Security está desligado: qualquer pessoa com esta conexão pode ler todas as linhas.” Com RLS ligado e nenhuma política, diz que só as funções que ignoram a RLS (o dono da tabela,
service_role) podem lê-la ou escrever nela. - Toque em Copiar SQL para copiar um
ALTER TABLE … ENABLE ROW LEVEL SECURITYou umCREATE POLICY …que você mesmo executa. - Você também chega aqui com Abrir em Policies na Saúde do esquema do Supabase, ou com uma ação Abrir no Database do Backend Manager.
Você não pode, e por quê
- Executar qualquer coisa a partir desta aba: “Nada aqui é executado: Copy SQL só copia.”De propósito
- Ver políticas no MySQL, no SQLite ou nos motores NoSQL: a Row Level Security só existe no PostgreSQL.Terceiros
Permissões
Permissões executa instruções GRANT e REVOKE de verdade na conexão aberta.
Você pode
- Toque em Conceder (Conceder permissão), digite a Função, escolha a Tabela e marque os privilégios em Selecionar privilégios: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX ou ALL PRIVILEGES. Executa
GRANT … ON … TO …. - O ícone Revogar de uma entrada dessa lista executa
REVOKEpara os privilégios que a entrada tem. Os nomes de função e de tabela precisam ser identificadores simples (letras, dígitos e sublinhados, sem começar por dígito).
Você não pode, e por quê
- Ver ou revogar as permissões que já existem: a lista mostra só o que você concedeu nesta sessão, então Revogar alcança apenas essas. Use Funções para ver as reais.Ainda não
Bloqueio biométrico
A chave Bloqueio biométrico (“Exigir autenticação biométrica para acessar dados sensíveis”) fica salva no dispositivo.
Você pode
- Com ela ligada, abrir o módulo mostra Banco de dados bloqueado (“Autentique-se para abrir seus bancos de dados”) e pede sua digital ou rosto, ou o PIN, o padrão ou a senha do dispositivo.
- Com ela ligada, Mostrar em claro (impressão digital) pede de novo antes de revelar um valor mascarado.
- Com o bloqueio desligado, a lista diz Livre em todas as linhas, com a nota “Com o bloqueio desligado, nenhuma destas pergunta nada.”
Você não pode, e por quê
- Contar com o bloqueio para confirmar a exclusão de uma tabela, a revelação de uma senha salva ou a abertura de uma conexão PRODUCTION: a tela as lista como Pergunta, mas o app ainda não pergunta.Ainda não
| Linha de Onde se aplica | O que o app faz |
|---|---|
| Apagar, esvaziar ou eliminar uma tabela | Marcada como Pergunta. O app não pede sua digital aqui. |
| Ver em claro um valor mascarado | Pergunta, por meio de Mostrar em claro (impressão digital). |
| Revelar uma palavra-passe guardada | Marcada como Pergunta. O app não pede sua digital aqui. |
| Abrir uma ligação PRODUCTION | Marcada como Pergunta. O app não pede sua digital aqui. |
Log de auditoria
O Log de auditoria guarda no dispositivo uma lista do que o módulo executou: até 1.000 entradas, e nada sai do celular.
Você pode
- Ler cada entrada: a operação (
SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,VACUUMouOTHER, tirada da primeira palavra da instrução e colorida para erros, operações destrutivas e de escrita), a data (dd/MM HH:mm:ss), o SQL (3 linhas), um selo de tabela, o número de linhas quando é maior que 0, a duração quando é maior que 0 e o erro. - O que é registrado: toda instrução executada no console SQL, um dump SQL importado da área de transferência (como
IMPORT) e as tabelas criadas com o formulário Nova tabela (comoCREATE). - Toque no ícone de repetir (Executar de novo) para enviar o SQL da entrada de volta ao console. Ele não o executa.
- Toque no ícone de vassoura (Limpar tudo) para esvaziar o log. Ele não pergunta antes.
- O selo de tabela é a tabela que estava aberta quando a instrução rodou, não uma extraída do SQL.
- Uma entrada guarda o SQL como ele rodou, com os valores de qualquer parâmetro
:namepreenchidos. O histórico de consultas guarda o modelo.
Você não pode, e por quê
- Ver em qual conexão cada entrada rodou: isso é guardado, mas a tela não mostra.Ainda não
- Buscar, filtrar ou exportar o log.Ainda não
- Auditar ações no Redis, MongoDB ou Firestore: elas não passam pelo executor do console, então não deixam entrada.De propósito
Compartilhamento
Compartilhamento (o cabeçalho diz Compartilhamento) tira do app uma conexão, uma consulta ou a configuração do módulo. Não é colaboração: ninguém mais ganha acesso, e não há sincronização na nuvem.
Você pode
- Em Partilha rápida, Compartilhar conexão copia a conexão aberta como JSON (
name,type,host,port,database,user, nunca a senha) e Compartilhar consulta copia a consulta atual do console. Com o console vazio, ele avisa. - Em Configuração (N conexões · M consultas salvas), Guardar em… grava
pocketcode-db-<date>.jsonpelo seletor de arquivos com todas as conexões da lista (uma senha guardada vira***), suas consultas salvas (nome e SQL) e a preferência do Modo seguro. Copiar coloca o mesmo JSON na área de transferência. - Abrir… lê um arquivo desses e adiciona as conexões dele que você ainda não tem. As duplicadas (mesmo tipo e
host:port/database) são ignoradas e as senhas***ficam vazias, então você as digita ao conectar. Ele informa “Config imported: N connection(s)”. - Colar (ao lado de Copiar) importa o JSON que está na área de transferência, do mesmo jeito que Abrir…: as mesmas regras para duplicadas e senhas
***, e o mesmo relatório. Sem texto na área de transferência, ele diz “A área de transferência não tem texto para importar.”.
Você não pode, e por quê
- Importar mais conexões do que o plano permite com Abrir… ou Colar: no Free a contagem inclui as conexões que você salvou e as adicionadas antes nesta sessão, então com uma no total as demais são ignoradas e a janela Banco de Dados Pro abre.Pro
- Recuperar consultas salvas com Abrir… ou Colar: eles importam só as conexões, e as consultas do arquivo são ignoradas.Ainda não
- Manter as conexões que Abrir… ou Colar adicionam depois que o módulo recarrega: elas ficam só na memória, como uma sessão.Ainda não
- Levar a configuração para outro dispositivo pela área de transferência: a própria tela diz que a área de transferência serve para colar em um chat e que o arquivo serve para mover.De propósito
Projetos na nuvem
Abrir uma conexão de conta na nuvem (Neon, Supabase, PlanetScale, MongoDB Atlas, Turso, Cloudflare D1 ou Upstash) mostra os projetos da conta em Projetos.
A lista
Projetos lista o que a conta do provedor tem.
Você pode
- Busque com Buscar projetos… (só aparece quando há mais de um projeto).
- Leia cada projeto: o nome, o estado · a região, o id em monoespaçada e um ponto verde quando está ativo.
- Toque em um. Neon, PlanetScale, Turso e Supabase abrem o painel do projeto; o D1 vai direto às tabelas dele; o Atlas abre o formulário de conexão (veja MongoDB); o Upstash abre como um banco Redis quando devolve uma senha, e, caso contrário, por REST como uma tabela somente leitura.
Você não pode, e por quê
- Criar ou excluir projetos: a lista só os mostra. Sem nenhum, diz “Crie um no dashboard do provedor”.De propósito
O painel do projeto
Cada provedor preenche as seções que tem. O botão principal é Ver tabelas.
| Provedor | O que o painel mostra |
|---|---|
| Neon | String de conexão, mascarada. O ícone Mostrar ou ocultar a revela e mostra Copiar (a cópia é marcada como sensível no Android 13 e posteriores), com o aviso “Contém a palavra-passe da base de dados em texto simples.” Revelá-la não pede sua digital. Também Ramos. |
| PlanetScale (MySQL) | Ramos, Pedidos de implantação, Esquema (o SQL da branch ativa, até 14 linhas, com um botão de copiar) e Verificação do esquema (os avisos do schema-lint com a gravidade deles). |
| Turso | Regiões disponíveis, o catálogo da conta. |
| Supabase | Projeto (região, versão do Postgres, estado), Pooler de conexão (sempre mascarado; copiar copia o que você vê) e Conexão direta com Usar uma conexão direta. Isso abre o formulário de conexão com o pooler preenchido como uma conexão PostgreSQL com TLS; digite a senha do banco uma vez e ela é salva como uma conexão própria, chamada “(direct)”, com EXPLAIN de verdade e o Schema Designer. |
Você não pode, e por quê
- Ver a senha de banco do Supabase ou do Atlas: as APIs deles não a entregam.Terceiros
- Editar branches ou deploy requests pelo painel: ele só lê.De propósito
Diff de deploy do PlanetScale
Em um projeto PlanetScale (MySQL), Comparar esquemas não abre o diff de snapshot: mostra o que o PlanetScale vai executar quando o primeiro deploy request da lista do projeto for implantado. A tela é Diff de schema, com a seção Diff do deploy request. É grátis.
Você pode
- Leia instrução por instrução: a tabela, a operação (um selo) e o DDL. Um Apaga dados — irreversível vermelho marca uma instrução destrutiva. Se nada muda, diz “Este deploy request não muda nada.”
- Chegue a ela com Comparar esquemas enquanto o projeto está aberto, ou com uma ação Abrir no Database do Backend Manager que aponta para o diff de schema.
Você não pode, e por quê
- Escolher outro deploy request: é sempre o primeiro da lista Pedidos de implantação do painel do projeto.De propósito
- Aprovar, mesclar ou implantar a partir daqui: a tela só lê.De propósito
Grátis e Pro
Quase tudo nesta página é grátis. Estes são os limites que o plano impõe, tirados da definição do plano, e os dois recursos Pro que tocam essas ferramentas.
| Limite ou recurso | Grátis | Pro |
|---|---|---|
| Tabelas por banco (também bloqueia Importar e um dump SQL que cria tabelas) | 4 | Sem limite |
| Consultas salvas | 5 | Sem limite |
| Conexões salvas suas (o motor local e as contas na nuvem não contam; contam as adicionadas com Abrir… ou Colar em Compartilhamento e as branches do PlanetScale abertas) | 1 | Sem limite |
| Abas do console | 2 | Sem limite |
| Bancos no motor local (Novo banco de dados) | 1 | Sem limite |
| Dados de teste por execução | 100 linhas (50 com IA) | Até 100.000 linhas, mas o maior chip da tela é 1000 (200 com IA) |
| Comparar esquemas (o diff de snapshot) | Indisponível. O diff do deploy request do PlanetScale é grátis. | Sim |
| Backups agendados | Indisponível. Criar, exportar, importar, restaurar e excluir backups é grátis. | Sim |
Sem limite de plano
- As telas de Redis, Firestore e MongoDB.
- O Monitor e os alertas dele, os Painéis e os Gráficos.
- Dados de teste e Importar, além dos limites da tabela.
- O Histórico de consultas, a Segurança, o Log de auditoria, o Compartilhamento, o painel do projeto e o diff de deploy do PlanetScale.
Privacidade e segurança
O que é guardado, onde, e o que sai do dispositivo:
- Nenhum servidor do PocketCode: as ferramentas falam com o seu host, com a API do provedor ou com o motor local. Redis e MongoDB usam clientes próprios do PocketCode direto com o seu servidor. Os endereços
mongodb+srv://são resolvidos com DNS sobre HTTPS, e essa consulta vai ao Google ou à Cloudflare. - O Firestore é lido pela sua sessão do Google (o caminho somente leitura) ou pelo SDK cliente do Firebase com as chaves do seu próprio projeto. O SDK roda como um app Firebase separado, nunca dentro do projeto do próprio PocketCode.
- No dispositivo: o histórico de consultas (até 500 entradas), o log de auditoria (até 1.000), as consultas salvas, as regras de mascaramento, as regras de alerta, os painéis e os snapshots de schema são arquivos do módulo no armazenamento privado do app, por conta (
history.json,audit.json,saved_queries.json,masking_rules.json,alert_rules.json,dashboards.json,schema_snapshots.json). Eles guardam o SQL que você executou, que pode conter valores literais. As credenciais derivadas do Turso e do Upstash são apagadas desse texto antes de ele ser salvo. - Os painéis guardam consultas, nunca resultados: os números são lidos de novo toda vez e ficam só na memória.
- As senhas não estão nesses arquivos: ficam no armazenamento criptografado do Android. Compartilhar conexão deixa a senha de fora, e Guardar em… e Copiar a substituem por
***. A string de conexão do Neon no painel do projeto contém a senha em texto simples, e revelá-la não pede sua digital. - IA: nada é enviado antes de você aceitar o diálogo de consentimento do provedor. Gerar com IA envia o nome da tabela, as colunas dela (nome, tipo, chave primária, não nulo), o nome do motor e a sua descrição, nunca as suas linhas.
- O mascaramento muda só o que o visualizador de dados mostra. O console SQL, as exportações e as ferramentas do chat de IA não são mascarados.
- O bloqueio biométrico cobre a entrada no módulo e a revelação de um valor mascarado, e mais nada por enquanto.
- As análises ficam desligadas até você ativar Permitir análises nas Configurações. Quando ligadas, uma consulta registra o tipo do motor, a duração e o número de linhas. Uma consulta que falha registra só a categoria do erro, nunca o texto dele.
Limitações
O que ainda não funciona ou funciona de forma diferente do que você poderia esperar, para não te pegar de surpresa:
- O MongoDB mostra coleções e contagens, não os documentos dentro delas. Não há shell nem construtor de aggregation.Ainda não
- Os valores do Redis não podem ser editados pelo navegador de chaves, só pela CLI. O navegador muda um TTL e exclui chaves.Ainda não
- O Firestore não consegue listar coleções pelo caminho do SDK, porque o SDK cliente não tem chamada para isso.Terceiros
- O Firestore é somente leitura pela conexão do Google do Backend Manager.De propósito
- As edições do Firestore gravam de volta como texto todo valor que você não redigitar como JSON, e substituem o documento inteiro.Ainda não
- As sessões com cancelar e encerrar existem só para o PostgreSQL local.De propósito
- O uso de índices é uma estimativa a partir do seu log de auditoria, e a aba Índices só funciona em conexões com dialeto PostgreSQL.Ainda não
- Os alertas só são verificados quando você abre ou atualiza o monitor. Nada roda em segundo plano.Ainda não
- Os painéis só executam instruções de leitura, e nunca mais rápido que a cada 5 segundos.De propósito
- Os dados de teste são limitados a 100 linhas (50 com IA) no Grátis, reduzidos sem aviso.Pro
- A importação para em 4 tabelas no Grátis, mesmo para uma tabela existente, e aceita seis formatos.Pro
- Permissões lista só o que você concedeu nesta sessão. Funções mostra as reais.Ainda não
- O bloqueio biométrico não pergunta antes de excluir uma tabela, revelar uma senha salva ou abrir uma conexão PRODUCTION, embora a tela diga que pergunta.Ainda não
- Compartilhamento: Abrir… e Colar importam só conexões, na memória.Ainda não
- O histórico de consultas e o log de auditoria não podem ser buscados, filtrados nem aparados entrada por entrada, e o log de auditoria não mostra a conexão.Ainda não
- As conexões Redis, Firestore e MongoDB listam nove ferramentas voltadas para SQL; Cópias de segurança e Exportar não funcionam para elas e não há exportação de coleções nem de chaves.De propósito
- Algumas mensagens das telas de Redis, Firestore e MongoDB e alguns toasts são escritos em espanhol ou inglês, seja qual for o idioma do app.Ainda não
Solução de problemas
As mensagens destas ferramentas como o app as escreve (os sinais de menor e maior marcam um valor que o app preenche), e o que fazer em cada uma. Algumas entradas descrevem uma situação em vez de uma mensagem.
O Firestore não permite listar coleções a partir de uma app cliente. Escreve um caminho de coleção para a explorar.
Você está no caminho do SDK, onde o Firestore não consegue listar coleções. Digite o caminho (por exemplo users) em Caminho da coleção e toque na seta. Para obter a lista de coleções e subcoleções, conecte o Firebase no Backend Manager: esse caminho é somente leitura, mas lista.
Somente leitura: <project> está aberto com sua conexão do Google do Backend Manager. Para editar documentos, configure este projeto em Configurações → Integrações → Firebase.
Os botões de editar e excluir ficam escondidos no caminho do Google. Adicione o Project ID, o App ID e a API key do projeto em Firebase, dentro de Integrações: o projeto passa a abrir pelo SDK e pode ser editado.
O Google recusou a leitura do Firestore em <project> (403). A sessão pode não ter acesso ao Firestore, ou a API do Firestore pode estar desativada neste projeto.
Ative a Cloud Firestore API do projeto no Google Cloud, ou reconecte o Firebase no Backend Manager. Se o projeto também é o que você configurou para o SDK, o navegador já volta ao SDK depois de uma recusa.
Sua sessão do Google para o Firebase expirou ou foi revogada. Conecte o Firebase de novo no Backend Manager.
Reconecte o Firebase lá e abra a conexão Cloud Firestore de novo.
Não há como ler <project>: conecte o Firebase no Backend Manager ou configure este projeto em Configurações → Integrações → Firebase.
O projeto que você escolheu não tem nenhum dos dois caminhos. Escolha outro projeto, ou adicione um dos dois.
<project> não tem um banco do Firestore chamado (default).
Só o banco (default) é lido. Crie-o no console do Firebase ou escolha outro projeto.
Um erro que começa com FAILED_PRECONDITION e traz um link
O Firestore precisa de um índice composto para essa consulta (desigualdades em vários campos, ou uma ordenação por outro campo). Abra o link do erro para criar o índice, espere ele ser construído e execute a consulta de novo.
PERMISSION_DENIED — Your Firestore security rules rejected this operation.
Suas próprias regras de segurança recusam a leitura, a edição ou a exclusão. Mude as regras no console do Firebase, ou leia o projeto pelo caminho do Google, que não depende delas.
<engine> não informa as sessões abertas — só o motor embutido faz isso.
As sessões vêm de pg_stat_activity do PostgreSQL local. Neon, Supabase, MySQL e os motores NoSQL não as informam aqui.
Não executado: <VERB> escreve, e um painel só executa consultas de leitura.
Um widget roda sozinho e com um temporizador. Edite o widget e troque o SQL dele por um SELECT; execute as instruções que escrevem no console.
A ligação com que este widget foi criado já não está disponível.
Um widget guarda a conexão em que foi criado. Exclua o widget e adicione-o de novo a partir do console, com a conexão certa aberta.
Execute a query with at least 2 columns first
Gráficos desenha o último resultado do console. Execute uma consulta que devolva uma coluna de rótulo e pelo menos mais uma, e depois abra Gráficos.
Open a table first — the mock data goes into it.
Dados de teste insere na tabela que você abriu. Abra uma em Tabelas e use a ferramenta de novo.
Stopped after N rows: …
O gerador insere uma linha por vez e para no primeiro erro, por exemplo uma restrição de unicidade ou de chave estrangeira. As linhas já inseridas ficam. Com a IA, a mensagem é «Parou após N linhas: …». Confira os tipos das colunas, ative Respeitar restrições ou gere menos linhas.
Nenhum fornecedor de IA respondeu. O gerador próprio pode preencher a tabela.
Nenhum modelo respondeu. Confira seu provedor de IA nas configurações de IA, ou toque em Usar o próprio para preencher a tabela com o gerador que não precisa de IA.
Importação desfeita após N de M linhas; nada foi salvo: …
No PostgreSQL local, a importação inteira é uma transação, então uma linha ruim desfaz tudo, inclusive uma tabela que a importação criou. Corrija a linha citada na mensagem e importe de novo.
O Banco de Dados Pro abre quando escolho Importar
O Grátis permite 4 tabelas por banco e verifica o limite antes de ler o arquivo, mesmo quando você importa para uma tabela existente. O Pro remove o limite.
TTL de 0 segundos borraría la clave al instante. Usa DEL si eso es lo que quieres.
O Redis apaga uma chave cujo TTL é 0, então o app recusa (a mensagem está em espanhol em todos os idiomas). Use um número negativo para remover a expiração, um positivo para defini-la, ou exclua a chave.
<host>:<port> cerró la conexión. Si el servidor exige TLS, activa SSL en la conexión (y al revés).
Uma divergência de TLS: o servidor quer TLS e a conexão está com ele desligado, ou o contrário. Edite a conexão e alterne o SSL.
Contraseña rechazada por Redis. Revisa la contraseña de la conexión.
A senha ou o usuário estão errados. Se o servidor pede uma senha e a conexão não tem nenhuma, a mensagem é “Este Redis exige contraseña y la conexión no tiene ninguna.”
O Upstash não retornou senha nem token REST para este banco de dados.
O token da conta não consegue ler as credenciais deste banco. Abri-lo volta para uma tabela REST somente leitura, ou falha.
Este motor não tem utilizadores nem papéis.
Funções lê só PostgreSQL, MySQL, MariaDB, PlanetScale e Atlas. Se você vê “Não foi possível ler os papéis desta ligação.”, o usuário da conexão não pode lê-los.
Digite o usuário e a senha do banco — o Atlas não os fornece pela API — e salve.
O Atlas nunca devolve a senha de um banco. Preencha o usuário e a senha no formulário de conexão, use Testar conexão e salve.
Config imported: N connection(s)
Abrir… ou Colar adiciona essas conexões só à sessão. Depois que o módulo recarrega, elas somem, então salve-as de novo com o formulário de conexão. Se a janela Banco de Dados Pro também abrir, o Free guarda uma só conexão sua e o resto do arquivo foi ignorado.
A área de transferência não tem texto para importar.
Colar não achou texto na área de transferência. Copie primeiro uma configuração (Copiar na mesma tela, ou de outro aparelho) e toque em Colar de novo. Para trazer um arquivo, use Abrir….
Banco de dados bloqueado
O bloqueio biométrico está ligado. Toque em Desbloquear e autentique-se com sua digital, seu rosto ou o PIN do dispositivo. Se aparecer “O bloqueio de ecrã não está disponível nesta janela.”, o prompt do sistema não pode ser mostrado ali e o módulo abre sem o bloqueio: use o módulo na janela normal do app se quiser o bloqueio.