# Anais de Referência — Serviços IaaS: Performance, UX Escopo OPS, Blocklist **Data:** 2026-06-25 **Utilizador:** Roger **Sistema:** Desk VM122 (`10.10.10.122`) · Wizard VM112 (`10.10.10.112`) **Specs:** 017 · 018 · 026 · 028 · 032 · 037 --- ## 1. Resumo executivo Sessão de melhorias na página **Serviços IaaS** (Desk): 1. **Performance** — cache VM112 lista + detalhe domínio; cache proxy VM122; SWR frontend. 2. **Modal purge** — skeleton imediato + loading animado (barra, etapas, spinner). 3. **Escopo OPS** — cards clicáveis com camada (tenant/app/infra), Spec e navegação. 4. **Blocklist UI** — `ligbox.com.br` e `itecnologys.com` visíveis na lista e painel Escopo. 5. **Alinhamento lista clientes** — badges agrupados (fix desalinhamento `itecnologys.com`). --- ## 2. Performance — resultados | Pedido | Antes | Depois (cache quente) | |--------|-------|------------------------| | VM112 `GET /api/admin/domains` | ~5–11s | **~0,03s** | | VM112 `GET /api/admin/domains/{domain}` | ~15–20s | **~0,04s** | | Desk `GET /api/v1/vm112/domains` | ~16s | **~0,08s** | | Desk detalhe domínio (2.º hit) | ~15s+ | **~0,1s** | | Modal purge 1.º hit (cold) | ecrã branco | skeleton + ~10–15s | **Patch VM112:** `deploy/vm112-wizard/perf-domains-list-20260625/` **Desk API:** `VM112_DOMAINS_CACHE_TTL=60`, `VM112_DOMAIN_DETAIL_TTL=45` **Poll Serviços:** 90s (`app.js`) --- ## 3. UX Escopo OPS — mapa cards | Card | Camada | Spec | Destino | |------|--------|------|---------| | Carbonio | Aplicação MOSP | 017 | Modal Serviços | | ligbox-sites | Tenant utilizador | 017 | Modal Serviços | | Portal users | Tenant utilizador | 028 | Console `/admin/dominio` | | Cloudflare | Infraestrutura | 037 | Console DNS Viewer | | Traefik / SNI | Infraestrutura | 026 | Desk Infra CODE | | Desk OPS | Aplicação MOSP | 017 | Eventos › Histórico purges | **Helper navegação:** `window.DeskNavigate.go(view, { eventsTab })` — `app.js` --- ## 4. Blocklist purge | Domínio | Purge API | UI | |---------|-----------|-----| | `ligbox.com.br` | HTTP 400 | 🔒 badge + banner Escopo + modal desactivado | | `itecnologys.com` | HTTP 400 | idem | Constante: `PURGE_BLOCKLIST` — `vm112_domains.py` + espelho `servicos.js`. --- ## 5. Ficheiros principais | Ficheiro | Função | |----------|--------| | `frontend/assets/servicos.js` | Escopo OPS, loading modal, blocklist, cache SWR | | `frontend/assets/styles.css` | `.vm112-load-*`, `.servicos-scope-*`, client row grid | | `frontend/assets/app.js` | `DeskNavigate`, poll 90s | | `frontend/assets/auth.js` | sessão resiliente rede | | `frontend/index.html` | cache bust `20260625align1` | | `api/app/vm112_domains.py` | cache proxy, `purge_blocked` | --- ## 6. Deploy VM122 (referência) ```bash sshpass -p '805353' scp servicos.js styles.css app.js index.html root@10.10.10.122:/tmp/ ssh root@10.10.10.122 ' C=ligbox-ops-platform_frontend_1 docker cp /tmp/servicos.js $C:/usr/share/nginx/html/assets/servicos.js docker cp /tmp/styles.css $C:/usr/share/nginx/html/assets/styles.css docker cp /tmp/app.js $C:/usr/share/nginx/html/assets/app.js docker cp /tmp/index.html $C:/usr/share/nginx/html/index.html ' ``` **Hard refresh:** Ctrl+Shift+R em `https://desk.ligbox.com.br` --- ## 7. Versão frontend (cache bust) | Asset | Query string | |-------|----------------| | `styles.css` | `?v=20260625align1` | | `servicos.js` | `?v=20260625align1` | | `app.js` | `?v=20260625align1` | --- ## 8. Specs actualizadas | Spec | Secção | |------|--------| | 017 | Performance cache, UI loading/blocklist/Escopo | | 018 | Performance, Escopo OPS cards, critérios aceite | | 032 | UI blocklist | | 026 | Destino card Traefik | | 028 | Destino card Portal | | 037 | Destino card Cloudflare | --- ## 9. Canais de arquivo | Canal | Path | |-------|------| | Anais | `docs/anais-referencia/20260625_SERVICOS_IAAS_PERF_UX_ESCOPO.md` | | Spec 017 | `specs/017-vm112-domain-orchestration/spec.md` | | Spec 018 | `specs/018-service-orchestration/spec.md` | | Patch VM112 | `deploy/vm112-wizard/perf-domains-list-20260625/` |