# 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.