Arquitectura de Aquazaku con preview environments

Una sola base Supabase con dos schemas separados por search_path

Arquitectura de Aquazaku con preview environments Una sola base Supabase con dos schemas separados por search_path Browser · operador en planta · Architecture component · usuario final Browser operador en planta usuario final Vercel prod · app.aquazaku.com · Entorno producción · production Vercel prod app.aquazaku.com production Vercel preview · *.vercel.app · Entorno preview · preview Vercel preview *.vercel.app preview Railway prod · api.aquazaku.com · Entorno producción · production Railway prod api.aquazaku.com production Railway staging · preview compartido · Entorno preview · preview Railway staging preview compartido preview Schema public · datos de producción · Supabase Free · un solo proyecto · search_path=public Schema public datos de producción search_path=public Schema preview · datos de preview y PRs · Supabase Free · un solo proyecto · search_path=preview Schema preview datos de preview y PRs search_path=preview HTTPS HTTPS API_INTERNAL_URL API_INTERNAL_URL search_path=public search_path=preview AQUAZAKU_ENV AQUAZAKU_ENV=preview Entorno producción Entorno preview Supabase Free · un solo proyecto Legend Frontend Backend Database External

Cómo se separa

  • • Mismo Supabase Free · un proyecto, dos schemas
  • • search_path aísla los datos sin duplicar GRANTs ni JOINs
  • • Better Auth respeta search_path automáticamente
  • • El código de la API no cambia · sigue diciendo from(ventas)

Cómo se configura

  • • Vercel: 6 env vars (3 nombres × producción y preview)
  • • Railway: un staging que comparten todas las PRs
  • • Migraciones se duplican con sed antes de aplicar a preview