Fix stack status 500 (VM112_IP) and rename INFRA COD to INFRA CODE.

Define missing VM112_IP in stack_health probes; update menu and page titles to Infrastructure as Code branding.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ligbox Spec Hub 2026-06-19 22:43:43 +00:00
parent 3ee63b3018
commit 50085b7d94
6 changed files with 22 additions and 21 deletions

View file

@ -1,4 +1,4 @@
"""Rotas INFRA COD — stack completo VMs 112/114/122/123/130.""" """Rotas INFRA CODE — stack completo VMs 112/114/122/123/130."""
from __future__ import annotations from __future__ import annotations

View file

@ -37,8 +37,8 @@ MODULES: tuple[ModuleDef, ...] = (
), ),
ModuleDef( ModuleDef(
id="infra", id="infra",
label="INFRA COD", label="INFRA CODE",
description="Stack completo VMs 112/114/122/123/130 — apps, APIs e integrações (Spec 033).", description="Infrastructure as Code — stack VMs 112/114/122/123/130 (Spec 033).",
nav_views=("infra",), nav_views=("infra",),
), ),
ModuleDef( ModuleDef(

View file

@ -1,4 +1,4 @@
"""Stack health probes — VMs 112, 114, 122, 123, 130 (Spec 033 / INFRA COD).""" """Stack health probes — VMs 112, 114, 122, 123, 130 (Spec 033 / INFRA CODE)."""
from __future__ import annotations from __future__ import annotations
@ -9,7 +9,8 @@ from typing import Any, Callable
import httpx import httpx
VM112_API = os.getenv("VM112_API_URL", "http://10.10.10.112:8090").rstrip("/") VM112_IP = os.getenv("VM112_IP", "10.10.10.112")
VM112_API = os.getenv("VM112_API_URL", f"http://{VM112_IP}:8090").rstrip("/")
DESK_PUBLIC = os.getenv("DESK_PUBLIC_URL", "https://desk.ligbox.com.br").rstrip("/") DESK_PUBLIC = os.getenv("DESK_PUBLIC_URL", "https://desk.ligbox.com.br").rstrip("/")
API_PUBLIC = os.getenv("API_PUBLIC_URL", "https://api.ops.ligbox.com.br").rstrip("/") API_PUBLIC = os.getenv("API_PUBLIC_URL", "https://api.ops.ligbox.com.br").rstrip("/")
VM114_IP = os.getenv("VM114_IP", "10.10.10.114") VM114_IP = os.getenv("VM114_IP", "10.10.10.114")

View file

@ -208,7 +208,7 @@ function setView(name) {
tickets: 'Tickets', tickets: 'Tickets',
events: 'Eventos webhook', events: 'Eventos webhook',
tenants: 'Tenants', tenants: 'Tenants',
infra: 'INFRA COD', infra: 'INFRA CODE',
infra2: 'SOC — Infra 2', infra2: 'SOC — Infra 2',
messages: 'Mensagens — pedidos de cadastro', messages: 'Mensagens — pedidos de cadastro',
admin: 'Administradores', admin: 'Administradores',
@ -223,7 +223,7 @@ function setView(name) {
tickets: 'Operações Ligbox — onboarding, tickets e monitoramento', tickets: 'Operações Ligbox — onboarding, tickets e monitoramento',
events: 'Operações Ligbox — onboarding, tickets e monitoramento', events: 'Operações Ligbox — onboarding, tickets e monitoramento',
tenants: 'Operações Ligbox — onboarding, tickets e monitoramento', tenants: 'Operações Ligbox — onboarding, tickets e monitoramento',
infra: 'Serviços IaaS · Infra as Code — stack VMs 112, 114, 122, 123, 130', infra: 'Infrastructure as Code — stack VMs 112, 114, 122, 123, 130',
infra2: 'Centro de operações — monitoramento visual VM112 → VM122 em tempo quase real', infra2: 'Centro de operações — monitoramento visual VM112 → VM122 em tempo quase real',
messages: 'Operações Ligbox — onboarding, tickets e monitoramento', messages: 'Operações Ligbox — onboarding, tickets e monitoramento',
admin: 'Operações Ligbox — onboarding, tickets e monitoramento', admin: 'Operações Ligbox — onboarding, tickets e monitoramento',

View file

@ -218,7 +218,7 @@
</button> </button>
<button type="button" data-view="infra" data-module="infra" class="nav-item nav-item-infra"> <button type="button" data-view="infra" data-module="infra" class="nav-item nav-item-infra">
<span class="nav-icon-wrap" aria-hidden="true"><svg class="nav-icon-svg"><use href="#icon-infra"/></svg></span> <span class="nav-icon-wrap" aria-hidden="true"><svg class="nav-icon-svg"><use href="#icon-infra"/></svg></span>
<span class="nav-label">INFRA COD</span> <span class="nav-label">INFRA CODE</span>
</button> </button>
<button type="button" data-view="infra2" data-module="infra2-soc" class="nav-item nav-item-infra2"> <button type="button" data-view="infra2" data-module="infra2-soc" class="nav-item nav-item-infra2">
<span class="nav-icon-wrap" aria-hidden="true"><svg class="nav-icon-svg"><use href="#icon-infra2"/></svg></span> <span class="nav-icon-wrap" aria-hidden="true"><svg class="nav-icon-svg"><use href="#icon-infra2"/></svg></span>
@ -427,13 +427,13 @@
</div> </div>
</div> </div>
<script src="/assets/auth.js?v=20260619proc2"></script> <script src="/assets/auth.js?v=20260619code1"></script>
<script src="/assets/modules.js?v=20260619proc2"></script> <script src="/assets/modules.js?v=20260619code1"></script>
<script src="/assets/billing-ui.js?v=20260619proc2"></script> <script src="/assets/billing-ui.js?v=20260619code1"></script>
<script src="/assets/desk-live-stub.js?v=20260619proc2"></script> <script src="/assets/desk-live-stub.js?v=20260619code1"></script>
<script src="/assets/tickets-workspace.js?v=20260619proc2"></script> <script src="/assets/tickets-workspace.js?v=20260619code1"></script>
<script src="/assets/tickets-detail-panel.js?v=20260619proc2"></script> <script src="/assets/tickets-detail-panel.js?v=20260619code1"></script>
<script src="/assets/servicos.js?v=20260619proc2"></script> <script src="/assets/servicos.js?v=20260619code1"></script>
<script src="/assets/app.js?v=20260619proc2"></script> <script src="/assets/app.js?v=20260619code1"></script>
</body> </body>
</html> </html>

View file

@ -5,7 +5,7 @@
**Solicitado por:** Roger **Solicitado por:** Roger
**Prioridade:** P2 (UX operacional) **Prioridade:** P2 (UX operacional)
**Status:** ✅ Implementado (Desk VM122 frontend) **Status:** ✅ Implementado (Desk VM122 frontend)
**Sistema:** Desk VM122 · menu **INFRA COD** (`view-infra`) **Sistema:** Desk VM122 · menu **INFRA CODE** (`view-infra`)
**Relacionado:** Spec **028** (OpenPanel API) · Spec **032** (códigos purge) · Spec **002** (Wazuh) · módulo `infra` (015) **Relacionado:** Spec **028** (OpenPanel API) · Spec **032** (códigos purge) · Spec **002** (Wazuh) · módulo `infra` (015)
--- ---
@ -43,7 +43,7 @@ Padrões adoptados de boas práticas de UI card (Material UI equal-height, UX Co
| Menu Desk | View ID | Render | | Menu Desk | View ID | Render |
|-------------|---------|--------| |-------------|---------|--------|
| INFRA COD | `view-infra` | `renderInfra()` em `frontend/assets/app.js` | | INFRA CODE | `view-infra` | `renderInfra()` em `frontend/assets/app.js` |
**Não** cobre Infra 2 / SOC visual (`view-infra2` → `renderInfra2()`). **Não** cobre Infra 2 / SOC visual (`view-infra2` → `renderInfra2()`).
@ -65,7 +65,7 @@ Implementação: `api/app/stack_health.py` + `infra_stack_routes.py`.
UI: secções por VM + `proc-card` uniforme · modal para detalhes/formulários. UI: secções por VM + `proc-card` uniforme · modal para detalhes/formulários.
Menu: **INFRA COD** · subtítulo **Serviços IaaS · Infra as Code** · nav **Serviços IaaS** (`overview-home`). Menu: **INFRA CODE** · subtítulo **Serviços IaaS · Infra as Code** · nav **Serviços IaaS** (`overview-home`).
--- ---
@ -80,7 +80,7 @@ Menu: **INFRA COD** · subtítulo **Serviços IaaS · Infra as Code** · nav **S
## Critérios de aceitação ## Critérios de aceitação
1. **INFRA COD** exibe cards de **todas** as VMs 112/114/122/123/130. 1. **INFRA CODE** exibe cards de **todas** as VMs 112/114/122/123/130.
2. Cada card: ícone, spec/kind, título, status, 2 linhas de detalhe. 2. Cada card: ícone, spec/kind, título, status, 2 linhas de detalhe.
3. Purge / inputs apenas no modal. 3. Purge / inputs apenas no modal.
4. Summary `N/M online` no topo. 4. Summary `N/M online` no topo.
@ -89,5 +89,5 @@ Menu: **INFRA COD** · subtítulo **Serviços IaaS · Infra as Code** · nav **S
## Conclusão ## Conclusão
**Spec 033** = layout INFRA COD + stack health. Funcionalidades: OpenPanel **028**, purge **032**, webhook **001**. **Spec 033** = layout INFRA CODE + stack health. Funcionalidades: OpenPanel **028**, purge **032**, webhook **001**.