📄 Cópia local — fonte de verdade no GitHub. Origem:
felipeluissalgueiro/cadencia-app/master/docs/infra-cli-access.mdSincronizado viasync_cadencia_docs.pyem 2026-05-29 (PDL-342).
Acesso à Infraestrutura via CLI — Cadencia¶
Vercel (Frontend Next.js)¶
Como linkar ao projeto¶
O projeto éfelipeluissalgueiros-projects/cadencia-app. Comandos disponíveis¶
vercel env ls # Listar env vars
vercel env add VAR_NAME production # Adicionar (valor via stdin)
vercel env rm VAR_NAME production --yes # Remover
vercel env pull # Baixar .env.local
vercel logs # Ver logs
vercel --prod # Deploy manual produção
vercel project ls # Listar projetos
Domínios configurados¶
- Produção:
cadencia.app.br(domínio principal) - Alias:
cadencia.ia.br(também funciona) - Vercel:
cadencia-app.vercel.app
Env vars importantes¶
NEXT_PUBLIC_APP_URL=https://cadencia.app.brNEXT_PUBLIC_SUPABASE_URL= URL do SupabaseSUPABASE_SERVICE_ROLE_KEY= service role (acesso admin ao banco)WORKERS_API_URL= URL do backend Coolify VPS Master (workers.cadencia.ia.br; Railway DESLIGADO, DEV-638)
Railway (Backend Python) — ❌ DESLIGADO¶
Railway DESLIGADO. Cutover pro Coolify VPS Master concluído (DEV-638), rollback validado e serviços cancelados (DEV-645/DEV-21). Comandos
railway *são histórico — os workers rodam no Coolify (ver ADR-0012).
Supabase (Banco de Dados)¶
Acesso via REST API (service role key)¶
# Ler dados
curl -s "https://elefbabxkaigusjiiflu.supabase.co/rest/v1/TABLE?select=COLS&limit=N" \
-H "apikey: SERVICE_ROLE_KEY" \
-H "Authorization: Bearer SERVICE_ROLE_KEY"
# Inserir/atualizar
curl -s -X POST "https://elefbabxkaigusjiiflu.supabase.co/rest/v1/TABLE" \
-H "apikey: SERVICE_ROLE_KEY" \
-H "Authorization: Bearer SERVICE_ROLE_KEY" \
-H "Content-Type: application/json" \
-H "Prefer: return=minimal" \
-d '{"col": "val"}'
# Rodar SQL direto (via rpc)
curl -s -X POST "https://elefbabxkaigusjiiflu.supabase.co/rest/v1/rpc/FUNCTION_NAME" \
-H "apikey: SERVICE_ROLE_KEY" \
-H "Authorization: Bearer SERVICE_ROLE_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Credenciais¶
- Project ref:
elefbabxkaigusjiiflu - URL:
https://elefbabxkaigusjiiflu.supabase.co - Service Role Key: disponível nas env vars do Coolify VPS Master (campo
SUPABASE_SERVICE_ROLE_KEY) - JWT Secret: disponível nas env vars do Coolify VPS Master (campo
SUPABASE_JWT_SECRET)
Supabase Management API (configurar auth, templates, etc.)¶
- Endpoint:
https://api.supabase.com/v1/projects/elefbabxkaigusjiiflu/config/auth - Token: salvo em
Hub Projetos/Credenciais/supabase-access-token.txt - Header:
Authorization: Bearer <token> - Usado para: Site URL, Redirect URLs, Email Templates, Auth providers
# Ler config de auth
TOKEN=$(cat "C:/Users/felip/OneDrive/Documentos/ClaudeCode/Hub Projetos/Credenciais/supabase-access-token.txt" | tr -d '\n')
curl -s "https://api.supabase.com/v1/projects/elefbabxkaigusjiiflu/config/auth" \
-H "Authorization: Bearer $TOKEN"
# Atualizar config de auth
curl -s -X PATCH "https://api.supabase.com/v1/projects/elefbabxkaigusjiiflu/config/auth" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"site_url": "https://cadencia.app.br"}'
O que a service role key NÃO faz¶
- Não altera configurações de auth (Site URL, Redirect URLs, Email Templates)
- Para isso usar a Management API com o Personal Access Token acima
Git (Deploy)¶
git push origin main # Vercel deploya automaticamente
git push origin main:master # Coolify VPS Master (auto-deploy; manual se OFF — DEV-678)
Sempre pushar para AMBOS após mudanças no backend Python.
CORS — Origens permitidas¶
Backend Python (cadencia-workers/src/shared/config.py): - https://cadencia.app.br - https://cadencia.ia.br - https://cadencia.posicionamentodigital.com (legacy) - https://cadencia-app.vercel.app