Manual do Supabase

Como deixar a nuvem do Contrô pronta — em poucos minutos, com um script só.

1O script único (migrações 001 a 018)

Todas as atualizações do banco da nuvem num arquivo só. Pode rodar quantas vezes quiser: nada é apagado, o que já existe fica como está.

  1. Entre no Supabase → abra o seu projeto → menu SQL Editor → New query.
  2. Clique em Copiar o script (abaixo) e cole tudo lá.
  3. Clique em Run (ou Ctrl+Enter).
  4. No fim aparece uma tabela: todas as linhas precisam dizer ✓ OK. Se alguma disser "FALTANDO", rode de novo e confira a mensagem de erro que o Supabase mostrar.
Projeto novo, ainda vazio? Rode primeiro o arquivo schema_supabase.sql inteiro (pasta do programa) — ele já inclui as 13 migrações. O script único é para quem já tem o Contrô no Supabase.
Ver o script (carregando…)
carregando…

2Os dados que o Contrô precisa

Onde pegarO que copiar
Supabase → Project Settings → API (ou "Data API")Project URL (ex.: https://xxxx.supabase.co)
Supabase → Project Settings → API KeysA chave secreta (secret / service_role). Nunca a anon / publishable.
Cloudflare → R2 Object StorageAccount ID e o nome do bucket (crie um, ex.: contro-fotos-biometria)
Cloudflare → R2 → Manage API Tokens → Create API token (permissão Object Read & Write, só nesse bucket)Access Key ID e Secret Access Key (a secreta aparece uma vez só — guarde)
As chaves secretas dão acesso total aos dados. Digite-as só na tela do Contrô — nunca mande por chat, e-mail ou foto.

3No Contrô (em cada computador)

  1. Configurações → Nuvem → Sincronização com a Nuvem: backend "Supabase + Cloudflare R2".
  2. Preencha os dados do passo 2 → Salvar credenciais Supabase/R2 (o Contrô confere se estão certas).
  3. Ligue "Sincronizar com a nuvem automaticamente" → Salvar.
  4. Só na primeira vez, no computador que já tem os cadastros: Ressincronizar tudo desde o início.
  5. Para um computador cadastrar num facial que está em outro: ligue o Encaminhamento de comandos pela nuvem (e, se quiser, "Liberar acesso pela nuvem") nos dois computadores.
  6. Perfis na nuvem: marque os perfis que devem ir para a nuvem e clique em Salvar seleção. A nuvem aceita um perfil por nome e um login por operador — se dois computadores tiverem o mesmo nome, renomeie um deles.

4Como saber que está tudo certo

5Problemas comuns

MensagemO que fazer
"Could not find the function …", "PGRST202", "Rode a migração …"Rode o script único (passo 1).
"Nuvem: conflito(s) de nome" / "já existe outro perfil com esse nome"Perfil ou login repetido em outro computador: renomeie um dos dois, ou remova o outro em Perfis na nuvem → Na nuvem agora.
"NameResolutionError", "Max retries exceeded"Falha de internet/DNS naquele momento — o Contrô tenta de novo sozinho.
"permission denied", "401", "Invalid API key"Chave errada: use a chave secreta (service_role), não a anon.
"Horário da nuvem incorreto"Confira o fuso e o relógio do computador; clique em "Verificar relógio da nuvem agora".
Espaço do plano gratuito (500 MB) quase cheioA trava automática apaga o histórico de acessos mais antigo da nuvem (nunca dos computadores).

O que cada migração faz

NºO que traz
001Trava automática de espaço do banco
002Permissão para criar/apagar os meses do histórico de acessos
003Encaminhamento de cadastros para o computador que alcança o facial + presença das máquinas
004Registro de credenciais (UserIDs) entre os computadores
005O mesmo ID da pessoa no facial em todos os computadores
006Liberar acesso e acertar o horário do facial pela nuvem
007Quadro de avisos das unidades
008Índices da sincronização rápida
009Computador e operador de origem de cada cadastro
010Prazo de exposição e lixeira dos avisos
011Trava de segurança do histórico: RLS em cada partição de mês, caminho fixo nas funções e execução das funções de manutenção só pela chave secreta
012Lápide de remoção: o que você remove da nuvem (bloco, unidade, equipamento, perfil ou operador) não volta mais sozinho
013Quem emitiu cada credencial (issuer_id): a identidade do operador fica guardada no cadastro
014União de pessoas duplicadas entre as máquinas: a união feita numa máquina vale em todas
015Modelo do ID de facial de cada pessoa (antigo ou atual): a nuvem e as máquinas sabem em qual modelo cada pessoa está
016O modelo do ID de facial nunca é rebaixado: uma máquina desatualizada não desfaz o ID novo de uma pessoa
017Apagar de vez a ficha antiga de uma pessoa unida (nuvem): passa cadastros e acessos para a principal, apaga a linha e impede que ela volte
018MAC do equipamento: a nuvem guarda o MAC que cada facial informa e o compartilha entre as máquinas (só informação nesta fase, nada é bloqueado)