Backend
Supabase
Client, env vars e pacote compartilhado
O Vendee usa Supabase como backend completo: autenticacao, PostgreSQL, Row Level Security e funcoes RPC.
Client
O client Supabase e exportado pelo pacote @repo/supabase:
import { supabase } from "@repo/supabase/client";No apps/app, um re-export local facilita o uso:
// src/lib/supabase.ts
export { supabase } from "@repo/supabase/client";Variaveis de ambiente
O client detecta automaticamente o ambiente:
| Variavel | Ambiente |
|---|---|
VITE_SUPABASE_URL | Vite (apps/app) |
VITE_SUPABASE_PUBLISHABLE_KEY | Vite (apps/app); legado VITE_SUPABASE_PUBLISHABLE_DEFAULT_KEY |
NEXT_PUBLIC_SUPABASE_URL | Next.js (docs) |
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | Next.js (docs); legado NEXT_PUBLIC_SUPABASE_ANON_KEY |
Tipos
Os tipos sao gerados a partir do schema do banco e exportados por @repo/supabase/types:
import type { Database } from "@repo/supabase/types";
type Deal = Database["public"]["Tables"]["deals"]["Row"];
type DealInsert = Database["public"]["Tables"]["deals"]["Insert"];
type DealUpdate = Database["public"]["Tables"]["deals"]["Update"];Regenerar tipos
bunx supabase gen types typescript --project-id <project-id> > packages/supabase/src/types.tsAutenticacao
O Supabase Auth gerencia:
- Login com email/senha
- Magic links (convites e login sem senha)
- Reset de senha
- Callback de autenticacao (
/auth/callback)