Cache VM112/VM122 para lista e detalhe domínio, modal purge com loading animado, cards Escopo OPS clicáveis (camada + Spec + navegação), blocklist visível na UI, e documentação nas specs e anais de referência 20260625. Co-authored-by: Cursor <cursoragent@cursor.com>
63 lines
2.2 KiB
Markdown
63 lines
2.2 KiB
Markdown
# VM112 — cache `GET /api/admin/domains` (2026-06-25)
|
||
|
||
**Problema:** Serviços IaaS (Desk) demorava 10–16s — `zmprov gad` ~5s por pedido, sem cache.
|
||
|
||
**Patch:** cache em memória no wizard VM112 + invalidação em cd/dd/purge.
|
||
|
||
## Ficheiros
|
||
|
||
| Ficheiro | Destino VM112 |
|
||
|----------|----------------|
|
||
| `carbonio_cache.py` | `/opt/ligbox-wizard/backend/app/services/` |
|
||
| `carbonio.py` | idem |
|
||
| `domain_orchestration.py` | idem |
|
||
| `infrastructure.py` | idem |
|
||
| `admin_domains.py` | `/opt/ligbox-wizard/backend/app/routers/` |
|
||
|
||
## Deploy
|
||
|
||
```bash
|
||
scp perf-domains-list-20260625/*.py root@10.10.10.112:/tmp/
|
||
ssh root@10.10.10.112 '
|
||
W=/opt/ligbox-wizard/backend/app
|
||
cp /tmp/carbonio_cache.py $W/services/
|
||
cp /tmp/carbonio.py $W/services/
|
||
cp /tmp/domain_orchestration.py $W/services/
|
||
cp /tmp/infrastructure.py $W/services/
|
||
cp /tmp/admin_domains.py $W/routers/
|
||
systemctl restart ligbox-wizard
|
||
'
|
||
```
|
||
|
||
## Env (opcional)
|
||
|
||
| Variável | Default | Descrição |
|
||
|----------|---------|-----------|
|
||
| — | `TTL_ALL_DOMAINS=90` | Cache `zmprov gad` (carbonio_cache.py) |
|
||
| — | `TTL_ORCH_LIST=60` | Cache lista orquestrada montada |
|
||
| Desk `VM112_DOMAINS_CACHE_TTL` | 60 | Cache proxy VM122 |
|
||
|
||
## Validação
|
||
|
||
```bash
|
||
# 2.º hit lista — deve ser <1s
|
||
curl -s -H "X-Api-Key: $KEY" http://10.10.10.112:8090/api/admin/domains | jq '.cached, .cache_age_sec'
|
||
|
||
# Desk detalhe — purge_blocked para blocklist
|
||
curl -s -H "Authorization: Bearer $TOKEN" \
|
||
https://api.ops.ligbox.com.br/api/v1/vm112/domains/ligbox.com.br | jq '.purge_blocked'
|
||
```
|
||
|
||
**Documentação:** Spec 017/018 § Performance · anais `docs/anais-referencia/20260625_SERVICOS_IAAS_PERF_UX_ESCOPO.md` · frontend `?v=20260625align1`
|
||
|
||
```bash
|
||
# Lista — 1.º ~5–6s, 2.º <0.1s
|
||
curl -s -H "X-Api-Key: $KEY" http://10.10.10.112:8090/api/admin/domains | jq '.cached, .cache_age_sec, (.domains|length)'
|
||
|
||
# Detalhe purge modal — 1.º ~16s, 2.º <0.1s
|
||
curl -s -H "X-Api-Key: $KEY" http://10.10.10.112:8090/api/admin/domains/diarissima.com | jq '.domain, (.accounts|length), (.infra_status.steps|length)'
|
||
```
|
||
|
||
## Rollback
|
||
|
||
Restaurar backup ou git anterior em `/opt/ligbox-wizard/backend/app/services/` + `systemctl restart ligbox-wizard`.
|