Release v4928.1.4.2 stable
This commit is contained in:
42
docs/CLIENTFLOW_V42_REVIEW_UI_NOTES.md
Normal file
42
docs/CLIENTFLOW_V42_REVIEW_UI_NOTES.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user