b21fb0f159
Clona o satélite do mercado adaptado ao scoreodonto (ESM, sem PluginManager): - backend/newwhats/: config (ENV), auth (x-nw-key), routes /nw/* (clinica, especialidades, dentistas, procedimentos, planos — multi-tenant por clinica_id), sync-knowledge (base de conhecimento odonto → motor), webhook-receiver (HMAC, enxuto), proxy REST /api/nw/v1/* → motor /api/ext/v1/*, manifest, INTEGRACAO-MOTOR.md. - server.js: registerNewwhats(app, pool) antes do listen. - Removidos (não úteis): media-transcribe (motor já transcreve), smart-router, personas, follow-up-detector, context-builder. - Config por ENV: NEWWHATS_URL/INTEGRATION_KEY/WEBHOOK_SECRET/CLINICA_ID. - ativo::int=1 normaliza boolean vs smallint entre tabelas. - Validado: buildKnowledgeText gera 1195 chars de dados reais; registro ok no express 5.2.1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
22 lines
1.3 KiB
JSON
22 lines
1.3 KiB
JSON
{
|
|
"id": "newwhats",
|
|
"name": "NewWhats — Integração WhatsApp (Odonto)",
|
|
"version": "1.0.0",
|
|
"project": "scoreodonto.com",
|
|
"description": "Satélite do motor NewWhats adaptado ao domínio odontológico: expõe /nw/* (clínica, especialidades, dentistas, procedimentos, planos) para a Secretária IA, recebe webhooks do motor e faz proxy do inbox. Config por variáveis de ambiente (ESM, sem tabela plugin_configs).",
|
|
"runtime": "esm-module",
|
|
"entry": "index.js#registerNewwhats",
|
|
"features": [
|
|
"Rotas /nw/* (dados da clínica para a Secretária IA)",
|
|
"sync-knowledge (base de conhecimento odonto → motor)",
|
|
"Webhook receiver (message.new, session.status) com HMAC",
|
|
"Proxy REST /api/nw/v1/* → motor /api/ext/v1/*"
|
|
],
|
|
"config_env": [
|
|
{ "key": "NEWWHATS_URL", "required": true, "help": "URL do motor NewWhats." },
|
|
{ "key": "NEWWHATS_INTEGRATION_KEY", "required": true, "help": "x-nw-key: valida /nw/* e é injetada no proxy. Igual à apiKey criada no motor." },
|
|
{ "key": "NEWWHATS_WEBHOOK_SECRET", "required": false, "help": "Segredo HMAC para validar x-nw-signature nos webhooks. Recomendado." },
|
|
{ "key": "NEWWHATS_CLINICA_ID", "required": true, "help": "Qual clínica este satélite atende (multi-tenant)." }
|
|
]
|
|
}
|