Conexão Azul - Blue Content Social
Ponte enxuta entre o Blue Prosperity Runtime e o Social Marketing Enterprise.
Dependências
Seção intitulada “Dependências”blue_content_approval, social
Documentação
Seção intitulada “Documentação”Ponte nativa entre blue.content.approval e o aplicativo Enterprise Social Marketing.
Arquitetura
Seção intitulada “Arquitetura”Blue Prosperity Runtime→ outbox delivery-disabled→ revisão corporate + revisão founder→ materialização verificada dos assets→ aprovação humana independente→ social.post em draft→ Social Marketing EnterpriseO Odoo governa contas, calendário, UTMs, publicação humana, cliques, engajamento, CRM, cotações e faturamento. A ponte não usa LLM, não baixa URLs e não publica automaticamente.
Dois perfis por pacote
Seção intitulada “Dois perfis por pacote”Cada mensagem gera duas revisões independentes:
corporate → Conexão Azulfounder → Diego / FundadorAs revisões compartilham run ID, checksum e fontes, mas possuem decisão, contas, conteúdo, attachments, post e métricas próprios. IDs e chaves de idempotência são determinísticos. Registros antigos podem receber o perfil ausente sem recriar o rascunho histórico.
Conteúdo por rede
Seção intitulada “Conteúdo por rede”A mensagem comum é reutilizada por padrão. Quando Personalizar por rede estiver marcado, o módulo usa os campos nativos do Odoo 19:
instagram_messageeinstagram_image_ids;linkedin_messageelinkedin_image_ids;facebook_messageefacebook_image_ids;is_split_per_media.
Variações são extraídas deterministicamente de channels, per_media, channel_variants, platforms ou chaves específicas por rede. Nenhuma reescrita ocorre no Odoo.
O Instagram reutiliza o validador Enterprise para imagem obrigatória, JPEG, proporção de 4:5 a 1.91:1, máximo de 10 imagens e arquivo corrompido.
Materialização segura dos assets
Seção intitulada “Materialização segura dos assets”Paths da outbox representam lineage de staging. Eles nunca são lidos como paths locais do servidor Odoo.
A versão 19.0.1.3.0 oferece o método JSON-2:
blue.content.approval.materialize_social_assetsO método aceita somente uma revisão previamente importada e valida:
- usuário em
Blue Content Integrationou administrador; message_id, perfil, bundle, asset ID e checksum exatos;- logical paths previamente declarados na outbox;
- no máximo 10 arquivos;
- no máximo 8 MiB por arquivo e 30 MiB por lote;
- JPEG, PNG ou WebP;
- base64 válido;
- tamanho e SHA-256 reais;
- assinatura mágica compatível com o MIME;
- nomes e logical paths seguros;
- isolamento por empresa;
- ausência de rascunho e fingerprint anteriores.
Cada attachment guarda:
blue_content_asset_id;blue_content_file_sha256;blue_content_logical_path.
A idempotência usa revisão, asset e logical path. Repetir o mesmo lote reutiliza attachments. Repetir o mesmo path com conteúdo, MIME, nome ou tamanho diferentes é rejeitado.
O lote pode ser parcial, mas o perfil corporativo permanece missing até que todos os paths esperados tenham attachments válidos. A resposta contém somente IDs, contagens e estado, nunca bytes ou base64.
A leitura segura dos arquivos e o envio ao endpoint pertencem ao blue-content-connectors. O Odoo não acessa o filesystem do runtime nem URLs remotas.
Fingerprint e drift
Seção intitulada “Fingerprint e drift”Ao criar o rascunho, o módulo calcula SHA-256 sobre:
- perfil e pacote;
- mensagem comum e mensagens por rede;
- contas e tipos de mídia;
- campanha UTM;
- attachments comuns e por rede;
- checksums dos arquivos;
- checksum do asset de origem.
Depois do selo:
- campos de preparação e do selo ficam imutáveis pelo fluxo comum;
- o rascunho auditado não pode ser excluído;
- edição no
social.postgeradrifted; - publicação e agendamento ficam bloqueados;
- renovar o selo exige justificativa humana;
- o cron revalida a integridade antes de
_action_post.
Um item agendado com drift volta para draft, sai da agenda, não cria social.live.post e não paralisa os itens íntegros do lote.
Atribuição nativa
Seção intitulada “Atribuição nativa”A campanha Blue Prosperity Content Engine agrupa a operação. O social.post cria sua utm.source, e cada social.account mantém seu utm.medium.
Quando instalados, os módulos nativos fornecem:
click_count;engagement;leads_opportunities_count;sale_quotation_count;sale_invoiced_amount.
Segurança e permissões
Seção intitulada “Segurança e permissões”- somente
social.group_social_userprepara rascunhos; - somente
Blue Content Integrationou administrador materializa binários; - contas e attachments precisam respeitar a empresa da revisão;
- conta desconectada é bloqueada;
- nenhuma credencial social é armazenada pela ponte;
- nenhuma chamada HTTP é feita pelo módulo;
- nenhuma publicação ou agenda é criada pelo endpoint de assets.
Fonte Enterprise canônica
Seção intitulada “Fonte Enterprise canônica”ConexaoAzulDigital/enterprisebranch: 19.0pin: 14c6dae45ff1c477226dcd49680ab3e3aedeaf09O registry de governança está em conexaoazul/enterprise. O código Enterprise não é copiado para o BlueApps19.
odoo-bin \ -d blue_content_social_test \ -i blue_content_social \ --test-enable \ --test-tags=/blue_content_social \ --stop-after-initA suíte cobre perfis pareados, backfill, canais, assets completos e parciais, idempotência, traversal, MIME, magic bytes, limites, selo, drift, reseal, cron e lineage.