73 lines
2.0 KiB
Markdown
73 lines
2.0 KiB
Markdown
# ClientFlow v4.0 — estabilização operacional + refactor modular incremental
|
|
|
|
Esta versão junta a estabilização prevista para v3.5 com o arranque do refactor v4.
|
|
|
|
## Incluído
|
|
|
|
### Operação segura
|
|
|
|
- Migrações SQL versionadas em `migrations/`.
|
|
- Script `scripts/apply_migrations.py`.
|
|
- Script `scripts/check_clientflow_health.py`.
|
|
- Script `scripts/install_systemd_timers.sh`.
|
|
- Índices adicionais para outbox, clientes, documentos, envios e produtos.
|
|
- Colunas de segurança na outbox: `locked_at`, `lock_owner`, `ignored_at`.
|
|
- API interna read-only:
|
|
- `/api/internal/health`
|
|
- `/api/internal/outbox/summary`
|
|
- `/api/internal/documents/summary`
|
|
|
|
### Refactor modular incremental
|
|
|
|
- Novo pacote `app/admin_ui/`.
|
|
- `app/main.py` passa a importar o router admin através de `app.admin_ui.router`.
|
|
- O router ainda usa `app.admin_dashboard` internamente para manter compatibilidade.
|
|
- Helpers HTML comuns em `app/admin_ui/components.py`.
|
|
- Estrutura de destino criada para modularizar:
|
|
- `app/customers/`
|
|
- `app/opportunities/`
|
|
- `app/commercial/`
|
|
- `app/logistics/`
|
|
- `app/integrations/`
|
|
- `app/outbox/`
|
|
|
|
## Deploy recomendado
|
|
|
|
```bash
|
|
cd /mnt/ssd/home/plx/clientflow_backend
|
|
source .venv/bin/activate
|
|
python scripts/apply_migrations.py --dry-run
|
|
python scripts/apply_migrations.py
|
|
python -m py_compile app/*.py scripts/*.py
|
|
python scripts/check_clientflow_health.py
|
|
sudo systemctl restart clientflow-api
|
|
```
|
|
|
|
## Timers systemd
|
|
|
|
Jasmin:
|
|
|
|
```bash
|
|
sudo ./scripts/install_systemd_timers.sh /mnt/ssd/home/plx/clientflow_backend
|
|
```
|
|
|
|
Packlink, só quando o fluxo de envios estiver validado:
|
|
|
|
```bash
|
|
ENABLE_PACKLINK_TIMER=true sudo -E ./scripts/install_systemd_timers.sh /mnt/ssd/home/plx/clientflow_backend
|
|
```
|
|
|
|
## Próximo passo após v4.0
|
|
|
|
Migrar gradualmente rotas de `app/admin_dashboard.py` para:
|
|
|
|
```text
|
|
app/admin_ui/pages/customers.py
|
|
app/admin_ui/pages/opportunities.py
|
|
app/admin_ui/pages/products.py
|
|
app/admin_ui/pages/outbox.py
|
|
app/admin_ui/pages/integrations.py
|
|
```
|
|
|
|
Sem mudar URLs públicas.
|