Cria produto FOSS (product_id=3), endpoint mail-bundle no wizard VM112 com contrato documentado, e runbook de deploy para fechar o ciclo de activação. Co-authored-by: Cursor <cursoragent@cursor.com>
2.6 KiB
2.6 KiB
Contrato — API Wizard POST /api/internal/provision/mail-bundle
Spec: 043 · 035
VM: 112 (10.10.10.112:8090)
Status: ✅ Implementado no repo · deploy VM112 pendente
Auth: X-Ops-Internal-Token (mesmo valor Desk OPS_INTERNAL_TOKEN)
POST /api/internal/provision/mail-bundle
Provisiona domínio Carbonio + conta gerente com quotas do bundle mail.
Request
{
"domain": "empresa.com.br",
"admin_email": "admin@empresa.com.br",
"admin_name": "João Silva",
"seats": 25,
"mail_gb_per_seat": 30,
"files_gb_per_seat": 200,
"foss_order_id": 55
}
| Campo | Obrigatório | Descrição |
|---|---|---|
domain |
sim | Domínio cliente |
admin_email |
sim | Conta gerente (admin@{domain}) |
admin_name |
não | Display name Carbonio |
seats |
não (default 25) | Licenças mail bundle |
mail_gb_per_seat |
não (default 30) | Quota GB/caixa gerente |
files_gb_per_seat |
não (default 200) | Nextcloud (fase 034) |
foss_order_id |
não | Correlação FOSS order |
Response 200
{
"ok": true,
"domain": "empresa.com.br",
"admin_email": "admin@empresa.com.br",
"mail_host": "mail.empresa.com.br",
"webmail_url": "https://mail.empresa.com.br/",
"files_url": "https://files.empresa.com.br/",
"seats": 25,
"provisioned": true,
"already_provisioned": false,
"account_reused": false
}
Erros
| HTTP | Condição |
|---|---|
| 401 | Token interno inválido |
| 400 | Domínio/email inválido |
| 502 | Carbonio/zmprov falhou |
| 503 | OPS_INTERNAL_TOKEN ausente no wizard |
GET /api/internal/provision/mail-bundle/{domain}
Estado do bundle (sem senhas).
Código
| Artefacto | Path repo |
|---|---|
| Serviço | projects/wizard/backend/app/services/mail_bundle.py |
| Router | projects/wizard/backend/app/routers/internal_provision.py |
| Deploy VM112 | deploy/vm112-wizard/deploy-mail-bundle-vm112.py |
| Cliente Desk | projects/ops-desk/api/app/vm123/wizard_client.py |
Deploy VM112
# Na VM112 (SSH)
cd /opt/ligbox-spec-hub/repos/ligbox-ops-platform # ou clone Forgejo
git pull
python3 deploy/vm112-wizard/deploy-mail-bundle-vm112.py
systemctl restart ligbox-wizard
# Teste
curl -s -X POST http://127.0.0.1:8090/api/internal/provision/mail-bundle \
-H "X-Ops-Internal-Token: $OPS_INTERNAL_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domain":"teste.ligbox.com.br","admin_email":"admin@teste.ligbox.com.br","seats":25}'
Roger · 2026-07-01 · Spec 043 fecho ciclo mail-bundle