spec 043/044: webmail gate contrato, chat bruto e sync Obsidian
Documenta liberação formal webmail (company_gate), decisões UX Painel Admin, links Spec 044 tickets FOSS↔Desk, VM112 e chat bruto da sessão Roger. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
ef126d1e52
commit
3cb51e7ba7
11 changed files with 362 additions and 57 deletions
94
_sidebar.md
94
_sidebar.md
|
|
@ -12,24 +12,30 @@
|
|||
- [quickstart.md](specs/001-webhook-vm112-integration/quickstart.md)
|
||||
- [research.md](specs/001-webhook-vm112-integration/research.md)
|
||||
- [data-model.md](specs/001-webhook-vm112-integration/data-model.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/001-webhook-vm112-integration/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [webhook-onboard](specs/001-webhook-vm112-integration/contracts/webhook-onboard.md)
|
||||
- **checklists/**
|
||||
- [requirements](specs/001-webhook-vm112-integration/checklists/requirements.md)
|
||||
- **017-vm112-domain-orchestration**
|
||||
- [📄 spec.md](specs/017-vm112-domain-orchestration/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/017-vm112-domain-orchestration/SESSION-CHECKPOINT.md)
|
||||
- **022-carbonio-account-exists-release**
|
||||
- [📄 spec.md](specs/022-carbonio-account-exists-release/spec.md)
|
||||
- [tasks.md](specs/022-carbonio-account-exists-release/tasks.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/022-carbonio-account-exists-release/SESSION-CHECKPOINT.md)
|
||||
- **025-wizard-onboarding-continuity**
|
||||
- [📄 spec.md](specs/025-wizard-onboarding-continuity/spec.md)
|
||||
- [tasks.md](specs/025-wizard-onboarding-continuity/tasks.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/025-wizard-onboarding-continuity/SESSION-CHECKPOINT.md)
|
||||
- **026-purge-traefik-validation**
|
||||
- [📄 spec.md](specs/026-purge-traefik-validation/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/026-purge-traefik-validation/SESSION-CHECKPOINT.md)
|
||||
- **010-desk-assist-takeover**
|
||||
- [📄 spec.md](specs/010-desk-assist-takeover/spec.md)
|
||||
- [tasks.md](specs/010-desk-assist-takeover/tasks.md)
|
||||
- [quickstart.md](specs/010-desk-assist-takeover/quickstart.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/010-desk-assist-takeover/SESSION-CHECKPOINT.md)
|
||||
## VM122 — Ops Desk
|
||||
- **003-desk-auth-rbac**
|
||||
- [📄 spec.md](specs/003-desk-auth-rbac/spec.md)
|
||||
|
|
@ -38,6 +44,7 @@
|
|||
- [quickstart.md](specs/003-desk-auth-rbac/quickstart.md)
|
||||
- [research.md](specs/003-desk-auth-rbac/research.md)
|
||||
- [data-model.md](specs/003-desk-auth-rbac/data-model.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/003-desk-auth-rbac/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [auth-api](specs/003-desk-auth-rbac/contracts/auth-api.md)
|
||||
- **checklists/**
|
||||
|
|
@ -46,11 +53,13 @@
|
|||
- [📄 spec.md](specs/004-desk-account-management/spec.md)
|
||||
- [tasks.md](specs/004-desk-account-management/tasks.md)
|
||||
- [quickstart.md](specs/004-desk-account-management/quickstart.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/004-desk-account-management/SESSION-CHECKPOINT.md)
|
||||
- **004-onboard-funnel-events**
|
||||
- [📄 spec.md](specs/004-onboard-funnel-events/spec.md)
|
||||
- [plan.md](specs/004-onboard-funnel-events/plan.md)
|
||||
- [tasks.md](specs/004-onboard-funnel-events/tasks.md)
|
||||
- [research.md](specs/004-onboard-funnel-events/research.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/004-onboard-funnel-events/SESSION-CHECKPOINT.md)
|
||||
- [cloudflare-zone-provision.md](specs/004-onboard-funnel-events/cloudflare-zone-provision.md)
|
||||
- **contracts/**
|
||||
- [webhook-funnel-events](specs/004-onboard-funnel-events/contracts/webhook-funnel-events.md)
|
||||
|
|
@ -61,6 +70,7 @@
|
|||
- [plan.md](specs/009-ops-audit-overview/plan.md)
|
||||
- [tasks.md](specs/009-ops-audit-overview/tasks.md)
|
||||
- [research.md](specs/009-ops-audit-overview/research.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/009-ops-audit-overview/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [audit-api](specs/009-ops-audit-overview/contracts/audit-api.md)
|
||||
- **checklists/**
|
||||
|
|
@ -68,16 +78,20 @@
|
|||
- **010-admin-domain-validation**
|
||||
- [📄 spec.md](specs/010-admin-domain-validation/spec.md)
|
||||
- [correcao-vm112.md](specs/010-admin-domain-validation/correcao-vm112.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/010-admin-domain-validation/SESSION-CHECKPOINT.md)
|
||||
- **012-abandoned-onboarding-lead**
|
||||
- [📄 spec.md](specs/012-abandoned-onboarding-lead/spec.md)
|
||||
- [tasks.md](specs/012-abandoned-onboarding-lead/tasks.md)
|
||||
- [quickstart.md](specs/012-abandoned-onboarding-lead/quickstart.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/012-abandoned-onboarding-lead/SESSION-CHECKPOINT.md)
|
||||
- **015-desk-module-registry**
|
||||
- [📄 spec.md](specs/015-desk-module-registry/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/015-desk-module-registry/SESSION-CHECKPOINT.md)
|
||||
- **027-desk-rbac-function-matrix**
|
||||
- [📄 spec.md](specs/027-desk-rbac-function-matrix/spec.md)
|
||||
- [quickstart.md](specs/027-desk-rbac-function-matrix/quickstart.md)
|
||||
- [data-model.md](specs/027-desk-rbac-function-matrix/data-model.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/027-desk-rbac-function-matrix/SESSION-CHECKPOINT.md)
|
||||
- [ui-access-matrix.md](specs/027-desk-rbac-function-matrix/ui-access-matrix.md)
|
||||
- **contracts/**
|
||||
- [vm123-product-roles](specs/027-desk-rbac-function-matrix/contracts/vm123-product-roles.md)
|
||||
|
|
@ -87,6 +101,7 @@
|
|||
- [plan.md](specs/019-ops-console-active-operations/plan.md)
|
||||
- [tasks.md](specs/019-ops-console-active-operations/tasks.md)
|
||||
- [README.md](specs/019-ops-console-active-operations/README.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/019-ops-console-active-operations/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [chamados-api](specs/019-ops-console-active-operations/contracts/chamados-api.md)
|
||||
- **design/**
|
||||
|
|
@ -94,31 +109,39 @@
|
|||
- **023-billing-recurrence-desk-visibility**
|
||||
- [📄 spec.md](specs/023-billing-recurrence-desk-visibility/spec.md)
|
||||
- [tasks.md](specs/023-billing-recurrence-desk-visibility/tasks.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/023-billing-recurrence-desk-visibility/SESSION-CHECKPOINT.md)
|
||||
- **024-openpanel-fossbilling**
|
||||
- [📄 spec.md](specs/024-openpanel-fossbilling/spec.md)
|
||||
- [tasks.md](specs/024-openpanel-fossbilling/tasks.md)
|
||||
- [PROVISIONING_CLIENT_CARD.md](specs/024-openpanel-fossbilling/PROVISIONING_CLIENT_CARD.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/024-openpanel-fossbilling/SESSION-CHECKPOINT.md)
|
||||
- **019-email-migration-vm122-execution**
|
||||
- [📄 spec.md](specs/019-email-migration-vm122-execution/spec.md)
|
||||
- [tasks.md](specs/019-email-migration-vm122-execution/tasks.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/019-email-migration-vm122-execution/SESSION-CHECKPOINT.md)
|
||||
## VM104 — Wazuh
|
||||
- **002-wazuh-integration**
|
||||
- [📄 spec.md](specs/002-wazuh-integration/spec.md)
|
||||
- [plan.md](specs/002-wazuh-integration/plan.md)
|
||||
- [tasks.md](specs/002-wazuh-integration/tasks.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/002-wazuh-integration/SESSION-CHECKPOINT.md)
|
||||
## CT130 — Spec Hub
|
||||
- **031-spec-hub-portal**
|
||||
- [📄 spec.md](specs/031-spec-hub-portal/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/031-spec-hub-portal/SESSION-CHECKPOINT.md)
|
||||
## Outras specs
|
||||
- **007-mobile-push-notifications**
|
||||
- [📄 spec.md](specs/007-mobile-push-notifications/spec.md)
|
||||
- [tasks.md](specs/007-mobile-push-notifications/tasks.md)
|
||||
- [quickstart.md](specs/007-mobile-push-notifications/quickstart.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/007-mobile-push-notifications/SESSION-CHECKPOINT.md)
|
||||
- **011-integration-otrs**
|
||||
- [📄 spec.md](specs/011-integration-otrs/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/011-integration-otrs/SESSION-CHECKPOINT.md)
|
||||
- **011-mail-tls-wizard-validation**
|
||||
- [📄 spec.md](specs/011-mail-tls-wizard-validation/spec.md)
|
||||
- [README.md](specs/011-mail-tls-wizard-validation/README.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/011-mail-tls-wizard-validation/SESSION-CHECKPOINT.md)
|
||||
- **013-email-server-migration**
|
||||
- [📄 spec.md](specs/013-email-server-migration/spec.md)
|
||||
- [plan.md](specs/013-email-server-migration/plan.md)
|
||||
|
|
@ -127,31 +150,39 @@
|
|||
- [research.md](specs/013-email-server-migration/research.md)
|
||||
- [data-model.md](specs/013-email-server-migration/data-model.md)
|
||||
- [infrastructure.md](specs/013-email-server-migration/infrastructure.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/013-email-server-migration/SESSION-CHECKPOINT.md)
|
||||
- **014-funnel-phase-timing**
|
||||
- [📄 spec.md](specs/014-funnel-phase-timing/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/014-funnel-phase-timing/SESSION-CHECKPOINT.md)
|
||||
- **016-onboard-self-service-prefill**
|
||||
- [📄 spec.md](specs/016-onboard-self-service-prefill/spec.md)
|
||||
- [tasks.md](specs/016-onboard-self-service-prefill/tasks.md)
|
||||
- [BACKLOG-2FA-BACKUP-EXPORT.md](specs/016-onboard-self-service-prefill/BACKLOG-2FA-BACKUP-EXPORT.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/016-onboard-self-service-prefill/SESSION-CHECKPOINT.md)
|
||||
- **018-service-orchestration**
|
||||
- [📄 spec.md](specs/018-service-orchestration/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/018-service-orchestration/SESSION-CHECKPOINT.md)
|
||||
- **020-purge-history-desk**
|
||||
- [📄 spec.md](specs/020-purge-history-desk/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/020-purge-history-desk/SESSION-CHECKPOINT.md)
|
||||
- **021-wizard-cybersecurity-telemetry**
|
||||
- [📄 spec.md](specs/021-wizard-cybersecurity-telemetry/spec.md)
|
||||
- [tasks.md](specs/021-wizard-cybersecurity-telemetry/tasks.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/021-wizard-cybersecurity-telemetry/SESSION-CHECKPOINT.md)
|
||||
- **028-openpanel-ce-ligbox-reengineering**
|
||||
- [📄 spec.md](specs/028-openpanel-ce-ligbox-reengineering/spec.md)
|
||||
- [tasks.md](specs/028-openpanel-ce-ligbox-reengineering/tasks.md)
|
||||
- [quickstart.md](specs/028-openpanel-ce-ligbox-reengineering/quickstart.md)
|
||||
- [CONFIRMACAO-TESTE-API.md](specs/028-openpanel-ce-ligbox-reengineering/CONFIRMACAO-TESTE-API.md)
|
||||
- [DNS53_OPENPANEL_PORTA53.md](specs/028-openpanel-ce-ligbox-reengineering/DNS53_OPENPANEL_PORTA53.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/028-openpanel-ce-ligbox-reengineering/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [foss-bridge-api](specs/028-openpanel-ce-ligbox-reengineering/contracts/foss-bridge-api.md)
|
||||
- **029-agentic-ops-runbooks**
|
||||
- [📄 spec.md](specs/029-agentic-ops-runbooks/spec.md)
|
||||
- [tasks.md](specs/029-agentic-ops-runbooks/tasks.md)
|
||||
- [quickstart.md](specs/029-agentic-ops-runbooks/quickstart.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/029-agentic-ops-runbooks/SESSION-CHECKPOINT.md)
|
||||
- [agents-roster.md](specs/029-agentic-ops-runbooks/agents-roster.md)
|
||||
- **contracts/**
|
||||
- [agent-platform-api](specs/029-agentic-ops-runbooks/contracts/agent-platform-api.md)
|
||||
|
|
@ -159,28 +190,36 @@
|
|||
- [📄 spec.md](specs/029-tickets-workspace/spec.md)
|
||||
- [ARCHITECTURE.md](specs/029-tickets-workspace/ARCHITECTURE.md)
|
||||
- [CORRETIVO-20260619-tickets-rebuild.md](specs/029-tickets-workspace/CORRETIVO-20260619-tickets-rebuild.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/029-tickets-workspace/SESSION-CHECKPOINT.md)
|
||||
- **030-agentic-ops-ui**
|
||||
- [📄 spec.md](specs/030-agentic-ops-ui/spec.md)
|
||||
- [tasks.md](specs/030-agentic-ops-ui/tasks.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/030-agentic-ops-ui/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [agentic-ui-api](specs/030-agentic-ops-ui/contracts/agentic-ui-api.md)
|
||||
- **design/**
|
||||
- [wireframes](specs/030-agentic-ops-ui/design/wireframes.md)
|
||||
- **032-purge-domain-extra-auth**
|
||||
- [📄 spec.md](specs/032-purge-domain-extra-auth/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/032-purge-domain-extra-auth/SESSION-CHECKPOINT.md)
|
||||
- **033-desk-infra-console-ui**
|
||||
- [📄 spec.md](specs/033-desk-infra-console-ui/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/033-desk-infra-console-ui/SESSION-CHECKPOINT.md)
|
||||
- **034-nextcloud-carbonio-vm112-integration**
|
||||
- [📄 spec.md](specs/034-nextcloud-carbonio-vm112-integration/spec.md)
|
||||
- [tasks.md](specs/034-nextcloud-carbonio-vm112-integration/tasks.md)
|
||||
- [quickstart.md](specs/034-nextcloud-carbonio-vm112-integration/quickstart.md)
|
||||
- [infrastructure.md](specs/034-nextcloud-carbonio-vm112-integration/infrastructure.md)
|
||||
- [034-console-process-ui.md](specs/034-nextcloud-carbonio-vm112-integration/034-console-process-ui.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/034-nextcloud-carbonio-vm112-integration/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [nextcloud-provisioning-api](specs/034-nextcloud-carbonio-vm112-integration/contracts/nextcloud-provisioning-api.md)
|
||||
- **035-ligbox-mail-bundles-foss-openpanel**
|
||||
- [📄 spec.md](specs/035-ligbox-mail-bundles-foss-openpanel/spec.md)
|
||||
- [tasks.md](specs/035-ligbox-mail-bundles-foss-openpanel/tasks.md)
|
||||
- [BUNDLE-DESCRIPTIONS.md](specs/035-ligbox-mail-bundles-foss-openpanel/BUNDLE-DESCRIPTIONS.md)
|
||||
- [LIGBOX-CATALOG-20.md](specs/035-ligbox-mail-bundles-foss-openpanel/LIGBOX-CATALOG-20.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/035-ligbox-mail-bundles-foss-openpanel/SESSION-CHECKPOINT.md)
|
||||
- [domain-manager-console-ui.md](specs/035-ligbox-mail-bundles-foss-openpanel/domain-manager-console-ui.md)
|
||||
- [foss-products.md](specs/035-ligbox-mail-bundles-foss-openpanel/foss-products.md)
|
||||
- [ligbox-console-shell.md](specs/035-ligbox-mail-bundles-foss-openpanel/ligbox-console-shell.md)
|
||||
|
|
@ -190,32 +229,73 @@
|
|||
- [📄 spec.md](specs/035-ligbox-watchman/spec.md)
|
||||
- [tasks.md](specs/035-ligbox-watchman/tasks.md)
|
||||
- [quickstart.md](specs/035-ligbox-watchman/quickstart.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/035-ligbox-watchman/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [status-snapshot](specs/035-ligbox-watchman/contracts/status-snapshot.md)
|
||||
- **036-backstage-techdocs-speckit-companion**
|
||||
- [📄 spec.md](specs/036-backstage-techdocs-speckit-companion/spec.md)
|
||||
- [tasks.md](specs/036-backstage-techdocs-speckit-companion/tasks.md)
|
||||
- [quickstart.md](specs/036-backstage-techdocs-speckit-companion/quickstart.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/036-backstage-techdocs-speckit-companion/SESSION-CHECKPOINT.md)
|
||||
- **037-dns-multi-cloudflare-orchestration**
|
||||
- [📄 spec.md](specs/037-dns-multi-cloudflare-orchestration/spec.md)
|
||||
- [tasks.md](specs/037-dns-multi-cloudflare-orchestration/tasks.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/037-dns-multi-cloudflare-orchestration/SESSION-CHECKPOINT.md)
|
||||
- [cf-agents-sdk-architecture.md](specs/037-dns-multi-cloudflare-orchestration/cf-agents-sdk-architecture.md)
|
||||
- [client-cf-account-lifecycle.md](specs/037-dns-multi-cloudflare-orchestration/client-cf-account-lifecycle.md)
|
||||
- [dns-viewer.md](specs/037-dns-multi-cloudflare-orchestration/dns-viewer.md)
|
||||
- [implementation-phases.md](specs/037-dns-multi-cloudflare-orchestration/implementation-phases.md)
|
||||
- [project-email-identity.md](specs/037-dns-multi-cloudflare-orchestration/project-email-identity.md)
|
||||
- [wizard-validation-checklist.md](specs/037-dns-multi-cloudflare-orchestration/wizard-validation-checklist.md)
|
||||
- **043-desk-client-activation-sync** ⭐ mapa Wizard→FOSS→OpenPanel→Odoo
|
||||
- **038-nutranik-mail-proxy-vm108**
|
||||
- [📄 spec.md](specs/038-nutranik-mail-proxy-vm108/spec.md)
|
||||
- [tasks.md](specs/038-nutranik-mail-proxy-vm108/tasks.md)
|
||||
- [quickstart.md](specs/038-nutranik-mail-proxy-vm108/quickstart.md)
|
||||
- [infrastructure.md](specs/038-nutranik-mail-proxy-vm108/infrastructure.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/038-nutranik-mail-proxy-vm108/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [nutranik-wan-health-check](specs/038-nutranik-mail-proxy-vm108/contracts/nutranik-wan-health-check.md)
|
||||
- **039-ligbox-ops-authorization-catalog**
|
||||
- [📄 spec.md](specs/039-ligbox-ops-authorization-catalog/spec.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/039-ligbox-ops-authorization-catalog/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- **040-desk-design-system-v013**
|
||||
- [📄 spec.md](specs/040-desk-design-system-v013/spec.md)
|
||||
- [tasks.md](specs/040-desk-design-system-v013/tasks.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/040-desk-design-system-v013/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [governance-api](specs/040-desk-design-system-v013/contracts/governance-api.md)
|
||||
- **041-desk-operational-feed**
|
||||
- [📄 spec.md](specs/041-desk-operational-feed/spec.md)
|
||||
- [tasks.md](specs/041-desk-operational-feed/tasks.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/041-desk-operational-feed/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [ops-inbox-api](specs/041-desk-operational-feed/contracts/ops-inbox-api.md)
|
||||
- **042-ligbox-nettools-portal**
|
||||
- [📄 spec.md](specs/042-ligbox-nettools-portal/spec.md)
|
||||
- [tasks.md](specs/042-ligbox-nettools-portal/tasks.md)
|
||||
- [quickstart.md](specs/042-ligbox-nettools-portal/quickstart.md)
|
||||
- [infrastructure.md](specs/042-ligbox-nettools-portal/infrastructure.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/042-ligbox-nettools-portal/SESSION-CHECKPOINT.md)
|
||||
- [architecture.md](specs/042-ligbox-nettools-portal/architecture.md)
|
||||
- [implementation-phases.md](specs/042-ligbox-nettools-portal/implementation-phases.md)
|
||||
- [tools-catalog.md](specs/042-ligbox-nettools-portal/tools-catalog.md)
|
||||
- **contracts/**
|
||||
- [nettools-api](specs/042-ligbox-nettools-portal/contracts/nettools-api.md)
|
||||
- **043-desk-client-activation-sync**
|
||||
- [📄 spec.md](specs/043-desk-client-activation-sync/spec.md)
|
||||
- [tasks.md](specs/043-desk-client-activation-sync/tasks.md)
|
||||
- [ROLLBACK.md](specs/043-desk-client-activation-sync/ROLLBACK.md)
|
||||
- [SESSION-CHECKPOINT.md](specs/043-desk-client-activation-sync/SESSION-CHECKPOINT.md)
|
||||
- **contracts/**
|
||||
- [activation-field-mapping.md](specs/043-desk-client-activation-sync/contracts/activation-field-mapping.md) — **fonte única**
|
||||
- [desk-activate-account-api.md](specs/043-desk-client-activation-sync/contracts/desk-activate-account-api.md)
|
||||
- [mail-bundle-api.md](specs/043-desk-client-activation-sync/contracts/mail-bundle-api.md)
|
||||
- **044-foss-desk-ticket-sync** ⭐ Portal OB- ↔ Desk ↔ FOSS Support
|
||||
- [activation-field-mapping](specs/043-desk-client-activation-sync/contracts/activation-field-mapping.md)
|
||||
- [desk-activate-account-api](specs/043-desk-client-activation-sync/contracts/desk-activate-account-api.md)
|
||||
- [mail-bundle-api](specs/043-desk-client-activation-sync/contracts/mail-bundle-api.md)
|
||||
- [webmail-release-gate](specs/043-desk-client-activation-sync/contracts/webmail-release-gate.md)
|
||||
- **044-foss-desk-ticket-sync**
|
||||
- [📄 spec.md](specs/044-foss-desk-ticket-sync/spec.md)
|
||||
- [tasks.md](specs/044-foss-desk-ticket-sync/tasks.md)
|
||||
- [ROLLBACK.md](specs/044-foss-desk-ticket-sync/ROLLBACK.md)
|
||||
- **contracts/**
|
||||
- [ticket-field-mapping.md](specs/044-foss-desk-ticket-sync/contracts/ticket-field-mapping.md) — **fonte única IDs**
|
||||
- [ticket-sync-api.md](specs/044-foss-desk-ticket-sync/contracts/ticket-sync-api.md)
|
||||
- [ticket-field-mapping](specs/044-foss-desk-ticket-sync/contracts/ticket-field-mapping.md)
|
||||
- [ticket-sync-api](specs/044-foss-desk-ticket-sync/contracts/ticket-sync-api.md)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
# Chat bruto — Webmail gate UX + FOSS tickets sync
|
||||
# Data: 2026-07-01
|
||||
# Roger + Cursor
|
||||
# Specs: 043, 044, 035 (domain-manager UI)
|
||||
|
||||
## Tópicos
|
||||
|
||||
### 1. FOSS tickets ↔ Portal ↔ Desk
|
||||
- Três filas isoladas: OB- (VM112), Desk #N, FOSS Support (VM123)
|
||||
- Portal→Desk via webhook onboarding.escalated ✅
|
||||
- FOSS sem sync automático ❌
|
||||
- Criada Spec 044 com contratos ticket-field-mapping + ticket-sync-api
|
||||
- Commits: ligbox-ops-platform ef126d1, obsidian-vault 4e65555
|
||||
|
||||
### 2. Onde mensagem «activar webmail»
|
||||
- Infra (Traefik/cert) vs company_gate (liberação formal)
|
||||
- Aviso no rodapé login Carbonio = correto (company_gate.sync_webmail_user_notice)
|
||||
- Acção liberar = Painel Admin /admin (API existe, UI DomainAdmin falta)
|
||||
- Banner P0 no Início + badge WEBMAIL no Resumo Contas
|
||||
|
||||
### 3. VM112 paths confirmados
|
||||
- company_gate.py — PENDING_WEBMAIL_USER_DESCRIPTION
|
||||
- domain_admin.py — /gate/release-webmail
|
||||
- WebmailReleaseModal.jsx — wizard onboarding
|
||||
- dratcoin.com: aviso OK; credenciais inválidas é problema separado
|
||||
|
||||
## Artefatos gerados
|
||||
- specs/044-foss-desk-ticket-sync/*
|
||||
- specs/043/contracts/webmail-release-gate.md (este follow-up)
|
||||
- chat-bruto/CHAT_BRUTO_WEBMAIL_GATE_TICKETS_SPEC043_044_20260701.txt
|
||||
|
||||
## Próximo
|
||||
- [ ] UI card Activar webmail em DomainAdmin.jsx
|
||||
- [ ] Implementar Fase B Spec 044 (foss_client.create_support_ticket)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# Índice chat bruto — Webmail gate + FOSS tickets
|
||||
# 2026-07-01
|
||||
|
||||
CHAT_BRUTO_WEBMAIL_GATE_TICKETS_SPEC043_044_20260701.txt
|
||||
→ Spec 043 contracts/webmail-release-gate.md
|
||||
→ Spec 044 foss-desk-ticket-sync/
|
||||
→ Spec 035 domain-manager-console-ui.md (banner webmail)
|
||||
|
|
@ -70,6 +70,8 @@ Auth: header `X-Ops-Internal-Token` (= `OPS_INTERNAL_TOKEN` Desk VM122, em `/opt
|
|||
|
||||
**Teste validado:** domínio `bundle-novo-spec043.ligbox.com.br` → HTTP 200 `provisioned: true`.
|
||||
|
||||
**Webmail gate (`company_gate`):** [043 webmail-release-gate.md](../specs/043-desk-client-activation-sync/contracts/webmail-release-gate.md) — aviso rodapé login Carbonio + liberar em Painel `/admin` (UI card pendente).
|
||||
|
||||
## Integração
|
||||
|
||||
- **→ VM122:** webhooks `onboarding.*` · Assist/takeover API
|
||||
|
|
|
|||
|
|
@ -171,6 +171,20 @@ Quota NC: [ 200 GB ▼ ]
|
|||
|
||||
**Limite:** se `seats_used >= max_seats` → modal «Upgrade plano» (embed FOSS ou deep-link).
|
||||
|
||||
#### Banner «Activar webmail» (Início `/admin` — Spec 043)
|
||||
|
||||
Quando `gate.webmail_released === false`:
|
||||
|
||||
```
|
||||
┌─ Activar webmail ─────────────────────────────────────────┐
|
||||
│ Webmail aguarda liberação formal pelo Gerente do Domínio. │
|
||||
│ [ Confirmar empresa ] [ Activar webmail + 2FA Ligbox ] │
|
||||
└───────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
- Aviso no login Carbonio (rodapé) é **informativo** — não substitui este card.
|
||||
- Ver contrato: [043 webmail-release-gate.md](../../043-desk-client-activation-sync/contracts/webmail-release-gate.md).
|
||||
|
||||
### 5.3 Nextcloud / Files
|
||||
|
||||
| Elemento | Comportamento |
|
||||
|
|
@ -180,7 +194,7 @@ Quota NC: [ 200 GB ▼ ]
|
|||
| Lista contas com quota Files | read-only espelho §5.2 |
|
||||
| Coluna «Mail NC» | ✅ / — conforme toggle domínio + conta |
|
||||
| Botão «Abrir Files do domínio» | nova tab `files.{dominio}` (SSO token NC) |
|
||||
| Botão «Abrir webmail» | nova tab `mail.{dominio}` (sempre disponível) |
|
||||
| Botão «Abrir webmail» | nova tab `mail.{dominio}` — **desactivado** até `webmail_released_at` ([043 webmail-release-gate](../../043-desk-client-activation-sync/contracts/webmail-release-gate.md)) |
|
||||
| Política default novas contas | dropdown 100–500 GB |
|
||||
|
||||
**UI toggle (domínio):**
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@
|
|||
|
||||
| Campo | Valor |
|
||||
|-------|-------|
|
||||
| **Status** | `in_progress` |
|
||||
| **Status** | `in_progress` (E2E activate OK; webmail gate UI pendente) |
|
||||
| **Última actualização** | 2026-07-01 |
|
||||
| **Agente / sessão** | Agente B (043/035) + checkpoint protocolo |
|
||||
| **Prioridade** | P0 |
|
||||
| **Agente / sessão** | Obsidian sync webmail gate + Spec 044 chat bruto |
|
||||
| **Prioridade** | P1 (UI Activar webmail DomainAdmin.jsx) |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -21,56 +21,50 @@ Wizard → Desk Activar conta → FOSS → OpenPanel → Odoo → mail-bundle VM
|
|||
|
||||
---
|
||||
|
||||
## Feito (agente anterior — commit 884321c)
|
||||
## Feito
|
||||
|
||||
- [x] Produto FOSS `ligbox-mail-business` (product_id=3, hp_id=2)
|
||||
- [x] Script `deploy/vm123-finance-stack/create-foss-mail-business.sh`
|
||||
- [x] Código mail-bundle VM112 (`mail_bundle.py`, `internal_provision.py`) no repo
|
||||
- [x] Deploy código mail-bundle na VM112 (router activo — HTTP 401 sem token)
|
||||
- [x] Contrato `contracts/mail-bundle-api.md`
|
||||
- [x] Runbook `deploy/vm112-wizard/MAIL-BUNDLE-DEPLOY.md`
|
||||
- [x] Desk Spec 043 código no container (264 linhas billing_routes) — deploy temporário
|
||||
- [x] Produto FOSS `ligbox-mail-business` + catálogo 20 pacotes (ids 1–21, preços 1M)
|
||||
- [x] Código mail-bundle VM112 (`internal/provision/mail-bundle`)
|
||||
- [x] `OPS_INTERNAL_TOKEN` sincronizado VM122 → VM112 `.env` + restart wizard
|
||||
- [x] mail-bundle dratcoin.com provisionado (mail.dratcoin.com, 25 seats)
|
||||
- [x] Desk Spec 043 redeployed no container VM122 (`docker cp` + restart)
|
||||
- [x] E2E Roger: `POST /api/v1/billing/accounts/2/activate` → `billing_active`
|
||||
- OpenPanel: `dratcoix` (reused)
|
||||
- Odoo partner #9 (reused)
|
||||
- Wizard mail-bundle: HTTP 200, `already_provisioned: true`
|
||||
- [x] Script `configure-foss-catalog-pricing.sh` no repo
|
||||
- [x] `foss-products.md` actualizado com IDs reais
|
||||
- [x] Contrato `contracts/webmail-release-gate.md` + chat bruto Spec 043/044
|
||||
- [x] Spec 044 documentada (tickets FOSS↔Desk)
|
||||
- [x] Sync Obsidian VM130 + Spec Driver refresh
|
||||
|
||||
---
|
||||
|
||||
## Feito (sessão anterior Roger)
|
||||
## Residual / follow-up
|
||||
|
||||
- [x] Webhooks VM112 `company.validated` + `webmail.released`
|
||||
- [x] E2E parcial dratcoin: OpenPanel `dratcoix` + Odoo #9 → `billing_active`
|
||||
- [x] Token FOSS API admin (VM123)
|
||||
- [x] Protocolo SESSION-CHECKPOINT todas as specs + Rule Cursor
|
||||
1. **FOSS `create_client`** — `client_id: null` apesar de `created: true`; investigar API admin client/create
|
||||
2. **Deploy permanente VM122** — rebuild imagem Docker (código ainda via `docker cp`, não bake na imagem)
|
||||
3. **Custom fields FOSS** — activar módulo Formbuilder e associar domain/manager_email aos produtos mail
|
||||
4. **`foss_order_id`** — null no mail-bundle até FOSS order funcionar
|
||||
5. **UI Painel Admin** — banner + card «Activar webmail» em `DomainAdmin.jsx` (backend gate OK)
|
||||
|
||||
---
|
||||
|
||||
## Bloqueios / falta fechar
|
||||
|
||||
1. **`OPS_INTERNAL_TOKEN` VM112** — wizard `.env` sem token; mail-bundle retorna 401
|
||||
2. **FOSS client/order dratcoin** — `external_customer_id` ainda `null`; bug `create_client` client_id
|
||||
3. **Deploy permanente VM122** — Spec 043 ainda via `docker cp`, não rebuild imagem
|
||||
4. **Planos OpenPanel** — só business FOSS; starter/enterprise/custom + planos OP espelho
|
||||
5. **E2E Fase 6** — `tasks.md` linha Roger ainda `[ ]`
|
||||
|
||||
---
|
||||
|
||||
## Próximo passo
|
||||
|
||||
1. Sincronizar `OPS_INTERNAL_TOKEN` VM122 → VM112 `.env` + restart wizard
|
||||
2. Re-activar ou patch dratcoin com FOSS order + mail-bundle
|
||||
3. Deploy permanente VM122 (`git pull` + rebuild api)
|
||||
4. E2E Roger completo → marcar Fase 6 `[x]`
|
||||
|
||||
---
|
||||
|
||||
## Smoke tests
|
||||
## Smoke tests (validados 2026-07-01)
|
||||
|
||||
```bash
|
||||
curl -s http://10.10.10.122:8080/health
|
||||
curl -s http://10.10.10.112:8090/api/health 2>/dev/null || curl -s -o /dev/null -w "%{http_code}" http://10.10.10.112:8090/docs
|
||||
# mail-bundle (requer token):
|
||||
curl -s -X POST http://10.10.10.112:8090/api/internal/provision/mail-bundle \
|
||||
-H "X-Ops-Internal-Token: $OPS_INTERNAL_TOKEN" -H "Content-Type: application/json" \
|
||||
-d "{\"domain\":\"dratcoin.com\",\"admin_email\":\"001@dratcoin.com\",\"seats\":25}"
|
||||
curl -s "https://financeiro.ligbox.com.br/api/admin/product/get_list" -u "admin:$FOSS_TOKEN" -d "{\"per_page\":10}"
|
||||
# mail-bundle GET (VM112)
|
||||
curl -s -H "X-Ops-Internal-Token: $OPS_INTERNAL_TOKEN" \
|
||||
http://10.10.10.112:8090/api/internal/provision/mail-bundle/dratcoin.com
|
||||
|
||||
# Desk activate
|
||||
curl -s -X POST http://10.10.10.122:8080/api/v1/billing/accounts/2/activate \
|
||||
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
|
||||
-d '{"plan_code":"ligbox-mail-business","manager_email":"001@dratcoin.com"}'
|
||||
|
||||
# FOSS pricing
|
||||
curl -s -X POST "https://financeiro.ligbox.com.br/api/admin/product/get_list" \
|
||||
-u "admin:$FOSS_TOKEN" -d '{"per_page":5,"slug":"ligbox-mail-business"}'
|
||||
```
|
||||
|
||||
---
|
||||
|
|
@ -80,8 +74,10 @@ curl -s "https://financeiro.ligbox.com.br/api/admin/product/get_list" -u "admin:
|
|||
| Item | Path |
|
||||
|------|------|
|
||||
| tasks.md | `./tasks.md` |
|
||||
| Catálogo 20 | `../035-ligbox-mail-bundles-foss-openpanel/LIGBOX-CATALOG-20.md` |
|
||||
| mail-bundle API | `./contracts/mail-bundle-api.md` |
|
||||
| Deploy VM112 | `../../deploy/vm112-wizard/MAIL-BUNDLE-DEPLOY.md` |
|
||||
| webmail gate | `./contracts/webmail-release-gate.md` |
|
||||
| chat bruto | `../../chat-bruto/CHAT_BRUTO_WEBMAIL_GATE_TICKETS_SPEC043_044_20260701.txt` |
|
||||
| Conta teste | dratcoin.com billing #2 |
|
||||
|
||||
---
|
||||
|
|
@ -92,4 +88,5 @@ curl -s "https://financeiro.ligbox.com.br/api/admin/product/get_list" -u "admin:
|
|||
|------|--------|--------|
|
||||
| 2026-07-01 | A | E2E parcial; webhooks; protocolo handoff |
|
||||
| 2026-07-01 | B | FOSS product + mail-bundle código/deploy VM112 |
|
||||
| 2026-07-01 | A | Commit protocolo; audit o que falta |
|
||||
| 2026-07-01 | C | Pricing 20 pacotes; token VM112; E2E activate dratcoin OK |
|
||||
| 2026-07-01 | D | Webmail gate contrato; Spec 044; Obsidian sync |
|
||||
|
|
|
|||
|
|
@ -0,0 +1,148 @@
|
|||
# Contrato — Liberação formal webmail (`company_gate`)
|
||||
|
||||
**Spec:** [043](../spec.md) · [023](../../023-billing-recurrence-desk-visibility/spec.md) · [035 domain-manager](../../035-ligbox-mail-bundles-foss-openpanel/domain-manager-console-ui.md)
|
||||
**VM:** 112 (`company_gate.py`, `DomainAdmin.jsx`)
|
||||
**Versão:** 1.0 · 2026-07-01 · Roger
|
||||
**Status:** Backend ✅ · UI Painel Admin ⏳ pendente
|
||||
|
||||
**Chat bruto:** [CHAT_BRUTO_WEBMAIL_GATE_TICKETS_SPEC043_044_20260701.txt](../../../chat-bruto/CHAT_BRUTO_WEBMAIL_GATE_TICKETS_SPEC043_044_20260701.txt)
|
||||
|
||||
---
|
||||
|
||||
## 1. Duas camadas de «activar webmail»
|
||||
|
||||
| Camada | O quê | Quem | Flag / API |
|
||||
|--------|-------|------|------------|
|
||||
| **A — Infra** | Traefik, cert LE, SNI, HTTPS `mail.{dom}` | Sistema automático | `infrastructure.ready` |
|
||||
| **B — Gate formal** | Gerente confirma empresa + libera webmail (2FA Ligbox) | Gerente domínio | `webmail_released_at` |
|
||||
|
||||
**Regra:** camada A não remove aviso da camada B. Login Carbonio pode funcionar antes da liberação formal — aviso é informativo.
|
||||
|
||||
---
|
||||
|
||||
## 2. Onde fica cada mensagem (decisão Roger 2026-07-01)
|
||||
|
||||
| Superfície | Mensagem | Tipo |
|
||||
|------------|----------|------|
|
||||
| **Login Carbonio** `mail.{dom}` | Rodapé: *«Aviso: ambiente operacional — aguarda activação formal pelo Gerente do Domínio no Painel Ligbox…»* | Informativo (não bloqueia) |
|
||||
| **Wizard** passo Concluído | *«Conta criada — webmail em activação»* (infra pendente) | Técnico |
|
||||
| **Wizard** `WebmailReleaseModal` | Confirmar empresa + liberar com 2FA | Acção gerente (onboarding) |
|
||||
| **Painel Admin** `/admin` **Início** | Banner P0 + card «Activar webmail» | Acção gerente (**UI falta**) |
|
||||
| **Painel Admin** Contas / Resumo | Badge `WEBMAIL ⏳` / `WEBMAIL ✓` | Estado secundário |
|
||||
| **Sidebar** «Abrir Webmail» | Desactivado até `webmail_released_at` | Evita 502/confusão |
|
||||
|
||||
**Não colocar** a acção de liberar só no rodapé do Carbonio — utilizador final vê aviso; **gerente actua no Painel Ligbox**.
|
||||
|
||||
---
|
||||
|
||||
## 3. Fluxo backend (VM112)
|
||||
|
||||
```
|
||||
Onboarding concluído
|
||||
→ domain_registry (sem webmail_released_at)
|
||||
→ sync_webmail_user_notice() → Carbonio login footer
|
||||
|
||||
Gerente confirma empresa
|
||||
→ POST /api/domain-admin/gate/company-profile
|
||||
→ company_profile_confirmed_at
|
||||
→ webhook company.validated → Desk (Spec 043)
|
||||
|
||||
Gerente libera webmail (2FA Ligbox)
|
||||
→ POST /api/domain-admin/gate/release-webmail
|
||||
→ webmail_released_at
|
||||
→ sync_webmail_user_notice() limpa aviso
|
||||
→ webhook webmail.released → Desk
|
||||
```
|
||||
|
||||
### Ficheiros VM112
|
||||
|
||||
| Ficheiro | Função |
|
||||
|----------|--------|
|
||||
| `backend/app/services/company_gate.py` | Gate, mensagens, webhooks |
|
||||
| `backend/app/routers/domain_admin.py` | `/gate/status`, `/gate/company-profile`, `/gate/release-webmail` |
|
||||
| `backend/app/services/webmail_pending_page.py` | Página pública aguardando liberação |
|
||||
| `frontend/src/components/WebmailReleaseModal.jsx` | Modal wizard (onboarding) |
|
||||
| `frontend/src/DomainAdmin.jsx` | Painel gerente — **falta UI gate** |
|
||||
|
||||
### Constantes (`company_gate.py`)
|
||||
|
||||
```python
|
||||
PENDING_WEBMAIL_USER_DESCRIPTION = (
|
||||
"Aviso: ambiente operacional — aguarda activação formal pelo Gerente do Domínio "
|
||||
"no Painel Ligbox. Utilização de correio permitida."
|
||||
)
|
||||
```
|
||||
|
||||
Injectado via `carbonio.set_domain_web_ui_notice()`.
|
||||
|
||||
---
|
||||
|
||||
## 4. API Painel Admin
|
||||
|
||||
### `GET /api/domain-admin/gate/status`
|
||||
|
||||
```json
|
||||
{
|
||||
"domain": "dratcoin.com",
|
||||
"needs_company_confirm": false,
|
||||
"webmail_released": false,
|
||||
"service_active": false,
|
||||
"webmail_url": "https://mail.dratcoin.com/",
|
||||
"ops_ticket_state": "awaiting_billing_validation",
|
||||
"pending_message": "Este webmail aguarda activação pelo Administrador do domínio..."
|
||||
}
|
||||
```
|
||||
|
||||
### `POST /api/domain-admin/gate/release-webmail`
|
||||
|
||||
```json
|
||||
{
|
||||
"ligbox_login": "roger",
|
||||
"totp_code": "123456",
|
||||
"recovery_code": null
|
||||
}
|
||||
```
|
||||
|
||||
**Pré-requisitos:** `company_profile_confirmed_at` preenchido; 2FA portal user válido.
|
||||
|
||||
---
|
||||
|
||||
## 5. Webhooks Desk
|
||||
|
||||
| Evento | Quando |
|
||||
|--------|--------|
|
||||
| `company.validated` | Após confirmar perfil empresa |
|
||||
| `webmail.released` | Após `release_webmail()` |
|
||||
|
||||
Desk: `FUNNEL_STAGE` rank 8 = `webmail_released` (`main.py` VM122).
|
||||
|
||||
---
|
||||
|
||||
## 6. UI pendente — Painel Admin (`DomainAdmin.jsx`)
|
||||
|
||||
Wireframe **Início** (`/admin`):
|
||||
|
||||
```
|
||||
┌─ Activar webmail ─────────────────────────────────────┐
|
||||
│ Empresa: ⏳ confirmar | Webmail: ⏳ aguarda liberação │
|
||||
│ [ Confirmar dados empresa ] [ Activar webmail + 2FA ] │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
Reutilizar lógica de `WebmailReleaseModal.jsx` + `me.gate` da API `/me`.
|
||||
|
||||
---
|
||||
|
||||
## 7. Caso dratcoin.com (Roger 2026-07-01)
|
||||
|
||||
- Login `mail.dratcoin.com` mostra aviso no rodapé ✅ (esperado)
|
||||
- Erro *Credentials are not valid* = senha/email incorrectos (separado do gate)
|
||||
- Painel `/admin` não mostra card liberar — **gap UI**
|
||||
|
||||
---
|
||||
|
||||
## Histórico
|
||||
|
||||
| Versão | Data | Notas |
|
||||
|--------|------|-------|
|
||||
| 1.0 | 2026-07-01 | Decisão UX mensagens + mapa company_gate |
|
||||
|
|
@ -19,6 +19,8 @@ Esta spec **unifica e documenta** o mapeamento de dados desde o card **«Dados d
|
|||
O Desk (VM122) é o **orquestrador**: recebe `company.validated`, persiste `billing_accounts`, e expõe acção staff **«Activar conta»** que dispara a sequência documentada.
|
||||
|
||||
**Documento mestre de campos:** [contracts/activation-field-mapping.md](./contracts/activation-field-mapping.md)
|
||||
**Liberação webmail (gate):** [contracts/webmail-release-gate.md](./contracts/webmail-release-gate.md)
|
||||
**Chat bruto:** [CHAT_BRUTO_WEBMAIL_GATE_TICKETS_SPEC043_044_20260701.txt](../../chat-bruto/CHAT_BRUTO_WEBMAIL_GATE_TICKETS_SPEC043_044_20260701.txt)
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -100,6 +102,17 @@ O Desk (VM122) é o **orquestrador**: recebe `company.validated`, persiste `bill
|
|||
4. **Odoo** recebe a **empresa** para gestão financeira (`res.partner`).
|
||||
5. Um **gerente** por domínio: `admin@{domínio}` + `manager_name` / `manager_email`.
|
||||
6. Staff activa após revisão OPS — não automático sem RBAC ([027](../027-desk-rbac-function-matrix/spec.md)).
|
||||
7. **Liberação formal webmail** pelo Gerente no Painel `/admin` (`webmail_released_at`) — ver [webmail-release-gate.md](./contracts/webmail-release-gate.md).
|
||||
|
||||
---
|
||||
|
||||
## Decisões / Histórico
|
||||
|
||||
| Data | Decisão |
|
||||
|------|---------|
|
||||
| 2026-07-01 | FOSS order + mail-bundle VM112 deployados (product_id=3) |
|
||||
| 2026-07-01 | Aviso Carbonio login = informativo; acção liberar no Painel Admin (UI pendente) |
|
||||
| 2026-07-01 | Spec 044 tickets FOSS↔Desk documentada |
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
- [x] `GET /billing/accounts/{id}/activation-preview`
|
||||
- [x] Botão **Activar conta** em `billing-ui.js` (só roles autorizados)
|
||||
- [x] Modal confirmação com 3 colunas FOSS / OpenPanel / Odoo
|
||||
- [ ] Deploy VM122 + validação Roger (teste manual)
|
||||
- [x] Deploy VM122 + validação Roger (teste manual)
|
||||
|
||||
## Fase 2 — FOSS client + order
|
||||
- [x] `foss_client.create_client()` conforme mapa §4
|
||||
|
|
@ -46,4 +46,12 @@
|
|||
## Fase 6 — Testes
|
||||
- [x] Unit: `test_activation_mapper_043.py` (3)
|
||||
- [x] Unit: `test_client_activation_043.py` (4) — happy path, idempotência FOSS, reject active
|
||||
- [ ] E2E Roger: domínio teste wizard → activate → FOSS+OP+Odoo
|
||||
- [x] E2E Roger: domínio teste wizard → activate → FOSS+OP+Odoo (dratcoin.com #2, 2026-07-01)
|
||||
|
||||
## Fase 7 — Webmail gate (company_gate)
|
||||
- [x] Contrato `contracts/webmail-release-gate.md`
|
||||
- [x] Backend VM112 `company_gate.py` + API `/gate/*`
|
||||
- [x] Aviso rodapé login Carbonio (`sync_webmail_user_notice`)
|
||||
- [x] `WebmailReleaseModal.jsx` no wizard onboarding
|
||||
- [ ] UI Painel Admin: banner + card «Activar webmail» em `DomainAdmin.jsx`
|
||||
- [ ] Desactivar «Abrir Webmail» sidebar até `webmail_released_at`
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ Esta spec define a **ponte bidireccional** Desk ↔ FOSS, preservando o portal w
|
|||
- [ticket-field-mapping.md](./contracts/ticket-field-mapping.md) — chaves de correlação
|
||||
- [ticket-sync-api.md](./contracts/ticket-sync-api.md) — webhooks e endpoints API
|
||||
|
||||
**Chat bruto:** [CHAT_BRUTO_WEBMAIL_GATE_TICKETS_SPEC043_044_20260701.txt](../../chat-bruto/CHAT_BRUTO_WEBMAIL_GATE_TICKETS_SPEC043_044_20260701.txt)
|
||||
|
||||
---
|
||||
|
||||
## Specs relacionadas
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
| **040** | **`040-desk-design-system-v013/`** | **UserWizard + Access Control Hub + Governance API** | **0.13.1-ac-hub-ui-aprovado-roger** |
|
||||
| **041** | **`041-desk-operational-feed/`** | **Central Operacional (ex-Mensagens) + ops-inbox API** | **0.13.0** |
|
||||
| **042** | **`042-ligbox-nettools-portal/`** | **NetTools — 23 ferramentas OSS em nettools.ligbox.com.br** | — |
|
||||
| **043** | **`043-desk-client-activation-sync/`** | **Mapa campos Wizard→Desk→FOSS→OpenPanel→Odoo + API Activar conta** | — |
|
||||
| **043** | **`043-desk-client-activation-sync/`** | **Mapa campos Wizard→Desk→FOSS→OpenPanel→Odoo + API Activar conta + webmail gate** | — |
|
||||
| **044** | **`044-foss-desk-ticket-sync/`** | **Sync tickets Portal OB- ↔ Desk ↔ FOSS Support** | — |
|
||||
|
||||
Atualizado: 2026-07-01 · Roger · Spec 044 sync tickets FOSS/portal
|
||||
|
|
|
|||
Loading…
Reference in a new issue