Voltar ao portfólio
Saúde / Versalius

Health Design Hub

Hub de design para projetos de saúde (blueprints).

Abrir app Abrir no Lovable

Descrição completa

Hub de design para projetos de saúde (blueprints).

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

Estágio atual: Protótipo (45% 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 OK1 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 blueprint-bloom-buddy.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

OK

Evidência: App não recebe arquivos do usuário.

Recomendação: Se passar a receber, validar mime/tamanho e usar signed URLs desde o primeiro upload.

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
    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.

  2. 2
    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.

  3. 3
    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().

  4. 4
    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.

  5. 5
    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.

  6. 6
    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.

  7. 7
    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.

Checklist completo

8/15 (53%)

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

Específicos deste app

0/6 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.

Histórico de mudanças

  1. Início
    Projeto criado no Lovable — categoria saude.
  2. Construção
    Stack montada: DB.
  3. Publicação
    Publicado em blueprint-bloom-buddy.lovable.app.
  4. Hoje
    Maturidade estimada em 45% (Protótipo). 7 item(ns) pendente(s) de segurança.

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