Skip to content

Staging — Visão Geral e Decision Tree

Este índice é o ponto de entrada para qualquer operação no ambiente de staging (nrgcajnhpjmwilfcmqyb.supabase.co).

Staging é um clone de produção sanitizado (PII anonimizada, OTPs zerados, MercadoPago zerado). Nunca recebe tráfego de usuário final.

Quando usar cada ferramenta

Eu quero…FerramentaComo
Limpar TODOS os dados sem mexer no schemawipe_all.sqlSQL Editor → cole → Run
Popular escolas/usuários/olimpíadas/resultados de testeseed_full.sqlSQL Editor → cole → Run (após gerar hash)
Gerar hash da MINHA senha pra logar em stagingscripts/staging/hash-admin-password.tsLocal: bun run
Recriar o schema inteiro a partir de prodstaging-rebuild.ymlGitHub Actions → Run workflow
Aplicar uma migration pendente isoladastaging-apply-migration.ymlGitHub Actions → Run workflow
Validar diariamente que staging não divergiustaging-drift.ymlCron diário (automático)
Rodar testes de contrato + security em stagingstaging-verify.ymlGitHub Actions → Run workflow

Fluxo padrão "do zero" (após rebuild de schema)

text
1. (local) Exportar OLP_PEPPER_SECRET de Supabase staging → Secrets
2. (local) bun run scripts/staging/hash-admin-password.ts
           → digita senha → copia o hash gerado
3. (SQL Editor) Cole wipe_all.sql       → Run
4. (SQL Editor) Cole seed_full.sql
           → find/replace __ADMIN_HASH__ pelo hash         → Run
5. Loga no staging com seu CPF + a senha que você acabou de hashear
6. (GitHub Actions) Dispara staging-verify.yml → todos verdes

Por que isso existe

  • wipe_all + seed_full evitam o ciclo lento de staging-rebuild.yml (dump de prod + restore demora ~4min). Para iterações de feature de dados, esse fluxo é instantâneo.
  • hash-admin-password.ts evita que sua senha pessoal trafegue por CI ou secrets do GitHub — o hash é específico do pepper do staging, inútil em produção.
  • staging-verify.yml garante que após qualquer reset, a suíte de contratos e security está verde antes de você considerar staging "pronto".

Referências