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

Regista gate portal admin, correcção logo email, estado FOSS/Odoo dratcoin
e credenciais VM123 nos anais de referência.
This commit is contained in:
Ligbox Obsidian Vault 2026-07-01 19:37:48 +00:00
parent d5b26a55f0
commit 440516686c
3 changed files with 284 additions and 1 deletions

View file

@ -0,0 +1,37 @@
VM123 — Credenciais dos 3 serviços (Spec 024)
==============================================
Data: 2026-06-17
Host: 10.10.10.123 (vm123-finance)
SSH: root / 805353
--- FOSSBilling ---
URL interna: http://10.10.10.123:8092
URL pública: https://financeiro.ligbox.com.br
Admin URL: https://financeiro.ligbox.com.br/admin
Admin login: admin@ligbox.com.br
Admin senha: LbFossAdmin805353
MariaDB user: fossbilling
MariaDB pass: LbFoss9367c416
Módulo OpenPanel: instalado (OpenPanel.php)
--- Odoo 16 ---
URL interna: http://10.10.10.123:8069
URL pública: https://financeiro.ligbox.com.br/odoo
Login URL: https://financeiro.ligbox.com.br/odoo/web/login?db=ligbox
Base dados: ligbox
Admin login: admin@ligbox.com.br
Admin senha: LbOdooAdmin805353
Postgres user: odoo
Postgres pass: LbOdood9ca25c3
Master pwd DB: admin (gestor bases Odoo)
--- OpenPanel ---
URL pública: https://openpanel.ligbox.com.br
OpenAdmin: porta 2087
OpenPanel UI: porta 2083
Admin user: ligboxadmin
Admin senha: LbOpen805353
API: activar com opencli config update api on
Integração FOSS → OpenPanel:
Manager: OpenPanel | IP: 10.10.10.123 | Port: 2087

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) # Índice — Anais de Referência (Ligbox Ops Platform)
**Atualizado:** 2026-06-17 **Atualizado:** 2026-07-01
**Responsável:** Roger / Cursor Agent **Responsável:** Roger / Cursor Agent
**VM122:** `10.10.10.122` · SSH WAN `:2522` **VM122:** `10.10.10.122` · SSH WAN `:2522`
@ -130,3 +130,14 @@ python3 /opt/ligbox-ops-platform/scripts/export-chat-bruto-standalone.py \
<caminho.jsonl> CHAT_BRUTO_<NOME>_<YYYYMMDD> <transcript-uuid> <caminho.jsonl> CHAT_BRUTO_<NOME>_<YYYYMMDD> <transcript-uuid>
``` ```
- [[20260619_WIZARD_PORTAL_ADMIN_ROUTE_FIX]] — Portal /admin reabria wizard Concluído (VM112) - [[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.