Esta é a opção para manter o formulário de usuário e senha da Zuvori e consultar o mesmo relatório em qualquer dispositivo. O Worker verifica a credencial, cria uma sessão curta e busca apenas o arquivo do cliente autenticado no Workers KV. O repositório, o build e o GitHub Pages não recebem os dados nem os PDFs.
Situação atual: código e cópia privada preparados localmente. O namespace KV zuvori-client-data foi criado vazio na conta Cloudflare; nenhum Worker, credencial ou dado financeiro foi enviado. A página existente do GitHub Pages não executa este backend. O domínio precisa apontar para o Worker antes de usar a versão remota.
private/clients/felipe/data/.private/clients/felipe/data/finances.json. Se tiver um backup mais recente, no Windows execute powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\preparar-dados-cloud.ps1 felipe "CAMINHO_DO_BACKUP.json". A saída fica em private/cloudflare/data-felipe.json, ignorada pelo Git. Confira os valores e descrições antes do envio. O script substitui nomes de PDF por “Fatura importada” e remove números finais de cartão, páginas e notas internas.CONFIGURAR-LOGIN-CLOUDFLARE.cmd com dois cliques ou, no VS Code, use Terminal → Run Task → Zuvori: configurar login na Cloudflare. O programa pergunta separadamente o usuário, a senha nova e a confirmação. Se o cliente já estiver cadastrado, a tarefa atualiza a senha. A antiga senha de seis dígitos não deve ser usada na internet. A senha fica oculta enquanto você digita; os arquivos secretos são criados em private/cloudflare/, fora do Git.npm test e npm run build.zuvori-client-data já existe. Seu ID público de recurso está em wrangler.toml; o arquivo não contém credenciais. wrangler.worker.example.toml continua como modelo para outra conta.ZUVORI_USERS, ZUVORI_AUTH_PEPPER e ZUVORI_SESSION_KEY no Worker com os conteúdos de private/cloudflare/users.json, auth-pepper.txt e session-key.txt, respectivamente. Nunca coloque esses valores no TOML, GitHub Actions, README ou linha de comando como texto literal.dist/. Se usar Workers Builds conectado ao GitHub, configure Build command node scripts/build.mjs e Deploy command npx wrangler deploy na raiz do repositório. O Worker requer os bindings ZUVORI_DATA, ASSETS e LOGIN_RATE; sem eles falha fechado. Antes de ligar o domínio, confirme em um endereço de teste que /api/data, /app.html e /app.js respondem sem dados quando não há sessão.private/cloudflare/data-felipe.json ao KV sob a chave exata client:felipe. A Delliz só receberá a chave client:delliz após configurar credencial e analisar os dados dela; não reutilize o arquivo do Felipe.zuvori.com.br ou a um subdomínio escolhido. Remova o apontamento antigo do GitHub Pages para esse hostname, para não haver dois serviços diferentes com o mesmo endereço. Teste também o endereço workers.dev e eventuais prévias: o Worker exige a mesma sessão em todos eles.Para as tarefas de KV e deploy, use o Wrangler da sua conta Cloudflare. Os comandos atuais são wrangler kv namespace create, wrangler kv key put --path e wrangler deploy --config; veja a referência oficial de KV. O envio dos segredos usa wrangler secret put. Essas operações mudam recursos remotos e devem ser feitas apenas depois de revisar o arquivo preparado e a configuração.
Faça a análise no computador principal, exporte o backup atualizado, prepare novamente data-felipe.json, confira os números e substitua a chave client:felipe no KV. Outros dispositivos consultam essa cópia em modo de leitura. Nenhuma alteração local feita em outro dispositivo modifica a análise principal. O armazenamento KV pode levar um curto tempo para propagar uma atualização.
O login usa uma senha nova, um segredo exclusivo no servidor, limite de tentativas e cookie HttpOnly, Secure e SameSite=Strict. O Worker não disponibiliza rota para gravar dados pelo navegador. Para encerrar todas as sessões, troque ZUVORI_SESSION_KEY. Os limites gratuitos e as regras de preço devem ser conferidos antes do deploy na página de Workers e na página do KV.