docs: checkpoint 2026-07-01 wizard gate, email, FOSS dratcoin

Espelho dos anais Obsidian — gate portal, logo email, FOSS/Odoo dratcoin.
This commit is contained in:
Ligbox Spec Hub 2026-07-01 19:37:53 +00:00
parent 3cb51e7ba7
commit fe8701fcf1
2 changed files with 248 additions and 1 deletions

View file

@ -0,0 +1,235 @@
# Anais de Referência — Wizard Gate · Email Boas-vindas · FOSS dratcoin (2026-07-01)
**Data:** 2026-07-01
**Utilizador:** Roger
**VMs:** VM112 (wizard) · VM122 (Desk) · VM123 (FOSS/Odoo/OpenPanel) · VM130 (Obsidian)
**Domínio caso:** `dratcoin.com`
**Spec relacionada:** Spec 043 (gate pós-onboarding + activação billing)
---
## Resumo executivo
| Área | Estado |
|------|--------|
| Gate portal admin (modais empresa + webmail) | ✅ Implementado e deploy VM112 |
| Email boas-vindas admin | ✅ Logo oficial + footer Ligbox/Lig-it |
| FOSS cliente dratcoin | ✅ Cliente **#13**, order **#9**, invoice **#3** (unpaid) |
| Activación automática FOSS pós-wizard | ❌ Ainda manual (Desk `activate`) |
| DNS público dratcoin | ⏳ Registrador ainda aponta NS Cloudflare |
| Odoo admin | ✅ Validado login |
---
## 1. Gate portal admin (VM112)
### Fluxo alvo (Roger)
1. Wizard conclui → infra Ligbox pronta; só falta propagação DNS no registrador
2. Gerente entra em `https://onboard.ligbox.com.br/admin`
3. **1.º acesso** → modal bloqueante confirma dados empresa
4. Webhook `company.validated` → Desk
5. Modal liberação webmail com 2FA Ligbox
6. Aviso Carbonio removido após release
### Ficheiros alterados
| Ficheiro | Alteração |
|----------|-----------|
| `frontend/src/DomainAdmin.jsx` | Wire gate: modais, banner, refresh `/me` |
| `frontend/src/components/CompanyConfirmModal.jsx` | Form completo (CNPJ, endereço, cobrança) |
| `frontend/src/components/WebmailReleaseModal.jsx` | (existente, ligado) |
| `frontend/src/stitch-admin.css` | Estilos `.gate-modal*` |
| `backend/app/routers/domain_admin.py` | `apply_portal_draft_to_domain()` no login |
| `backend/app/services/company_gate.py` | (já existia) |
### API gate
| Endpoint | Função |
|----------|--------|
| `GET /api/domain-admin/me` | Inclui objeto `gate` |
| `POST /api/domain-admin/gate/company-profile` | Confirma empresa |
| `POST /api/domain-admin/gate/release-webmail` | Libera webmail (2FA Ligbox) |
### Deploy
```bash
cd /opt/ligbox-wizard/frontend && npm run build:wizard
systemctl restart ligbox-wizard
```
**Build fix:** `consumeOnboardHandoffFromAllSources` adicionado em `sessionPersist.js`.
---
## 2. Email boas-vindas administrador
### Template
- `backend/app/templates/email/onboarding_welcome.html`
- `backend/app/services/email_templates.py`
### Logo hero (correcção 2026-07-01)
| Errado (antes) | Correcto (agora) |
|----------------|------------------|
| `logo-ligbox_novo.png` (laranja, marca errada) | `ligbox-logo-hero-web.png` base |
| Caixa branca no hero | **Sem fundo** — variante luminosidade |
| — | `ligbox-logo-hero-email-dark.png` (texto branco, ícone original) |
**Asset:** `https://ligbox.com.br/assets/ligbox-logo-hero-email-dark.png`
**Gerado:** ImageMagick a partir de `ligbox-logo-hero-web.png` (substituir tons escuros do wordmark por branco).
### Footer (igual site Ligbox)
- Logo Ligbox + tagline
- Suporte `comercial@ligit.com.br` · `(41) 3806-0620`
- Logo Lig-it (`lig-it-logo-final.png`)
- **Powered by Ligit Solutions** · ligbox.com.br
### Reenvio teste
```bash
PYTHONPATH=/opt/ligbox-wizard/backend /opt/ligbox-wizard/.venv/bin/python3 -c "
from app.services import notifications
notifications.send_welcome_to_mailbox(
email='001@dratcoin.com', domain='dratcoin.com',
webmail='https://mail.dratcoin.com/', display_name='Dratcoin Admin')
"
```
---
## 3. dratcoin.com — estado infra
| Camada | Status |
|--------|--------|
| Carbonio + `001@dratcoin.com` | ✅ Activo |
| mail-bundle VM112 | ✅ `foss_client_id=13`, `foss_order_id=9` |
| OpenPanel zona VM123 | ✅ MX/A/SPF/DMARC |
| DNS registrador | ❌ NS Cloudflare (`norah`/`rohin`) — não Ligbox BIND |
| Webmail aviso | Informativo até release portal admin |
**Registry:** `/var/lib/ibytera-mail-portal/domains/dratcoin.com.json`
**Mail bundle:** `/var/lib/ligbox-wizard/mail_bundles/dratcoin.com.json`
---
## 4. FOSS — porque não aparecia / invoice
### Regra importante
`company.validated` (wizard) **≠** criação FOSS automática.
```
company.validated → Desk billing_accounts (awaiting_billing_validation)
POST /api/v1/billing/accounts/{id}/activate ← passo manual/API
FOSS client → order → invoice → OpenPanel → Odoo → mail-bundle
```
### Estado FOSS dratcoin (validado API 2026-07-01)
| Registo | ID | Detalhe |
|---------|-----|---------|
| Cliente | **13** | `001@dratcoin.com` · **Dratcoin Ltd** · active |
| Order | **9** | Ligbox Mail Business |
| Invoice | **3** | `FOSS00003` · R$ 549,00 · **unpaid** |
**Procurar no admin:** `001@dratcoin.com` ou «Dratcoin Ltd» (não só «Dratcoin»).
### Falha 1.ª activação (~16:29 UTC)
- FOSS API: `created: true` mas `client_id: null` (bug parse `_extract_id`)
- Wizard mail-bundle: 404 na VM112
- Desk marcou `ok: true` incorrectamente
FOSS criado ~1,5h depois em retry manual.
### Pendências código (VM122)
1. Auto-hook `company.validated``activate_billing_account`
2. Corrigir `_extract_id()` em `foss_client.py`
3. Falhar activação se `client_id` null ou wizard 404
---
## 5. Credenciais Odoo 16 (VM123)
| Campo | Valor |
|-------|--------|
| URL pública | https://financeiro.ligbox.com.br/odoo/web/login?db=ligbox |
| URL interna | http://10.10.10.123:8069 |
| Login | `admin@ligbox.com.br` |
| Senha / API Key | `LbOdooAdmin805353` |
| Base dados | `ligbox` |
| Postgres user | `odoo` |
| Postgres pass | `LbOdood9ca25c3` |
**Fonte:** `/opt/ligbox-ops-platform/LAPTOP/CREDENCIAIS_SERVICOS_VM123.txt` (VM122)
**Validação:** `web/session/authenticate` → uid **2** OK.
---
## 6. Credenciais FOSS (referência)
| Campo | Valor |
|-------|--------|
| URL admin | https://financeiro.ligbox.com.br |
| User API | `admin` |
| Token | `lbfoss-5d2dc39f163866f5dabced5bc0ad251f` |
| FOSS Admin UI | `admin@ligbox.com.br` / `LbFossAdmin805353` |
---
## 7. Catálogo 20 pacotes FOSS (sessão anterior)
- Products ids 221 com pricing recorrente
- Descrições HTML ricas via `ligbox-bundle-descriptions.py`
- Docs: `LIGBOX-CATALOG-20.md`, `BUNDLE-DESCRIPTIONS.md`
- Repo VM130: `ligbox-ops-platform`
---
## 8. Logos VM112 (referência)
| Ficheiro | Uso |
|----------|-----|
| `/opt/ligbox-web/assets/ligbox-logo-hero-web.png` | Logo oficial |
| `/opt/ligbox-web/assets/ligbox-logo-hero-email-dark.png` | Email fundo escuro |
| `/opt/ligbox-web/assets/v4/logo-ligbox_novo.png` | Variante laranja — **não usar em email** |
| `/opt/ligbox-web/assets/logos_sites/lig-it-logo-final.png` | Footer Lig-it |
---
## 9. Comandos úteis
```bash
# FOSS cliente dratcoin
curl -s -X POST "https://financeiro.ligbox.com.br/api/admin/client/get" \
-u "admin:lbfoss-5d2dc39f163866f5dabced5bc0ad251f" \
-H "Content-Type: application/json" -d '{"id":13}'
# FOSS invoices cliente 13
curl -s -X POST "https://financeiro.ligbox.com.br/api/admin/invoice/get_list" \
-u "admin:lbfoss-5d2dc39f163866f5dabced5bc0ad251f" \
-H "Content-Type: application/json" -d '{"client_id":13}'
# Preview email
# file:///opt/ligbox-wizard/backend/app/templates/email/onboarding_welcome_preview.html
```
---
## 10. Próximos passos (Roger)
- [ ] NS registrador dratcoin → `ns1.ligbox.com.br` / `ns2.ligbox.com.br`
- [ ] Activar FOSS automaticamente após confirma empresa no portal
- [ ] Pagar/enviar invoice FOSS-3 ao cliente
- [ ] Testar fluxo gate E2E: login `001@dratcoin.com` → modal → release webmail
- [ ] Commit gate wiring no repo Forgejo (VM130) se ainda não feito
---
*Documento gerado pela sessão Cursor 2026-07-01 · Obsidian VM130*

View file

@ -1,6 +1,6 @@
# Índice — Anais de Referência (Ligbox Ops Platform)
**Atualizado:** 2026-06-17
**Atualizado:** 2026-07-01
**Responsável:** Roger / Cursor Agent
**VM122:** `10.10.10.122` · SSH WAN `:2522`
@ -129,3 +129,15 @@ Ver `INDICE_MODELAGEM_BRUTA.txt` em `/root/ligbox-ops-platform-chat-bruto/`:
python3 /opt/ligbox-ops-platform/scripts/export-chat-bruto-standalone.py \
<caminho.jsonl> CHAT_BRUTO_<NOME>_<YYYYMMDD> <transcript-uuid>
```
- [[20260619_WIZARD_PORTAL_ADMIN_ROUTE_FIX]] — Portal /admin reabria wizard Concluído (VM112)
---
### 2026-07-01 — Wizard Gate · Email Boas-vindas · FOSS dratcoin
| Ficheiro | Descrição |
|----------|-----------|
| `20260701_WIZARD_GATE_EMAIL_FOSS_DRATCOIN_ASPECTOS.md` | Gate modais portal admin, logo email, FOSS #13/#9/invoice #3, Odoo creds, DNS dratcoin |
**Decisões:** logo email = `ligbox-logo-hero-email-dark.png` (sem caixa branca); FOSS só após Desk `activate`; Spec 043 gate deploy VM112.