Skip to content

Harden PWA cache isolation - #40

Merged
pedrobragabes merged 1 commit into
mainfrom
codex/issue-22-pwa-cache
Jul 16, 2026
Merged

Harden PWA cache isolation#40
pedrobragabes merged 1 commit into
mainfrom
codex/issue-22-pwa-cache

Conversation

@pedrobragabes

Copy link
Copy Markdown
Collaborator

O que mudou

  • impede o service worker de consultar Cache Storage para /api, /minha-conta e telas de autenticação, inclusive quando a API está em outro domínio;
  • restringe leituras ao cache v10 atual, sem reutilizar respostas de caches legados;
  • precacheia somente o shell local para uma instalação determinística;
  • encadeia skipWaiting, limpeza de caches antigos e clients.claim no ciclo de vida;
  • substitui o teste textual por testes comportamentais que simulam dois usuários no mesmo navegador.

Por que

A API de produção usa api.comerciobes.com.br. O guard anterior verificava apenas URLs privadas na mesma origem e caches.match pesquisava todos os caches. Uma resposta autenticada antiga poderia ser recuperada depois da troca de usuário.

Validação

  • node --check sw.js
  • 6 testes comportamentais do service worker
  • npm run build
  • npm run frontend:check
  • npm audit --omit=dev --audit-level=high — 0 vulnerabilidades
  • smoke visual da vitrine em http://127.0.0.1:3000, com API conectada e 8 cards renderizados

Closes #22

@pedrobragabes pedrobragabes added P0 Bloqueador critico security Seguranca e privacidade labels Jul 16, 2026
@pedrobragabes pedrobragabes added the frontend Frontend e UX label Jul 16, 2026
@pedrobragabes
pedrobragabes marked this pull request as ready for review July 16, 2026 14:38
Copilot AI review requested due to automatic review settings July 16, 2026 14:38
@pedrobragabes
pedrobragabes merged commit b674273 into main Jul 16, 2026
1 check passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

frontend Frontend e UX P0 Bloqueador critico security Seguranca e privacidade

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PWA: nunca armazenar APIs ou areas autenticadas no Cache Storage

2 participants