Files
clientflow_backend/docs/CLIENTFLOW_V42_REVIEW_UI_NOTES.md
2026-06-09 22:55:58 +01:00

1.8 KiB

ClientFlow v4.2 — revisão operacional e UI

Esta revisão mantém a arquitetura da v4.2, mas corrige pontos de estabilidade e torna a UI mais operacional.

Correções aplicadas

  • OUTBOX_DRY_RUN=true deixou de marcar itens como sent; agora passa o item para dry_run.
  • Integrações com *_OUTBOX_ENABLED=false deixam de ficar apenas em skipped silencioso; agora ficam blocked com erro claro.
  • A idempotência de jasmin.create_quotation passou a ser determinística por oportunidade: jasmin:quotation:{opportunity_id}.
  • integration_outbox ganhou estados visíveis e reprocessáveis: pending, processing, sent, failed, blocked, dry_run, ignored, cancelled.
  • O schema base passa a garantir colunas de controlo da outbox (locked_at, lock_owner, ignored_at) mesmo em instalações novas.
  • Webhooks Chatwoot exigem CLIENTFLOW_WEBHOOK_SECRET em ENV=prod, production ou staging.
  • Admin UI e API interna podem ser protegidas com CLIENTFLOW_ADMIN_TOKEN.

Melhorias UI

  • Página da oportunidade ganhou painel Integrações da oportunidade com contadores:
    • pendentes;
    • falhadas;
    • bloqueadas;
    • dry-run.
  • A oportunidade passa a mostrar ações Jasmin/Packlink/Chatwoot/Mautic ligadas à oportunidade, com último erro e reprocessamento.
  • /outbox ganhou filtros para os novos estados operacionais.
  • Badges visuais foram atualizados para processing, blocked, dry_run e cancelled.

Validação

Executado:

python -m compileall app scripts tests
pytest -q

Resultado: 12 passed.

Ainda recomendado para próxima ronda

  • Substituir o token simples por login/sessão + CSRF nos POSTs.
  • Refatorar admin_dashboard.py, que continua demasiado grande.
  • Confirmar endpoints reais de PDF Jasmin no tenant de produção.
  • Criar testes funcionais com Postgres de teste e mocks para Jasmin/Packlink.