Commit Graph

9 Commits

Author SHA1 Message Date
VPS 4 Deploy Agent 28ded7bbf9 feat(rx): Wasabi key tenant_id/clinica_id/paciente/arquivo + fallback legado
storage.js: escrita usa key nova (tenant/clinica/paciente) quando o device tem
tenant+clinica; leitura testa existência e cai para a key legada (clinic_name/
client_name/...) e raiz — não quebra objetos antigos antes do resync. deleteImage
apaga todas as keys. getUploadPresignedUrl/saveImage recebem tenantId/clinicaId.

Verificado em dev: presigned URL -> u_…/c_…/paciente/arquivo; leitura de imagem
existente (key legada) -> HTTP 200 via fallback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 17:38:42 +02:00
VPS 4 Deploy Agent 31022c6a6f feat(rx): multi-tenant por clinica_id + página /clients de clientes ativos
- clinica_id (tenant do scoreodonto, clinicas.id) como eixo de isolamento em
  clinics_devices e images (+índices); clinic_name vira rótulo legível.
- Cadastro de device, socket (machine_token) e uploads (direct + legado) gravam clinica_id.
- Listagens (/images, /patients, /by-patient, /unique-clinics) filtram por clinica_id.
- /clients: lista clientes Windows ativos (inclui autenticados sem client-identify),
  tempo real + polling, exibe a clínica.
- send-image marcado como legado (client real usa Direct Upload).

Inclui trabalho de dev acumulado no working tree (não havia commits desde origin/main).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 16:17:09 +02:00
VPS 4 Deploy Agent 7cdd82eeb4 fix(sync): re-upload correto quando arquivo foi deletado do storage
continuous-integration/webhook Deploy concluído (VPS4)
- storage.js: adiciona fileExists() com HeadObject (sem baixar o arquivo)
- check-image-exists: verifica existência física no storage, não só no banco;
  se registro existe mas arquivo não, apaga o registro órfão e retorna exists=false
- send-image: mesma lógica — registro órfão é removido e re-upload prossegue
- Remove migrate-to-wasabi.js do repositório

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 02:33:33 +02:00
VPS 4 Deploy Agent 21f33c88a4 feat(storage): reorganiza Wasabi com estrutura clinic_name/pc_name/patient_name
continuous-integration/webhook Deploy concluído (VPS4)
- Adiciona coluna clinic_name em images (ALTER TABLE IF NOT EXISTS)
- Todas as funções de storage recebem clinicName como parâmetro: saveImage,
  getImageBuffer, getImageUrl, deleteImage, getDownloadPresignedUrl, getUploadPresignedUrl
- Chave Wasabi passa de pc_name/patient/arquivo → clinic_name/pc_name/patient/arquivo
- server.js: usa socket.user.clinicName (preenchido via machine_token auth do DB) como
  fonte primária do nome da clínica nos 3 handlers de upload e na rota thumbnail
- Todos os INSERTs em images passam a gravar clinic_name
- Corrige bug oculto: wipe de clínica agora apaga o prefixo correto no Wasabi
- Scripts utilitários atualizados: backfill-wasabi-thumbs, recreate-all-thumbs, migrate-to-wasabi
- client-monitor.js: envia clinicName no client-identify (fallback para clientes legados)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 01:56:18 +02:00
VPS 4 Deploy Agent b76bb14b0a fix: serve Wasabi image URLs instead of local /uploads/ paths — prevent broken image links
continuous-integration/webhook Deploy concluído (VPS4)
2026-05-30 17:22:11 +02:00
VPS 4 Deploy Agent 6dfce6723b feat: consolidate backend improvements, frontend UX fixes and Wasabi storage support 2026-05-30 15:23:27 +02:00
VPS 4 Builder f30c4fe002 chore: mover docs, scripts e arquivos obsoletos para dental-server/bkp/
continuous-integration/webhook Deploy concluido (rx.scoreodonto.com)
2026-05-27 02:18:54 +02:00
VPS 4 Builder 5b0d80bf22 feat: reestruturacao de menus na sidebar, niveis de acesso e migracao para postgresql/dragonflydb
continuous-integration/webhook Deploy concluido (rx.scoreodonto.com)
2026-05-26 21:08:48 +02:00
VPS 4 Builder 5d47a8ebb5 feat: adicionar thumbnails, ajuste fino flutuante e correções no dental-client 2026-05-24 23:47:54 +02:00