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… | Ferramenta | Como |
|---|---|---|
| Limpar TODOS os dados sem mexer no schema | wipe_all.sql | SQL Editor → cole → Run |
| Popular escolas/usuários/olimpíadas/resultados de teste | seed_full.sql | SQL Editor → cole → Run (após gerar hash) |
| Gerar hash da MINHA senha pra logar em staging | scripts/staging/hash-admin-password.ts | Local: bun run |
| Recriar o schema inteiro a partir de prod | staging-rebuild.yml | GitHub Actions → Run workflow |
| Aplicar uma migration pendente isolada | staging-apply-migration.yml | GitHub Actions → Run workflow |
| Validar diariamente que staging não divergiu | staging-drift.yml | Cron diário (automático) |
| Rodar testes de contrato + security em staging | staging-verify.yml | GitHub 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 verdesPor 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
- Setup do Zero — primeira vez no projeto
- Referência Rápida — usuários, escolas, slugs
- Motivações — por que existe um staging dedicado
- Rebuild from Prod — fluxo do
staging-rebuild.yml - Rebuild em Projeto Fresh — quando criar projeto Supabase novo
- Memory: Staging Drift Detector & Rebuild Protocol