ligbox-ops-platform/LAPTOP/20260616_SERVICOS_ORQUESTRACAO_PURGE_ASPECTOS.md
Ligbox Spec Hub 3a2c64834b Initial import: ligbox-ops-platform + specs + LAPTOP + obsidian merge (CT130)
Source: VM122 /opt + obsidian-infra + LAPTOP
Hub: CT130 spec-hub 10.10.10.130
2026-06-19 17:26:41 +00:00

5.1 KiB

Anais de Referência — Serviços MOSP, Orquestração VM122, Purge SSE/Jobs

Data: 2026-06-16
Utilizador: Roger
Transcript Cursor: ad3c7400-04ce-47bf-8995-2861d54a831b
Projeto: Ligbox Ops Platform · Desk VM122 (10.10.10.122:8091) + Wizard VM112 (10.10.10.112)
Chat bruto: CHAT_BRUTO_LIGBOX_OPS_SERVICOS_ORQUESTRACAO_PURGE_20260616.{txt,jsonl}


1. Resumo executivo

Sessão focada em orquestração MOSP no Desk (não no wizard VM112):

  1. Página Serviços (ex-Contas/Overview Home) — clientes + tenants de oferta + purge Spec 017.
  2. Spec 018 — modelo Pizza as a Service / MOSP / catálogo multi-produto.
  3. Purge com painel lateral timeline + SSE + jobs async/polling (fix 504 / Failed to fetch).
  4. Purges testados: dratcoin.com, eplacebets.com — UI falhou mas backend concluiu.
  5. Fase 3 pendente VM112 — passos Carbonio/CF/Traefik em tempo real dentro do purge.

2. Specs criadas/actualizadas

Spec Path Estado
017 specs/017-vm112-domain-orchestration/spec.md Purge domínio — Fase 1 concluída
018 specs/018-service-orchestration/spec.md MOSP, Pizza as a Service, Fase 1 UI

3. UI Desk — menu Serviços

Item Valor
Módulo ID overview-home (sem breaking change)
Menu Serviços
Título Orquestração de Serviços
Subtítulo Desk VM122 · Orquestração MOSP
Layout 3 colunas: Clientes · Tenants de Oferta · Escopo OPS

Ficheiros principais:

  • frontend/assets/accounts.jsDeskServices
  • frontend/assets/styles.css.servicos-*, .vm112-purge-drawer
  • frontend/index.html → modal + drawer purge
  • api/app/modules/registry.py

Regra: cada oferta MOSP terá wizard próprio; VM112 Hero = só e-mail.


4. API Desk — domínios VM112

Método Path Uso
GET /api/v1/vm112/domains Lista clientes Fase 1
GET /api/v1/vm112/domains/{domain} Detalhe modal
POST /api/v1/vm112/domains/{domain}/purge Purge síncrono (legado)
POST /api/v1/vm112/domains/{domain}/purge/stream SSE timeline
POST /api/v1/vm112/domains/{domain}/purge/jobs Recomendado — job async
GET /api/v1/vm112/purge/jobs/{job_id} Poll timeline 2s

Ficheiros API:

  • api/app/vm112_domains.py
  • api/app/vm112_domains_routes.py
  • api/app/vm112_purge_stream.py
  • api/app/vm112_purge_jobs.py

RBAC: super_admin, ops_lead + senha Root no purge.
Blocklist: ligbox.com.br, itecnologys.com


5. Purge — incidentes e fixes

504 Gateway Timeout (~60s)

  • Causa: nginx proxy timeout 60s; purge VM112 demora minutos.
  • Fix: frontend/nginx.confproxy_read_timeout 600s, proxy_buffering off.

Failed to fetch (~79s) via desk.ligbox.com.br

  • Causa: Traefik/SSE ligação longa cortada; browser perde stream.
  • Fix: purge async jobs + polling (pedidos curtos GET a cada 2s).
  • Nota: purge concluiu mesmo com erro UI (dratcoin, eplacebets sumiram da lista).

Poll automático página Serviços (piscava)

  • Causa: refresh() 30s re-renderizava com «A carregar…»
  • Fix: poll silencioso em renderPage({ poll: true })

6. Domínios VM112 (fim de sessão)

Após purges teste, lista típica:

  • betinsport.com, diarissima.com, ibytera.com, itecnologys.com, myvexx.com
  • Removidos: dratcoin.com, eplacebets.com (testes purge)

7. Deploy

cd /opt/ligbox-ops-platform
docker-compose -f docker-compose.mvp.yml build api frontend
docker-compose -f docker-compose.mvp.yml up -d api frontend

URLs:

  • Desk: http://10.10.10.122:8091 / https://desk.ligbox.com.br
  • API: http://10.10.10.122:8080
  • Wizard: https://onboard.ligbox.com.br (VM112)

Hard refresh: Ctrl+Shift+R após deploy.


8. Reteste E2E wizard e-mail

  1. Desk → Serviços → purge domínio teste (se existir)
  2. Portal onboard → Self-Service → /onboard
  3. Domínio → DNS → conta → infra
  4. Desk → Serviços → Actualizar → cliente reaparece

9. Próximo passo — VM112 (Fase 3)

Não implementado nesta sessão (sem SSH VM112):

  • domain_orchestration.py — purge passo a passo com eventos
  • POST /api/admin/domains/{domain}/purge/jobs na VM112
  • Desk proxy eventos VM112 para drawer timeline

Path produção VM112: /opt/ligbox-wizard
SSH: root@10.10.10.112 (credencial user rule: @betinplace)


10. Canais de arquivo

Canal Path
Anais VM122 /opt/ligbox-ops-platform/docs/anais-referencia/
Chat bruto projeto /opt/ligbox-ops-platform/chat-bruto/
Chat bruto central /root/ligbox-ops-platform-chat-bruto/
Obsidian /root/obsidian-infra/ligbox-ops-platform/
LAPTOP /opt/ligbox-ops-platform/LAPTOP/

11. Decisões Roger (registo)

  • MOSP planeado no Desk VM122, não na Hero VM112.
  • Cada oferta = wizard próprio (Proxmox, servidor físico, etc.).
  • Modelo comercial Pizza as a Service documentado na Spec 018.
  • Purge Spec 017 mantido; UI evolui (drawer + jobs).