Pular para o conteúdo

Blue Chat Plus

Discuss · v19.0.1.4.0 · LGPL-3

Blue Chat Plus

blue_chat_v3, bus, web, mail, crm

Camada de tempo real que complementa o blue_chat_v3 (backend-only). Não o substitui, não duplica seus dados e não modifica seu controller.

  • Barramento realtime backend centralizado (bus.bus, canal pessoal res.partner por usuário) com roteamento por atendente/equipe e isolamento multi-empresa.
  • Serviço OWL global reativo (blueChatPlusLive): estado compartilhado, deduplicação de eventos por event_id, reconciliação após reconexão.
  • Viewer de conversa nativo com atualização incremental (sem F5), aberto em dialog a partir do badge.
  • Badge de Kanban/Form que atualiza em tempo real (sem RPC por card).
  • Notificações persistentes por usuário + systray com contador em tempo real.
  • RPC de snapshot/reconciliação como proxy Chatwoot com validação de ACL (o bus carrega sinais; o conteúdo das mensagens vem da RPC).

bus = atualização, RPC = fonte definitiva. O bus carrega apenas sinais leves (ids, direção, mudanças). O conteúdo das mensagens não vai no bus — vem da RPC blue_chat_plus_snapshot, que valida check_access('read') no lead.

O blue_chat_v3 é preservado integralmente: o blue_chat_plus herda crm.lead e observa as escritas que o blue_chat_v3 já faz via webhooks. Nenhuma linha do blue_chat_v3 é alterada.

blue_chat_v3, bus, web, mail, crm.

Terminal window
# 1. Colocar o modulo no addons_path do Odoo 19 (ja' no repo: addons/blue_chat_plus)
# 2. Instalar em banco QA (o -i instala dependencias nao instaladas):
odoo-bin -c <conf> -d <db_qa> -i blue_chat_plus --stop-after-init --no-http
# 3. Validacao estatica (sintaxe Python):
python -m compileall addons/blue_chat_plus
# 4. Rodar os testes automatizados (23 cenarios):
odoo-bin -c <conf> -d <db_qa> --test-enable \
--test-tags=/blue_chat_plus --stop-after-init --no-http
# 5. Smoke-test da rota de health (apos subir o Odoo):
curl -sS -u <user>:<pass> http://<odoo>/blue_chat_plus/health
# esperado: {"ok": true, "module": "blue_chat_plus"}

Em Configurações → Blue Chat Plus:

  • Tempo real ativo (blue_chat_plus.realtime_enabled, padrão ligado): liga/desliga a publicação de eventos no bus. Desligar não desinstala o módulo nem afeta o blue_chat_v3.
  • Viewer de conversa ativo (blue_chat_plus.viewer_enabled, padrão ligado).

As credenciais do Chatwoot vêm de res.company (chatwoot_url, chatwoot_account_id, chatwoot_token) — já usadas pelo blue_chat_v3.

  • ir.rule [("user_id", "=", user.id)]: cada usuário só vê/gerencia suas notificações.
  • Multi-empresa: o publicador filtra destinatários por company_ids; o snapshot valida check_access('read') no lead.
  • Sem canal global: publica-se no canal pessoal de cada destinatário.
  • Sem fallback inseguro: sem atendente/equipe → ninguém recebe (nunca “todos os internos”).
  • Sem dados pessoais no bus: o payload do bus não contém conteúdo de mensagens, e-mails ou tokens.

Desinstalar o blue_chat_plus não afeta o blue_chat_v3, que permanece totalmente funcional. As notificações persistentes (blue.chat.plus.notification) são removidas com o módulo.

  • docs/blue_chat_plus/architecture.md — arquitetura e diagrama.
  • docs/blue_chat_plus/test_plan.md — plano de testes + roteiro de validação manual.
  • docs/blue_chat_plus/implementation_log.md — decisões e log de implementação.
  • docs/blue_chat_plus/fullchat_to_blue_chat_matrix.md — matriz de equivalência.
  • NOTICE_FULLCHAT.md — atribuição LGPL-3 (conceitos adaptados do FullChat/Nettcom).

LGPL-3. Autor: Diego Santos ([email protected]) — Conexão Azul.