Nota (PT-BR): este documento é uma referência normativa de engenharia e permanece temporariamente em inglês para preservar precisão técnica. A visão geral em português está em Decision Engine. A tradução completa está no backlog de documentação.
Testes locais do banco de decisioning¶
Esta fundacao e validada exclusivamente no Supabase local. Os comandos abaixo
nao vinculam projeto, nao aplicam migrations remotas e nao usam db push.
Pre-requisitos¶
- Supabase CLI instalado.
- Docker Desktop, OrbStack ou outro daemon Docker local em execucao.
- Portas locais configuradas em
supabase/config.tomldisponiveis.
Reset e pgTAP¶
Execute a partir da raiz do monorepo:
supabase db reset
supabase test db
supabase db reset recria o banco local, aplica todas as migrations em ordem e
carrega supabase/seed.sql. supabase test db executa os arquivos SQL em
supabase/tests/ dentro de transacoes que terminam em rollback.
Os testes desta fundacao cobrem:
- presenca das 15 tabelas e ausencia de views
publicsobre dados internos; ENABLE ROW LEVEL SECURITYeFORCE ROW LEVEL SECURITY;- isolamento entre workspaces A e B para member, admin e owner;
- ausencia de acesso anonimo;
- ausencia de DML direto para
authenticated, inclusive admins; - grants server-side minimos para fatos append-only e workflows mutaveis;
- invariante
approved_amount = incurred_amount + outstanding_amount; - 18 FKs legacy compostas
NOT VALID, todas testadas contra cross-tenant; - bloqueio de
UPDATEeDELETEem fatos append-only; - transicoes monotonicamente terminais de sync runs;
- ranges sem overlap para mappings e contract terms aprovados;
- tres maturidades e coberturas independentes em quality snapshots;
- preservacao de desconhecido como
nullacompanhado de reason code.
Diagnostico¶
Confirme o daemon antes de repetir um reset:
docker info
supabase status
Se o daemon estiver parado, o CLI falha antes de criar o banco local. Inicie o runtime Docker e repita os dois comandos de validacao. Erros em migrations anteriores devem ser corrigidos na migration proprietaria; esta migration nao deve alterar objetos de outros produtos para contornar legado local.
Ultima verificacao local¶
Em 2026-08-21, com Supabase CLI 2.114.0, o daemon OrbStack nao estava em
execucao:
supabase db resetfalhou ao acessar/Users/macvini/.orbstack/run/docker.sock(no such file or directory);supabase test dbfalhou comECONNREFUSED 127.0.0.1:54322porque o banco local nao chegou a iniciar;- a migration foi aplicada com sucesso a um cluster PostgreSQL 18 temporario;
- fixtures, SQL dinamico, erros esperados, grants, RLS, constraints, overlaps e transicoes foram executados nesse cluster com um shim local minimo de pgTAP. Essa verificacao adicional nao substitui o reset PostgreSQL 17 nem a execucao da extensao pgTAP real assim que o daemon estiver disponivel.