Voltar ao portfólio
Saúde / Versalius

Project Genesis (FastHealth)

Análise rápida de projetos de saúde — vertente Versalius.

Abrir app Abrir no Lovable

Descrição completa

Análise rápida de projetos de saúde — vertente Versalius.

Stack atual: DB, IA, PDF. Já está publicado e acessível via URL pública.

Estágio atual: MVP (65% de maturidade estimada). O foco do próximo ciclo deve ser fechar os gaps de segurança listados ao lado, antes de abrir para clientes externos.

Diagnóstico desse app

4 OK2 Atenção1 Crítico

Visão por área com a evidência usada para classificar cada status e a ação concreta para mudar de patamar.

Publicação

OK

Evidência: Publicado em https-fasthealthanalise-versaliuspro-com.lovable.app. Roda em subdomínio *.lovable.app.

Recomendação: Para clientes pagantes, mover para domínio próprio em Settings → Domains e revisar política de cache.

GitHub / código-fonte

Crítico

Evidência: Repositório GitHub não está conectado — código vive apenas dentro do Lovable.

Recomendação: Menu (+) → GitHub → Connect project. Habilita backup, code review e CI/CD próprio.

Autenticação

OK

Evidência: App não exige login — sem superfície de auth a proteger.

Recomendação: Se um dia exigir conta, ativar email/senha + Google e já incluir MFA + HIBP.

Banco de dados & RLS

OK

Evidência: 4/4 controles aplicados. Pendentes: nenhum.

Recomendação: Rodar o scanner de segurança do Cloud mensalmente.

Uploads (Storage / PDF)

OK

Evidência: 3/3 controles. Pendentes: nenhum.

Recomendação: Auditar buckets a cada release e renovar signed URLs com janela curta.

IA & custos

Atenção

Evidência: 3/4 controles. Pendentes: Moderação de prompts e respostas.

Recomendação: Pré-filtro de prompt (lista de termos + moderation API) e logar input/output para auditoria.

Baseline (logs, SEO, validação)

Atenção

Evidência: 4/5 fundamentos no lugar. Pendentes: Logs estruturados + Sentry no client e server.

Recomendação: Instalar Sentry no client e nas server functions; capturar erros com user.id e contexto da rota.

Riscos e recomendações prioritárias

  1. 1
    AltoIA & custos

    Moderação de prompts e respostas

    Por quê: Sem teto de uso, o custo de IA escala silenciosamente e prompts maliciosos passam.

    Ação: Pré-filtro de prompt (lista de termos + moderation API) e logar input/output para auditoria.

  2. 2
    MédioBaseline (todo app deveria ter)

    Logs estruturados + Sentry no client e server

    Por quê: Sem observabilidade, você descobre o incidente pelo cliente reclamando.

    Ação: Instalar Sentry no client e nas server functions; capturar erros com user.id e contexto da rota.

  3. 3
    MédioEspecíficos deste app

    Auth com MFA + HIBP

    Por quê: Conta sequestrada vira porta de entrada para todo o resto.

    Ação: Cloud → Users → Auth Settings → habilitar MFA (TOTP) e exigir para roles admin.

  4. 4
    MédioEspecíficos deste app

    Revisão de RLS por tabela

    Por quê: Sem RLS/GRANT correto, qualquer usuário pode ler ou alterar dados de outros.

    Ação: Para cada tabela em public.*: ALTER TABLE … ENABLE ROW LEVEL SECURITY + policy escrita com auth.uid().

  5. 5
    MédioEspecíficos deste app

    Rate limit nas APIs

    Por quê: Sem rate limit, um único usuário derruba ou inflaciona o custo do serviço.

    Ação: Middleware por IP+user_id (ex: 60 req/min) com bucket no Redis ou tabela com TTL.

  6. 6
    MédioEspecíficos deste app

    LGPD para dados de saúde

    Por quê: Risco jurídico (LGPD) e quebra de confiança do usuário.

    Ação: Mapear dados pessoais coletados, base legal de cada um e botão de exportar/excluir conta.

  7. 7
    MédioEspecíficos deste app

    Auditoria de acessos

    Por quê: Item pendente do checklist — endereçar antes de abrir para clientes externos.

    Ação: Implementar: Auditoria de acessos.

  8. 8
    MédioEspecíficos deste app

    Criptografia de campos sensíveis

    Por quê: Sem SEO básico, a URL pública é invisível e o link compartilhado fica genérico.

    Ação: Adicionar head() em cada rota pública com title, description, og:title, og:description e og:image.

Mostrando 8 de 10 risco(s) com filtro atual. Os demais aparecem no checklist abaixo.

Checklist completo

14/24 (58%)

Cada item traz status (OK · Atenção · Crítico) e, quando pendente, a recomendação específica de correção.

Baseline (todo app deveria ter)

4/5 OK
  • Validação Zod em toda server functionOK
  • Rate limit por usuário/IPOK
  • Logs estruturados + Sentry no client e serverAtenção

    Como corrigir: Instalar Sentry no client e nas server functions; capturar erros com user.id e contexto da rota.

  • SEO mínimo (head/meta + OG) por rota públicaOK
  • Páginas de Privacidade e TermosOK

Banco de dados & RLS

4/4 OK
  • RLS habilitada em todas as tabelas public.*OK
  • GRANTs explícitos por papelOK
  • Policies revisadas com testesOK
  • Backups com plano de restore validadoOK

IA & custos

3/4 OK
  • Orçamento mensal por usuárioOK
  • Moderação de prompts e respostasAtenção

    Como corrigir: Pré-filtro de prompt (lista de termos + moderation API) e logar input/output para auditoria.

  • Logs de uso e custo por chamadaOK
  • Fallback quando o provedor falhaOK

Upload e processamento de PDF

3/3 OK
  • Validar tipo/tamanho antes de processarOK
  • Sanitizar conteúdo extraídoOK
  • Antivírus / scan de malwareOK

Específicos deste app

0/8 OK
  • Auth com MFA + HIBPAtenção

    Como corrigir: Cloud → Users → Auth Settings → habilitar MFA (TOTP) e exigir para roles admin.

  • Revisão de RLS por tabelaAtenção

    Como corrigir: Para cada tabela em public.*: ALTER TABLE … ENABLE ROW LEVEL SECURITY + policy escrita com auth.uid().

  • Rate limit nas APIsAtenção

    Como corrigir: Middleware por IP+user_id (ex: 60 req/min) com bucket no Redis ou tabela com TTL.

  • LGPD para dados de saúdeAtenção

    Como corrigir: Mapear dados pessoais coletados, base legal de cada um e botão de exportar/excluir conta.

  • Auditoria de acessosAtenção

    Como corrigir: Implementar: Auditoria de acessos.

  • Criptografia de campos sensíveisAtenção

    Como corrigir: Adicionar head() em cada rota pública com title, description, og:title, og:description e og:image.

  • Limite de uso por usuárioAtenção

    Como corrigir: Tabela ai_usage(user_id, day, tokens) + checagem no início de cada chamada; bloqueio acima do teto.

  • Custos por chamada monitoradosAtenção

    Como corrigir: Implementar: Custos por chamada monitorados.

Histórico de mudanças

  1. Início
    Projeto criado no Lovable — categoria saude.
  2. Construção
    Stack montada: DB, IA, PDF.
  3. Publicação
    Publicado em https-fasthealthanalise-versaliuspro-com.lovable.app.
  4. Hoje
    Maturidade estimada em 65% (MVP). 10 item(ns) pendente(s) de segurança.

Edite src/data/apps.ts e adicione um array changelog ao app para registrar marcos manuais.