Promote OpenPanel to a full-width featured panel with VM123 health metrics, add hero chip, and document Infra console UI layout in Spec 033 with cross-ref from Spec 028. Co-authored-by: Cursor <cursoragent@cursor.com>
137 lines
3.5 KiB
Markdown
137 lines
3.5 KiB
Markdown
# Spec 028 — Adendo: Teste de Confirmação API Multidomínio
|
|
|
|
**Criado:** 2026-06-19
|
|
**Solicitado por:** Roger
|
|
**Status:** ✅ Implementado
|
|
**Relacionado:** Spec 028 (OpenPanel CE Ligbox Re-engenharia)
|
|
|
|
---
|
|
|
|
## Objetivo
|
|
|
|
Permitir validar **quantas vezes quiser** que a re-engenharia OpenPanel Ligbox está operacional:
|
|
|
|
- Desk API → Bridge `:18087` → `opencli user-add` + `domains-add`
|
|
- Suporte **multidomínio na plataforma** (2 contas / 2 domínios via API)
|
|
- Cleanup automático da conta de teste
|
|
|
|
---
|
|
|
|
## Onde executar
|
|
|
|
| Canal | Como |
|
|
|-------|------|
|
|
| **Menu Infra (Desk)** | Infraestrutura → card *OpenPanel API* → **Testar multidomínio** |
|
|
| **Script CLI** | `scripts/test-openpanel-multidomain-api.sh` |
|
|
| **API directa** | `POST /api/v1/vm123/openpanel/test-confirm` |
|
|
|
|
---
|
|
|
|
## Menu Infra (Desk VM122)
|
|
|
|
**Layout UI:** Spec **033** (`specs/033-desk-infra-console-ui/spec.md`) — painel largo `OpenPanel API — Re-engenharia Ligbox · Spec 028` na grid Infra.
|
|
|
|
1. Login em https://desk.ligbox.com.br
|
|
2. Menu lateral → **Infraestrutura**
|
|
3. Painel **OpenPanel API — Re-engenharia Ligbox** (chip VM123 no topo + painel orange largura total)
|
|
4. Botão **Testar multidomínio**
|
|
5. Modal com passo-a-passo e resultado (OK/FAIL por step)
|
|
|
|
**Perfis autorizados:** `super_admin`, `devops`, `developer`
|
|
|
|
---
|
|
|
|
## Script CLI (repetível)
|
|
|
|
### Via Desk API (recomendado)
|
|
|
|
```bash
|
|
cd /opt/ligbox-ops-platform # ou clone local
|
|
|
|
DESK_PASS='sua_senha_desk' bash scripts/test-openpanel-multidomain-api.sh
|
|
```
|
|
|
|
### Via bridge directo (sem Desk)
|
|
|
|
```bash
|
|
MODE=bridge bash scripts/test-openpanel-multidomain-api.sh
|
|
```
|
|
|
|
Variáveis opcionais:
|
|
|
|
| Variável | Default |
|
|
|----------|---------|
|
|
| `API_URL` | `http://10.10.10.122:8080` |
|
|
| `DESK_USER` | `root` |
|
|
| `BRIDGE_URL` | `http://10.10.10.123:18087` |
|
|
| `BRIDGE_TOKEN` | `ligbox-community-bridge-token` |
|
|
|
|
---
|
|
|
|
## Suite de testes (7 passos)
|
|
|
|
| # | Step | O que valida |
|
|
|---|------|--------------|
|
|
| 1 | `bridge_health` | Bridge `:18087` responde `ligbox-v2` |
|
|
| 2 | `list_users` | API lista contas existentes |
|
|
| 3 | `get_reference_user` | Conta real `diarissima` + domínio |
|
|
| 4 | `provision_domain_a` | Cria conta 1 + domínio A |
|
|
| 5 | `provision_domain_b` | Cria conta 2 + domínio B |
|
|
| 6 | `verify_multidomain_platform` | Ambas contas visíveis na listagem |
|
|
| 7 | `cleanup_*` | Remove contas de teste |
|
|
|
|
**Senha teste:** `LbOpenTest805353` (nunca persiste — user apagado no fim)
|
|
|
|
---
|
|
|
|
## Endpoint API
|
|
|
|
```http
|
|
POST /api/v1/vm123/openpanel/test-confirm
|
|
Authorization: Bearer <desk_token>
|
|
```
|
|
|
|
**Resposta (exemplo sucesso):**
|
|
|
|
```json
|
|
{
|
|
"ok": true,
|
|
"suite": "openpanel-multidomain-api-confirm",
|
|
"spec": "028-openpanel-ce-ligbox-reengineering",
|
|
"steps_passed": 7,
|
|
"steps_total": 7,
|
|
"message": "OpenPanel via API multidomínio Ligbox Re-engenharia — CONFIRMADO",
|
|
"steps": [ ... ]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Critérios de aceite
|
|
|
|
- [x] Botão no Menu Infra Desk
|
|
- [x] Script CLI repetível em `scripts/`
|
|
- [x] Endpoint `POST /openpanel/test-confirm`
|
|
- [x] Multidomínio validado (2 contas / 2 domínios na plataforma)
|
|
- [x] Cleanup automático
|
|
- [x] Documentado como adendo Spec 028
|
|
|
|
---
|
|
|
|
## Ficheiros
|
|
|
|
```
|
|
scripts/test-openpanel-multidomain-api.sh
|
|
api/app/vm123/openpanel_test.py
|
|
api/app/vm123/openpanel_client.py # add_domain()
|
|
api/app/vm123/routes.py # POST test-confirm
|
|
frontend/assets/app.js # card Menu Infra
|
|
```
|
|
|
|
---
|
|
|
|
## Referências
|
|
|
|
- [spec.md](spec.md) — re-engenharia completa
|
|
- [contracts/foss-bridge-api.md](contracts/foss-bridge-api.md) — contrato bridge
|
|
- [quickstart.md](quickstart.md) — operação VM123
|