Skip to content

Security: rajaba21/PlayWise

Security

SECURITY.md

Security

Modelo de segurança do PlayWise

PlayWise é um app single-user por design. Cada usuário:

  • roda a própria instância local ou self-hosted
  • conecta o próprio projeto Supabase
  • configura as próprias chaves de API (Steam, RAWG, Claude, Gemini) pela UI em /configuracoes

As chaves de API não entram no .env nem no repositório. Elas ficam na tabela user_settings do seu próprio Supabase. O servidor também não devolve essas chaves em respostas JSON para o cliente (ver lib/user-settings.ts).

Variáveis de ambiente

Só 3 variáveis vão no .env.local:

Variável Onde usar Obrigatória
NEXT_PUBLIC_SUPABASE_URL URL do seu projeto Supabase sim
NEXT_PUBLIC_SUPABASE_ANON_KEY anon key usada no cliente sim
SUPABASE_SERVICE_ROLE_KEY service role key usada no servidor recomendada antes de deploy público

Veja .env.example.

Antes de hospedar publicamente

O schema SQL atual em lib/supabase/schema.sql cria policies RLS abertas porque PlayWise foi pensado como app pessoal. Não hospede uma instância multi-user sem antes:

  1. substituir as policies FOR ALL USING (true) por policies baseadas em auth.uid()
  2. configurar SUPABASE_SERVICE_ROLE_KEY no servidor
  3. implementar autenticação de verdade (Steam OpenID ou Supabase Auth)

Sem esses três passos, qualquer visitante da sua instância pode ler e escrever API keys, bibliotecas e configurações de todos os usuários usando a anon key exposta no cliente.

Reportando vulnerabilidades

Se encontrar uma vulnerabilidade real, prefira abrir um report privado em GitHub Security Advisories. Se for um aviso geral não explorável, um issue público também funciona.

There aren’t any published security advisories