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

43 lines
1.8 KiB
Markdown

# 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:
```bash
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.