VendeeDocs
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:

VariavelAmbiente
VITE_SUPABASE_URLVite (apps/app)
VITE_SUPABASE_PUBLISHABLE_KEYVite (apps/app); legado VITE_SUPABASE_PUBLISHABLE_DEFAULT_KEY
NEXT_PUBLIC_SUPABASE_URLNext.js (docs)
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEYNext.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.ts

Autenticacao

O Supabase Auth gerencia:

  • Login com email/senha
  • Magic links (convites e login sem senha)
  • Reset de senha
  • Callback de autenticacao (/auth/callback)

On this page